Ingénierie de détection

L'analyse dynamique en sandbox

Ce qu'enregistre une sandbox, comment lire son rapport, pourquoi l'évasion rend un verdict propre peu fiable, et comment en tirer des détections.

1 Introduction

Une sandbox (bac à sable) est une machine isolée et instrumentée (presque toujours une machine virtuelle) dans laquelle on exécute volontairement un fichier suspect pour enregistrer tout ce qu'il fait : processus lancés, fichiers écrits, clés de registre modifiées, connexions réseau. À la fin de l'exécution, la machine est restaurée à partir d'un instantané sain.

C'est l'analyse dynamique : observer le comportement à l'exécution. Elle complète l'analyse statique, qui examine le fichier sans l'exécuter. Pour un analyste SOC ou CTI, la sandbox est le moyen le plus rapide de répondre à la question « que fait cette pièce jointe, et quels IOC puis-je rechercher ? » en quelques minutes, sans être rétro-ingénieur.

Analyse statique Analyse dynamique
PrincipeInspecter le fichier au reposL'exécuter et observer
Résultats typiqueshashs, type de fichier, chaînes, imports et sections PE, macros, signature, entropieArbre de processus, modifications fichiers/registre, trafic DNS/HTTP, appels d'API, dumps mémoire
Outilsfile, strings/FLOSS, Detect It Easy, pefile, olevba (oletools), capa, YARACAPE, ANY.RUN, Joe Sandbox, Hybrid Analysis, ou un labo manuel avec Procmon et Wireshark
ForceSans risque ; voit tous les chemins de code, même ceux qui ne s'exécutent jamaisContourne le packing et l'obfuscation : le code doit se décompresser pour s'exécuter
FaiblesseAveugle face aux charges packées ou chiffréesNe voit que le chemin emprunté pendant cette exécution ; peut être contournée

Le bon ordre : d'abord rechercher le hash (ce fichier a-t-il déjà été analysé ?), puis un tri statique rapide, puis la sandbox. Si vous ne savez pas interpréter les verdicts, consultez Lire un rapport d'analyse de fichier.

2 Ce qu'elle enregistre

