Comprendre Amcache : ce que c'est et pourquoi le DFIR s'en soucie
Amcache.hve est la ruche de registre Windows dans laquelle le Compatibility Appraiser écrit des métadonnées d'inventaire pour chaque binaire PE qu'il voit sur l'hôte. SHA-1 des 31 premiers MiB, chemin complet, éditeur, link date, et un horodatage d'écriture de clé par entrée. L'un des artefacts uniques les plus riches du DFIR Windows.
C'est la ruche vers laquelle vous vous tournez quand vous devez savoir « ce binaire a-t-il déjà été sur cet hôte, et qu'était-il ? » — même quand le binaire lui-même a depuis longtemps disparu.
D'où vient Amcache#
Amcache est un sous-produit de la machinerie de compatibilité d'application de Windows, pas une fonctionnalité de sécurité. Microsoft l'a introduite dans Windows 8 (remplaçant l'ancien RecentFileCache.bcf de Windows 7) pour alimenter le Compatibility Appraiser, le composant qui décide si un logiciel installé survivra à une mise à niveau de l'OS. Pour prendre cette décision, l'appraiser doit inventorier les logiciels présents sur la machine — et cet inventaire, écrit dans Amcache.hve, s'est révélé être une mine d'or pour les enquêteurs. Le reverse engineering canonique est le travail de Yogesh Khatri en 2013 ; l'artefact n'a fait que s'enrichir depuis.
La conséquence pratique : Amcache existe sur quasiment chaque hôte Windows moderne, elle est activée par défaut, et elle accumule un relevé de binaires qu'un attaquant n'a aucun moyen simple de connaître, encore moins d'effacer sélectivement. Pour l'emplacement du fichier sur disque et comment le copier, voir où vit Amcache.hve ; pour la vue registre, où se trouve la clé de registre Amcache.
Comment l'appraiser la construit#
Le Microsoft Compatibility Appraiser s'exécute comme une tâche planifiée, environ chaque jour, bridé par l'état d'inactivité et d'alimentation. À chaque passe il parcourt le système de fichiers et l'inventaire des logiciels installés et met à jour Amcache.hve sur place. Deux choses en découlent qui façonnent toute investigation :
- Il y a un délai. Un binaire apparu il y a une heure peut ne pas encore être inventorié. L'absence n'est jamais une preuve d'absence — voir pourquoi mon Amcache est-elle vide et à quelle fréquence Amcache se met à jour.
- C'est un inventaire, pas un journal. Une entrée par fichier, mise à jour sur place. Pas de compte d'exécutions, pas de lignes par exécution. C'est le rayon de Prefetch.
Ce que fait cet outil#
Ce parseur compile un lecteur de ruche de registre en Rust (nt-hive) vers WebAssembly. Votre Amcache.hve est lue en mémoire et parsée dans votre navigateur. Elle n'est jamais uploadée.
Cela compte quand la ruche vient d'un environnement régulé qui n'autorise pas l'upload de fichiers vers des services tiers, ou quand vous voulez simplement un coup d'œil rapide sans monter toute la chaîne d'outils DFIR. Déposez une ruche sur la page d'accueil pour voir chaque valeur, filtrer, et exporter en JSON ou CSV — ou utilisez AmcacheParser d'Eric Zimmerman pour le workflow en ligne de commande hors ligne.
Les clés qui comptent#
Tout vit sous une unique clé Root. Les sous-clés que vous utilisez réellement :
| Clé | Ce qu'elle enregistre | Pourquoi vous y tenez |
|---|---|---|
InventoryApplicationFile |
Métadonnées par fichier — SHA-1 (FileId), chemin complet, nom, éditeur, taille, link date |
La clé phare. Présence de programme et pivot par le hash. |
InventoryApplication |
Applications installées | Inventaire logiciel, dates d'installation. |
InventoryDriverBinary |
Binaires de pilotes chargés, avec hashes | Chasse BYOVD et rootkit. |
InventoryDeviceContainer |
Périphériques connectés (friendly names) | Historique USB / périphériques. |
InventoryDevicePnp |
Interfaces de périphériques PnP | Vue technique des périphériques ; jonction avec DeviceContainer. |
InventoryApplicationShortcut |
Raccourcis .lnk |
Preuve d'applis installées/lancées. |
Programs, File (legacy) |
Équivalents des builds plus anciennes | Ruches Windows 8 / début Windows 10. |
La plus riche de loin est InventoryApplicationFile. Le détail champ par champ est dans les colonnes de sortie d'AmcacheParser, et le tour complet du schéma dans la structure du registre Amcache.
Pourquoi les analystes DFIR s'y tournent#
Trois propriétés rendent Amcache exceptionnellement utile :
- Elle porte le SHA-1. La plupart des artefacts d'exécution Windows vous donnent un chemin et une heure. Amcache vous donne le hash du fichier, qui pivote proprement dans la threat intel et sur tous les hôtes du parc. Voir les hashes SHA-1 pour la chasse au malware.
- Elle survit à la suppression. L'entrée d'inventaire persiste après la disparition du binaire — la raison classique d'ouvrir Amcache en premier quand un outil s'est effacé. Voir Amcache et fichiers supprimés.
- Elle pivote entre hôtes. Le
ProgramIdet le SHA-1 permettent de retrouver le même logiciel sur tout le parc avec une seule requête — transformant un constat mono-hôte en réponse de cadrage.
Ce qu'elle ne vous dit pas#
Comprendre Amcache, c'est comprendre ses limites autant que ses forces :
- Une entrée est une présence, pas une exécution. L'appraiser inventorie les PE qui étaient sur disque ; dans la plupart des cas cela coïncide avec l'exécution, mais vous corroborez avec Prefetch, ShimCache ou les événements de création de processus avant de parler d'exécution. La nuance complète est dans ce que la ruche Amcache vous dit.
- Les scripts sont invisibles. Pas d'en-tête PE, pas d'entrée. L'activité pilotée par PowerShell ou batch ne laisse aucune trace Amcache pour la logique du script elle-même.
- Les horodatages sont des bornes, pas des événements.
KeyLastWriteTimestampest l'heure d'écriture de l'appraiser ;LinkDateest un horodatage de compilation falsifiable. Ni l'un ni l'autre n'est « quand ça a tourné » — voir les horodatages décodés.
La mettre au travail#
Si vous êtes venu ici pour utiliser Amcache plutôt que la comprendre, l'étape suivante est le workflow : comment trouver des preuves d'exécution avec Amcache déroule acquérir → parser → filtrer → pivoter → corroborer de bout en bout. Pour la référence exhaustive de l'artefact, voir la référence complète Amcache.
Pour aller plus loin#
- Yogesh Khatri, Amcache.hve in Windows 8 is a goldmine for malware hunters. Le reverse engineering canonique.
- AmcacheParser d'Eric Zimmerman. L'outil hors ligne standard de facto de l'industrie.
Liés#
Articles liés
- Forensique Amcache : comment trouver des preuves d'exécution
Prouvez qu'un programme a tourné sous Windows avec Amcache.hve : acquérir, parser, filtrer, pivoter sur le SHA-1, corroborer — et les limites qui piègent.
- Où se trouve Amcache.hve sur le disque (et comment le collecter)
Chemin : C:\Windows\AppCompat\Programs\Amcache.hve plus les fichiers .LOG. Toujours les trois. Et la bonne façon de collecter depuis un hôte vivant et depuis des clichés.
- FileId Amcache expliqué : le format de hash SHA-1 que Windows stocke
FileId est '0000' plus le SHA-1 des 31 premiers MiB. Retirez le préfixe ou vos lookups VirusTotal ne renvoient silencieusement rien. La référence complète, avec les pièges.
- Récupérer la preuve de binaires supprimés depuis Amcache
Amcache survit aux binaires qu'elle enregistre. Chemin, SHA-1, éditeur, link date et moment d'inventaire persistent des mois après que l'attaquant a effacé le fichier. Le workflow pratique.