Zum Inhalt springen

DateizugriffAnti-Forensik

APFS-Zeitstempel und lokale Snapshots unter macOS

APFS-Zeitstempel in Nanosekunden, Hinzugefügt-Datum in Ordnern und lokale Time-Machine-Snapshots: die Basis für Zeitleisten und Wiederherstellung.

Speicherort
/System/Volumes/Data
Belegt
Wann Dateien erstellt, geändert und einem Ordner hinzugefügt wurden und wie das Volume Stunden zuvor aussah
Zeitstempel
Nanosekunden seit 1970-01-01 UTC (Unix-Epoche)
Zugriff
Jeder Benutzer für stat auf eigene Dateien; root plus Full Disk Access zum Einhängen von Snapshots
Aufbewahrung
Zeitstempel bis zum Überschreiben; stündliche lokale Snapshots werden etwa 24 Stunden behalten
Sicherung
UAC, Aftermath, tmutil, Disk image

Was es ist

APFS ist seit macOS 10.13 High Sierra das Standarddateisystem für SSD-Boot-Volumes. Jeder Inode speichert vier Zeitstempel mit Nanosekundenauflösung, und jeder Verzeichniseintrag speichert zusätzlich einen eigenen Wert für das Hinzufügedatum (Date Added). APFS arbeitet mit Copy-on-Write und kann daher auch günstige schreibgeschützte Snapshots eines Volumes vorhalten. Time Machine nutzt sie als „lokale Snapshots“, und macOS erstellt einen vor der Installation von Updates.

Zusammen bilden sie die erste Ebene jeder Mac-Zeitleiste, eine Möglichkeit, Zeitstempel auf Manipulation zu prüfen, und manchmal eine Kopie einer Datei, die inzwischen geändert oder gelöscht wurde. Der Leitfaden zu APFS-Snapshots und Zeitstempeln erklärt das Volume-Layout und das Kopierverhalten ausführlich, diese Seite ist die Kurzreferenz.

Wo es liegt

macOSWorauf zu achten istHinweise
10.15 Catalina und neuerData-Volume, eingehängt unter /System/Volumes/DataBenutzerdateien; per Firmlink in /Users, /Applications, /Library, /private eingebunden
11 Big Sur und neuerDas Systemvolume ist ein versiegeltes SystemvolumeVon Apple ausgelieferte Inhalte, selten fallrelevant
10.13 und neuerLokale Snapshots auf jedem APFS-Volume, das Time Machine sichertNamen com.apple.TimeMachine.YYYY-MM-DD-HHMMSS.local
Aktuelles macOSUpdate-SnapshotsVor der Installation von macOS-Updates erstellt
Alle/usr/share/firmlinks auf dem SystemvolumeOrdnet Root-Pfade den Pfaden auf dem Data-Volume zu

Schutz: stat funktioniert für alles, was der Benutzer sehen kann. Das Auflisten und Einhängen von Snapshots erfordert root, und das Lesen TCC-geschützter Pfade in einem eingehängten Snapshot erfordert weiterhin Full Disk Access. Offline muss ein Data-Volume mit FileVault oder auf Apple silicon zuerst entsperrt werden.

Was es belegt

  • Wann ein Datei-Inode erstellt wurde (Birth), wann sich sein Inhalt zuletzt geändert hat (mtime) und wann sich seine Metadaten zuletzt geändert haben (ctime).
  • Wann ein Objekt in seinen aktuellen Ordner gelegt wurde (Date Added), unabhängig von den eigenen Zeitstempeln der Datei.
  • Dass eine Datei zum Zeitpunkt eines Snapshots mit einem bestimmten Inhalt existierte.
  • Wahrscheinliches Timestomping, wenn ctime, Nanosekunden oder Date Added der mtime und der Erstellungszeit widersprechen.

Es belegt nicht:

  • Dass eine Datei gelesen wurde. Die Zugriffszeit wird standardmäßig nur verzögert aktualisiert (siehe unten).
  • Wer eine Änderung vorgenommen hat. Zeitstempel sind keinem Benutzer und keinem Prozess zugeordnet.

Wichtige Felder

APFS-Feldstat / POSIXBedeutung
create_timest_birthtime (%SB)Inode erstellt
mod_timest_mtime (%Sm)Inhalt zuletzt geändert
change_timest_ctime (%Sc)Inode-Attribute zuletzt geändert (Rechte, Eigentümer, xattrs, Zeitstempel, Name)
access_timest_atime (%Sa)Letzter Zugriff, abhängig von der atime-Richtlinie
date_added (Verzeichniseintrag j_drec_val_t)Spotlight kMDItemDateAdded, Finder „Hinzugefügt am“Wann der Eintrag seinem aktuellen Verzeichnis hinzugefügt wurde
Snapshot-Name und XIDdiskutil apfs listSnapshotsName und Transaktions-ID; XIDs ordnen Snapshots

Richtlinie für die Zugriffszeit: Sofern das Volume nicht das Flag APFS_FEATURE_STRICTATIME trägt, aktualisiert APFS access_time bei einem Lesevorgang nur, wenn der gespeicherte Wert älter als mod_time ist. Das Data-Volume wird normalerweise ohne strikte atime eingehängt, daher ist atime ein schwacher Beleg für das Lesen.

