Analyse mémoire forensique avec Volatility pour la détection de malware : extraction de processus, injection de code, ro.
Résumé exécutif
L'analyse mémoire forensique est devenue indispensable dans l'investigation des incidents de sécurité car les malwares modernes opèrent de plus en plus exclusivement en mémoire sans écrire de fichiers persistants sur le disque dur. Les techniques de malware fileless, d'injection de processus et de chargement réflectif de DLL contournent les détections basées sur le système de fichiers et les signatures antivirus traditionnelles, rendant l'analyse du dump mémoire la seule méthode fiable pour détecter et extraire ces menaces. Ce guide technique expert présente la méthodologie complète d'analyse mémoire forensique avec Volatility 3 appliquée à la détection de malware : acquisition du dump mémoire sur un système compromis avec préservation de la chaîne de preuves, identification des processus suspects par analyse des anomalies comportementales et structurelles, détection des injections de code dans les processus légitimes par analyse des régions mémoire avec des permissions d'exécution suspectes, découverte des rootkits kernel-mode par comparaison des structures noyau avec les valeurs attendues, et extraction des payloads malveillants déchiffrés en mémoire pour l'analyse statique complémentaire.
L'analyse mémoire fournit une photographie instantanée de l'état du système compromis au moment de l'acquisition : processus en cours d'exécution avec leurs arbres de filiation, connexions réseau actives avec les adresses IP de C2, DLL chargées en mémoire incluant celles injectées dynamiquement, et artefacts du noyau incluant les hooks et les drivers cachés. Cette richesse d'information fait de l'analyse mémoire le complément indispensable de l'analyse de disque pour une investigation forensique complète. La détection des malwares fileless repose principalement sur ces techniques. L'analyse dynamique en sandbox peut être complétée par l'acquisition mémoire pour capturer les payloads déchiffrés. Les rootkits kernel-mode sont spécifiquement détectés par l'analyse des structures noyau en mémoire. La rétro-ingénierie des frameworks C2 utilise les dumps mémoire pour extraire la configuration beacon déchiffrée. La documentation de Volatility 3 et les cours SANS FOR508 sont les ressources de référence pour cette discipline.
- Les malwares fileless opèrent exclusivement en mémoire sans fichiers sur disque
- Volatility 3 analyse les dumps mémoire avec des plugins extensibles et modulaires
- La détection d'injection identifie les régions mémoire RWX dans les processus légitimes
- L'extraction de payloads depuis la mémoire fournit le code malveillant en clair
- Les connexions réseau en mémoire révèlent les communications C2 actives
Acquisition mémoire et triage initial
L'acquisition du dump mémoire doit être la première action de l'investigation forensique pour préserver les artefacts volatiles avant toute interaction avec le système qui pourrait modifier l'état de la mémoire. Sur Windows, WinPMEM (développé par Velocidex/Rekall) et DumpIt (Magnet Forensics) acquièrent la mémoire physique complète en format RAW, AFF4 ou crashdump. Sur Linux, LiME (Linux Memory Extractor) produit un dump au format lime ou padded. L'acquisition doit être effectuée depuis un support amovible de confiance (USB bootable) pour minimiser la contamination du dump par les processus de l'outil d'acquisition lui-même.
Le triage initial avec Volatility 3 identifie rapidement les anomalies évidentes. Le plugin windows.pslist liste les processus actifs avec leur PID, PPID, date de création et nombre de threads. Le plugin windows.pstree affiche l'arbre de filiation des processus pour identifier les processus orphelins ou les filiations anormales (svchost.exe qui n'est pas enfant de services.exe, cmd.exe lancé par un processus Word). Le plugin windows.netscan liste les connexions réseau actives et récentes avec les adresses IP, ports et processus associés, révélant immédiatement les communications C2 suspectes.
Détection d'injection de processus
L'injection de processus est la technique la plus utilisée par les malwares pour s'exécuter dans le contexte d'un processus légitime (svchost.exe, explorer.exe, lsass.exe) afin d'échapper à la détection. Le plugin windows.malfind de Volatility détecte les régions mémoire avec des permissions RWX (Read-Write-Execute) dans les processus, une combinaison suspecte car les sections de code légitimes sont typiquement RX (Read-Execute) et les sections de données RW (Read-Write). Les régions RWX contiennent potentiellement du shellcode ou des DLL injectées dynamiquement qui n'apparaissent pas dans la liste des modules chargés.
L'extraction des payloads injectés utilise windows.malfind avec l'option dump pour sauvegarder les régions mémoire suspectes en fichiers binaires analysables. L'analyse des headers de ces dumps identifie les DLL injectées (header MZ/PE), les shellcodes (séquences d'instructions x86/x64) et les configurations déchiffrées des frameworks C2 comme Cobalt Strike. La corrélation entre les régions injectées et les connexions réseau actives du processus (via windows.netscan) confirme les injections malveillantes en liant le code injecté aux communications C2 observées.
Analyse de rootkits et structures noyau
Les rootkits kernel-mode manipulent les structures du noyau Windows pour se rendre invisibles aux outils de monitoring userland. L'analyse mémoire détecte ces manipulations par comparaison entre les structures noyau en mémoire et les valeurs attendues. Le plugin windows.ssdt compare la System Service Descriptor Table en mémoire avec les adresses attendues des fonctions noyau pour identifier les hooks qui redirigent les appels système vers du code malveillant. Le plugin windows.driverscan parcourt la mémoire à la recherche d'objets drivers en utilisant le pool scanning plutôt que les listes chaînées du noyau, détectant les drivers cachés qui se sont retirés des listes officielles.
L'analyse des callbacks noyau identifie les fonctions enregistrées par les rootkits pour intercepter les événements système : création de processus (PsSetCreateProcessNotifyRoutine), chargement de DLL (PsSetLoadImageNotifyRoutine), modifications de registre (CmRegisterCallback) et opérations fichiers (FltRegisterFilter). Les callbacks pointant vers des adresses en dehors des modules noyau connus sont des indicateurs de rootkit. L'extraction du code aux adresses de callback suspectes et son analyse dans Ghidra révèle les fonctions de dissimulation implémentées par le rootkit.
| Plugin Volatility 3 | Fonction | Détecte |
|---|---|---|
| windows.pslist / pstree | Liste des processus | Processus orphelins, filiation anormale |
| windows.malfind | Régions mémoire suspectes | Injection de code, shellcode, DLL injectées |
| windows.netscan | Connexions réseau | Communications C2, exfiltration |
| windows.ssdt | Table des syscalls | Hooks SSDT (rootkits) |
| windows.driverscan | Drivers en mémoire | Drivers cachés (rootkits kernel) |
| windows.dlllist | DLL chargées | DLL suspectes, side-loading |
L'analyse du dump mémoire d'un serveur de fichiers compromis dans un cabinet d'avocats a révélé un implant Cobalt Strike injecté dans svchost.exe que les outils endpoint n'avaient pas détecté. Le plugin malfind a identifié une région RWX de 380 Ko dans le processus svchost.exe (PID 4128) contenant le beacon déchiffré en clair. L'extraction de cette région et l'analyse avec CobaltStrikeParser ont fourni la configuration complète : watermark 0x12345678, C2 sur 3 domaines avec un profil malleable imitant du trafic jQuery. Le plugin netscan a confirmé des connexions HTTPS actives vers les C2 URLs extraites, validant la compromission active depuis 47 jours.
Mon avis : l'analyse mémoire devrait être systématique dans chaque investigation d'incident, même lorsque les outils endpoint semblent avoir identifié la menace. Les malwares les plus sophistiqués utilisent l'injection de processus et les techniques fileless qui ne sont détectables que par l'analyse mémoire. Le coût de l'acquisition mémoire (5 minutes) est négligeable comparé au risque de manquer un implant actif.
Pourquoi l'analyse mémoire est-elle essentielle pour la détection de malware ?
Les malwares fileless opèrent exclusivement en mémoire sans écrire sur le disque. L'analyse mémoire est la seule technique capable de détecter ces menaces, d'extraire les payloads déchiffrés et de capturer les connexions C2 actives.
Volatility 2 ou Volatility 3 pour l'analyse forensique ?
Volatility 3 est recommandé pour les nouvelles analyses avec son architecture modulaire et le support Windows 10/11. Volatility 2 reste utile pour les profils hérités et les plugins communautaires non portés.
Comment acquérir un dump mémoire sur un système compromis ?
WinPMEM ou DumpIt sur Windows, LiME sur Linux. L'acquisition doit être la première action de l'investigation depuis un support amovible de confiance pour préserver les artefacts volatiles.
Conclusion
L'analyse mémoire forensique avec Volatility 3 est la technique fondamentale pour détecter les malwares qui échappent aux outils de détection traditionnels. L'identification des processus suspects, la détection des injections de code et l'analyse des rootkits kernel-mode fournissent une visibilité complète sur l'état de compromission du système pour une réponse à incident efficace.
Intégrez l'acquisition et l'analyse mémoire dans vos procédures de réponse à incident. Chaque minute perdue avant l'acquisition du dump est une perte potentielle d'artefacts volatiles critiques pour l'investigation forensique et la détection des implants les plus sophistiqués.
Télécharger cet article en PDF
Format A4 optimisé pour l'impression et la lecture hors ligne
À propos de l'auteur
Ayi NEDJIMI
Expert Cybersécurité Offensive & Intelligence Artificielle
Ayi NEDJIMI est consultant senior en cybersécurité offensive et intelligence artificielle, avec plus de 20 ans d'expérience sur des missions à haute criticité. Il dirige Ayi NEDJIMI Consultants, cabinet spécialisé dans le pentest d'infrastructures complexes, l'audit de sécurité et le développement de solutions IA sur mesure.
Ses interventions couvrent l'audit Active Directory et la compromission de domaines, le pentest cloud (AWS, Azure, GCP), la rétro-ingénierie de malwares, le forensics numérique et l'intégration d'IA générative (RAG, agents LLM, fine-tuning). Il accompagne des organisations de toutes tailles — des PME aux grands groupes du CAC 40 — dans leur stratégie de sécurisation.
Contributeur actif à la communauté cybersécurité, il publie régulièrement des analyses techniques, des guides méthodologiques et des outils open source. Ses travaux font référence dans les domaines du pentest AD, de la conformité (NIS2, DORA, RGPD) et de la sécurité des systèmes industriels (OT/ICS).
Ressources & Outils de l'auteur
Articles connexes
Analyse de Shellcode : Techniques de Rétro-Ingénierie
Rétro-ingénierie de shellcode : analyse statique et dynamique, émulation avec unicorn, extraction de payloads et dévelop
Rétro-Ingénierie de C2 : Cobalt Strike et Brute Ratel
Analyse technique des frameworks C2 par rétro-ingénierie : extraction de configuration Cobalt Strike, analyse Brute Rate
Anti-Analyse Malware : Techniques et Contournements
Techniques anti-analyse et anti-debugging utilisées par les malwares avancés : détection d'environnement, obfuscation et
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire