Les enquêtes forensiques tournent souvent autour d'une seule question : ce fichier a-t-il jamais été sur cet ordinateur ? Pas « est-il sur le disque maintenant ? » — ça, c'est dir. La version difficile est : peut-on montrer qu'il était sur le disque hier, la semaine dernière, l'année dernière ? Sur les volumes NTFS, le $MFT est généralement la meilleure réponse.
Ce qui survit à une suppression
Quand un fichier est supprimé sur NTFS, le bit « en cours d'utilisation » de son enregistrement MFT est effacé, mais le reste subsiste. Cet enregistrement porte :
- le nom de fichier complet (dans
$FILE_NAME) ; - la référence au dossier parent ;
- quatre horodatages (création, modification, accès, modification MFT) — en double, dans SI et FN ;
- les tailles logique et physique du fichier ;
- pour les petits fichiers, l'intégralité du contenu (
$DATArésident) ; - pour les plus gros, le runlist des clusters qui contenaient les données.
Chacun de ces éléments est une preuve directe. Un enregistrement MFT supprimé avec $FILE_NAME = plan-secret.docx, dossier parent \Users\bob\Documents, et SI-création 2024-11-03T14:02:11Z démontre qu'un fichier portant ce nom existait dans ce dossier à cette date, indépendamment de ce que dir afficherait aujourd'hui.
La force probante
Trois propriétés font des enregistrements MFT une preuve forensique solide :
- NTFS les écrit lui-même. Ils ne sont pas modifiables par l'utilisateur via les outils Windows standard. Un défendeur ne peut pas prétendre qu'ils ont été plantés sans qu'on ait forgé l'intégralité du
$MFT— un travail de titan. - Huit horodatages se vérifient mutuellement. La manipulation laisse en général des traces : SI changé alors que FN est inchangé est la signature du timestomping.
$UsnJrnlet$LogFilecorroborent. Si le$MFTdit qu'un fichier a été créé à l'heure T, le journal de changements doit enregistrer l'événement à la même heure. Les divergences sont, elles-mêmes, une preuve.
Ce que le $MFT ne prouve pas seul
Le $MFT prouve que le fichier existait dans un dossier donné à un moment donné. Il ne prouve pas :
- qui l'a créé ou y a accédé — il faut les Security event logs ;
- quel programme l'a produit — Prefetch et ShimCache aident ici ;
- ce qu'il contenait, pour les gros fichiers — sauf à récupérer les clusters de données ;
- s'il a été ouvert par un utilisateur — Jump Lists et fichiers LNK sont plus utiles.
Une réponse complète mêle généralement le $MFT aux artefacts environnants. Mais le $MFT est la pierre angulaire — sans lui, les autres pièces n'ont rien à quoi s'amarrer.