Analyse d'Artefact : Journal USN ($UsnJrnl)
1. Mécanique technique : tracer le changement
Section intitulée « 1. Mécanique technique : tracer le changement »Le journal USN n’est pas un journal permanent et infini. Il est conçu pour être efficace et rapide.
Il est stocké sous la forme d’un métafichier NTFS caché nommé $UsnJrnl et se compose principalement de deux flux de données alternatifs (Alternate Data Streams) :
$Max: contient les métadonnées définissant la taille maximale du journal.$J: les enregistrements de journaux réels. Ce flux fonctionne comme un tampon circulaire (circular buffer).
Chaque fois qu’un fichier est créé, modifié, supprimé ou renommé, une nouvelle entrée est ajoutée au flux $J. Chaque entrée se voit attribuer un numéro de séquence de mise à jour (USN) incrémentiel sur 64 bits.
2. Codes de raison (Reason Codes) : le “quoi” de l’action
Section intitulée « 2. Codes de raison (Reason Codes) : le “quoi” de l’action »Les données forensiques les plus précieuses au sein d’une entrée USN sont les codes de raison (Reason Codes). Chaque entrée est marquée d’un ou plusieurs indicateurs (flags) décrivant la nature exacte de la modification du système de fichiers.
Les codes de raison clés pour les analystes DFIR incluent :
USN_REASON_FILE_CREATE: un nouveau fichier ou répertoire a été créé.USN_REASON_FILE_DELETE: un fichier ou répertoire a été supprimé. (crucial pour détecter l’effacement de charge utile).USN_REASON_RENAME_OLD_NAME: un fichier a été renommé (indique le nom d’origine).USN_REASON_RENAME_NEW_NAME: un fichier a été renommé (indique le nouveau nom).USN_REASON_DATA_OVERWRITE: les données à l’intérieur du fichier ont été écrasées.USN_REASON_DATA_EXTEND: des données ont été ajoutées à la fin du fichier.USN_REASON_CLOSE: un fichier ouvert pour modification a été fermé. Cela génère l’enregistrement final consolidé pour une interaction de fichier.
3. Scénarios d’investigation DFIR
Section intitulée « 3. Scénarios d’investigation DFIR »Le journal USN est un outil phénoménal pour la reconstruction chronologique. Lorsque les artefacts d’exécution standards prouvent qu’une charge utile s’est exécutée, le journal USN révèle ce que cette charge utile a fait sur le disque.
A. Reconstituer la chronologie de l’attaque
Section intitulée « A. Reconstituer la chronologie de l’attaque »En analysant et en triant chronologiquement le flux $J, les analystes peuvent observer le scénario de l’adversaire se dérouler étape par étape. Considérez ce scénario classique de ransomware/exfiltration trouvé dans les journaux :
14:32:05 | FILE_CREATE | C:\PerfLogs\malware.exe14:32:06 | FILE_CREATE | C:\PerfLogs\lib.dll14:35:10 | DATA_EXTEND | C:\Users\Admin\Documents\secrets.zip14:35:12 | RENAME_NEW_NAME | C:\PerfLogs\data.bin (anciennement secrets.zip)14:36:00 | FILE_DELETE | C:\PerfLogs\malware.exeAnalyse : l’attaquant a déposé sa charge utile et ses dépendances, a regroupé des données sensibles dans une archive, a déguisé l’archive en un fichier .bin inoffensif dans PerfLogs, et a finalement supprimé sa charge utile principale pour échapper à une imagerie forensique basique.
B. Prouver la suppression de fichiers
Section intitulée « B. Prouver la suppression de fichiers »Prouver qu’un fichier a été explicitement supprimé est un défi. Même si l’enregistrement de la Master File Table (MFT) du fichier est effacé ou écrasé, l’entrée USN_REASON_FILE_DELETE dans le journal USN survit (jusqu’à la rotation du tampon), fournissant la preuve définitive que l’attaquant a tenté de détruire des preuves.
C. Corrélation croisée d’artefacts
Section intitulée « C. Corrélation croisée d’artefacts »- Avec Amcache : si vous trouvez un hash de fichier suspect dans l’Amcache, interroger le journal USN pour ce nom de fichier révélera la seconde exacte où il a touché le disque et quand il a été supprimé.
- Avec Prefetch : si le Prefetch indique une exécution à
14:32:05, le journal USN révélera exactement quels fichiers ont été créés ou modifiés par ce processus dans les millisecondes qui ont suivi.
4. Outils et Threat Hunting
Section intitulée « 4. Outils et Threat Hunting »Extraire et analyser le flux $J nécessite un accès direct au disque ou une extraction via les clichés instantanés (Volume Shadow Copy - VSS).
:: MFTECmd analyse à la fois la $MFT et le flux $J du journal USN.:: Extrayez le fichier $J avec un outil comme KAPE ou FTK Imager, puis analysez :
MFTECmd.exe -f "C:\Forensics\Export\$J" --csv "C:\Forensics\Results" --csvf parsed_usn.csv# En supposant que les journaux USN analysés soient ingérés.# Recherche d'exécutables déposés dans des dossiers suspects et rapidement supprimés (anti-forensique)index=usn_journal (Reason="*FILE_CREATE*" OR Reason="*FILE_DELETE*")| search FileName="*.exe" OR FileName="*.dll" OR FileName="*.ps1"| search ParentPath="*\\PerfLogs\\*" OR ParentPath="*\\Users\\Public\\*" OR ParentPath="*\\Temp\\*"| transaction FileName ParentPath startswith="*FILE_CREATE*" endswith="*FILE_DELETE*" maxspan=5m| table _time, FileName, ParentPath, duration| sort - _timeRé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 parent : Analyse MFT ($MFT) et Timestomping
- Artefact lié : Analyse d’exécution via Prefetch (.pf)