Analyse forensique USB sous Windows : la carte complète
Chaque artefact Windows qui trace une clé USB — registre, setupapi.dev.log, journaux d’événements, LNK, Jump Lists, ShellBags — et comment les relier.
En bref. Aucun artefact Windows ne raconte à lui seul toute l’histoire d’une clé USB. La ruche SYSTEM nomme le périphérique et fournit quatre horodatages de propriétés ; setupapi.dev.log date sa première installation ; les journaux d’événements datent chaque connexion et chaque retrait ; les artefacts propres à chaque utilisateur (MountPoints2, raccourcis, Jump Lists, ShellBags) montrent qui l’a utilisée et ce qui y a été ouvert. Le travail de l’analyste consiste à les relier, et les clés de jointure sont le numéro de série / ID d’instance, le GUID de volume et le numéro de série de volume.
Les trois questions
Une investigation USB pose presque toujours les trois mêmes questions :
- Quel périphérique ? Marque, modèle, numéro de série, et si ce numéro de série est authentique.
- Quand ? Première connexion, chaque connexion et retrait ultérieurs, et la dernière connexion.
- Qui, et quoi ? Quel compte l’a monté, et quels fichiers et dossiers y ont été ouverts, écrits ou lus.
Chaque question trouve sa réponse dans une famille d’artefacts différente, et chaque famille possède son propre identifiant pour le même périphérique. C’est pourquoi l’analyse USB ressemble à un travail de couture.
Quel périphérique : la ruche SYSTEM
Sous ControlSet00x\Enum\USBSTOR, Windows conserve une clé par classe de périphérique de stockage de masse (Disk&Ven_Contoso&Prod_SecureFlash&Rev_1.00) avec une sous-clé par instance (CS1234567890&0). Le nom de l’instance est le numéro de série du périphérique suivi de & et d’un numéro de LUN. Voir USBSTOR.
Deux mises en garde :
- Si le deuxième caractère du numéro de série est
&(par exemple7&1f2e3d4c&0), le périphérique n’a fourni aucun numéro de série exploitable et Windows a généré l’ID. Il n’est unique que sur cet ordinateur — voir numéro de série généré par Windows. Enum\USB\VID_xxxx&PID_yyyy\<serial>contient la partie USB (identifiants fabricant et produit). Cette entrée partage un ContainerID avec l’entrée USBSTOR, ce qui les relie même lorsque leurs noms d’instance diffèrent.
Chaque clé d’instance possède aussi une sous-clé Properties\{83da6326-97a6-4088-9453-a1923f573b29} contenant les horodatages des propriétés de périphérique : 0064 date d’installation, 0065 date de première installation, 0066 dernière arrivée, 0067 dernier retrait. L’article sur USBSTOR les détaille.
MountedDevices associe les lettres de lecteur et les GUID de volume aux périphériques. La ruche SOFTWARE ajoute les noms de volume (Windows Portable Devices) et, sur les systèmes où ReadyBoost a été évalué, des entrées EMDMgmt qui associent le numéro de série d’un périphérique à un nom de volume et à un numéro de série de volume.
Quand : setupapi et les journaux d’événements
C:\Windows\INF\setupapi.dev.logcontient une section pour chaque installation de périphérique. La première section d’un périphérique correspond à sa première connexion à cet ordinateur. Ses horodatages sont en heure locale — voir setupapi.dev.log pour l’USB.- Microsoft-Windows-Partition/Diagnostic, événement 1006 est journalisé à l’arrivée d’un disque (avec modèle, numéro de série, table de partitions et secteurs d’amorçage des volumes) et, selon les travaux de praticiens, de nouveau avec une capacité nulle lorsque le disque disparaît. C’est la source la plus riche à elle seule sous Windows 10 1703 et versions ultérieures — voir Partition/Diagnostic 1006.
- Kernel-PnP/Configuration 400/410 journalisent la configuration et le démarrage du périphérique ; DriverFrameworks-UserMode 2003 / 2100–2102 journalisent l’arrivée et le retrait UMDF lorsque ce canal est activé ; Security 6416 enregistre « un nouveau périphérique externe a été reconnu » lorsque Auditer l’activité PNP est activé.
Les horodatages du registre donnent la dernière arrivée et le dernier retrait ; les journaux donnent toutes les occurrences qu’ils contiennent encore. Lorsqu’ils divergent, la divergence est en elle-même un élément de preuve : une réinstallation, des journaux qui ont tourné, ou une ruche copiée à un autre moment.
Qui et quoi : les artefacts utilisateur
Les artefacts système ne nomment jamais d’utilisateur. Pour cela, il faut examiner chaque profil :
MountPoints2dans NTUSER.DAT liste les GUID de volume montés dans la session de cet utilisateur. Rapprochez-les deMountedDevices— voir MountPoints2.- Les raccourcis (
Recent\*.lnk) et les Jump Lists stockent le chemin cible ainsi que le type de lecteur, le nom et le numéro de série du volume. Ce numéro de série relie un fichier à une clé physique même lorsque la lettre de lecteur a été réutilisée. - Les ShellBags enregistrent les dossiers parcourus dans l’Explorateur, avec la lettre de lecteur uniquement.
- Security 4663 sur le stockage amovible (lorsque Auditer le stockage amovible est activé) enregistre les lectures et écritures de fichiers, avec un chemin
\Device\HarddiskVolumeN.
L’article sur les LNK, Jump Lists et ShellBags explique comment les attribuer.
Tout relier
| Clé | Où elle apparaît |
|---|---|
| Numéro de série / ID d’instance | USBSTOR, USB, WPDBUSENUM, données de MountedDevices, EMDMgmt, setupapi, Kernel-PnP, 6416, ParentId de 1006 |
| Container ID | USB, USBSTOR, SWD\WPDBUSENUM |
| GUID de volume | MountedDevices, MountPoints2 |
| Numéro de série de volume | Secteur d’amorçage du volume dans 1006, EMDMgmt, VolumeID des LNK / Jump Lists |
USB Forensics effectue cette jointure dans votre navigateur : déposez une collecte de triage et vous obtenez une fiche par périphérique, une chronologie unique et des pastilles de preuve indiquant le fichier et la clé, l’enregistrement ou la ligne derrière chaque fait. Le guide de collecte liste les éléments à collecter.