
DrSemu - Strumento di rilevamento e classificazione di malware in sandbox basato sul comportamento dinamico
Dr.Semu esegue gli eseguibili in un ambiente isolato, monitora il comportamento di un processo e, in base alle regole di Dr.Semu create da te o dalla community, rileva se il processo è dannoso o meno.

[Lo strumento è in fase di sviluppo iniziale]
Con Dr.Semu puoi creare regole per rilevare malware basate sul comportamento dinamico di un processo.
Tutto avviene dalla modalità utente. Il Windows Projected File System (ProjFS) viene utilizzato per fornire un file system virtuale. Per il reindirizzamento del Registro di sistema, clona tutti gli hive del Registro in una nuova posizione e reindirizza tutti gli accessi al Registro.
Consulta il codice sorgente per maggiori informazioni sugli altri reindirizzamenti (isolamento di processi/oggetti, ecc.).
Dr.Semu utilizza DynamoRIO (Dynamic Instrumentation Tool Platform) per intercettare un thread quando sta per attraversare il confine utente-kernel. Ha lo stesso effetto dell'hooking di SSDT ma dalla modalità utente e senza hooking di nulla.
In questa fase, Dr.Semu produce un file JSON che contiene le informazioni dell'intercettazione.
Dopo aver terminato il processo, in base alle regole di Dr.Semu si riceve se l'eseguibile è rilevato come malware o meno.
Regole/Individuazioni di Dr.Semu
Sono scritte in Python o LUA (situate sotto dr_rules) e utilizzano le informazioni dinamiche dell'intercettazione e le informazioni statiche del campione. È banale aggiungere il supporto per altri linguaggi.

Esempio (Python): https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
Esempio (Lua): https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell per abilitare ProjFS in una finestra di PowerShell con privilegi elevati:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
Scarica ed estrai un file zip dalla pagina delle release
Scarica DynamoRIO ed estrailo nella cartella DrSemu e rinomina in dynamorio
Installa Python 3 x64
DrSemu.exe --target file_path
DrSemu.exe --target files_directory
PowerShell per abilitare ProjFS in una finestra di PowerShell con privilegi elevati:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Installa Python 3 x64
Scarica DynamoRIO ed estrailo nella cartella bin e rinomina in dynamorio
Compila la libreria pe-parser-library.lib:
DrSemu\shared_libs\pe_parse usando cmake-guibuild (\shared_libs\pe_parse\build\pe-parser-library\Release\) e quella a 64 bit sotto build64Multi-threaded (/MT)Imposta LauncherCLI come progetto di avvio
Windows 10, versione 1809 (a causa di Windows Projected File System)Windows 10, versione 1809 (DynamoRIO supporta le versioni di Windows 10 fino alla 1809)