TL;DR. Bauen Sie eine fusionierte Timeline aus ShimCache + AmCache + Prefetch + BAM/DAM + Security/Sysmon. Nutzen Sie den ShimCache, um die Besetzung (Pfade) zu definieren, und reichern Sie dann jede Zeile mit Zeitstempeln aus anderen Quellen an. Etikettieren Sie jeden Zeitstempel mit seiner Quellsemantik — niemals „Datei-mtime" und „Prozessstart" in einer Spalte vermischen.
Eine Programmausführungs-Timeline ist das nützlichste Einzel-Artefakt, das ein Windows-IR-Ermittler produziert. Gut gemacht erzählt sie eine chronologische Geschichte über mehrere Quellen. Schlecht gemacht überzeichnet sie Beweise und wird angefochten. Dieser Beitrag zeigt, wie sie mit dem ShimCache als Rückgrat entsteht.
Warum der ShimCache ein gutes Rückgrat ist
Der ShimCache ist selten die genaueste Quelle für ein einzelnes Feld, hat aber als zeitlicher Anker einzigartige Vorteile:
- Er trägt den Dateipfad explizit (manche Artefakte haben nur Hashes oder Teilpfade).
- Er erfasst ausführbare Dateien, die Windows nur untersucht hat — also auch Binärdateien, die kurz liefen und gelöscht wurden, was Prefetch und BAM verpassen können.
- Er übersteht viele Anti-Forensik-Versuche, die andere Artefakte wischen (mit wichtigen Einschränkungen).
Nutzen Sie den ShimCache, um die Besetzung der Timeline festzulegen, und reichern Sie dann jede Zeile mit korroborierenden Artefakten an, um verlässliche Zeiten zuzuweisen.
Die Datenquellen, die zu vereinen sind
Eine vollständige Programmausführungs-Timeline zieht aus mindestens diesen fünf Quellen:
| Quelle | Was sie der Zeile hinzufügt |
|---|---|
| ShimCache | Pfad + Datei-mtime |
| AmCache | SHA-1, Größe, Hersteller, Installationsdatum, erstes Ausführungsdatum |
| Prefetch | Prozessstart-Zeiten (bis zu letzte 8), geladene Dateien |
| BAM/DAM | „Letzte Ausführung"-Zeitstempel pro Benutzer auf Win10/11 |
| Security/Sysmon | Prozesserstellungs-Events mit Kommandozeile, Parent, Benutzer |
Für die Einzelheiten siehe die Referenz zu Programmausführungs-Artefakten.
Ein reproduzierbarer Workflow
- Artefakte sammeln. SYSTEM-Hive (mit Transaktionslogs),
Amcache.hve,C:\Windows\Prefetch\*.pf, exportiertes Security-Eventlog, Sysmon-Log, falls vorhanden. - Jedes in eine normalisierte Tabelle parsen. Nutzen Sie die Eric-Zimmerman-Suite (
AppCompatCacheParser,AmcacheParser,PECmd) oder den Shimcache Parser für den ShimCache-Teil im Browser. - Über (Pfad, optional SHA-1) joinen. Der Join-Key ist der Pfad, SHA-1 als sekundäres Signal, wenn AmCache es liefert. Achtung: Der ShimCache hat den Pfad evtl. leicht anders (Groß/Klein, Normalisierung).
- Jeden Zeitstempel mit seiner Quellsemantik kennzeichnen. Mischen Sie nicht „AmCache Install-Datum" und „Prefetch Run-Time" in einer Spalte — sie beantworten andere Fragen. Nebeneinander, aber getrennt halten.
- In ein Tool ausgeben, das pro Zeile Quellzuordnung kann. Eric Zimmermans Timeline Explorer (TLE) und Plaso / log2timeline machen das gut. CSV im Spreadsheet reicht für kleinere Fälle.
Wie „gut" aussieht
Eine verteidigbare Zeile in einer finalen Timeline sieht etwa so aus:
2026-04-12 09:14:33 UTC C:\Users\alice\AppData\Local\Temp\setup.exe
ShimCache mtime : 2026-04-12 09:14:30 UTC
AmCache : SHA-1 a3b8c9…, Signatur „Acme Updates", install 2026-04-12 09:14:33
Prefetch : letzte Ausführung 2026-04-12 09:15:01 UTC (1 Ausführung)
Security 4688 : 2026-04-12 09:15:01 UTC, PID 4521, Parent-PID 1234 (svchost.exe)
Jeder Zeitstempel ist quellenbasiert, die Zeile steht Anfechtungen durch. Das Gegenteil — „der ShimCache zeigt, dass setup.exe um 09:14:33 lief" — verwechselt Datei-mtime mit Ausführungszeit und ist die Sorte Behauptung, die einen Bericht kippt. Siehe Proof of Execution.
Wenn Quellen sich widersprechen
Konflikte sind nützliche Daten:
- ShimCache-mtime ≠ Prefetch-erste-Ausführung. Normal — sie messen Unterschiedliches. Beide notieren, nicht eine wählen.
- AmCache sagt ausgeführt, ShimCache leer für diese Datei. Mögliche Gründe: anti-forensisches Wischen (Erkennungsmuster), Eintrag aus 1.024er-Limit verdrängt, Binärdatei lief nach letztem sauberen Shutdown.
- Prefetch fehlt. Server-SKUs und SSD-lastige Hosts haben Prefetch oft deaktiviert — auf AmCache + BAM zurückfallen.
Am richtigen Punkt aufhören
Eine Timeline muss nicht vollständig sein, um wertvoll zu sein. Ein fokussiertes Fenster — „Was lief auf Host X zwischen 14:00 und 18:00 am 2026-04-11?" — rigoros gebaut schlägt eine ausufernde mit schwacher Attribution. Der Malware-Hunting-Workflow hilft beim Eingrenzen.
Weiterführende Quellen
- Plaso / log2timeline — Open-Source-Timeline-Engine, die ShimCache, AmCache, Prefetch und Dutzende mehr verdaut.
- Eric-Zimmerman-Tools — Referenzparser + Timeline Explorer.
- Velociraptor
Windows.Registry.AppCompatCache— Sammlung in Größe.