Aller au contenu

Analyse d'Artefact : Master File Table (MFT) NTFS

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.

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.

  • 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.
  • 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 $FN ne 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 $FN représente l’historique temporel “véritable” du fichier.
  • 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 $DATA nommés, c’est ainsi que les attaquants cachent des charges utiles dans des fichiers légitimes.

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.

L’analyse de la MFT est la colonne vertébrale de l’investigation post-mortem (“Dead-Disk” forensics).

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.

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).

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).

parse_mft.cmd
:: 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