Les artefacts forensic de Windows
Les traces que Windows garde sans qu'on le lui demande : ce qui a été exécuté, ouvert, connecté, et comment reconstituer une chronologie.
Elouan
Série Réponse à incident et forensic · article 3 sur 4
- La réponse à incident, méthode et étapes
- Collecter les preuves : ordre de volatilité et chaîne de custody
- Les artefacts forensic de Windows
- L'analyse de la mémoire vive
Windows garde, sans qu’on le lui demande, une quantité impressionnante de traces : quels programmes ont été lancés, quels fichiers ont été ouverts, quels dossiers ont été parcourus, quelles clés USB ont été branchées. Ces artefacts ont été conçus pour accélérer le système ou améliorer l’expérience utilisateur, pas pour l’enquête. C’est justement ce qui les rend précieux : les attaquants les oublient souvent.
Prouver une exécution
C’est la question la plus fréquente : ce programme a-t-il été lancé, quand, et par qui ?
| Artefact | Emplacement | Ce qu’il apporte |
|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Nom du programme, nombre d’exécutions, jusqu’aux 8 dernières dates, fichiers chargés au démarrage |
| Amcache | C:\Windows\AppCompat\Programs\Amcache.hve | Programmes présents ou exécutés, chemin, empreinte SHA-1 |
| ShimCache (AppCompatCache) | Ruche SYSTEM | Fichiers examinés par le système, dans l’ordre |
| BAM | Ruche SYSTEM (bam\State\UserSettings) | Dernière exécution de programmes, par utilisateur |
| UserAssist | NTUSER.DAT de l’utilisateur | Programmes lancés depuis l’interface graphique, avec compteur |
| SRUM | C:\Windows\System32\sru\SRUDB.dat | Usage des ressources par application, dont le volume réseau, sur plusieurs semaines |
| Journaux | 4688, Sysmon 1 | Création de processus avec ligne de commande, si l’audit est activé |
Présence n’est pas exécution
Sur les versions récentes de Windows, le ShimCache enregistre des fichiers que le système a simplement examinés, sans forcément les exécuter. Il prouve la présence d’un fichier. Pour l’exécution, on recoupe avec le Prefetch, l’Amcache, le BAM, les journaux ou l’EDR. En forensic, une conclusion solide repose toujours sur plusieurs sources concordantes.
Le Prefetch sur les serveurs
Le Prefetch est désactivé par défaut sur Windows Server. Son absence sur un serveur est donc normale. Sur un poste de travail, un dossier Prefetch vide est en revanche suspect.
Prouver un accès à des fichiers et des dossiers
| Artefact | Emplacement | Ce qu’il apporte |
|---|---|---|
| Fichiers LNK | %APPDATA%\Microsoft\Windows\Recent | Fichiers ouverts, avec chemin d’origine, dates, et parfois volume et machine source |
| Jump Lists | …\Recent\AutomaticDestinations | Fichiers récemment ouverts par chaque application |
| ShellBags | NTUSER.DAT, UsrClass.dat | Dossiers parcourus, même sur une clé USB ou un partage disparus |
| Historique des navigateurs | Profils Chrome, Edge, Firefox | Sites visités, téléchargements |
| Corbeille | C:\$Recycle.Bin | Fichiers supprimés via la corbeille, avec leur chemin et leur date de suppression |
Une exfiltration reconstituée
Les ShellBags montrent que l’utilisateur a parcouru E:\Export_clients, un dossier sur un volume amovible. La ruche SYSTEM confirme le branchement d’une clé USB à 18 h 42. Les fichiers LNK montrent l’ouverture de clients_2026.xlsx depuis le serveur de fichiers à 18 h 40. Aucun de ces artefacts ne suffit seul, ensemble ils racontent l’histoire.
Le système de fichiers NTFS
| Élément | Rôle |
|---|---|
| $MFT (Master File Table) | Une entrée par fichier et dossier : nom, taille, emplacement, horodatages |
| $UsnJrnl (journal $J) | Historique des changements : créations, suppressions, renommages |
| $LogFile | Journal des transactions du système de fichiers |
Chaque fichier a quatre horodatages, résumés par MACB : Modifié (contenu), Accédé, Changé (métadonnées dans la MFT), Born (création). Ils sont stockés à deux endroits (attributs $STANDARD_INFORMATION et $FILE_NAME), ce qui permet souvent de détecter une modification frauduleuse des dates (timestomping).
Le registre, mine d’informations
En plus des clés déjà citées, les ruches du registre contiennent :
| Ruche | Exemples d’informations |
|---|---|
SYSTEM | Nom de la machine, fuseau horaire, services, périphériques USB (USBSTOR), interfaces réseau |
SOFTWARE | Logiciels installés, programmes lancés au démarrage, réseaux Wi-Fi connus |
SAM | Comptes locaux, dernière connexion, nombre de connexions |
NTUSER.DAT | Activité de l’utilisateur : UserAssist, documents récents, chemins tapés, clés Run de l’utilisateur |
UsrClass.dat | ShellBags, associations de fichiers |
Les ruches sont dans C:\Windows\System32\config\ (machine) et dans le dossier de chaque utilisateur (NTUSER.DAT, AppData\Local\Microsoft\Windows\UsrClass.dat).
Construire une chronologie
Le but final de l’analyse est souvent une chronologie (timeline) : tous les événements, de toutes les sources, rangés par ordre chronologique. C’est elle qui permet de répondre à « que s’est-il passé, dans quel ordre ? ».
Les outils les plus utilisés :
- plaso (
log2timeline), qui extrait et fusionne les horodatages de dizaines de types d’artefacts ; - les outils d’Eric Zimmerman (PECmd pour le Prefetch, AmcacheParser, AppCompatCacheParser, MFTECmd, RECmd…) et Timeline Explorer pour parcourir les résultats ;
- les collecteurs comme KAPE ou Velociraptor, qui intègrent ces analyses.
Le poster Windows Forensic Analysis du SANS résume, sur une page, quel artefact répond à quelle question.
Le dernier article de la série s’intéresse à la source la plus volatile : la mémoire vive.
L'essentiel
- Exécution de programmes : Prefetch (C:\Windows\Prefetch), Amcache.hve, ShimCache (AppCompatCache, ruche SYSTEM), UserAssist et BAM (registre), SRUM.
- Prefetch : nom du programme, nombre d'exécutions et jusqu'aux 8 dernières dates d'exécution. Désactivé par défaut sur Windows Server.
- ShimCache ne prouve pas à lui seul l'exécution sur les Windows récents : il prouve que le système a « vu » le fichier. On le croise avec d'autres sources.
- Fichiers et dossiers ouverts : fichiers LNK et Jump Lists (dossier Recent), ShellBags (dossiers parcourus), historique des navigateurs.
- Système de fichiers NTFS : la $MFT décrit chaque fichier avec ses horodatages, le journal $UsnJrnl trace les créations, suppressions et renommages.
- Périphériques USB : clés de registre USBSTOR et journaux associés.
- La chronologie (timeline) croise toutes ces sources pour reconstituer ce qui s'est passé, minute par minute. Outils : plaso (log2timeline), les outils d'Eric Zimmerman, Timeline Explorer.
Idées reçues
Un exécutable apparaît dans le ShimCache. Peut-on affirmer qu'il a été exécuté ?
L'erreur courante. Répondre oui.
En réalité. Pas sur les versions récentes de Windows. Le ShimCache enregistre les fichiers que le système a examinés pour la compatibilité, ce qui peut arriver sans exécution (par exemple en parcourant un dossier). Il prouve la présence du fichier. Pour l'exécution, on croise avec le Prefetch, l'Amcache, le BAM, les journaux (4688, Sysmon 1) ou l'EDR.
Il n'y a aucun fichier Prefetch sur ce serveur. L'attaquant les a-t-il effacés ?
L'erreur courante. Conclure tout de suite à un effacement.
En réalité. Pas forcément : le Prefetch est désactivé par défaut sur Windows Server. Sur un poste de travail, en revanche, un dossier Prefetch vide ou presque vide est suspect et peut signaler un nettoyage.
Comment repérer une modification frauduleuse des dates d'un fichier (timestomping) ?
L'erreur courante. Penser que c'est indétectable.
En réalité. NTFS stocke des horodatages à plusieurs endroits, notamment dans les attributs $STANDARD_INFORMATION (facilement modifiables par les outils courants) et $FILE_NAME (beaucoup plus difficiles à modifier). Des incohérences entre les deux, des dates sans fractions de seconde, ou un écart avec le journal $UsnJrnl trahissent souvent la manipulation.
Tester ses connaissances
Références
- Windows Forensic Analysis Toolkit (4e éd.)Harlan Carvey · Syngress
- Investigating Windows SystemsHarlan Carvey · Academic Press
- Incident Response & Computer Forensics (3e éd.)Jason T. Luttgens, Matthew Pepe, Kevin Mandia · McGraw-Hill