Une sandbox s'accroche au système d'exploitation (surveillance des API, pilote noyau ou introspection depuis l'hyperviseur) et capture le trafic réseau qui sort de la VM. Une exécution type dure de 2 à 5 minutes et produit :

Arbre de processus

Chaque processus créé, avec son parent, son PID, sa ligne de commande complète et son niveau d'intégrité. C'est en général la partie la plus parlante d'un rapport.

Activité fichiers

Fichiers créés, modifiés, supprimés ou renommés : charges utiles dans %TEMP%, notes de rançon, fichiers chiffrés, scripts.

Modifications du registre

Clés et valeurs écrites (persistance via les clés Run, services, paramètres de sécurité désactivés) et clés lues (souvent des vérifications d'environnement).

Réseau

Requêtes DNS, requêtes HTTP (URL, user agent), SNI TLS et empreintes JA3/JA4, IP contactées, et une capture PCAP complète sur laquelle on peut rejouer des règles IDS.

Appels d'API

Des séquences comme VirtualAllocEx → WriteProcessMemory → CreateRemoteThread (injection de processus) ou CryptEncrypt en boucle sur les fichiers de l'utilisateur.

Fichiers déposés

Une copie de chaque fichier écrit pendant l'exécution, avec ses hashs : les étapes suivantes, que vous voudrez aussi analyser et bloquer.

Dumps mémoire

Des instantanés de la mémoire des processus, où le code décompressé, les chaînes déchiffrées et la configuration du malware (liste de C2, identifiant de campagne, clés) apparaissent en clair.

Signatures et captures d'écran

Les règles comportementales déclenchées (« crée une clé Run », « détecte une VM »), les correspondances YARA et IDS, souvent mappées sur ATT&CK, plus des captures du bureau.

3 Lire un rapport

Ne vous arrêtez pas au score. Un score agrège des signatures, dont certaines sont faibles ; votre travail est de reconstituer l'histoire et d'en extraire ce qui est exploitable. Voici les extraits clés de l'exécution d'un Facture_4471.docm (fictif) :

PROCESS TREE
WINWORD.EXE (2148)  "C:\Users\admin\Desktop\Facture_4471.docm"
 └─ powershell.exe (3312)  -nop -w hidden -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBi...
     └─ rundll32.exe (4020)  C:\Users\admin\AppData\Local\Temp\upd.dll,Start

NETWORK
DNS   cdn-update.example            A  203.0.113.45
HTTPS 203.0.113.45:443  SNI=cdn-update.example  GET /s2/upd.dll   (216 KB)
HTTPS 203.0.113.45:443  POST /api/v1/beacon  every ~60 s

FILES
created  C:\Users\admin\AppData\Local\Temp\upd.dll
         SHA-256 fb18cd2a74c578b056a81a207cfe4b93d412c707c7f6751c0d4ea32219da4bf2

REGISTRY
set  HKCU\Software\Microsoft\Windows\CurrentVersion\Run\OneDriveUpdate
     = "rundll32.exe C:\Users\admin\AppData\Local\Temp\upd.dll,Start"

SIGNATURES
[high]   Office application spawns a script interpreter
[high]   PowerShell with encoded command line
[medium] Persistence via Run registry key
[medium] Queries keyboard layout          (T1614.001)
[low]    Checks for VirtualBox registry keys (T1497.001)

Une méthode de lecture

1

Vérifier les conditions d'exécution : version de l'OS, version d'Office, durée, accès Internet autorisé ou non. Un document qui a besoin d'Office et tourne sur une VM qui n'en a pas ne prouve rien.

2

Lire l'arbre de processus depuis le haut : ici, Word qui lance PowerShell est déjà très anormal. Décodez la commande base64 (elle est en UTF-16LE) pour voir l'URL de téléchargement.

3

Suivre le réseau : séparez le trafic malveillant (téléchargement, beacon) du bruit de fond (Windows Update, vérifications de certificats, télémétrie). Des POST réguliers toutes les ~60 s sont typiques d'un beaconing vers un C2.

4

Regarder la persistance et les fichiers déposés : ce qui survit à un redémarrage, et quels nouveaux fichiers méritent leur propre analyse.

5

Remettre en question les signatures : « interroge la disposition du clavier » est aussi le fait de logiciels légitimes. Les signatures sont des pistes, pas des preuves ; le comportement constaté aux étapes 2 à 4, si.

Cette exécution se mappe proprement sur ATT&CK : T1204.002, T1059.001, T1027.010, T1105, T1218.011, T1547.001, T1071.001. La méthode complète est détaillée dans Comprendre MITRE ATT&CK.

4 Techniques d'évasion

Les auteurs de malwares savent que leurs échantillons finiront en sandbox. Beaucoup vérifient donc d'abord leur environnement et ne font rien (ou quelque chose d'anodin) s'il ressemble à une machine d'analyse. ATT&CK suit ces comportements principalement sous T1497 Virtualization/Sandbox Evasion, T1622 Debugger Evasion et T1480 Execution Guardrails.

Famille Ce que vérifie le malware ATT&CK
Détection de VMPilotes, services et clés de registre VirtualBox/VMware (VBoxService.exe, vmtoolsd.exe), préfixes MAC (08:00:27 VirtualBox, 00:0C:29/00:50:56 VMware), le bit hyperviseur de CPUID, un disque de moins de 60 Go, 1 ou 2 CPU, peu de RAMT1497.001
Détection de débogueurIsDebuggerPresent, CheckRemoteDebuggerPresent, le drapeau BeingDebugged du PEB, les écarts de temps causés par les points d'arrêtT1622
TemporisationDormir plus de 10 minutes avant d'agir (plus longtemps que l'analyse), détecter qu'une sandbox a « accéléré » une mise en veille en comparant des horloges, ne se déclencher qu'après une date donnéeT1497.003
Interaction utilisateurAttendre des mouvements de souris ou des clics, le défilement jusqu'à la page 2 d'un document, le nombre de documents récents, l'historique du navigateur, la durée de fonctionnement du système, une archive protégée dont le mot de passe est dans l'e-mailT1497.002
GéorepérageDisposition du clavier ou langue du système (certaines familles s'arrêtent sur un clavier russe ou d'un autre pays de la CEI), géolocalisation de l'IP publique, fuseau horaire, nom du domaine Active Directory de la cibleT1614.001, T1480
Filtrage côté serveurLe serveur de charge utile ne répond qu'une fois par IP, seulement aux pays ciblés, ou est déjà hors ligne quand vous analysez l'échantillon—

Un verdict « propre » n'est pas une preuve d'innocence

« Aucune activité malveillante » signifie seulement « rien de malveillant n'a été observé pendant cette exécution, dans cet environnement ». Considérez un rapport vide comme non concluant quand : l'arbre de processus est presque vide, l'échantillon s'arrête en quelques secondes, il lit des clés liées aux VM puis s'arrête, les appels réseau échouent, ou le fichier a besoin d'un argument, d'un export de DLL ou d'un processus parent particulier pour s'exécuter. Relancez avec une durée plus longue, un autre OS ou une autre langue, un accès Internet via une sortie VPN dans le pays ciblé, ou en mode interactif, et combinez avec l'analyse statique. Les vérifications anti-sandbox sont elles-mêmes un fort indice de malveillance.

5 Manipulation sécurisée

Jamais sur votre poste de travail

N'ouvrez jamais, ne double-cliquez jamais et ne « jetez pas juste un œil » à un échantillon sur une machine de production ou personnelle. Utilisez une sandbox dédiée ou une VM de labo isolée.

Transporter les échantillons dans une archive chiffrée

La convention est un ZIP ou un 7z protégé par le mot de passe infected. Cela empêche l'antivirus de supprimer l'échantillon et évite que quelqu'un l'ouvre par accident. Indiquez le SHA-256 dans le ticket.

