ShimCache vs. AmCache: Welches Windows-Artefakt beantwortet welche Frage

3 Min. Lesezeit

TL;DR. ShimCache beweist, dass eine Datei auf der Festplatte existierte. AmCache beweist, dass sie ausgeführt wurde und identifiziert sie per SHA-1. ShimCache wird nur bei sauberem Shutdown geleert. AmCache schreibt kontinuierlich. Zieh beide. Sie sind Mitzeugen, keine Ersatzartefakte.

Jeder Junior-Analyst, den ich eingearbeitet habe, hat in der ersten Woche dieselbe Frage gestellt: "Wenn AmCache besser ist, warum ziehen wir dann immer noch ShimCache?" Die Antwort ist, dass sie unterschiedliche Ereignisse zu unterschiedlichen Zeiten mit unterschiedlichen Ausfallmodi aufzeichnen. Behandle sie als Ersatz, und du schreibst Berichte, die beim ersten technischen Review auseinanderfallen.

Entscheidungsbaum ShimCache vs. AmCache

Auf einen Blick

ShimCacheAmCache
Registry-SpeicherortHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCacheC:\Windows\AppCompat\Programs\Amcache.hve
KapazitätBis zu ~1.024 EinträgeTausende Einträge, keine feste Obergrenze
Daten pro EintragPfad, Datei-mtime, (Legacy) Execute-FlagPfad, SHA-1, Größe, Herausgeber, Installationsdatum, viel mehr
Wird geschrieben wannNur bei sauberem ShutdownKontinuierlich und bei Appraiser-Task-Läufen
Übersteht harten RebootNein, aktuelle Einträge gehen verlorenJa, bereits auf der Festplatte
Am besten fürBeweis, dass eine Datei auf der Festplatte existierteBeweis, dass eine Datei lief, plus Hash-basierte Identifikation

Wann der ShimCache gewinnt

Der Cache feuert bei einer Untersuchung, nicht bei einer Ausführung. Diese Empfindlichkeit macht ihn zum besseren Zeugen für Dateien, die ein Angreifer kurz abgelegt und dann gelöscht hat. Eine Binärdatei, die um 14:33 in C:\Users\Public\ landete und um 14:35 gelöscht wurde, kann trotzdem im ShimCache erscheinen, wenn Windows sie in diesen zwei Minuten aus irgendeinem Grund angefasst hat.

Der Cache trägt außerdem die $STANDARD_INFORMATION-mtime der Datei. Dieser Zeitstempel ist keine Ausführungszeit. Er ist eine Eigenschaft der Datei, was bedeutet, dass er Umbenennungen und Kopien übersteht, die Metadaten erhalten. Nützlich für das Clustering verwandter Builds über Hosts hinweg. Unbrauchbar zum Sequenzieren von Ereignissen auf einer Timeline, wie in was der ShimCache-Zeitstempel tatsächlich bedeutet behandelt.

Wann AmCache gewinnt

Frage AmCache "ist diese Binärdatei tatsächlich gelaufen, und welche genaue Binärdatei?", und du bekommst eine echte Antwort. Jeder InventoryApplicationFile-Eintrag unter Amcache.hve trägt einen SHA-1-Hash, Dateigröße, Herausgeber, Signaturstatus und eine pro-Datei-LastWrite, die als "wann hat Appraiser das bemerkt" fungiert. Das reicht aus, um zu VirusTotal zu pivoten, zu Threat Intel oder zu anderen Hosts im Bestand, selbst wenn die Datei auf der Festplatte längst weg ist.

Auch das Persistenzmodell gewinnt. AmCache wird von compattelrunner.exe planmäßig und bei Installer-Events geleert. Harte Reboots und BSODs zerstören aktuelle Aktivität nicht still, wie sie es bei ShimCache tun. Zieh Amcache.hve plus Amcache.hve.LOG1 und Amcache.hve.LOG2, um laufende Transaktionen abzuspielen.

Sie zusammen einsetzen

Behandle sie als Mitzeugen mit unterschiedlichen blinden Flecken.

  • Beide vorhanden, Pfade passen. Starker Hinweis auf Ausführung. Verwende AmCache für die hashbasierte Identität, ShimCache zur Bestätigung, dass die Datei zu irgendeinem Zeitpunkt unter diesem Pfad lag.
  • Nur ShimCache. Die Datei existierte. Eine Ausführung ist nicht bewiesen. Suche nach Prefetch, EVTX oder BAM/DAM zur Bestätigung.
  • Nur AmCache. Der Host wurde seit der Aktivität nicht sauber heruntergefahren. ShimCache wurde nie geleert. Zieh einen RAM-Dump, wenn die Kiste noch läuft; der In-Memory-ShimCache sitzt dort.
  • Beides nicht vorhanden, aber du vermutest Aktivität. Prüfe, ob der Appraiser-Task lief. Ein deaktivierter Compatibility Appraiser erzeugt leer wirkende AmCache-Hives.

Für die technischen Layout-Details siehe die Walkthrough zum Windows-10/11-Binärformat. Um einen Hive sofort und ohne Installation zu parsen, leg ihn in den Shimcache Parser. Er läuft komplett im Browser.

Weiterführende Lektüre

Verwandte Artikel