Analyse Forensic du Shimcache (AppCompatCache)
Le Shimcache, officiellement connu sous le nom de Application Compatibility Cache (AppCompatCache), est un composant vital de Windows conçu pour résoudre les problèmes de compatibilité des applications. Pour les professionnels de l’investigation numérique et de la réponse aux incidents (DFIR), il agit comme une mémoire à long terme des fichiers exécutables observés par le système. Il est essentiel pour prouver l’existence d’un fichier, même si les fichiers eux-mêmes ont été supprimés ou n’ont jamais été formellement exécutés.
Objectif et Mécanisme
Section intitulée « Objectif et Mécanisme »La philosophie principale derrière le Shimcache est d’identifier les applications qui ont rencontré des problèmes de compatibilité et d’appliquer un “shim” — un petit bout de code qui intercepte et modifie les appels de l’application pour assurer sa compatibilité avec les versions plus récentes de Windows.
Le mécanisme est simple :
- Lorsqu’un utilisateur explore des dossiers à l’aide de l’Explorateur Windows ou exécute un programme, le système d’exploitation lit les métadonnées de divers exécutables.
- Les métadonnées (chemin complet, date de modification, attributs) sont mises en cache pour prévenir d’éventuels problèmes de compatibilité futurs.
- Ce cache persiste en mémoire et est écrit dans le Registre Windows lors de l’arrêt du système.
Emplacement et Structure
Section intitulée « Emplacement et Structure »Le Shimcache est stocké dans le Registre au sein de la ruche SYSTEM :
SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\
Il est stocké sous la forme d’une valeur binaire unique contenant une liste d’entrées. Chaque entrée représente un exécutable et est horodatée avec la date de dernière modification (Last Modification Time) du fichier en UTC.
Utilité en Forensic
Section intitulée « Utilité en Forensic »Bien que le Shimcache soit considéré comme un artefact de “détection faible”, il est extrêmement précieux pour combler les lacunes d’une investigation :
- Preuve d’Existence, et non d’Exécution : c’est la nuance la plus critique. Le Shimcache prouve qu’un fichier a existé à un emplacement spécifique, mais pas nécessairement qu’il a été exécuté. Les utilisateurs peuvent simplement avoir navigué dans le dossier contenant le fichier.
- Persistance : le Shimcache peut conserver des traces d’exécutables bien après que d’autres artefacts comme le Prefetch ou que les binaires originaux ont été supprimés. C’est souvent la seule preuve restante d’une menace effacée.
- Contextualisation de l’Exécution : en comparant la date de dernière modification (“Last Modification Time”) du Shimcache avec la date de création des fichiers Prefetch, les analystes peuvent déduire le temps écoulé entre l’introduction d’un fichier sur le système et sa première exécution.
Outils d’Analyse
Section intitulée « Outils d’Analyse »- AppCompatCacheParser.exe (Eric Zimmerman) : l’outil en ligne de commande (CLI) de référence dans l’industrie pour extraire et analyser (parser) le Shimcache à partir d’une ruche
SYSTEMexportée. - RegRipper : dispose d’un plugin
appcompatcachedédié pour une analyse automatisée.
Détection et Threat Hunting
Section intitulée « Détection et Threat Hunting »Pour une recherche de menaces (Threat Hunting) avancée, la corrélation est primordiale. Correlez les découvertes du Shimcache avec :
- Prefetch
- Amcache & RecentFileCache (pour la corrélation des hashs)
- Les journaux d’événements Windows (Windows Event Logs, en particulier l’Event ID 4688) pour confirmer l’exécution.