Aller au contenu

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 :

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 :

  1. 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.
  2. 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.
  3. Elle pivote entre hôtes. Le ProgramId et 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. KeyLastWriteTimestamp est l'heure d'écriture de l'appraiser ; LinkDate est 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#

Liés#

Articles liés

← Retour à tous les articles