Aller au contenu

Chapitre 3 — Analyse dynamique et sandboxing

Présentation de ce chapitre

🖥 Ouvrir les diapositives

1. Principe de l'analyse dynamique

L'analyse dynamique consiste à exécuter un échantillon suspect dans un environnement contrôlé et instrumenté, afin d'observer directement son comportement réel plutôt que de le déduire de sa seule structure statique. Elle répond directement à la limite principale du chapitre précédent : un code packé ou obfusqué, illisible à l'analyse statique, doit nécessairement se déchiffrer et révéler son comportement réel en mémoire au moment de son exécution pour pouvoir fonctionner.

Cette approche est complémentaire, non substitutive, à l'analyse statique : elle observe ce que fait le programme lors d'une exécution donnée, mais ne garantit pas d'avoir observé tous les comportements possibles (un malware peut, par exemple, ne déclencher sa charge malveillante que sous certaines conditions précises — une date donnée, la présence d'un fichier particulier — qui ne sont pas nécessairement réunies pendant l'observation).

2. Exigence absolue d'isolation

Exécuter un échantillon suspect, même pédagogique, exige une isolation stricte de l'environnement d'analyse. Ce principe est non négociable et s'applique à l'ensemble des TP de ce module :

  • Machine virtuelle dédiée : l'analyse s'effectue dans une VM créée spécifiquement pour cet usage, jamais sur la machine physique de l'analyste.
  • Réseau isolé ou désactivé : la carte réseau de la VM est soit désactivée, soit connectée à un réseau interne isolé (host-only), sans accès à Internet ni au réseau de l'établissement, afin d'éviter toute communication réelle avec une éventuelle infrastructure malveillante ou toute propagation accidentelle.
  • Aucun dossier partagé actif pendant l'exécution de l'échantillon, afin d'éviter qu'un comportement inattendu n'affecte la machine hôte.
  • Instantanés (snapshots) : un instantané propre de la VM est pris avant chaque analyse, permettant de revenir instantanément à un état sain après l'exécution, sans avoir à réinstaller le système.
  • Machine jetable : une VM ayant servi à l'exécution d'un échantillon, même pédagogique, ne doit jamais être remise en usage courant sans être restaurée à un instantané sain ou recréée intégralement.

3. Surveillance comportementale

Une fois l'environnement isolé mis en place, l'analyse dynamique consiste à instrumenter le système pour observer plusieurs catégories d'activité pendant l'exécution de l'échantillon :

Appels système et API

L'interception des appels que le programme effectue auprès du système d'exploitation (création de processus, ouverture de fichiers, manipulation du registre sous Windows) constitue la source d'information la plus riche. Des outils de surveillance dédiés permettent d'enregistrer, en temps réel, la séquence complète de ces appels sans modifier le code du programme observé.

Exemple simplifié d'une trace comportementale (extrait pédagogique, format illustratif) :

CreateFileA("C:\Users\...\Documents\rapport.docx", GENERIC_READ)
RegOpenKeyExA(HKEY_CURRENT_USER, "Software\...\Run")
RegSetValueExA(..., "UpdateService", "C:\...\echantillon.exe")
CreateProcessA(NULL, "cmd.exe /c ...", ...)

Une telle trace révèle directement des comportements que l'analyse statique n'aurait pu que soupçonner : ici, un accès à un document utilisateur, la modification d'une clé de démarrage automatique (persistance), et la création d'un nouveau processus.

Activité réseau

Même en environnement isolé sans accès Internet réel, on peut observer les tentatives de communication réseau du programme (résolutions DNS demandées, adresses IP et ports contactés, protocole utilisé) grâce à un réseau simulé ou à des services factices répondant aux requêtes sans exposer de véritable infrastructure. Cette technique, dite d'émulation de services réseau, permet de recueillir des indicateurs (domaines, adresses) sans jamais laisser l'échantillon atteindre un serveur réel.

Système de fichiers et registre

La comparaison d'un instantané du système de fichiers (et, sous Windows, du registre) avant et après l'exécution permet d'identifier précisément les fichiers créés, modifiés ou supprimés, ainsi que les clés de registre ajoutées ou modifiées — une méthode simple mais efficace pour repérer des mécanismes de persistance ou des traces laissées par le programme.

