
DrSemu - Ferramenta de Detecção e Classificação de Malware em Sandbox Baseada em Comportamento Dinâmico
O Dr.Semu executa executáveis em um ambiente isolado, monitora o comportamento de um processo e, com base em regras do Dr.Semu criadas por você ou pela comunidade, detecta se o processo é malicioso ou não.

[A ferramenta está em estágio inicial de desenvolvimento]
Com o Dr.Semu você pode criar regras para detectar malware baseado no comportamento dinâmico de um processo.
Tudo acontece a partir do modo de usuário. O Windows Projected File System (ProjFS) é usado para fornecer um sistema de arquivos virtual. Para redirecionamento do Registro, ele clona todas as colmeias do Registro para um novo local e redireciona todos os acessos ao Registro.
Veja o código-fonte para mais informações sobre outros redirecionamentos (isolamento de processos/objetos, etc.).
O Dr.Semu utiliza o DynamoRIO (Plataforma de Instrumentação Dinâmica) para interceptar uma thread quando ela está prestes a cruzar a linha usuário-kernel. Tem o mesmo efeito que hooking no SSDT, mas a partir do modo de usuário e sem hookear nada.
Nesta fase, o Dr.Semu produz um arquivo JSON, que contém informações da interceptação.
Após encerrar o processo, com base nas regras do Dr.Semu, recebemos se o executável é detectado como malware ou não.
Elas são escritas em Python ou LUA (localizadas em dr_rules) e utilizam informações dinâmicas da interceptação e informações estáticas sobre a amostra. É trivial adicionar suporte a outras linguagens.

Exemplo (Python): https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
Exemplo (Lua): https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell para habilitar o ProjFS em uma janela do PowerShell elevada:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
Baixe e extraia um arquivo zip da página de releases
Baixe o DynamoRIO e extraia na pasta DrSemu e renomeie para dynamorio
Instale o Python 3 x64
DrSemu.exe --target file_path
DrSemu.exe --target files_directory
PowerShell para habilitar o ProjFS em uma janela do PowerShell elevada:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Instale o Python 3 x64
Baixe o DynamoRIO e extraia na pasta bin e renomeie para dynamorio
Compile a biblioteca pe-parser-library.lib:
DrSemu\shared_libs\pe_parse usando cmake-guibuild (\shared_libs\pe_parse\build\pe-parser-library\Release\) e a 64-bit em build64Multi-threaded (/MT)Defina LauncherCLI como Projeto de Inicialização
Windows 10, versão 1809 (devido ao Windows Projected File System)Windows 10, versão 1809 (o DynamoRIO suporta versões do Windows 10 até a 1809)