Aller au contenu

Analyse Forensic des fichiers Prefetch (.pf)

Le Prefetch de Windows est un mécanisme d’optimisation des performances conçu pour accélérer le démarrage des applications en préchargeant les fichiers et les données nécessaires en mémoire. Pour les professionnels de l’investigation numérique et de la réponse aux incidents (DFIR), les fichiers Prefetch (.pf) sont des artefacts inestimables qui fournissent des preuves irréfutables de l’exécution d’un programme, des horodatages et de l’historique d’exécution.

La philosophie du Prefetch repose sur le principe selon lequel les fichiers utilisés hier sont susceptibles d’être utilisés aujourd’hui. Il s’agit strictement d’une fonctionnalité de performance et non d’un contrôle de sécurité.

  1. Lorsqu’un programme se lance, le Gestionnaire de cache (Cache Manager) de Windows surveille les 10 premières secondes d’activité, en traçant tous les fichiers auxquels il accède (DLL, fichiers de configuration, etc.).
  2. Cette liste est sauvegardée dans un fichier .pf spécifique à l’exécutable dans C:\Windows\Prefetch\.
  3. Lors des lancements ultérieurs, Windows utilise ce fichier pour charger les données en mémoire de manière proactive, réduisant ainsi considérablement le temps de latence perçu au démarrage.

Les fichiers Prefetch sont stockés dans C:\Windows\Prefetch\. Le nom du fichier suit une structure stricte : [NOM_EXECUTABLE]-[HASH_CHEMIN_FICHIER].pf

  • NOM_EXECUTABLE : le nom du programme (tronqué à 29 caractères).
  • HASH_CHEMIN_FICHIER : un hash unique dérivé du chemin d’accès complet de l’exécutable. Cela permet à Windows de différencier des noms de fichiers identiques situés dans des répertoires différents (par ex., svchost.exe dans System32 vs C:\Temp).

Le Prefetch est une pierre angulaire pour répondre à la question fondamentale en DFIR : “Ce programme spécifique a-t-il été exécuté sur ce système ?”

  • Preuve d’Exécution : l’existence d’un fichier .pf confirme que l’exécutable associé a été lancé au moins une fois. La date de création du fichier correspond à la première exécution.
  • Construction d’une Chronologie (Timeline) : Les versions modernes de Windows (10+) peuvent stocker jusqu’à 8 horodatages des exécutions les plus récentes au sein d’un seul fichier .pf, permettant la reconstruction détaillée d’une chronologie.
  • Exécutables Cachés/Dissimulés (Masquerading) : les attaquants renomment souvent des fichiers malveillants avec des noms légitimes (par ex., svchost.exe). Le hash du chemin révélera si le fichier a été exécuté depuis un emplacement suspect (par ex., C:\Users\Public\) plutôt que depuis le chemin système attendu.
  • Fréquence d’Exécution : la métrique du compteur d’exécution (“Run Count”) aide à différencier les opérations système de routine des exécutions uniques (“one-off”) potentiellement malveillantes.
  • Corrélation de Volume : le Prefetch révèle le volume depuis lequel un exécutable a été lancé, fournissant des indices sur une éventuelle exécution depuis un média externe (clés USB) ou un partage réseau.

Étant donné que les fichiers .pf sont dans un format binaire compressé, des outils d’analyse (parsing) spécialisés sont nécessaires :

  • PECmd.exe (Eric Zimmerman) : l’outil en ligne de commande (CLI) de référence dans l’industrie pour une analyse approfondie.
  • WinPrefetchView (NirSoft) : un outil léger avec interface graphique (GUI) pour une analyse préliminaire rapide.

Pour rechercher efficacement des menaces à l’aide du Prefetch, les analystes doivent corréler ces découvertes avec d’autres artefacts :