Forensique Mémoire
L'analyse forensique de la mémoire RAM constitue une discipline critique et spécialisée au sein de l'investigation numérique, axée sur l'extraction et l'analyse de données volatiles qui n'existent que pendant l'exécution du système. Contrairement à la forensique traditionnelle du disque, qui examine les données persistantes stockées sur des disques durs ou des SSD, la forensique mémoire capture l'état exact du système au moment de l'acquisition, révélant les processus en cours d'exécution, les connexions réseau actives, les identifiants en mémoire, les clés cryptographiques, les malware fileless et les artefacts que les attaquants sophistiqués laissent volontairement uniquement en RAM afin d'échapper à la détection. Cette technique est devenue indispensable dans l'investigation des menaces avancées (APT), des ransomware modernes et des attaques recourant aux techniques de living-off-the-land, où les intrus opèrent exclusivement en mémoire à l'aide d'outils légitimes du système d'exploitation. La fenêtre temporelle de collecte est critique : une fois le système éteint, redémarré ou mis en mode hibernation, ces artefacts volatils sont irrémédiablement perdus, faisant de la rapidité et de la méthodologie d'acquisition des facteurs déterminants pour le succès de l'investigation forensique.
Pourquoi la Forensique Mémoire
Les artefacts volatils sont perdus à l'extinction. La mémoire contient :
- Processus en cours d'exécution : Malware fileless, injections de code
- Connexions réseau : C2 active connections, sockets ouverts
- Identifiants : Mots de passe en clair, hashes NTLM mis en cache
- Cryptographie : Clés de chiffrement en mémoire
- Registry hives : Modifications non persistées
- Handles et DLL : Injections, hooking, rootkits
Acquisition de la Mémoire
Outils d'Acquisition
- FTK Imager : Outil gratuit d'AccessData, interface graphique
- DumpIt : Exécutable portable en une ligne, rapide
- WinPmem : Open-source, prend en charge l'acquisition de la kernel memory
- Magnet RAM Capture : Free tool, facile à utiliser
- LiME (Linux) : Loadable Kernel Module pour les Linux systems
- Belkasoft RAM Capturer : Fonctionne même avec l'anti-dumping
Considérations d'Acquisition
- Acquérir la mémoire AVANT d'investiguer - l'analyse altère l'état
- Système live : utiliser des outils qui minimisent le footprint
- Système virtuel : snapshot de la VM ou extraction du .vmem
- Système physique : envisager l'acquisition via FireWire/Thunderbolt DMA
- Documenter l'heure exacte de l'acquisition pour la timeline
Analyse avec Volatility
Volatility Framework est l'outil open-source de référence pour l'analyse de mémoire, prenant en charge Windows, Linux, macOS et divers formats de dump.
Commandes Essentielles
# Identifier le profil du système
vol.py -f memory.dmp imageinfo
# Lister les processus
vol.py -f memory.dmp --profile=Win10x64 pslist
vol.py -f memory.dmp --profile=Win10x64 pstree
# Processus cachés (DKOM)
vol.py -f memory.dmp --profile=Win10x64 psxview
# Connexions réseau
vol.py -f memory.dmp --profile=Win10x64 netscan
# DLL chargées
vol.py -f memory.dmp --profile=Win10x64 dlllist -p <PID>
# Ligne de commande des processus
vol.py -f memory.dmp --profile=Win10x64 cmdline
# Dumps de processus
vol.py -f memory.dmp --profile=Win10x64 procdump -p <PID> -D output/
# Extraction des identifiants
vol.py -f memory.dmp --profile=Win10x64 hashdump
vol.py -f memory.dmp --profile=Win10x64 lsadump
Analyse de Malware Fileless
Le malware fileless réside uniquement en mémoire, utilisant des outils légitimes (PowerShell, WMI) pour échapper à l'AV. Techniques de détection :
- Process injection : Rechercher la mémoire RWX, les remote threads
- Analyse PowerShell : Commandes suspectes dans l'historique de la console
- Hollowing : Processus légitimes au code remplacé
- Reflective DLL Injection : DLL non mappées sur le disque
Exemple : Détecter une Process Injection
# Rechercher les VADs suspects (mémoire RWX)
vol.py -f memory.dmp --profile=Win10x64 malfind
# Lister les injections de code
vol.py -f memory.dmp --profile=Win10x64 hollowfind
# Analyse des handles suspects
vol.py -f memory.dmp --profile=Win10x64 handles -p <PID> -t Process,Thread
Extraction d'Identifiants
La mémoire contient fréquemment des identifiants en clair ou facilement crackables :
- LSASS dump : NT hashes, Kerberos tickets, mots de passe en clair
- Registry hives : SAM, SYSTEM pour hashdump offline
- Browser memory : Mots de passe de formulaires, cookies de session
- Spécifiques aux applications : Identifiants d'applications (email, VPN, etc.)
Reconstruction de la Timeline
Corréler les événements de la mémoire avec d'autres artefacts :
# Timeline des processus et des connexions
vol.py -f memory.dmp --profile=Win10x64 timeliner --output=body --output-file=timeline.body
# Convertir en un format lisible
mactime -b timeline.body -d > timeline.csv
Rootkits et DKOM
Direct Kernel Object Manipulation (DKOM) cache des processus en modifiant les kernel structures. Détecter par comparaison entre plusieurs sources :
- psxview : Compare pslist, psscan, thrdproc, etc.
- driverirp : Liste les drivers et leurs IRP hooks
- ssdt : System Service Descriptor Table hooks
- idt : Interrupt Descriptor Table modifications
Plugins Avancés de Volatility
- yarascan : Scanner la mémoire avec des règles YARA
- strings : Extraction de chaînes de processus spécifiques
- clipboard : Contenu du presse-papiers Windows
- notepad : Texte des fenêtres Notepad ouvertes
- mftparser : Récupérer la $MFT depuis la mémoire
- svcscan : Lister les Windows services
Outils Complémentaires
- Rekall : Fork de Volatility avec des features supplémentaires
- Redline : Interface graphique de FireEye pour l'analyse
- MemProcFS : Monte le memory dump comme un filesystem
- Bulk Extractor : Extraction en masse de features
Défis
- Les dumps volumineux (16 Go+ de RAM) sont lents à analyser
- Les techniques anti-forensiques peuvent corrompre les dumps
- L'encrypted memory nécessite des keys pour l'analyse
- Les structures de kernel changent selon les OS versions
Recommandations Finales
La forensique mémoire est essentielle pour investiguer les attaques avancées et le malware fileless. Automatisez l'acquisition de mémoire lors d'incidents suspects via l'EDR. Entraînez-vous à l'analyse avec des memory dumps publics (DFIRScience, Volatility Foundation). Corrélez toujours les résultats de la mémoire avec la disk forensics et la network forensics pour une vue complète de l'incident.
