
DrSemu - Herramienta de detección y clasificación de malware en entorno aislado basada en comportamiento dinámico
Dr.Semu ejecuta ejecutables en un entorno aislado, monitorea el comportamiento de un proceso y, según las reglas de Dr.Semu creadas por ti o la comunidad, detecta si el proceso es malicioso o no.

[La herramienta está en etapa de desarrollo temprano]
Con Dr.Semu puedes crear reglas para detectar malware basándose en el comportamiento dinámico de un proceso.
Todo ocurre desde el modo de usuario. El Sistema de Archivos Proyectados de Windows (ProjFS) se utiliza para proporcionar un sistema de archivos virtual. Para la redirección del Registro, clona todos los hives del Registro en una nueva ubicación y redirige todos los accesos al Registro.
Consulta el código fuente para obtener más información sobre otras redirecciones (aislamiento de procesos/objetos, etc.).
Dr.Semu utiliza DynamoRIO (Plataforma de Instrumentación Dinámica) para interceptar un hilo cuando está a punto de cruzar la línea usuario-kernel. Tiene el mismo efecto que hookear SSDT pero desde el modo de usuario y sin hookear nada.
En esta fase, Dr.Semu produce un archivo JSON que contiene información de la intercepción.
Después de terminar el proceso, según las reglas de Dr.Semu recibimos si el ejecutable es detectado como malware o no.
Están escritas en Python o LUA (ubicadas bajo dr_rules) y utilizan información dinámica de la intercepción e información estática de la muestra. Es trivial agregar soporte para otros lenguajes.

Ejemplo (Python): https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
Ejemplo (Lua): https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell para habilitar ProjFS en una ventana elevada de PowerShell:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
Descarga y extrae un archivo zip de la página de versiones
Descarga DynamoRIO y extráelo en la carpeta DrSemu y renómbralo a dynamorio
Instala Python 3 x64
DrSemu.exe --target file_path
DrSemu.exe --target files_directory
PowerShell para habilitar ProjFS en una ventana elevada de PowerShell:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Instala Python 3 x64
Descarga DynamoRIO y extráelo en la carpeta bin y renómbralo a dynamorio
Construye la biblioteca pe-parser-library.lib:
DrSemu\shared_libs\pe_parse usando cmake-guibuild (\shared_libs\pe_parse\build\pe-parser-library\Release\) y la de 64 bits en build64Multi-threaded (/MT)Establece LauncherCLI como Proyecto de Inicio
Windows 10, versión 1809 (debido a Windows Projected File System)Windows 10, versión 1809 (DynamoRIO es compatible con versiones de Windows 10 hasta 1809)