Analyse d'Artefact : Master File Table (MFT) NTFS
1. Aperçu architectural : le registre du disque
Section intitulée « 1. Aperçu architectural : le registre du disque »Sans la MFT, le système d’exploitation ne saurait pas où les fichiers sont physiquement situés sur le disque dur, quels sont leurs noms, ou quelles sont leurs permissions. Même le fichier $MFT lui-même possède une entrée (c’est toujours l’enregistrement 0, ou Record 0).
Chaque fichier et répertoire est représenté par un Enregistrement MFT (File Record), dont la taille est strictement de 1024 octets. Cet enregistrement est composé d’une série d’Attributs qui décrivent le fichier.
2. Attributs MFT critiques pour le DFIR
Section intitulée « 2. Attributs MFT critiques pour le DFIR »Bien qu’un enregistrement MFT contienne de nombreux attributs, les analystes se concentrent principalement sur les suivants pour reconstituer l’activité d’un acteur malveillant.
A. $STANDARD_INFORMATION ($SI)
Section intitulée « A. $STANDARD_INFORMATION ($SI) »- Description : contient les métadonnées de base, y compris la propriété du fichier, les identifiants de sécurité et le premier jeu d’horodatages. Ce sont les horodatages visibles lorsqu’un utilisateur consulte les propriétés d’un fichier dans l’Explorateur Windows.
- La vulnérabilité : parce que ces horodatages peuvent être facilement modifiés par des API en espace utilisateur (comme
SetFileTime), les attaquants les manipulent fréquemment (une technique appelée Timestomping) pour fondre leur malware parmi les fichiers système légitimes vieux de plusieurs années.
B. $FILE_NAME ($FN)
Section intitulée « B. $FILE_NAME ($FN) »- Description : contient le nom du fichier, une référence à son répertoire parent (crucial pour reconstruire l’arborescence des dossiers) et, fait crucial, un second jeu d’horodatages indépendant.
- L’avantage forensique : contrairement au
$SI, les horodatages du$FNne peuvent être modifiés directement que par le noyau Windows (typiquement lorsqu’un fichier est créé, déplacé ou renommé). Ils ne peuvent pas être facilement altérés par des appels API standards. Par conséquent, le$FNreprésente l’historique temporel “véritable” du fichier.
C. $DATA
Section intitulée « C. $DATA »- Description : contient le contenu du fichier ou les pointeurs vers celui-ci. Comme discuté dans notre analyse sur les Alternate Data Streams (ADS), un seul enregistrement MFT peut contenir plusieurs attributs
$DATAnommés, c’est ainsi que les attaquants cachent des charges utiles dans des fichiers légitimes.
3. Les horodatages MACB expliqués
Section intitulée « 3. Les horodatages MACB expliqués »Les attributs $SI et $FN enregistrent tous deux quatre horodatages spécifiques, universellement désignés par l’acronyme MACB :
- M (Modified) : la dernière fois que le contenu (
$DATA) du fichier a été altéré. - A (Accessed) : la dernière fois que le fichier a été ouvert ou lu. (Note : souvent désactivé sur les systèmes Windows modernes pour améliorer les performances des SSD, le rendant moins fiable).
- C (MFT Changed) : la dernière fois que les métadonnées du fichier (ex: permissions, nom, déplacement vers un nouveau dossier) ont été modifiées dans la MFT.
- B (Birth / Created) : l’heure exacte à laquelle le fichier a été initialement créé sur le volume.
4. Scénarios d’investigation DFIR
Section intitulée « 4. Scénarios d’investigation DFIR »L’analyse de la MFT est la colonne vertébrale de l’investigation post-mortem (“Dead-Disk” forensics).
1. Détecter le Timestomping (Anti-Forensique)
Section intitulée « 1. Détecter le Timestomping (Anti-Forensique) »Les acteurs de la menace avancés altèrent les horodatages Birth et Modified du $SI de leurs charges utiles (ex: backdoor.exe) pour correspondre à des fichiers système légitimes comme cmd.exe (datant souvent de l’installation de l’OS en 2022).
La détection : l’analyste compare les horodatages $SI avec les horodatages $FN. Si le $FN indique que le fichier a été créé en 2026, mais que le $SI prétend 2022, c’est une certitude mathématique que le fichier a subi un timestomping.
2. Récupérer des artefacts supprimés
Section intitulée « 2. Récupérer des artefacts supprimés »Lorsqu’un attaquant “supprime” un outil, Windows n’efface pas les données. Il se contente de marquer l’enregistrement MFT comme “Inutilisé” et de désallouer les clusters.
L’enregistrement MFT lui-même — conservant le nom de fichier original, les horodatages exacts $SI et $FN, et le répertoire parent — reste totalement intact jusqu’à ce que l’OS ait besoin de réutiliser ce bloc spécifique de 1024 octets pour un nouveau fichier. Les analystes peuvent extraire ces enregistrements supprimés pour prouver qu’une charge utile a existé et a été exécutée (en corrélation avec le Prefetch).
5. Outils et Threat Hunting
Section intitulée « 5. Outils et Threat Hunting »Extraire et analyser le $MFT nécessite un accès direct au disque brut. Les équipes DFIR s’appuient sur des parseurs automatisés pour convertir la base de données binaire en fichiers CSV prêts pour la création d’une chronologie (timeline).
:: Parser le fichier $MFT brut et l'exporter vers un format CSV détailléMFTECmd.exe -f "C:\Forensics\Export\$MFT" --csv "C:\Forensics\Results" --csvf parsed_mft.csv# En supposant que la sortie CSV de MFTECmd ait été ingérée dans Splunk# Cette requête détecte les fichiers dont la date de création $SI est plus ancienne que celle du $FNindex=mft_parsed| eval SI_Creation=strptime(Created0x10, "%Y-%m-%d %H:%M:%S")| eval FN_Creation=strptime(Created0x30, "%Y-%m-%d %H:%M:%S")# Calculer l'écart en secondes (recherche d'une manipulation sévère)| eval TimeDiff = FN_Creation - SI_Creation| search TimeDiff > 86400 # Différence de plus de 24 heures| table FileName, ParentPath, Created0x10, Created0x30, TimeDiff| sort - TimeDiffRéférences et lectures complémentaires
Section intitulée « Références et lectures complémentaires »- SANS Institute : Windows Forensic Analysis
- Outils d’Eric Zimmerman : Dépôt GitHub MFTECmd
- Artefact lié : Alternate Data Streams (ADS)
- Artefact lié : Analyse du journal USN ($UsnJrnl)