Elouan

L'analyse de la mémoire vive

Pourquoi la mémoire révèle ce que le disque cache, comment on l'acquiert, et ce qu'on y cherche avec Volatility : processus cachés, connexions, code injecté.

Elouan

Série Réponse à incident et forensic · article 4 sur 4
  1. La réponse à incident, méthode et étapes
  2. Collecter les preuves : ordre de volatilité et chaîne de custody
  3. Les artefacts forensic de Windows
  4. L'analyse de la mémoire vive

Le disque raconte ce qui a été stocké. La mémoire vive raconte ce qui se passait. Processus en cours, connexions ouvertes, commandes exécutées, code injecté dans d’autres programmes : beaucoup de ces éléments n’ont jamais touché le disque, ou n’y ont laissé que des traces partielles. C’est pour ça que l’analyse de la mémoire est devenue une étape à part entière de l’investigation.

Ce que contient la mémoire

ÉlémentIntérêt pour l’enquête
Processus et leur arborescenceCe qui tournait, lancé par qui, depuis où
Lignes de commandeLes arguments exacts, même si les journaux n’étaient pas configurés
Connexions réseauQuel processus parlait à quelle adresse
DLL et modules chargésDes bibliothèques suspectes dans un processus légitime
Code injectéDu code malveillant qui n’existe que dans la mémoire d’un autre processus
Handles (fichiers, clés de registre, mutex)Ce que le processus manipulait
Services, pilotesPersistance et composants noyau
Clés et identifiantsParfois des clés de chiffrement ou des secrets d’authentification

Les menaces sans fichier

Certaines attaques ne déposent presque rien sur le disque : un script PowerShell téléchargé et exécuté directement en mémoire, du code injecté dans un processus légitime. L’analyse du disque seule ne les voit pas, la mémoire si.

Acquérir la mémoire

On acquiert la mémoire avant d’éteindre la machine (voir l’article sur l’ordre de volatilité), avec un outil dédié, et on écrit l’image sur un support externe ou un partage, jamais sur le disque de la machine analysée.

SystèmeOutils
WindowsWinPmem, DumpIt, Magnet RAM Capture, fonctions de collecte de l’EDR
LinuxAVML, LiME
Machines virtuellesInstantané de l’hyperviseur (fichiers de mémoire de la VM)

Si la machine est déjà éteinte, il reste parfois des morceaux de mémoire sur le disque :

  • hiberfil.sys : l’image de la mémoire au moment de la mise en veille prolongée ;
  • pagefile.sys et swapfile.sys : des pages de mémoire déplacées sur le disque ;
  • MEMORY.DMP : un vidage après un plantage.

Volatility, l’outil de référence

Volatility est le cadre open source de référence pour analyser une image mémoire, et le sujet de l’ouvrage The Art of Memory Forensics. Sa version 3 détecte automatiquement le système et utilise des plugins préfixés par le système (windows., linux., mac.).

vol -f memoire.raw windows.info       # version de Windows, date de l'acquisition
vol -f memoire.raw windows.pstree     # arborescence des processus
vol -f memoire.raw windows.cmdline    # lignes de commande
vol -f memoire.raw windows.netscan    # connexions réseau et ports en écoute
PluginCe qu’il montre
windows.infoInformations sur le système et l’image
windows.pslistLes processus, en suivant la liste du noyau
windows.pstreeLes processus en arborescence parent → enfant
windows.psscanLes processus retrouvés en balayant toute la mémoire
windows.cmdlineLa ligne de commande de chaque processus
windows.netscanLes connexions et ports, avec le processus associé
windows.dlllistLes DLL chargées par chaque processus
windows.handlesLes objets ouverts par un processus
windows.svcscanLes services
windows.malfindLes zones mémoire qui ressemblent à du code injecté

Une démarche d’analyse

Une démarche fréquente :

  1. Le contexte : windows.info, pour vérifier la version et l’heure de l’acquisition.
  2. Les processus : pstree et cmdline, en appliquant ce qu’on sait d’un système sain (voir l’article sur les processus Windows) : parents inattendus, chemins anormaux, noms qui imitent des processus système, lignes de commande encodées.
  3. Le réseau : netscan, pour relier les connexions suspectes à un processus.
  4. Les écarts : comparer pslist et psscan pour repérer d’éventuels processus cachés.
  5. L’injection : malfind sur les processus suspects, puis examen du contenu remonté.
  6. L’extraction : récupérer les exécutables ou les zones mémoire suspects pour les analyser, et calculer leurs empreintes.