Maîtriser le réseau

Une VM de labo ne doit pas atteindre votre réseau interne. Simulez Internet (INetSim, FakeNet-NG) ou faites sortir le trafic par une sortie VPN/Tor dédiée, jamais par l'IP de votre entreprise : l'attaquant voit qui analyse sa charge utile.

Restaurer après chaque exécution

Revenez à l'instantané sain, désactivez les dossiers partagés, le presse-papiers et le glisser-déposer entre l'hôte et la VM, et maintenez l'hyperviseur à jour (les évasions de VM existent, même si elles sont rares).

Neutraliser ce que vous partagez

Dans les tickets, messageries et rapports, écrivez hxxps://cdn-update[.]example plutôt qu'un lien cliquable.

Réfléchir avant d'envoyer sur un service public

Sur les sandboxes publiques et les offres gratuites, le fichier, son rapport et souvent son contenu deviennent visibles de tous. Une vraie facture, un contrat ou un document RH joint à un e-mail de phishing peut contenir des données personnelles ou confidentielles. Les attaquants surveillent aussi ces plateformes pour savoir si leur échantillon a été repéré. Cherchez d'abord le hash ; n'envoyez le fichier que si votre politique et la sensibilité des données le permettent (respectez le TLP), ou utilisez une sandbox privée ou sur site.

6 Outils et services

Quelques options très utilisées, chacune avec ses compromis. Vérifiez les conditions actuelles de chaque fournisseur : les offres gratuites et les règles de visibilité évoluent.

CAPE (CAPEv2)

Sandbox open source, auto-hébergée, héritière de Cuckoo. Son nom signifie Config And Payload Extraction : elle est spécialisée dans le dépackage et l'extraction des configurations de malwares. Privée par construction, mais c'est à vous de l'exploiter.

ANY.RUN

Sandbox cloud dans laquelle on interagit en direct avec la VM : cliquer sur « Activer le contenu », saisir le mot de passe d'une archive, naviguer vers une page de phishing. Très utile contre les vérifications d'interaction utilisateur. Les analyses de l'offre gratuite sont publiques.

Joe Sandbox

Sandbox commerciale (cloud ou sur site) réputée pour des rapports très détaillés sur Windows, Linux, macOS et Android. Il existe une offre cloud gratuite, dont les résultats sont publics.

Hybrid Analysis

Service communautaire gratuit opéré par CrowdStrike sur sa technologie Falcon Sandbox. Grande base de rapports publics consultable, pratique pour vérifier si un hash a déjà été analysé.

Rechercher un hash sur ces plateformes ne révèle rien sur vous. Envoyer un fichier, si. Dans le doute, cherchez d'abord.

Essayez sur mlab.sh

Avant d'envoyer quoi que ce soit, recherchez le hash d'un fichier suspect, puis enrichissez les domaines et IP trouvés dans le rapport de sandbox.

Commencer l'analyse sur mlab.sh

7 Créer des détections

Un rapport de sandbox est une matière première. Transformez-le en protections pour tout le parc, du niveau le plus fragile au plus durable de la pyramide de la douleur :

IOC

Hashs de l'échantillon et des fichiers déposés, URL de la charge utile, domaine et IP du C2. Filtrez d'abord le bruit (Microsoft, autorités de certification, CDN), puis partagez-les en indicateurs STIX avec une période de validité.

YARA

Les chaînes vues dans les fichiers déposés ou les dumps mémoire (chemins uniques, mutex, marqueurs de configuration) deviennent des règles YARA qui attrapent les variantes futures, pas seulement ce hash.

Sigma

Le comportement de l'arbre de processus (« WINWORD.EXE lance powershell.exe avec -enc ») devient une règle Sigma pour les logs de votre SIEM ou EDR.

Suricata / Snort

Le PCAP montre l'URI exacte du C2, les en-têtes et le SNI TLS : de quoi écrire des règles réseau.

Par exemple, une première règle YARA construite à partir de cette exécution :

rule LedgerLoader_Stage2_Training
{
    meta:
        description = "Second stage LedgerLoader vu en sandbox (exemple de formation)"
        author = "mlab Academy"
        date = "2026-10-21"
        hash = "fb18cd2a74c578b056a81a207cfe4b93d412c707c7f6751c0d4ea32219da4bf2"
    strings:
        $persist = "OneDriveUpdate" ascii wide
        $uri     = "/api/v1/beacon" ascii
        $stage   = "/s2/upd.dll" ascii
    condition:
        uint16(0) == 0x5A4D and filesize < 500KB and 2 of them
}

Enfin, mappez le comportement observé sur ATT&CK. Les sandboxes le font automatiquement, mais leur mapping est généré à partir des signatures et souvent bruyant ou trop large : ne gardez que les techniques réellement confirmées dans l'arbre de processus, les fichiers, le registre et le réseau.

Modules connexes