
AutoPentest-DRL: Pruebas de Penetración Automatizadas Utilizando Aprendizaje por Refuerzo Profundo
AutoPentest-DRL es un marco de pruebas de penetración automatizadas basado en técnicas de Aprendizaje por Refuerzo Profundo (DRL). AutoPentest-DRL puede determinar la ruta de ataque más apropiada para una red lógica dada, y también se puede utilizar para ejecutar un ataque de pruebas de penetración en una red real mediante herramientas como Nmap y Metasploit. Este marco está destinado a fines educativos, para que los usuarios puedan estudiar los mecanismos de ataque de las pruebas de penetración. AutoPentest-DRL está siendo desarrollado por la Cátedra dotada por NEC de Organización y Diseño de Cibercampo (CROND) en el Instituto Avanzado de Ciencia y Tecnología de Japón (JAIST) en Ishikawa, Japón.
A continuación se muestra una descripción general de AutoPentest-DRL. El marco recibe la entrada del usuario sobre la red lógica objetivo, incluida la información de vulnerabilidades; alternativamente, el marco puede usar Nmap para escanear la red y encontrar vulnerabilidades reales en una red objetivo real con topología conocida. Luego se utiliza el generador de grafos de ataque MulVAL para determinar los árboles de ataque potenciales, que se alimentan en una forma simplificada al motor DRL. La ruta de ataque que se produce como salida se puede utilizar para estudiar los mecanismos de ataque en una gran cantidad de redes lógicas. Alternativamente, el marco puede usar la ruta de ataque con herramientas de pruebas de penetración, como Metasploit, lo que permite al usuario estudiar cómo se puede llevar a cabo el ataque en una red objetivo real.

A continuación, proporcionamos información breve sobre cómo configurar y usar AutoPentest-DRL. Para obtener detalles sobre su funcionamiento, consulte la que también ponemos a disposición.
Se requieren varias herramientas externas para usar AutoPentest-DRL; para la funcionalidad básica relacionada con redes lógicas, necesitará:
repos/mulval dentro de la carpeta AutoPentest-DRL. También necesita configurar el archivo /etc/profile como se discute aquí. En algunos sistemas, la herramienta epstopdf también puede necesitar instalarse, por ejemplo usando el comando a continuación:
sudo apt install texlive-font-utils
Si planea usar AutoPentest-DRL con redes reales, también necesitará:
nmap en Ubuntu se proporciona a continuación:
sudo apt install nmap
pymetasploit3 como API RPC para comunicarnos con Metasploit, y esta herramienta debe instalarse en el directorio Penetration_tools/pymetasploit3 siguiendo las instrucciones de su autor.AutoPentest-DRL se ha desarrollado principalmente en el sistema operativo Ubuntu 18.04 LTS; otros sistemas operativos pueden funcionar, pero no han sido probados. Para configurar AutoPentest-DRL, use la página de lanzamientos para descargar la última versión y extraiga el archivo del código fuente en un directorio de su elección (por ejemplo, su directorio personal) en el host en el que planea usarlo.
AutoPentest-DRL está implementado en Python y requiere varios paquetes para ejecutarse. El archivo requirements.txt incluido con la distribución se puede usar para instalar los paquetes necesarios mediante el siguiente comando que debe ejecutarse desde el directorio AutoPentest-DRL/:
$ sudo -H pip install -r requirements.txt
AutoPentest-DRL se puede usar directamente en una topología de red lógica de ejemplo ejecutando el siguiente comando en una terminal desde el directorio AutoPentest-DRL/:
$ python3 ./AutoPentest-DRL.py logical_attack
En este modo de ataque lógico no se realiza ningún ataque real, y AutoPentest-DRL solo determinará la ruta de ataque óptima para la topología de red lógica que se describe en el archivo MulVal_P/logical_attack_v1.P. Al comparar la ruta de salida con la visualización del grafo de ataque que genera MulVAL en el archivo mulval_results/AttackGraph.pdf, puede estudiar en detalle los pasos del ataque lógico.
Para obtener más información sobre el funcionamiento de AutoPentest-DRL, incluido el modo de ataque real que se debe usar al realizar pruebas de penetración en redes reales, consulte nuestra Guía de usuario.
Para obtener una lista de los contribuyentes de este proyecto, consulte el archivo CONTRIBUTORS incluido en la distribución.