
Python-basierte Malware-Analyse-Sandbox, die mit Sysinternals Procmon integriert ist, um Laufzeitindikatoren automatisch zu sammeln, zu analysieren und zu melden – inklusive YARA-Scanning und IOC-Generierung.
Noriben Malware-Analyse-Sandbox
Kontaktinformationen: @bbaskin auf Twitter brian _at_ thebaskins _dot_ com
Noriben ist ein Python-basiertes Skript, das in Verbindung mit Sysinternals Procmon automatisch Laufzeitindikatoren von Malware sammelt, analysiert und darüber berichtet. Kurz gesagt, es ermöglicht Ihnen, eine Anwendung auszuführen, einen Tastendruck auszulösen und einen einfachen Textbericht über die Aktivitäten der Probe zu erhalten.
Noriben ermöglicht es Ihnen, Malware nicht nur wie in einer Sandbox auszuführen, sondern auch systemweite Ereignisse zu protokollieren, während Sie Malware auf die für ihren Start erforderliche Weise manuell ausführen. Zum Beispiel kann es mithören, während Sie eine Anwendung ausführen, die unterschiedliche Befehlszeilenoptionen oder Benutzerinteraktion erfordert. Oder um das System zu überwachen, während Sie die Anwendung in einem Debugger Schritt für Schritt durchgehen.
Obwohl Noriben für die Analyse von Malware entwickelt wurde, wird es auch häufig zur Überprüfung normaler Softwareanwendungen eingesetzt. Im Jahr 2013 wurde es vom Tor-Projekt verwendet, um eine öffentliche Überprüfung des Tor Browser Bundle durchzuführen.
Unten ist ein Video, das das Debuggen einer VM-prüfenden Malware zeigt, um dennoch Sandbox-Ergebnisse zu erhalten (Fehlklicks aufgrund eines Mauszeigers, der 5 Pixel daneben lag :))
Noriben benötigt für den Betrieb lediglich Sysinternals procmon.exe (oder procmon64.exe). Es erfordert keine Vorfilterung (obwohl dies sehr hilfreich wäre), da es zahlreiche Whitelist-Elemente enthält, um unerwünschtes Rauschen durch Systemaktivitäten zu reduzieren.
Eine ausführlichere Erklärung finden Sie in meiner Folienpräsentation von der Black Hat 2015 Arsenal. Und einen detaillierteren Blogbeitrag: http://ghettoforensics.blogspot.com/2013/04/noriben-your-personal-portable-malware.html
Ich habe auch einen lang ersehnten Frontend-Operator namens NoribenSandbox.py hinzugefügt. Dieses Skript ermöglicht es Ihnen, die Ausführung von Noriben in einer Gast-VM zu automatisieren und die Berichte abzurufen. Es läuft derzeit auf OSX (wird aber portiert) und ist verantwortlich für: das Starten einer vordefinierten VM und eines Snapshots, das Kopieren der Malware auf die VM, das Starten von Noriben und der Malware, das Abwarten einer vorgegebenen Zeitspanne, das Kopieren der Ergebnisse als ZIP auf den Host und das Erstellen eines Screenshots der VM. Sie können sogar --update verwenden, um automatisch die neueste Version von Noriben von Ihrem Host zu kopieren, so dass Sie nicht ständig neue Snapshots erstellen müssen, wenn Sie eine Änderung am Skript vornehmen.
Möchten Sie das in Aktion sehen?
Wenn Sie einen Ordner mit YARA-Signaturdateien haben, können Sie diesen mit der Option --yara angeben. Jede neu erstellte Datei wird gegen diese Signaturen gescannt und die Ergebnisse werden in der Ausgabe angezeigt.
Wenn Sie einen VirusTotal-API-Schlüssel haben, legen Sie ihn in einer Datei namens "virustotal.api" ab (oder betten Sie ihn direkt in das Skript ein), um automatisch MD5-Datei-Hashes an VT zu senden und die Anzahl der Virenergebnisse zu erhalten.
Sie können Listen von MD5s hinzufügen, die automatisch ignoriert werden sollen (z. B. alle Ihre Systemdateien). Verwenden Sie md5deep und werfen Sie sie in eine Textdatei, verwenden Sie --hash zum Einlesen. Dies wird letztendlich unter den Änderungen aufgeführt.
Sie können das Skript für die Sandbox-Nutzung automatisieren. Mit -t zur Automatisierung der Ausführungszeit und --cmd "pfad\exe" zur Angabe einer Malware-Datei können Sie automatisch Malware ausführen, die Ergebnisse kopieren und dann zurücksetzen, um eine neue Probe zu testen.
Die Funktion --generalize ersetzt automatisch absolute Pfade durch Windows-Umgebungspfade für eine bessere IOC-Entwicklung. Beispielsweise wird C:\Users\malware_user\AppData\Roaming\malware.exe automatisch zu %AppData%\malware.exe aufgelöst.
Usage:
--===[ Noriben v1.7.2
--===[ @bbaskin
usage: Noriben.py [-h] [-c CSV] [-p PML] [-f FILTER] [--hash HASH]
[--hashtype {MD5,SHA1,SHA256}] [--headless] [-t TIMEOUT]
[--output OUTPUT] [--yara YARA] [--generalize] [--cmd CMD]
[-d]
optional arguments:
-h, --help show this help message and exit
-c CSV, --csv CSV Re-analyze an existing Noriben CSV file
-p PML, --pml PML Re-analyze an existing Noriben PML file
-f FILTER, --filter FILTER
Specify alternate Procmon Filter PMC
--hash HASH Specify hash whitelist file
--hashtype {MD5,SHA1,SHA256}
Specify hash type
--headless Do not open results on VM after processing
-t TIMEOUT, --timeout TIMEOUT
Number of seconds to collect activity
--output OUTPUT Folder to store output files
--yara YARA Folder containing YARA rules
--generalize Generalize file paths to their environment variables.
Default: True
--cmd CMD Command line to execute (in quotes)
-d, --debug Enable debugging
Brian Baskin <Dokumentationsautoren willkommen!>
Copyright 2015 Brian Baskin
Lizenziert unter der Apache License, Version 2.0 (der „Lizenz“); Sie dürfen dieses Werk nur in Übereinstimmung mit der Lizenz nutzen. Eine Kopie der Lizenz erhalten Sie in der LICENSE-Datei oder unter:
http://www.apache.org/licenses/LICENSE-2.0
Sofern nicht durch geltendes Recht vorgeschrieben oder schriftlich vereinbart, wird die unter der Lizenz verteilte Software auf einer „WIE BESEHEN“-BASIS OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend, bereitgestellt. Die Lizenz enthält die spezifischen Regelungen zu Genehmigungen und Einschränkungen.