요약
- 침투 테스팅은 공격을 시뮬레이션함으로써 보안 취약점을 찾는데, 여기에는 스캐닝, 공격 도구들을 사용해서 이용
- 이러한 툴들을 사람이 사용했는데, 자동화한다면 인간의 상호작용과 의사결정이 줄어들 수 있을거라 하여, 3개의 미리 정의된 보안 시나리오를 해결하고자 Network Attack Simulator(NASim)을 Environment로 활용하여 강화학습 에이전트 학습.
- Exploit은 애플리케이션, 네트워크, 운영체제 또는 하드웨어의 취약점을 이용한 공격
- Exploitation 및 Post-Expoitation, wiretapping(도청)을 커버하는 시나리오들
- 최고의 파라미터 조합을 찾기 위해서 큰 하이퍼파라미터 그리드 서치를 수행함.
- 알고리즘으로는 Q러닝(Q-Learning), DQN, A3C가 활용되었는데, A3C가 모든 시나리오를 해결할 수 있었고, 일반화도 달성하였음.
- A3C는 베이스라인 기반 자동화 침투 테스팅보다도 이 시나리오를 작은 action으로 해결하였음.
- 비록 이 학습은 오로지 에이전트의 작은 action space와 작은 상태들에 한정되었지만, 결과는 RL agent로도 침투 테스팅을 성공적으로 수행할 수 있다.
소개
- 어떠한 취약점도 간과되지 않은 high confidence를 갖고, 탐지를 피해서, 스캐닝/공격 도구와 같은 도구들을 정확하게 수행할 수 있는 경험이 필요함.
- 기술이 발전하면서, 위협도 늘어나고 있고, 따라서 정보시스템을 보호하기 위해서는 최신 취약점과 취약점을 이용한 공격에 대항하는 지속적인 테스트가 필요.
- 검증된 고급 실력자는 적으므로, 침투 테스트 프로세스 자동화에 대한 강한 요구가 있음.
- 일반적인 침투 테스팅에서는 컴퓨터 네트워크를 공격하는 것은 방화벽, 침입 탐지 시스템(Intrusion Detection Systems, IDS)의 경계를 뚫는 것을 시뮬레이션하여, 민감한 호스트로 실제로 침해할 수 있음을 입증하는 것
- 보통 전문가들은 Nmap이나 Metasploit과 같은 도구들을 활용하여 네트워크, 호스트, 서비스를 스캔하고 식별하여, 취약점을 exploit하는 것을 실행함.
- 기존 RL의 문제 :
- RL은 에이전트가 미리 정의된 액션을 선택하여 환경(environment)과 상호작용하고, 행위의 비용과 보상에 근거하여 행위를 수정한다.
- 문제는 기존의 RL 침투테스팅이 무작위 행동 선택(random action selection)과 비교하는 방식으로만 에이전트의 성능을 평가하기 때문에, 단순히 에이전트가 환경을 해결하거나 단일 환경에서만 학습이 가능하고, 일반화 능력을 무시함.
- 프레임워크에 따라서 일부 일반적인 공격 시나리오와 행동이 누락되어 있는 문제
- NASim(Network Attack Simulation Environment)를, 추가적인 행위와, 4개의 공격 시나리오를 정의하고, 결정트리(Penbox) 기반 베이스라인 에이전트를 도입하여 확장함.
- 일반화 문제 해결 및 과적합 방지를 위해 시나리오별 변형(permutation)이 생성 됨
- 1단계: 하나의 시나리오에 대해 24개의 변형
- 2단계: 세 가지 모든 시나리오에 대해 72개의 변형
- 3단계: 보지 못한 변형에 대해 일반화 성능 테스트
- Q-Learning, DQN, A3C를 에이전트를 사용하고, 4000개 이상의 에이전트를 대상으로 방대한 하이퍼파라미터 그리드 서치 수행
- A3C는 세 단계 모두를 해결
- DQN은 모든 단계에서 학습에 실패
- Q-learning은 1단계에서 하나의 시나리오만 해결함.
- A3C 에이전트는 기준선인 결정 트리(decision tree)보다 평균적으로 더 적은 행동으로 목표를 달성