Les faux positifs de malfind

malfind signale les zones à la fois exécutables et modifiables sans fichier associé. C’est typique d’une injection, mais les moteurs JavaScript des navigateurs et les environnements comme .NET en créent aussi légitimement. On examine le contenu et le contexte avant de conclure.

Ce que la mémoire peut révéler

pstree montre un rundll32.exe sans argument, enfant de winword.exe. netscan le relie à une connexion vers une adresse inconnue sur le port 443. malfind remonte dans ce processus une zone exécutable qui commence par un en-tête d’exécutable Windows (MZ). Aucun fichier correspondant n’existe sur le disque : le code a été chargé directement en mémoire.

Pourquoi c’est complémentaire de l’EDR

Un EDR enregistre en continu des événements sélectionnés. Une image mémoire donne un instantané complet de la machine à un moment donné. L’EDR peut avoir été contourné ou désactivé par l’attaquant, ou n’avoir pas journalisé un détail utile. Les deux sources se confirment l’une l’autre.

C’est la fin de la série sur la réponse à incident ; la dernière série présente le cadre réglementaire et les acteurs de la cybersécurité.

L'essentiel

  • La mémoire vive contient l'état réel de la machine : processus, lignes de commande, connexions réseau, DLL chargées, code injecté, parfois des clés et des identifiants.
  • Certaines menaces n'existent qu'en mémoire (code injecté, scripts exécutés sans fichier). L'analyse du disque seule ne les voit pas.
  • Acquisition : WinPmem, DumpIt, Magnet RAM Capture sous Windows ; AVML ou LiME sous Linux ; ou la fonction de collecte de l'EDR. Autres sources : hiberfil.sys, pagefile.sys, fichiers de vidage sur incident, mémoire des machines virtuelles.
  • Volatility 3 est l'outil de référence. Plugins Windows clés : windows.info, windows.pslist, windows.pstree, windows.psscan, windows.cmdline, windows.netscan, windows.dlllist, windows.malfind, windows.svcscan.
  • Comparer pslist et psscan : pslist suit la liste des processus du noyau, psscan cherche les structures dans toute la mémoire. Un processus vu par psscan mais pas par pslist peut avoir été caché (ou simplement terminé).
  • malfind repère des zones mémoire exécutables et modifiables, sans fichier associé, souvent signe d'injection de code. À confirmer : des logiciels légitimes (navigateurs, environnements .NET) en produisent aussi.

Idées reçues

Un processus apparaît dans psscan mais pas dans pslist. Est-ce forcément un rootkit ?

L'erreur courante. Répondre oui.

En réalité. Pas forcément. psscan retrouve aussi des processus terminés dont la structure traîne encore en mémoire. On regarde s'il a une heure de fin, ses threads, ses connexions. Un processus actif absent de pslist, en revanche, évoque une technique de dissimulation (retrait de la liste chaînée du noyau).

malfind signale une zone mémoire suspecte dans un navigateur. Est-ce une injection ?

L'erreur courante. Conclure immédiatement à une infection.

En réalité. Pas nécessairement. Les moteurs JavaScript et les environnements .NET génèrent du code à la volée dans des zones exécutables et modifiables, ce que malfind remonte aussi. On examine le contenu (présence d'un en-tête d'exécutable, code reconnaissable), le processus concerné et le contexte avant de conclure.

Pourquoi analyser la mémoire si l'on a déjà l'EDR ?

L'erreur courante. Dire que l'EDR rend l'analyse mémoire inutile.

En réalité. L'EDR enregistre des événements choisis, et peut être contourné ou désactivé. L'image mémoire donne un instantané complet de l'état de la machine à un moment donné, y compris ce que l'EDR n'a pas journalisé. Les deux se complètent, et l'analyse mémoire reste précieuse pour confirmer une injection ou retrouver des éléments disparus du disque.

Tester ses connaissances

Références

  • The Art of Memory ForensicsMichael Hale Ligh, Andrew Case, Jamie Levy, AAron Walters · Wiley
  • Digital Forensics and Incident Response (3e éd.)Gerard Johansen · Packt

Textes de référence en ligne