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.
Objectif et Mécanisme
Section intitulée « Objectif et Mécanisme »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é.
Comment ça fonctionne :
Section intitulée « Comment ça fonctionne : »- 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.).
- Cette liste est sauvegardée dans un fichier
.pfspécifique à l’exécutable dansC:\Windows\Prefetch\. - 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.
Structure et Emplacement du fichier
Section intitulée « Structure et Emplacement du fichier »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.exedansSystem32vsC:\Temp).
Utilité en Forensic
Section intitulée « Utilité en Forensic »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
.pfconfirme 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.
Outils d’Analyse
Section intitulée « Outils d’Analyse »É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.
Détection et Threat Hunting
Section intitulée « Détection et Threat Hunting »Pour rechercher efficacement des menaces à l’aide du Prefetch, les analystes doivent corréler ces découvertes avec d’autres artefacts :
- Shimcache
- Amcache & RecentFileCache
- Journaux d’événements Windows (Windows Event Logs, en particulier l’Event ID 4688)