Analyse chronologique · Leçon 4 sur 5
Pivotement et corroboration entre les sources
13 min de lecture
Le module 2 présentait chaque artefact Windows séparément ; la leçon 3.3 les a fusionnés en une super-chronologie. Cette leçon aborde la méthode qui transforme des lignes en constatations : pivoter à l'aide d'identifiants communs, examiner les événements proches d'un point d'ancrage, corroborer chaque fait essentiel dans une source indépendante et exposer honnêtement les divergences et le niveau de confiance, ce qu'évaluent les questions de l'examen CFX sur la corrélation.
Points de pivot
Un point de pivot est une valeur qui apparaît dans plusieurs artefacts et permet ainsi de les relier.
| Point de pivot | Où il apparaît (exemples) | Précaution |
|---|---|---|
| Nom ou chemin de fichier | LNK, Jump Lists, MRU, Shellbags, fichiers référencés par Prefetch, $MFT, $UsnJrnl, historique du navigateur | Les noms ne sont pas uniques ; les lettres de lecteur sont réutilisées |
| Entrée MFT et numéro de séquence | Enregistrements $MFT, $UsnJrnl et $LogFile, éléments shell LNK des cibles NTFS | Les numéros d'entrée sont réutilisés après suppression ; le numéro de séquence distingue les utilisations |
| Numéro de série du volume (VSN) | VBR, LinkInfo des LNK, Jump Lists, informations de volume Prefetch, Vbr0 de Partition/Diagnostic 1006 | Change lorsque le volume est reformaté |
| Numéro de série du périphérique | USBSTOR, USB, données MountedDevices, setupapi.dev.log, 1006, événements Kernel-PnP | Un identifiant dont le deuxième caractère est & est généré par Windows |
| SID utilisateur | ProfileList, clé BAM, UserId de SRUM, journaux d'événements, $Recycle.Bin\<SID> | Une ruche propre à un utilisateur identifie également celui-ci par le profil dont elle provient |
| Identifiant de session | Security 4624, 4672, 4688, 4634 | Unique uniquement jusqu'au prochain redémarrage |
| Nom ou chemin du processus | Prefetch, Amcache, BAM, Shimcache, AppId de SRUM, 4688 | Un nom n'est pas une identité ; associez-le au chemin et à une empreinte |
| SHA-1 ou SHA-256 | FileId d'Amcache (SHA-1), fichiers dans les images, renseignement sur les menaces | Pour les fichiers de plus de 31 457 280 octets, Amcache ne calcule l'empreinte que des 31 457 280 premiers octets |
| Adresse IP | IpAddress de 4624, événements RDP, journaux de pare-feu et de proxy | NAT et DHCP modifient l'entité qui se trouve derrière une adresse |
| Fenêtre temporelle | Toutes les sources | La résolution, le fuseau horaire et le délai d'écriture diffèrent selon la source |
La technique de pivotement
- Définissez un point d'ancrage. Partez d'un élément connu et précis : une alerte, un fichier nommé dans l'affaire, un périphérique, un compte.
- Extrayez tous les identifiants que contient le point d'ancrage : numéros de série, GUID, chemins, SID, empreintes, heures.
- Recherchez chaque identifiant dans toutes les sources, pas uniquement là où vous vous attendez à le trouver : la super-chronologie, les CSV issus de l'analyse et une recherche par mots-clés dans les images brutes.
- Ajoutez chaque nouvel identifiant à une liste de travail, en notant sa provenance.
- Répétez jusqu'à ce que les nouvelles recherches ne renvoient plus rien de pertinent pour la question.
La liste de travail constitue votre piste d'audit. Privilégiez les identifiants précis (un numéro de série, un VSN, une empreinte) plutôt que les identifiants génériques comme report.docx ou la lettre E:.
Proximité temporelle
Lorsque les identifiants ne suffisent plus, pivotez sur le temps : répertoriez tout ce qui se trouve dans une fenêtre autour du point d'ancrage, par exemple ±10 minutes autour de la dernière arrivée d'un périphérique. Adaptez la taille de la fenêtre à la source la moins précise : des secondes pour les sources FILETIME, 2 secondes pour les heures d'écriture FAT, environ une heure pour SRUM.
La proximité suggère une relation, mais ne la prouve pas : Windows écrit de nombreux événements en arrière-plan chaque minute, et n'importe lequel peut se trouver par hasard à proximité du point d'ancrage. Un programme exécuté deux minutes après une connexion USB est une piste ; il devient une constatation lorsqu'un identifiant commun relie les deux, par exemple une référence Prefetch à un chemin sur le volume portant ce VSN. Présentez la proximité comme telle (« 6 minutes après l'arrivée du périphérique »), jamais comme une cause.
Corroboration et indépendance
Une constatation est solide lorsque deux sources indépendantes l'enregistrent. L'indépendance signifie que des mécanismes différents écrivent des enregistrements différents, de sorte qu'une erreur, une lacune ou une altération dans l'un n'affecte pas l'autre de la même manière. Deux analyseurs d'un même fichier constituent une seule source vérifiée deux fois : cela valide votre outil, pas l'événement.
| Constatation | Source 1 | Source 2 | Indépendance |
|---|---|---|---|
| Fichier ouvert | Dernier accès DestList de la Jump List | Heure de modification $SI du LNK récent | Partielle : fichiers distincts écrits par le shell pour un même enregistrement d'élément récent |
| Programme exécuté | Heure de dernière exécution Prefetch | Valeur BAM sous le SID de l'utilisateur | Bonne : le prefetcher et le pilote BAM écrivent dans des magasins distincts |
| Dernière connexion USB | Dernière arrivée USBSTOR 0066 | Partition/Diagnostic 1006 | Bonne : propriété de périphérique dans le Registre contre enregistrement dans un journal d'événements |
| Première connexion USB | USBSTOR 0065 | Début de section de setupapi.dev.log | Bonne : FILETIME du Registre (UTC) contre journal texte (heure locale) |
| Données envoyées | BytesSent de SRUM | Historique du navigateur, journal de proxy ou journal d'audit cloud | Bonne : compteur de ressources contre enregistrement applicatif ou réseau |
La première paire est la plus faible : une seule action de nettoyage ou un seul paramètre de confidentialité supprime les deux ; ajoutez donc un troisième mécanisme, par exemple la liste MRU propre à l'application. Deux valeurs concordent lorsque leur écart est inférieur à la résolution de la source la moins précise, augmentée de son délai d'écriture connu.
Lorsque les sources divergent
Les divergences sont généralement dues aux mécanismes de fonctionnement :
- Résolution. Une heure d'écriture DOS progresse par pas de 2 secondes ; une ligne SRUM couvre un intervalle d'environ une heure. Une heure DOS et un FILETIME séparés de moins de 2 secondes ne constituent pas une divergence.
- Heure locale contre UTC. Les heures DOS de FAT et setupapi.dev.log sont en heure locale ; les FILETIME du Registre, d'EVTX, des LNK et de Prefetch sont en UTC. Une différence correspondant exactement au décalage du fuseau horaire en est la signature.
- Délais d'écriture. Shimcache est écrit à l'arrêt, SRUM est enregistré sur disque environ une fois par heure, un fichier Prefetch est écrit environ 10 secondes après le démarrage du programme, et le LastWrite d'une clé reflète sa dernière modification, qui peut être postérieure à l'événement qui vous intéresse.
- Changements d'horloge. Un saut de l'horloge système (événement Kernel-General 1, Security 4616) décale tout ce qui a été écrit avant lui. La leçon 3.5 montre comment le mesurer et le corriger.
Exposez ouvertement chaque divergence : les deux valeurs et leurs sources, l'explication, ainsi que la valeur sur laquelle vous vous appuyez et pourquoi. N'écartez jamais une valeur qui ne concorde pas ; si vous ne pouvez pas l'expliquer, dites-le et réduisez votre niveau de confiance.
Formuler le niveau de confiance
ISO/IEC 27042 fournit des recommandations sur l'analyse et l'interprétation des éléments de preuve numériques. En pratique : distinguez ce qu'un artefact enregistre de ce que vous en déduisez, envisagez d'autres explications et choisissez des termes adaptés aux éléments qui étayent votre conclusion.
| Formulation | À utiliser lorsque | Exemple |
|---|---|---|
| « enregistre » | Vous rapportez ce que contient une source | « L'entrée DestList enregistre un dernier accès à 13:54:29Z. » |
| « est compatible avec » | Les éléments concordent, mais d'autres explications raisonnables subsistent | « La ligne SRUM est compatible avec un téléversement de l'archive. » |
| « indique » | Une ou plusieurs sources apportent un appui solide ; d'autres explications sont peu probables, mais non exclues | « Le fichier LNK et la Jump List indiquent que le fichier a été ouvert depuis le volume USB. » |
| « établit » | Des sources indépendantes concordent et les autres explications ont été testées et exclues | « Le VSN dans 1006 et dans l'image établit que le volume acquis en image se trouvait sur ce périphérique. » |
Les artefacts enregistrent des comptes et des processus, pas des personnes : écrivez « le compte ana », et non « ana », sauf si d'autres éléments de preuve placent la personne au clavier.
Chronologie de l'affaire et super-chronologie
La super-chronologie (leçon 3.3) contient des millions de lignes. La chronologie de l'affaire répertorie uniquement les événements qui répondent à la question, généralement quelques dizaines de lignes, chacune comportant l'heure UTC à la précision de la source, l'événement formulé en termes simples, la source (fichier et enregistrement, décalage ou chemin de clé), la source de corroboration et toute note relative à une divergence. Incluez les événements qui affaiblissent votre hypothèse. Vous effectuez vos recherches dans la super-chronologie ; vous présentez la chronologie de l'affaire.
Exemple détaillé : vol de données le 2026-03-14
Un fichier budgétaire est apparu à l'extérieur de l'entreprise. Le dossier contient une collecte de triage Windows 11 (ActiveTimeBias 180, donc UTC = heure locale + 3 h) et une image E01 d'une clé USB FAT32. Le point d'ancrage est le numéro de série de la clé, 4C530001230411109384.
| Étape | Source | Identifiant utilisé | Nouvel identifiant trouvé | Heure (UTC) |
|---|---|---|---|---|
| 1 | SYSTEM Enum\USBSTOR\...\4C530001230411109384&0, propriété 0066 | Numéro de série du périphérique (point d'ancrage) | Heure de dernière arrivée | 2026-03-14T13:52:05Z |
| 2 | Partition/Diagnostic 1006 | Numéro de série du périphérique | Octets de Vbr0 à 0x43 4D 3C 2B 1A : VSN 1A2B-3C4D | 2026-03-14T13:52:06Z |
| 3 | SYSTEM MountedDevices | Numéro de série du périphérique dans le chemin du périphérique | GUID de volume {a9d9c980-…}, lettre E: | aucune |
| 4 | C:\Users\ana\NTUSER.DAT MountPoints2 ; ProfileList | GUID de volume | Compte ana, SID S-1-5-21-…-1001 | LastWrite de la clé 2026-03-14T13:52:09Z |
| 5 | Recent\budget-q3.xlsx.lnk d'ana et Jump List Excel | VSN 1A2B3C4D, type de lecteur amovible | Chemin E:\Clients\budget-q3.xlsx | DestList 2026-03-14T13:54:29Z ; modification du LNK 13:54:30Z |
| 6 | Prefetch 7ZG.EXE-<hash>.pf ; BAM sous …-1001 | Nom BUDGET-Q3.XLSX ; VSN dans les informations de volume | Programme 7zG.exe ; les fichiers référencés comprennent \CLIENTS\Q3-FILES.7Z | Dernière exécution 2026-03-14T13:58:41Z ; BAM 13:58:49Z |
| 7 | Image USB, entrée de répertoire FAT32 | Nom q3-files.7z ; VSN 1A2B-3C4D | Taille de 64 108 233 octets | Heure d'écriture 2026-03-14T13:59:12Z (convertie) |
| 8 | Network Data Usage de SRUM | SID …-1001 ; fenêtre 13:52Z–14:31Z | AppId chrome.exe ; BytesSent 66 912 404 | Intervalle de 13:31:09Z à 14:31:09Z |
| 9 | History de Chrome d'ana, tables visits et urls | Processus chrome.exe ; fenêtre | URL https://transfer.example.com/upload | 2026-03-14T14:09:47Z |
Les étapes 1 et 2 concordent à une seconde près, tout comme les heures DestList et LNK à l'étape 5 ; les heures Prefetch et BAM à l'étape 6 sont séparées de 8 secondes, ce qui reste dans la variation normale.
La divergence à l'étape 7. Le mot de l'heure d'écriture au décalage 0x16 de l'entrée de répertoire est 66 57, lu comme 0x5766, et le mot de date à 0x18 est 6E 5C, lu comme 0x5C6E. Date : 0x5C6E >> 9 = 46, donc 1980 + 46 = 2026 ; (0x5C6E >> 5) & 0xF = 3 ; 0x5C6E & 0x1F = 14. Heure : 0x5766 >> 11 = 10 ; (0x5766 >> 5) & 0x3F = 59 ; (0x5766 & 0x1F) × 2 = 6 × 2 = 12 s. Un outil qui étiquette cette valeur comme UTC affiche 2026-03-14T10:59:12Z, soit près de trois heures avant la dernière arrivée de la clé, ce qui est incohérent avec l'étape 6. FAT stocke l'heure locale ; la correction manquante est donc le décalage : 10:59:12 + 3 h = 13:59:12Z, soit 31 secondes après le démarrage de 7zG.exe. La chronologie de l'affaire conserve les deux valeurs avec cette explication.
Étape 8. BytesSent dépasse la taille de l'archive de 66 912 404 − 64 108 233 = 2 804 171 octets (environ 4,4 %), ce qui est plausible compte tenu des données de protocole et des autres activités de navigation. SRUM ne peut pas préciser quel fichier a été envoyé, ni quand.
Étape 9. Le visit_time de Chrome compte les microsecondes depuis 1601 (leçon 3.1). La valeur 13 417 970 987 412 318 ÷ 1 000 000 = 13 417 970 987,412318 s ; − 11 644 473 600 = temps Unix 1 773 497 387,412. En soustrayant 1 773 446 400 (2026-03-14T00:00:00Z), il reste 50 987 s = 14 h 09 min 47 s, soit 2026-03-14T14:09:47.412Z.
Constatation formulée. « Le périphérique portant le numéro de série 4C530001230411109384 a été connecté pour la dernière fois à 2026-03-14T13:52:05Z (USBSTOR, corroboré par Partition/Diagnostic 1006). Son volume, VSN 1A2B-3C4D, a été monté dans la session du compte ana (SID S-1-5-21-…-1001). Le fichier LNK et la Jump List indiquent que ce compte a ouvert E:\Clients\budget-q3.xlsx depuis ce volume à 13:54:29Z. Prefetch et BAM établissent que 7zG.exe a été exécuté à 13:58:41Z, sous ce compte selon BAM ; la dernière écriture de q3-files.7z sur le volume acquis en image date de 13:59:12Z. SRUM et l'historique du navigateur sont compatibles avec un téléversement de l'archive par chrome.exe entre 14:09:47Z et 14:31:09Z, mais n'identifient pas le fichier envoyé. » Prefetch montre que 7zG.exe a référencé les deux fichiers ; seul le contenu de l'archive, répertorié à partir de l'image, montre que budget-q3.xlsx se trouve dans q3-files.7z.
Répondre précisément aux tâches de l'examen
- Distinguez la valeur exacte demandée : un numéro de série sans
&0n'est pas l'identifiant d'instance, un chemin sans lettre de lecteur est incomplet, et un SID ou une empreinte tronqués constituent une valeur différente. - Donnez les heures au format ISO 8601 UTC avec
Z, comme2026-03-14T13:52:05Z, tronquées à la seconde, sauf si une précision supérieure est demandée. - Lisez le verbe : « connecté pour la première fois » (
0065, setupapi) n'est pas « connecté pour la dernière fois » (0066) ; « ouvert », « exécuté » et « copié » renvoient à des artefacts différents. - Vérifiez la valeur à l'aide d'un second artefact avant de soumettre votre réponse ; un écart correspondant exactement au décalage indique une valeur non convertie.
Points clés pour l'examen : Attendez-vous à des questions de mise en situation nécessitant deux ou trois étapes, par exemple pour passer du numéro de série d'un périphérique à un SID utilisateur, ou d'un fichier sur la clé USB au programme qui y a accédé. Les questions peuvent évaluer quelles sources sont considérées comme indépendantes, comment expliquer une heure FAT séparée d'un FILETIME par exactement un décalage horaire, et quelle formulation une constatation permet de justifier.
Points essentiels
- Les points de pivot sont des valeurs partagées entre les artefacts, comme les chemins, les VSN, les numéros de série des périphériques, les SID, les empreintes et les fenêtres temporelles.
- Pivotez en recherchant les identifiants du point d'ancrage dans toutes les sources, puis en répétant l'opération ; la proximité temporelle fournit des pistes, et un identifiant commun transforme une piste en constatation.
- Une corroboration indépendante repose sur des mécanismes différents, pas sur des analyseurs différents du même fichier ; expliquez les divergences par la résolution, le fuseau horaire, le délai d'écriture ou un changement d'horloge.
- Adaptez la formulation aux éléments qui l'étayent (« enregistre », « est compatible avec », « indique », « établit ») et présentez une chronologie de l'affaire sélectionnée avec soin, pas la super-chronologie.
Questions d’entraînement
Vérifiez votre compréhension. Ces questions ne comptent pas pour l’examen.
Connectez-vous pour enregistrer votre progression et reprendre là où vous vous êtes arrêté. C’est gratuit. Se connecter