TL;DR. Nein. Ein ShimCache-Eintrag beweist, dass Windows die Datei untersucht hat — oft, aber nicht immer im Zuge einer Ausführung. Windows 10/11 hat das In-Cache-Ausführungs-Flag vollständig entfernt. Bestätigen Sie die Ausführung mit Prefetch, AmCache oder Prozesserstellungs-Events (Security 4688 / Sysmon 1).
„Der ShimCache zeigt, dass es lief" gehört zu den häufigsten Abkürzungen in der Incident Response — und es ist oft genug falsch, um Ermittler im Gerichtssaal zu treffen. Hier ist eine sorgfältige Antwort auf die Frage „Beweist ein ShimCache-Eintrag, dass ein Programm ausgeführt wurde?" — und was man stattdessen tun sollte.
Was der ShimCache wirklich aufzeichnet
Der ShimCache (technisch der Application Compatibility Cache, oder AppCompatCache) speichert Einträge für ausführbare Dateien, die Windows untersucht hat, typischerweise um zu entscheiden, ob ein Kompatibilitäts-Shim angewendet werden muss. Untersuchen ist nicht dasselbe wie Ausführen. Windows kann eine Datei untersuchen, wenn:
- der Benutzer sie doppelklickt (oft, aber nicht immer, gefolgt von Ausführung),
- der Explorer ein Verzeichnis aufzählt und eine Binärdatei inspiziert,
- ein Tool das Dateisystem scannt (AV, Indexer, Sicherheitsagenten),
- die Datei via Rechtsklick „Eigenschaften" oder ähnliche Shell-Flows geöffnet wird.
Die meisten dieser Gründe fallen mit einer Ausführung zusammen, aber die Verbindung ist statistisch, nicht logisch. Eine Binärdatei, die ein Angreifer abgelegt und gelöscht hat, ohne sie zu starten, kann im ShimCache erscheinen, weil etwas auf dem System sie berührt hat.
Die Windows-10/11-Änderung, die zählt
In älteren Windows-Versionen trugen ShimCache-Einträge ein Executed-Flag, das gesetzt wurde, wenn die Binärdatei lief. Dieses Flag wurde weithin als grobes „Lief es?"-Signal verwendet.
In Windows 10 und 11 wurde dieses Flag entfernt. Der moderne ShimCache hat keine interne Markierung mehr, die sagt, dass eine Ausführung stattgefunden hat. Auch wenn Sie dem Legacy-Flag vertraut haben, müssen Sie sobald Sie auf modernem Windows sind damit aufhören.
Welche Felder ein moderner ShimCache-Eintrag genau enthält, zeigt die Binärformat-Referenz — Offset für Offset.
Wie man eine Ausführung bestätigt
Behandeln Sie einen ShimCache-Treffer als Hypothese und bestätigen Sie ihn mit Artefakten, die tatsächlich Ausführung aufzeichnen:
- Prefetch (
C:\Windows\Prefetch\*.pf) — wird beim Prozessstart geschrieben und überlebt Neustarts. Eine passende Prefetch-Datei ist ein starker Ausführungs-Beweis. - AmCache (
Amcache.hve) — separate Registry-Hive, die ausgeführte und installierte Programme mit SHA-1-Hashes für eindeutige Identifikation protokolliert. (Warum beides? Siehe ShimCache vs. AmCache.) - Security- und Sysmon-Ereignisprotokolle — Prozesserstellungs-Events (4688, Sysmon 1) sind der zuverlässigste Ausführungs-Beweis überhaupt.
- UserAssist, BAM/DAM, RecentApps — zusätzliche registry-basierte Ausführungs-Signale.
Die Referenz zu Programmausführungs-Artefakten fasst zusammen, was jedes erfasst und wie verlässlich es in der Praxis ist.
Fazit
Ein ShimCache-Eintrag sagt aus, dass Windows zu irgendeinem Zeitpunkt eine bestimmte Datei betrachtet hat. Er ist ein hochsignal-trächtiger Anker, um Existenz zu beweisen — nicht Ausführung. Um zu behaupten, dass ein Programm gelaufen ist, kombinieren Sie den ShimCache mit Prefetch, AmCache oder Prozesserstellungs-Logs — und formulieren Sie Ihre Schlussfolgerung in einer Sprache, die zu den vorliegenden Beweisen passt.
Um den ShimCache einer SYSTEM-Hive jetzt zu analysieren, ziehen Sie sie in den Shimcache Parser. Alles läuft im Browser; die Datei verlässt die Seite nie.
Weiterführende Quellen
- Velociraptors
Windows.Registry.AppCompatCache— inkl. Notizen zur Historie des Execution-Flags. - Windows 10/11 AppCompatCache deep dive (Ø Security) — behandelt das entfernte Flag im Detail.
- ShimCache & AmCache forensic analysis (Mehrnoush) — praxisorientierter Walkthrough.