
AutoPentest-DRL: 심층 강화 학습을 이용한 자동 침투 테스팅
AutoPentest-DRL은 DRL(Deep Reinforcement Learning) 기술을 기반으로 한 자동 침투 테스트 프레임워크입니다. AutoPentest-DRL은 주어진 논리적 네트워크에 대해 가장 적절한 공격 경로를 결정할 수 있으며, 또한 Nmap 및 Metasploit과 같은 도구를 통해 실제 네트워크에 침투 테스트 공격을 실행하는 데 사용될 수 있습니다. 이 프레임워크는 교육적 목적으로 설계되어 사용자가 침투 테스트 공격 메커니즘을 연구할 수 있도록 합니다. AutoPentest-DRL은 일본 이시카와현에 위치한 일본 첨단 과학 기술 대학원(JAIST)의 사이버 레인지 조직 및 설계(CROND) NEC 석좌 교수진에 의해 개발되고 있습니다.
AutoPentest-DRL의 개요는 아래와 같습니다. 프레임워크는 취약점 정보를 포함한 논리적 대상 네트워크에 대한 사용자 입력을 받습니다. 또는 프레임워크는 Nmap을 사용하여 네트워크 스캐닝을 수행하고 알려진 토폴로지를 가진 실제 대상 네트워크에서 실제 취약점을 찾을 수 있습니다. 그런 다음 MulVAL 공격 그래프 생성기를 사용하여 잠재적인 공격 트리를 결정하고, 이를 단순화된 형태로 DRL 엔진에 전달합니다. 출력으로 생성된 공격 경로는 다수의 논리적 네트워크에 대한 공격 메커니즘을 연구하는 데 사용될 수 있습니다. 또는 프레임워크는 Metasploit과 같은 침투 테스트 도구와 함께 공격 경로를 사용하여 사용자가 실제 대상 네트워크에서 공격이 어떻게 수행될 수 있는지 연구할 수 있도록 합니다.

다음은 AutoPentest-DRL을 설정하고 사용하는 방법에 대한 간략한 정보를 제공합니다. 자세한 작동 방식은 함께 제공되는 사용자 가이드를 참조하십시오.
AutoPentest-DRL을 사용하려면 여러 외부 도구가 필요합니다. 논리적 네트워크에 대한 기본 기능을 위해 다음이 필요합니다:
repos/mulval 디렉토리에 설치되어야 합니다. 또한 여기에서 설명한 대로 /etc/profile 파일을 구성해야 합니다. 일부 시스템에서는 epstopdf 도구도 설치해야 할 수 있습니다. 예를 들어 아래 명령을 사용하여 설치할 수 있습니다:
sudo apt install texlive-font-utils
AutoPentest-DRL을 실제 네트워크와 함께 사용할 계획이라면 다음도 필요합니다:
nmap을 설치하는 명령은 다음과 같습니다:
sudo apt install nmap
pymetasploit3을 사용하며, 이 도구는 해당 저자의 지침에 따라 Penetration_tools/pymetasploit3 디렉토리에 설치해야 합니다.AutoPentest-DRL은 주로 Ubuntu 18.04 LTS 운영 체제에서 개발되었습니다. 다른 OS에서도 작동할 수 있지만 테스트되지 않았습니다. AutoPentest-DRL을 설정하려면 릴리스 페이지에서 최신 버전을 다운로드하고 소스 코드 아카이브를 사용하려는 호스트의 원하는 디렉토리(예: 홈 디렉토리)에 추출하십시오.
AutoPentest-DRL은 Python으로 구현되었으며 실행을 위해 여러 패키지가 필요합니다. 배포판에 포함된 requirements.txt 파일을 사용하여 AutoPentest-DRL/ 디렉토리에서 다음 명령을 실행하여 필요한 패키지를 설치할 수 있습니다:
$ sudo -H pip install -r requirements.txt
AutoPentest-DRL은 AutoPentest-DRL/ 디렉토리의 터미널에서 다음 명령을 실행하여 샘플 논리적 네트워크 토폴로지에서 즉시 사용할 수 있습니다:
$ python3 ./AutoPentest-DRL.py logical_attack
이 논리적 공격 모드에서는 실제 공격이 수행되지 않으며, AutoPentest-DRL은 MulVal_P/logical_attack_v1.P 파일에 설명된 논리적 네트워크 토폴로지에 대한 최적의 공격 경로만 결정합니다. 출력 경로를 MulVAL이 생성한 mulval_results/AttackGraph.pdf 파일의 공격 그래프 시각화와 비교하여 논리적 공격 단계를 자세히 연구할 수 있습니다.
AutoPentest-DRL의 작동 방식에 대한 자세한 내용은 실제 네트워크에서 침투 테스트를 수행할 때 사용할 실제 공격 모드를 포함하여 사용자 가이드를 참조하십시오.
이 프로젝트의 기여자 목록은 배포판에 포함된 CONTRIBUTORS 파일을 참조하십시오.