RecentFileCache vs AmCache: welches auf Ihrem Host ist und warum
Die BCF und die AmCache lösen überlappende Probleme auf verschiedenen Windows-Versionen. Zu wissen, welche Sie haben und warum, entscheidet, was Sie behaupten können.
Wenn Sie Artefakte von einem unbekannten Host ziehen und sowohl RecentFileCache.bcf als auch Amcache.hve in C:\Windows\AppCompat\Programs\ finden, halten Sie inne und prüfen Sie den Windows-Build. Sie schauen sich etwas Ungewöhnliches an.
Auf einem normalen Win7 SP1 Host: nur BCF. Auf einem normalen Win8 oder späteren Host: nur AmCache. Beide: ein Win7 Host, der in-place auf Win10 aktualisiert wurde und die alte Datei geerbt hat. Das passiert. Selten.
Die beiden Artefakte lösen überlappende Probleme, aber sie sind nicht dasselbe, und die Grenzen sind wichtig, wenn Sie Befunde schreiben.
Die Versionsgrenze
RecentFileCache.bcf war die Arbeitsdatei für den Application-Experience-Appraiser auf Windows 7 SP1 und Windows Server 2008 R2. Ab Windows 8 ersetzte Microsoft die Appraiser-Pipeline und die BCF verschwand. Der Ersatz, Amcache.hve, ist ein Registry-Hive im ESE-Stil mit reicheren Pro-Eintrag-Metadaten. Die beiden Formate waren nie dazu gedacht zu koexistieren.
Die Versionsgrenze ist scharf. Windows 8 RTM schreibt keine BCF. Windows 7 SP1 schreibt keine AmCache. Es gibt keinen Mittelweg in normalem Betrieb.
Die Ausnahme, und sie ist real: Ein In-Place-Upgrade von Windows 7 auf Windows 10 kann die alte RecentFileCache.bcf auf der Disk hinterlassen, weil der Installer sie nicht löscht. Der Win10-Appraiser wird sie nicht anfassen. Die Datei sitzt einfach da. Ich habe das persönlich zweimal auf langlebigen Enterprise-Endpoints gesehen, deren Besitzer erst saubere Ersatzgeräte gemacht haben, nachdem die Hardware gestorben war. Beide Male enthielt die BCF Einträge aus Jahren vor dem Upgrade. Nützlich in dem Sinne, dass es die Ausführung an ein bestimmtes Jahr knüpfte. Nicht nützlich für aktuelle Untersuchungen.
Lebenszyklus-Unterschiede
Hier divergieren die beiden am meisten.
Die BCF ist ein Write-Ahead-Log. Die Application-Experience-Aufgabe verarbeitet die Datei etwa täglich und kürzt sie dann. Eine Binärdatei in der BCF lief in etwa den letzten 24 Stunden. Ältere Ausführungen sind weg.
Die AmCache ähnelt eher einer langlebigen Datenbank. Die Root\InventoryApplicationFile-Schlüssel überdauern Bewertungsdurchläufe. Einträge können für die Lebenszeit der Installation überleben. Die Kadenz der Schreibvorgänge ist auch anders: AmCache-Updates passieren während des Bewertungsdurchlaufs, aber alte Einträge werden nicht im gleichen Rhythmus geleert. Sie können AmCache-Einträge finden, die Monate alt sind.
Für Untersuchungen bedeutet das:
- BCF beantwortet "ist das im letzten Tag oder so gelaufen?"
- AmCache beantwortet "wurde das in der jüngeren Geschichte irgendwann auf dieser Maschine gesehen?"
Zwei verschiedene forensische Fragen. Zwei verschiedene Beweisformen.
Was jeder aufzeichnet
Die BCF zeichnet auf:
- Vollständigen NT-Pfad der ausführbaren Datei.
- Nichts anderes.
Die AmCache zeichnet auf:
- Vollständigen Pfad.
- SHA1-Hash der ersten 31 Megabytes der Datei (oder der ganzen Datei, wenn kleiner).
- Dateigröße, PE-Header-Zeitstempel, Link-Datum.
- Herausgeber, Produktname, Version (aus den PE-Ressourcen).
- Eine Installationszeit-Annäherung.
- Treiberspezifische Schlüssel unter
Root\InventoryDriverBinary. - Eine Reihe weiterer weniger konsistent befüllter Felder, abhängig vom Windows-Build.
Der Hash ist der große. Mit der AmCache können Sie zu Threat Intel pivotieren. Mit der BCF nicht. Sie müssen die Binärdatei von der Disk erfassen oder sie aus einer anderen Quelle rekonstruieren und selbst hashen.
Im Gegenzug gibt die BCF Ihnen etwas, was die AmCache nicht gibt: eine strengere Behauptung über die Ausführung. Der Inhalt der BCF ist auf Binärdateien beschränkt, die der Appraiser für ausgeführt hält. Die AmCache hat Spalten, die auf Ausführung hindeuten (die Root\InventoryApplicationFile-Last-Modified-Zeitstempel zum Beispiel), aber die AmCache selbst ist mehr inventur-förmig als ausführungs-förmig. Viele Binärdateien in der AmCache sind nie auf dem Host gelaufen; der Appraiser hat sie gescannt. Die BCF ist, wenn sie existiert, näher an einem sauberen Ausführungsdatensatz.
Wenn Sie nur die AmCache haben, lehnen Sie sich an Prefetch und EVTX 4688 / Sysmon 1 für die Ausführungsbestätigung. Die AmCache allein beweist nicht, dass eine Binärdatei gelaufen ist. Die BCF allein tut es, innerhalb einer Bewertungsfenster-Marge.
Wann Sie beide sehen würden
Der legitime Fall, den ich oben beschrieben habe: ein Host, der von Win7 auf Win10 aktualisiert wurde, mit der alten BCF noch vorhanden. Die BCF-Einträge stammen aus dem Vor-Upgrade-Leben der Maschine.
Der weniger legitime Fall: jemand hat als Ablenkung eine RecentFileCache.bcf auf einen Win10 Host abgesetzt. Ich habe das genau einmal gesehen, in einem CTF, nie in einem echten Vorfall. Erwähnenswert, weil es eine Möglichkeit ist, nicht weil es häufig ist. Prüfen Sie die MFT-Erstellungszeit der Datei gegen das Installationsdatum des Systems. Eine BCF, die letzte Woche auf einer 2022 installierten Win10-Box erstellt wurde, ist fake.
Der dritte Fall, der nicht "beide gleichzeitig" ist, aber erwähnenswert: ein Win7 Host, der in eine Domain migriert wurde, deren Richtlinie die Appraiser-Aufgabe deaktiviert. Die BCF akkumuliert, ohne geleert zu werden. Sie können mit einer BCF enden, die achtzehn Monate an Ausführungen enthält, weil nichts sie rotiert hat. Diese Datei ist eine Goldmine, und Sie sollten sie beim Erstkontakt schnappen.
Einen BCF-Eintrag in AmCache-Denken übersetzen
Wenn Sie ein Analyst sind, dessen ganze Karriere auf Windows 10 stattgefunden hat, kann sich die BCF unvertraut anfühlen. Zwei Übersetzungen, die helfen:
- Ein BCF-Eintrag entspricht einer
InventoryApplicationFile-Zeile, die seit dem letzten Bewertungsdurchlauf hinzugefügt wurde, minus aller Metadaten-Spalten. - Den "Last Execution Timestamp", nach dem Sie in AmCache-Parsern greifen, gibt es in der BCF nicht. Das Nächste ist der Last-Modified-Zeitstempel der Datei selbst, der Ihnen sagt, wann der Appraiser zuletzt darauf geschrieben hat, nicht wann irgendein einzelner Eintrag lief.
Wenn Sie in der AmCache-Welt leben und auf einen Win7-Fall wechseln, ist der Verlust von Metadaten der schwierigste Teil. Sie gehen von "Ich kenne den Hash, den Herausgeber und ungefähr wann es installiert wurde" zu "Ich kenne den Pfad". Der Pfad ist immer noch nützlich. Er ist nur nicht so viel.
Praktischer Entscheidungsbaum
Wenn Sie auf einem Host landen und wissen müssen, welches Artefakt zu ziehen ist:
- Prüfen Sie den Build.
winveroder dieSetup\InstallationType- /CurrentVersion-Werte des SYSTEM-Hives. - Wenn Win7 SP1 oder Server 2008 R2: BCF. Schnappen Sie sie vor dem nächsten Bewertungsdurchlauf.
- Wenn Win8 oder später: AmCache. Die BCF, wenn vorhanden, ist historisch und wahrscheinlich nicht relevant.
- Wenn beide: wahrscheinlich ein In-Place-Upgrade. Behandeln Sie die BCF als Vor-Upgrade-Geschichte und die AmCache als aktuell.
- Wenn Sie auf Server 2012 R2 sind, erwarten Sie AmCache und ein eigenwilliges früheres Schema. Der AmCache-Parser handhabt die Schema-Variationen.
Paaren Sie beide Artefakte mit den bestätigenden Quellen, mit denen Sie immer Ausführungsbeweise paaren: Prefetch, Shimcache, USN-Journal und MFT. Keines davon ist ein eigenständiger Beweis.
Eine Anmerkung zur Tooling-Parität
Die forensische Community hat seit über einem Jahrzehnt produktionsreife Parser für beide Formate. Die BCF ist wirklich einfach zu parsen; die AmCache ist schwieriger, weil das ESE-Format und die Schema-Varianz über Windows-Builds Komplexität hinzufügen. Eric Zimmermans AmcacheParser ist die Referenz für die AmCache. Für die BCF produzieren mehrere Open-Source-Parser und der Parser auf dieser Seite alle äquivalente Ausgaben, weil das Format keinen Spielraum für Interpretation lässt.
Weiterführende Literatur
- Yogesh Khatri, AmCache.hve in Windows 8: eine Goldmine für Malware-Hunter. Der Beitrag, der die AmCache der Community vorstellte.
- Willi Ballenthin, RecentFileCache.bcf. Das Begleitstück für die BCF.
- Blanche Lagny, Analyse der AmCache. Der gründlichste Deep-Dive zur AmCache-Semantik.
Wenn Sie sich bei einem 2026er Vorfall nach der BCF strecken, ist der Host älter als der Analyst. Beides kann passieren.