
AutoPentest-DRL: Автоматизированное тестирование на проникновение с использованием глубокого обучения с подкреплением
AutoPentest-DRL — это автоматизированная платформа для тестирования на проникновение, основанная на методах глубокого обучения с подкреплением (DRL). AutoPentest-DRL может определить наиболее подходящий путь атаки для заданной логической сети, а также может использоваться для выполнения атаки тестирования на проникновение на реальную сеть с помощью таких инструментов, как Nmap и Metasploit. Эта платформа предназначена для образовательных целей, чтобы пользователи могли изучать механизмы атак при тестировании на проникновение. AutoPentest-DRL разрабатывается кафедрой, учрежденной NEC, в рамках организации и проектирования киберполигонов (CROND) в Японском передовом институте науки и технологий (JAIST) в Исикаве, Япония.
Обзор AutoPentest-DRL показан ниже. Платформа получает от пользователя вводные данные о логической целевой сети, включая информацию об уязвимостях; в качестве альтернативы платформа может использовать Nmap для сканирования сети с целью обнаружения реальных уязвимостей в реальной целевой сети с известной топологией. Затем используется генератор графов атак MulVAL для определения потенциальных деревьев атак, которые в упрощенной форме передаются в движок DRL. Полученный в результате путь атаки может использоваться для изучения механизмов атак на большом количестве логических сетей. В качестве альтернативы платформа может использовать путь атаки с инструментами тестирования на проникновение, такими как Metasploit, что позволяет пользователю изучать, как может быть выполнена атака на реальную целевую сеть.

Далее мы предоставляем краткую информацию о том, как настроить и использовать AutoPentest-DRL. Подробности о его работе смотрите в Руководстве пользователя, которое мы также предоставляем.
Для использования AutoPentest-DRL требуется несколько внешних инструментов; для базовой функциональности, связанной с логическими сетями, вам понадобятся:
repos/mulval в папке AutoPentest-DRL. Вам также необходимо настроить файл /etc/profile, как описано здесь. В некоторых системах может также потребоваться установка инструмента epstopdf, например, с помощью команды ниже:
sudo apt install texlive-font-utils
Если вы планируете использовать AutoPentest-DRL с реальными сетями, вам также понадобятся:
nmap на Ubuntu приведена ниже:
sudo apt install nmap
pymetasploit3 в качестве RPC API для связи с Metasploit, и этот инструмент необходимо установить в каталог Penetration_tools/pymetasploit3, следуя инструкциям автора.AutoPentest-DRL в основном разрабатывался для операционной системы Ubuntu 18.04 LTS; другие ОС могут работать, но не тестировались. Чтобы настроить 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, включенном в дистрибутив.