4. Détection d'évasion de sandbox par les malwares

Les auteurs de malwares sophistiqués savent que leurs échantillons sont susceptibles d'être analysés en environnement virtualisé, et intègrent parfois des mécanismes de détection d'environnement d'analyse (sandbox evasion ou anti-analysis) pour adapter leur comportement en conséquence — généralement en restant inactifs ou en n'affichant qu'un comportement inoffensif s'ils détectent qu'ils sont observés :

  • Détection de virtualisation : recherche d'artefacts caractéristiques d'un hyperviseur (identifiants matériels spécifiques, pilotes ou processus associés aux outils de virtualisation courants, valeurs particulières renvoyées par certaines instructions processeur).
  • Détection d'environnement d'analyse : recherche d'outils de surveillance en cours d'exécution, de noms de processus ou de fenêtres associés à des outils d'analyse connus.
  • Temporisation (sleep/delay) : introduction de délais d'attente avant le déclenchement du comportement malveillant, dans l'espoir que la fenêtre d'observation automatisée (souvent limitée dans le temps) se termine avant l'activation réelle.
  • Vérification de l'interaction humaine : attente d'un mouvement de souris, d'un redémarrage, ou d'une interaction utilisateur typique, absente dans une exécution automatisée sans surveillance humaine.
  • Conditions d'activation contextuelles : déclenchement subordonné à une date précise, à la présence de fichiers spécifiques, ou à une configuration réseau particulière.

Face à ces techniques, l'analyste dispose de plusieurs contre-mesures pédagogiquement intéressantes à connaître : configuration de la VM pour minimiser les artefacts de virtualisation détectables, prolongation de la durée d'observation, simulation d'interactions utilisateur, ou avance artificielle de l'horloge système pour révéler un comportement temporisé. Ce jeu du chat et de la souris illustre bien la nature évolutive de l'analyse de malwares : chaque contre-mesure défensive peut, à terme, susciter une nouvelle technique d'évasion.

5. Bonnes pratiques d'isolation en pratique

Bonne pratique Justification
VM dédiée, jamais la machine hôte Éviter toute compromission réelle de l'environnement de l'analyste
Réseau host-only ou désactivé Empêcher toute communication réelle avec une infrastructure malveillante
Instantané avant chaque analyse Revenir à un état sain instantanément, sans réinstallation
Restauration systématique après usage Éviter la persistance de tout artefact entre deux analyses
Documentation de chaque comportement observé Constituer une base d'indicateurs de compromission réutilisable (chapitre 5)
Aucune exécution en dehors de l'environnement isolé Principe non négociable, y compris pour un échantillon jugé « probablement inoffensif »

6. Complémentarité avec l'analyse statique

Une méthodologie professionnelle typique enchaîne les deux approches : l'analyse statique (chapitre 2) oriente l'analyse dynamique en identifiant les fonctions ou chaînes suspectes à surveiller en priorité, tandis que l'analyse dynamique révèle le comportement réel, y compris pour du code packé ou obfusqué illisible statiquement. Les observations comportementales issues de ce chapitre alimentent directement la production d'indicateurs de compromission et de règles de détection, développée au chapitre 5.

À retenir

  • L'analyse dynamique observe le comportement réel d'un échantillon en l'exécutant dans un environnement isolé, complétant les limites de l'analyse statique face à l'obfuscation et au packing.
  • L'isolation stricte (VM dédiée, réseau désactivé ou isolé, instantanés, restauration systématique) est un prérequis non négociable, y compris pour des échantillons pédagogiques bénins.
  • La surveillance comportementale porte typiquement sur les appels système, l'activité réseau (simulée en environnement isolé) et les modifications du système de fichiers et du registre.
  • Certains malwares intègrent des techniques d'évasion de sandbox (détection de virtualisation, temporisation, attente d'interaction humaine) pour dissimuler leur comportement réel lors d'une analyse automatisée.
  • L'analyse dynamique n'observe qu'une exécution donnée : elle ne garantit pas d'avoir révélé tous les comportements possibles d'un échantillon, notamment ceux soumis à des conditions d'activation particulières.

Dr. Zakaria Sawadogo — École Polytechnique de Ouagadougou