Si vous passez du temps en forensique Windows, le bitmask de raison USN va vite devenir un réflexe. C'est un champ 32 bits que NTFS positionne sur chaque enregistrement de journal pour résumer ce qui vient de changer sur un fichier. Les bits ne disent pas tout — ils sont additifs, pas exclusifs — mais lus ensemble ils dressent un tableau remarquablement précis du cycle de vie.
Les bits
| Drapeau | Hex | Ce que ça signifie en pratique |
|---|---|---|
DataOverwrite | 0x00000001 | Une zone du flux de données principal a été écrasée |
DataExtend | 0x00000002 | Le flux de données principal a grandi |
DataTruncation | 0x00000004 | Le flux de données principal a rétréci |
NamedDataOverwrite / Extend / Truncation | 0x10 / 0x20 / 0x40 | Idem, mais sur un flux alternatif |
FileCreate | 0x00000100 | Création d'un fichier ou d'un dossier |
FileDelete | 0x00000200 | Fichier retiré de l'espace de noms |
EaChange | 0x00000400 | Attributs étendus modifiés |
SecurityChange | 0x00000800 | ACL/propriétaire modifiés |
RenameOldName | 0x00001000 | Moitié « avant » d'un renommage |
RenameNewName | 0x00002000 | Moitié « après » d'un renommage |
IndexableChange | 0x00004000 | Drapeau indexable basculé |
BasicInfoChange | 0x00008000 | Horodatages, attributs ou compression modifiés |
HardLinkChange | 0x00010000 | Lien physique ajouté ou retiré |
CompressionChange | 0x00020000 | Compression NTFS basculée |
EncryptionChange | 0x00040000 | État EFS modifié |
ObjectIdChange | 0x00080000 | Object ID posé ou effacé |
ReparsePointChange | 0x00100000 | Point de réanalyse modifié |
StreamChange | 0x00200000 | Flux de données alternatif ajouté/renommé/supprimé |
Close | 0x80000000 | Le handle qui a produit le changement a été fermé |
Close est particulier : NTFS coalesce les opérations successives sur un même handle et n'émet l'enregistrement final qu'une fois le handle fermé. Un enregistrement sans Close reflète un flush intermédiaire — utile, mais c'est l'enregistrement avec Close qui fait foi.
Motifs récurrents
Quelques motifs reviennent assez souvent pour qu'on les reconnaisse au premier coup d'œil :
- Nouveau fichier écrit par une appli.
FileCreate | DataExtend→DataExtend | Close→BasicInfoChange | Close. Le dernier, c'est le fichier qui reçoit son mtime à la fermeture. - Renommage entre dossiers. Deux enregistrements sur le même
FileReferenceNumber:RenameOldName | ClosepuisRenameNewName | Close. La référence parente diffère — c'est ainsi qu'on reconstruit le déplacement. - Save-by-rename atomique. Beaucoup d'éditeurs écrivent dans un fichier temporaire puis renomment sur la cible. On voit
FileCreatesur le tmp,FileDelete | Closesur l'original, etRenameNewName | Closesur le tmp. - Ransomware chiffrer-puis-renommer. Des
DataOverwritecouvrant des mégaoctets, suivis deRenameNewName | Closeavec la nouvelle extension. Le compte et la cadence desDataOverwritesont souvent les premiers signaux d'un échantillon sur disque. - Quarantaine antivirus. Un
FileDelete | Closeimmédiatement après unFileCreaterécent, sur la même entrée MFT. Le journal donne la preuve que l'AV a touché le fichier, même si le fichier lui-même a disparu.
Ce que les bits ne diront pas
Le bitmask de raison parle du fichier, pas de l'acteur. Pas d'utilisateur, pas de PID, pas de ligne de commande. Combinez le journal avec Security.evtx (4663 accès objet) ou avec Microsoft-Windows-Sysmon/Operational pour attacher un acteur à chaque opération. Le journal USN vous donne le quand et le quoi ; les autres journaux donnent le qui.
Recette de lecture pragmatique
À l'ouverture d'un journal parsé :
- Filtrez
FileCreatepour repérer ce qui est réellement nouveau dans la fenêtre temporelle. - Cherchez
RenameNewNamepour attraper les mouvements et les motifs « enregistrer sous ». - Tracez le nombre de
DataExtenddans le temps — les écritures massives (sauvegardes, chiffrement, staging d'exfiltration) sautent aux yeux. - Lisez en priorité les enregistrements portant
Close; traitez les intermédiaires comme du contexte.
L'application web de ce site permet de filtrer par combinaison arbitraire de raisons, ce qui rend les étapes 1 à 3 quasi instantanées.