
AutoPentest-DRL: Test di penetrazione automatizzato utilizzando l'apprendimento per rinforzo profondo
AutoPentest-DRL è un framework di test di penetrazione automatizzato basato su tecniche di Apprendimento per Rinforzo Profondo (DRL). AutoPentest-DRL è in grado di determinare il percorso di attacco più appropriato per una determinata rete logica e può anche essere utilizzato per eseguire un attacco di test di penetrazione su una rete reale tramite strumenti come Nmap e Metasploit. Questo framework è pensato per scopi didattici, in modo che gli utenti possano studiare i meccanismi di attacco dei test di penetrazione. AutoPentest-DRL è sviluppato dalla Cyber Range Organization and Design (CROND) cattedra dotata NEC presso il Japan Advanced Institute of Science and Technology (JAIST) a Ishikawa, Giappone.
Una panoramica di AutoPentest-DRL è mostrata di seguito. Il framework riceve input dall'utente riguardanti la rete logica target, incluse le informazioni sulle vulnerabilità; in alternativa, il framework può utilizzare Nmap per la scansione della rete al fine di trovare vulnerabilità reali in una rete target reale con topologia nota. Il generatore di grafi di attacco MulVAL viene quindi utilizzato per determinare i possibili alberi di attacco, che vengono alimentati in forma semplificata nel motore DRL. Il percorso di attacco prodotto come output può essere utilizzato per studiare i meccanismi di attacco su un gran numero di reti logiche. In alternativa, il framework può utilizzare il percorso di attacco con strumenti di test di penetrazione, come Metasploit, consentendo all'utente di studiare come l'attacco può essere eseguito su una rete target reale.

Di seguito forniamo brevi informazioni su come configurare e utilizzare AutoPentest-DRL. Per i dettagli sul suo funzionamento, si prega di fare riferimento alla Guida per l'utente che abbiamo reso disponibile.
Diversi strumenti esterni sono necessari per utilizzare AutoPentest-DRL; per la funzionalità di base relativa alle reti logiche, avrete bisogno di:
repos/mulval nella cartella di AutoPentest-DRL. È inoltre necessario configurare il file /etc/profile come discusso qui. Su alcuni sistemi potrebbe essere necessario installare anche lo strumento epstopdf, ad esempio utilizzando il comando seguente:
sudo apt install texlive-font-utils
Se intendete utilizzare AutoPentest-DRL con reti reali, avrete anche bisogno di:
nmap su Ubuntu è fornito di seguito:
sudo apt install nmap
pymetasploit3 come API RPC per comunicare con Metasploit, e questo strumento deve essere installato nella directory Penetration_tools/pymetasploit3 seguendo le istruzioni del suo autore.AutoPentest-DRL è stato sviluppato principalmente sul sistema operativo Ubuntu 18.04 LTS; altri sistemi operativi potrebbero funzionare, ma non sono stati testati. Per configurare AutoPentest-DRL, utilizzare la pagina delle release per scaricare l'ultima versione ed estrarre l'archivio del codice sorgente in una directory a scelta (ad esempio, la home directory) sull'host su cui si intende utilizzarlo.
AutoPentest-DRL è implementato in Python e richiede diversi pacchetti per funzionare. Il file requirements.txt incluso nella distribuzione può essere utilizzato per installare i pacchetti necessari tramite il seguente comando da eseguire dalla directory AutoPentest-DRL/:
$ sudo -H pip install -r requirements.txt
AutoPentest-DRL può essere utilizzato immediatamente su una topologia di rete logica di esempio eseguendo il seguente comando in un terminale dalla directory AutoPentest-DRL/:
$ python3 ./AutoPentest-DRL.py logical_attack
In questa modalità di attacco logico non viene condotto alcun attacco reale e AutoPentest-DRL determinerà solo il percorso di attacco ottimale per la topologia di rete logica descritta nel file MulVal_P/logical_attack_v1.P. Confrontando il percorso di output con la visualizzazione del grafo di attacco generato da MulVAL nel file mulval_results/AttackGraph.pdf è possibile studiare in dettaglio i passaggi logici dell'attacco.
Per maggiori informazioni sul funzionamento di AutoPentest-DRL, inclusa la modalità di attacco reale da utilizzare quando si conducono test di penetrazione su reti reali, consultare la nostra Guida per l'utente.
Per un elenco dei contributori a questo progetto, consultare il file CONTRIBUTORS incluso nella distribuzione.