Zeitstempel

Alle APFS-Zeitstempel, einschließlich date_added, sind 64-Bit-Zähler der Nanosekunden seit 1970-01-01 00:00:00 UTC. Der Finder zeigt nur ganze Sekunden, stat kann mehr anzeigen.

# Readable birth, modify, change, access
stat -f "B:%SB M:%Sm C:%Sc A:%Sa" -t "%Y-%m-%d %H:%M:%S %z" report.pdf

# Raw nanosecond value to a date (divide by 1e9)
date -u -r $(( 1759133456123456789 / 1000000000 ))

Namen lokaler Snapshots enthalten Datum und Uhrzeit: Behandeln Sie diese als ungefähre Erstellungszeit und bestätigen Sie die Zeitzone auf dem untersuchten System, bevor Sie sich darauf stützen.

Aufbewahrung

  • Dateizeitstempel bleiben bis zur nächsten Änderung derselben Art bestehen; ctime ändert sich bei nahezu jeder Bearbeitung der Metadaten.
  • Lokale Snapshots von Time Machine: Apple dokumentiert etwa stündlich einen Snapshot des Startvolumes, der jeweils 24 Stunden behalten wird, plus einen für das letzte erfolgreiche Backup, der behalten wird, bis Platz benötigt wird. Wenig freier Speicher kann sie früher entfernen.
  • Snapshots existieren nur, wenn Time Machine (oder andere Software, die Snapshots nutzt) aktiv ist; viele Macs haben daher keine.

Sicherung

Dokumentieren Sie zuerst den Snapshot-Zustand, da er sich von selbst ändert:

tmutil listlocalsnapshots /
tmutil listlocalsnapshotdates /
diskutil apfs listSnapshots /System/Volumes/Data

Hängen Sie einen Snapshot schreibgeschützt ein und kopieren Sie heraus, was Sie benötigen (root, Full Disk Access):

sudo mkdir /tmp/snap
sudo mount_apfs -o rdonly -s com.apple.TimeMachine.2026-09-28-101500.local /System/Volumes/Data /tmp/snap
sudo ditto /tmp/snap/Users/alice/Downloads /Volumes/CASE/MBP01/snap_Downloads
sudo umount /tmp/snap
  • UAC ir_triage führt tmutil listlocalsnapshots und tmutil listlocalsnapshotdates aus und erstellt ein Bodyfile der Dateizeitstempel.
  • Aftermath durchläuft mit --deep das Dateisystem nach Erstellungs-, Änderungs- und Zugriffszeiten; der Standardlauf deckt gängige Verzeichnisse ab.
  • tmutil localsnapshot erstellt einen neuen Snapshot, um das Volume vor einer langen logischen Sicherung einzufrieren. Das verändert das System, dokumentieren Sie es daher.
  • Dead-Box: Erstellen Sie ein Image des gesamten Containers; Tools, die APFS-Volume-Gruppen verstehen, stellen dann beide Volumes und die Snapshots bereit.

Auswertung

  • libfsapfs: fsapfsinfo untersucht einen Container und kann ein Bodyfile aller Dateieinträge schreiben; fsapfsmount hängt ein Volume aus einem Image ein. Verschlüsselte Volumes akzeptieren eine Option für Passwort oder Wiederherstellungsschlüssel.
# -o takes the byte offset of the APFS container inside the image
fsapfsinfo -o <container_offset_bytes> -B /cases/MBP01/apfs.body /cases/MBP01.raw
  • The Sleuth Kit unterstützt APFS (Pool-Ebene) für Auflistungen auf Image-Ebene.
  • mac_apt öffnet APFS-Images (auch separat eingehängte System- und Data-Volumes) und mit Passwort oder Wiederherstellungsschlüssel auch verschlüsselte; seine Plugins geben dann Zeitstempel pro Artefakt aus.
  • Wandeln Sie Bodyfiles mit Ihren gewohnten Werkzeugen in eine Zeitleiste um (zum Beispiel mactime aus The Sleuth Kit).

Tipps für die Untersuchung

  • Eine Erstellungszeit vor dem Date Added ist bei Downloads und Kopien normal: Die Datei existierte zuerst anderswo.
  • touch und ähnliche Tools können ctime nicht setzen. Eine alte mtime mit einer jungen ctime erfordert eine Erklärung.
  • Zeitstempel, die aus einem eingetippten Wert gesetzt wurden, haben oft einen Nanosekundenanteil von null. Eine Häufung von .000000000-Werten zwischen normalen Nachbarn ist ein starker Hinweis auf Timestomping.
  • Gleichen Sie mit FSEvents (InodeMetaMod), dem Date Added in Spotlight und den Quarantäne-Ereignissen ab; keines davon wird von touch überschrieben.
  • Deduplizieren Sie Firmlink-Duplikate (/Users/... gegenüber /System/Volumes/Data/Users/...) nach Inode, nicht nach Pfad.
  • Beim Live-Kopieren werden Dateien gelesen, was atime berühren kann. Bevorzugen Sie ein Image oder sichern Sie aus einem eingehängten Snapshot.
  • Für eine längere Historie als die lokalen Snapshots sehen Sie sich Time-Machine-Backups auf externen oder Netzwerkzielen an.

Siehe auch