Manipulation von Windows Prefetch erkennen
Wenn Prefetch zu den besten Ausführungsartefakten gehört, die Windows hervorbringt, dann gehört es auch zu den Artefakten, die Angreifer am häufigsten zu beseitigen versuchen. Ein erfahrener Eindringling wird Ausführungszähler und Zeitstempel nur selten unangetastet lassen. So sieht jede gängige Form der Manipulation unter der Analyse aus.
Pauschales Löschen
Der grobe Ansatz: del /q C:\Windows\Prefetch\*.pf. Der Fußabdruck ist
offensichtlich — eine stark genutzte Workstation fällt von Hunderten
von Prefetch-Dateien auf nur noch wenige, die alle erst sehr kurz
nach dem Löschvorgang neu angelegt wurden, während das System
weiterläuft.
Signal: Eine Dateianzahl, die weit unter dem Baseline-Wert für die
OS-Version und das Alter der Maschine liegt. Eine sechs Monate alte
Workstation mit zwölf .pf-Dateien ist verdächtig.
Gegenanalyse: Prefetch-Dateien hinterlassen beim Löschen Einträge
im NTFS-Journal. Ziehen Sie $LogFile und $UsnJrnl, und Sie können
unter Umständen sowohl Dateinamen als auch Zeitstempel der gelöschten
Einträge rekonstruieren. Die Tatsache der Löschung ist selbst schon
ein Beweis.
Gezieltes Löschen
Vorsichtiger: Nur die .pf-Datei der schädlichen Binärdatei wird
gelöscht. Alles andere wirkt normal.
Signal: Ein Prozess, dessen Ausführung Sie nachweisen können (über Security 4688, Sysmon oder Amcache), hat auf einem Host mit aktiviertem Prefetch keinen zugehörigen Prefetch-Eintrag. Auf gezieltes Löschen lässt sich auch dann schließen, wenn der Änderungszeitstempel des Verzeichnisses verdächtig aktuell ist im Vergleich zu seinem Inhalt.
Gegenanalyse: Gleichen Sie Amcache und ShimCache ab, um den
fehlenden Pfad zu rekonstruieren. Carven Sie den nicht allokierten
Bereich des Systemvolumes nach .pf-Dateien; Xpress-komprimiertes
Prefetch hinterlässt einen markanten MAM\x04-Header, nach dem sich
leicht scannen lässt.
Untergeschobene Prefetch-Dateien
Subtiler: Eine Prefetch-Datei von einer anderen Maschine wird auf das Zielsystem kopiert, um ein falsches Alibi zu schaffen (oder, in Red-Team-Übungen, um die SOC-Erkennung zu testen).
Signal: Der Prefetch-Hash im Dateinamen passt nicht zu dem Wert, den der Hash-Algorithmus für den in der Prefetch-Payload eingebetteten ausführbaren Pfad erzeugt. Berechnen Sie den Hash auf dem geparsten Pfad neu und vergleichen Sie ihn mit dem Suffix des Dateinamens — eine Abweichung ist beweiskräftig.
Weitere Anzeichen: NTFS-Datensatz-Zeitstempel, die nicht zum geparsten Prefetch-Inhalt passen; identische FILETIME-Werte in „verschiedenen" Prefetch-Dateien (ein Angreifer hat dieselbe Vorlage mehrfach kopiert).
Gefälschte Ausführungszähler und Zeitstempel
Der chirurgischste Angriff: eine echte Prefetch-Datei wird in situ editiert, um den Ausführungszähler zu senken oder die Zeitstempel zu ändern. Das ist selten, weil es Kenntnis des Formats voraussetzt, kommt aber vor.
Signal: SCCA-Prüfsummen (sofern vorhanden) schlagen fehl. Zeitstempel, die nicht zur NTFS-Modifikationszeit der Datei passen. Ausführungszähler, die zwischen zwei Sammlungen sinken — Windows erhöht ihn ausschließlich, ein Rückgang bedeutet also, dass etwas anderes die Datei geschrieben hat.
Prefetch deaktiviert
Die Vor-dem-Angriff-Variante: Windows wird so konfiguriert, dass Prefetch erst gar keine Dateien anlegt. Siehe Warum Windows Server keine Prefetch-Dateien hat für die Registry-Indikatoren, auf die Sie achten sollten.
Signal: PrefetchParameters\EnablePrefetcher = 0 in der Registry
auf einer Workstation, wo der Standardwert 3 ist. In Kombination mit
einem leeren Prefetch\-Ordner ist das ein starkes Indiz dafür, dass
das System vorab so konfiguriert wurde, dieses Artefakt zu
unterdrücken.
Das Gesamtbild
Wenn Prefetch-Beweise für einen Fall zählen, lautet die Frage selten „Lief diese Datei?". Sie lautet „Kann ich dem trauen, was dieser Prefetch-Eintrag aussagt?". Behandeln Sie die Antwort wie jedes andere Beweisstück: erhärten Sie sie. Ein einzelner Prefetch-Eintrag ist ein Hinweis; ein Prefetch-Eintrag, der mit Amcache, ShimCache, dem Security-Log und Sysmon übereinstimmt, ist eine Aussage.