
DrSemu - Sandbox-basiertes Malware-Erkennungs- und Klassifizierungstool auf Basis dynamischen Verhaltens
Dr.Semu führt ausführbare Dateien in einer isolierten Umgebung aus, überwacht das Verhalten eines Prozesses und erkennt anhand von Dr.Semu-Regeln, die von dir oder der Community erstellt wurden, ob der Prozess schädlich ist oder nicht.

[Das Tool befindet sich in der frühen Entwicklungsphase]
Mit Dr.Semu kannst du Regeln erstellen, um Malware basierend auf dem dynamischen Verhalten eines Prozesses zu erkennen.
Alles geschieht im Benutzermodus. Das Windows Projected File System (ProjFS) wird verwendet, um ein virtuelles Dateisystem bereitzustellen. Für die Registry-Umleitung werden alle Registry-Hives an einen neuen Ort kopiert und alle Registry-Zugriffe umgeleitet.
Weitere Informationen zu anderen Umleitungen (Prozess-/Objektisolierung usw.) findest du im Quellcode.
Dr.Semu verwendet DynamoRIO (Dynamic Instrumentation Tool Platform), um einen Thread abzufangen, wenn er die Benutzer-Kernel-Grenze überschreiten will. Es hat den gleichen Effekt wie das Hooking von SSDT, jedoch im Benutzermodus und ohne etwas zu hooken.
In dieser Phase erzeugt Dr.Semu eine JSON-Datei, die Informationen aus dem Abfangen enthält.
Nach dem Beenden des Prozesses erhalten wir basierend auf den Dr.Semu-Regeln, ob die ausführbare Datei als Malware erkannt wurde oder nicht.
Sie sind in Python oder LUA geschrieben (befinden sich unter dr_rules) und nutzen dynamische Informationen aus dem Abfangen sowie statische Informationen über die Probe. Es ist trivial, Unterstützung für andere Sprachen hinzuzufügen.

Beispiel (Python): https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
Beispiel (Lua): https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell, um ProjFS in einem erhöhten PowerShell-Fenster zu aktivieren:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
Lade eine ZIP-Datei von der Releases-Seite herunter und extrahiere sie.
Lade DynamoRIO herunter, extrahiere es in den DrSemu-Ordner und benenne es in dynamorio um.
Installiere Python 3 x64
DrSemu.exe --target file_path
DrSemu.exe --target files_directory
PowerShell, um ProjFS in einem erhöhten PowerShell-Fenster zu aktivieren:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Installiere Python 3 x64
Lade DynamoRIO herunter, extrahiere es in den bin-Ordner und benenne es in dynamorio um.
Baue die Bibliothek pe-parser-library.lib:
DrSemu\shared_libs\pe_parse mit cmake-guibuild (\shared_libs\pe_parse\build\pe-parser-library\Release\) und die 64-Bit unter build64Multi-threaded (/MT)Setze LauncherCLI als Startprojekt
Windows 10, Version 1809 (aufgrund des Windows Projected File System)Windows 10, Version 1809 (DynamoRIO unterstützt Windows 10-Versionen bis 1809)