
DrSemu - Outil de détection et classification de malwares en sandbox basé sur le comportement dynamique
Dr.Semu exécute des exécutables dans un environnement isolé, surveille le comportement d'un processus et, sur la base des règles Dr.Semu créées par vous ou la communauté, détecte si le processus est malveillant ou non.

[L'outil est en phase de développement précoce]
Avec Dr.Semu, vous pouvez créer des règles pour détecter les logiciels malveillants en fonction du comportement dynamique d'un processus.
Tout se passe en mode utilisateur. Windows Projected File System (ProjFS) est utilisé pour fournir un système de fichiers virtuel. Pour la redirection du registre, il clone toutes les ruches du registre vers un nouvel emplacement et redirige tous les accès au registre.
Voir le code source pour en savoir plus sur les autres redirections (isolation des processus/objets, etc.).
Dr.Semu utilise DynamoRIO (plateforme d'instrumentation dynamique) pour intercepter un thread lorsqu'il s'apprête à traverser la frontière utilisateur-noyau. Cela a le même effet que le hooking de SSDT mais depuis le mode utilisateur et sans rien hooker.
À cette phase, Dr.Semu produit un fichier JSON qui contient les informations de l'interception.
Après la fin du processus, sur la base des règles Dr.Semu, nous recevons si l'exécutable est détecté comme malveillant ou non.
Elles sont écrites en Python ou LUA (situées sous dr_rules) et utilisent les informations dynamiques de l'interception et les informations statiques sur l'échantillon. Il est trivial d'ajouter la prise en charge d'autres langages.

Exemple (Python) : https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
Exemple (Lua) : https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell pour activer ProjFS dans une fenêtre PowerShell élevée :Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
Téléchargez et extrayez un fichier zip depuis la page des versions
Téléchargez DynamoRIO et extrayez-le dans le dossier DrSemu et renommez-le en dynamorio
Installez Python 3 x64
DrSemu.exe --target file_path
DrSemu.exe --target files_directory
PowerShell pour activer ProjFS dans une fenêtre PowerShell élevée :Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Installez Python 3 x64
Téléchargez DynamoRIO et extrayez-le dans le dossier bin et renommez-le en dynamorio
Construisez la bibliothèque pe-parser-library.lib :
DrSemu\shared_libs\pe_parse en utilisant cmake-guibuild (\shared_libs\pe_parse\build\pe-parser-library\Release\) et la version 64 bits sous build64Multi-threaded (/MT)Définissez LauncherCLI comme projet de démarrage
Windows 10, version 1809 (en raison de Windows Projected File System)Windows 10, version 1809 (DynamoRIO prend en charge les versions de Windows 10 jusqu'à 1809)