
AutoPentest-DRL: Automatisiertes Penetrationstesting mithilfe von Deep Reinforcement Learning
AutoPentest-DRL ist ein automatisiertes Penetrationstest-Framework, das auf Techniken des Deep Reinforcement Learning (DRL) basiert. AutoPentest-DRL kann den am besten geeigneten Angriffspfad für ein gegebenes logisches Netzwerk bestimmen und auch verwendet werden, um einen Penetrationstest-Angriff auf ein reales Netzwerk mittels Werkzeugen wie Nmap und Metasploit durchzuführen. Dieses Framework ist für Bildungszwecke gedacht, damit Nutzer die Mechanismen von Penetrationstest-Angriffen studieren können. AutoPentest-DRL wird von der Cyber Range Organization and Design (CROND) NEC-geförderten Stiftungsprofessur am Japan Advanced Institute of Science and Technology (JAIST) in Ishikawa, Japan, entwickelt.
Ein Überblick über AutoPentest-DRL wird unten gezeigt. Das Framework erhält Benutzereingaben zum logischen Zielnetzwerk, einschließlich Schwachstelleninformationen; alternativ kann das Framework Nmap zur Netzwerkscannung verwenden, um tatsächliche Schwachstellen in einem realen Zielnetzwerk mit bekannter Topologie zu finden. Der MulVAL-Angriffsgraph-Generator wird dann verwendet, um potenzielle Angriffsbäume zu bestimmen, die in vereinfachter Form in die DRL-Engine eingespeist werden. Der als Ausgabe erzeugte Angriffspfad kann verwendet werden, um die Angriffsmechanismen an einer großen Anzahl logischer Netzwerke zu studieren. Alternativ kann das Framework den Angriffspfad mit Penetrationstest-Werkzeugen wie Metasploit verwenden, was es dem Benutzer ermöglicht zu studieren, wie der Angriff auf einem realen Zielnetzwerk durchgeführt werden kann.

Als nächstes geben wir kurze Informationen zur Einrichtung und Nutzung von AutoPentest-DRL. Details zum Betrieb finden Sie im Benutzerhandbuch, das wir ebenfalls zur Verfügung stellen.
Mehrere externe Werkzeuge sind erforderlich, um AutoPentest-DRL zu nutzen; für die grundlegende Funktionalität bezüglich logischer Netzwerke benötigen Sie:
repos/mulval im AutoPentest-DRL-Ordner installiert werden. Sie müssen außerdem die Datei /etc/profile konfigurieren, wie hier beschrieben. Auf manchen Systemen muss möglicherweise auch das Werkzeug epstopdf installiert werden, zum Beispiel mit folgendem Befehl:
sudo apt install texlive-font-utils
Wenn Sie planen, AutoPentest-DRL mit realen Netzwerken zu verwenden, benötigen Sie außerdem:
nmap auf Ubuntu lautet:
sudo apt install nmap
pymetasploit3 als RPC-API zur Kommunikation mit Metasploit, und dieses Werkzeug muss im Verzeichnis Penetration_tools/pymetasploit3 installiert werden, indem Sie den Anweisungen des Autors folgen.AutoPentest-DRL wurde hauptsächlich unter dem Betriebssystem Ubuntu 18.04 LTS entwickelt; andere Betriebssysteme können funktionieren, wurden aber nicht getestet. Um AutoPentest-DRL einzurichten, verwenden Sie die Seite Releases, um die neueste Version herunterzuladen, und entpacken Sie das Quellcode-Archiv in ein Verzeichnis Ihrer Wahl (z.B. Ihr Home-Verzeichnis) auf dem Host, auf dem Sie es verwenden möchten.
AutoPentest-DRL ist in Python implementiert und benötigt mehrere Pakete, um zu laufen. Die mit der Distribution bereitgestellte Datei requirements.txt kann verwendet werden, um die notwendigen Pakete über den folgenden Befehl zu installieren, der aus dem Verzeichnis AutoPentest-DRL/ ausgeführt werden sollte:
$ sudo -H pip install -r requirements.txt
AutoPentest-DRL kann sofort auf einer Beispiel-Logiknetzwerktopologie verwendet werden, indem Sie den folgenden Befehl in einem Terminal aus dem Verzeichnis AutoPentest-DRL/ ausführen:
$ python3 ./AutoPentest-DRL.py logical_attack
In diesem logischen Angriffsmodus wird kein tatsächlicher Angriff durchgeführt, und AutoPentest-DRL bestimmt nur den optimalen Angriffspfad für die logische Netzwerktopologie, die in der Datei MulVal_P/logical_attack_v1.P beschrieben ist. Durch Vergleich des Ausgabepfads mit der Visualisierung des Angriffsgraphen, der von MulVAL in der Datei mulval_results/AttackGraph.pdf erzeugt wird, können Sie die logischen Angriffsschritte im Detail studieren.
Weitere Informationen zum Betrieb von AutoPentest-DRL, einschließlich des echten Angriffsmodus, der bei der Durchführung von Penetrationstests in realen Netzwerken verwendet wird, finden Sie in unserem Benutzerhandbuch.
Eine Liste der Mitwirkenden an diesem Projekt finden Sie in der Datei CONTRIBUTORS, die der Distribution beiliegt.