Jeder MFT-Eintrag speichert vier Zeitstempel in zwei getrennten Attributen — $STANDARD_INFORMATION und $FILE_NAME. Beide halten dieselben vier Zeitpunkte fest:
- Erstellt — als die Datei erstmals auf das Volume geschrieben wurde
- Geändert — als sich der Inhalt zuletzt änderte
- Zugegriffen — als die Datei zuletzt gelesen wurde
- MFT-geändert — als der Eintrag selbst zuletzt verändert wurde
Das sind acht Werte pro Eintrag. Sie sind nicht immer synchron.
Warum es zwei Sätze gibt
$STANDARD_INFORMATION (SI) wird bei jeder Routineoperation aktualisiert. $FILE_NAME (FN) wurde ursprünglich für POSIX-Kompatibilität hinzugefügt und wird weit seltener aktualisiert — typischerweise nur bei Erstellung, Umbenennung oder Verschieben zwischen Verzeichnissen.
In der Praxis bedeutet das: SI-Zeitstempel ticken ständig, FN-Zeitstempel bleiben stabil.
Timestomping hinterlässt Spuren
Werkzeuge, die Zeitstempel ändern, rufen meist die Windows-API SetFileTime auf. Diese schreibt in SI. Sie rührt FN nicht an.
Nach Timestomping zeigt SI, was der Angreifer wählte — oft um Jahre vordatiert — während FN weiterhin das wirkliche Erstellungsdatum widerspiegelt, manchmal mit großem Abstand.
Zwei Muster, auf die du beim Triage achten solltest:
- SI erstellt liegt vor FN erstellt. Eine Datei kann nicht existieren, bevor sie benannt wurde — natürlich unmöglich.
- SI und FN geändert weichen um mehr als ein paar Sekunden voneinander ab, obwohl die Datei offensichtlich nicht umbenannt oder verschoben wurde.
Beides ist ein starker Hinweis auf Metadaten-Manipulation.
Granularität sagt mehr aus
NTFS speichert Zeitstempel mit einer Auflösung von 100 Nanosekunden, viele Timestomping-Werkzeuge runden jedoch auf ganze Sekunden. Ein Zeitstempel, der auf .0000000 UTC endet, ist verdächtig — natürliche Windows-Aktivität lässt die Sub-Sekunden-Präzision in der Regel intakt.