.fseventsd sichern: tar, UAC, Aftermath, Velociraptor
So sichern Sie macOS-FSEvents-Logs, ohne ihre Änderungszeiten zu verlieren: ein tar-Befehl, UAC-Profile, Aftermath, Velociraptor und Disk-Images.
Kurzfassung. Archivieren Sie den ganzen Ordner, erhalten Sie die Änderungszeiten und schreiben Sie nichts auf das Beweismittel. Erteilen Sie auf einem laufenden Mac dem Terminal Festplattenvollzugriff (Full Disk Access) und führen Sie sudo tar -czf ~/Desktop/fseventsd.tar.gz -C /System/Volumes/Data .fseventsd aus. Das UAC-Profil ir_triage erledigt dasselbe im Rahmen einer umfassenderen Sicherung. Beide Archive lassen sich unverändert im FSEvents Parser ablegen. Die Kurzreferenz zu diesem Artefakt finden Sie im FSEvents-Spickzettel.
Was gesichert werden muss
| Pfad | Warum |
|---|---|
/System/Volumes/Data/.fseventsd/ | macOS 10.15 und neuer: Benutzeraktivität, Users/…, private/…, Library/… |
/.fseventsd/ | macOS 10.14 und älter (Startvolume) |
/Volumes/<name>/.fseventsd/ | Jedes externe Laufwerk, sofern vorhanden |
Nehmen Sie jede Datei im Ordner mit: die Logs mit Hex-Namen, fseventsd-uuid und, falls vorhanden, no_log. Der Parser verwendet die Zeit von fseventsd-uuid als Untergrenze des ältesten Logs, und ein fehlendes no_log ist selbst eine Information (siehe no_log).
Die Änderungszeiten sind das Beweismittel. Das Zeitfenster eines Datensatzes ergibt sich aus den mtimes der Logdateien (warum). tar, ditto und cp -p erhalten sie; AirDrop, E-Mail und viele Cloud-Uploads nicht.
Laufender Mac: ein Befehl
Erteilen Sie dem Terminal zuerst Festplattenvollzugriff (Systemeinstellungen → Datenschutz & Sicherheit → Festplattenvollzugriff). Ohne ihn scheitert das Lesen des Ordners mit „Operation not permitted“, selbst als root.
sudo tar -czf ~/Desktop/fseventsd-$(hostname -s).tar.gz -C /System/Volumes/Data .fseventsd
Bei einem angeschlossenen externen Laufwerk archivieren Sie dessen eigenen Ordner auf dieselbe Weise:
sudo tar -czf ~/Desktop/fseventsd-EXFIL.tar.gz -C /Volumes/EXFIL .fseventsd
Lieber einen einfachen Ordner? Auch ditto erhält die Änderungszeiten, und eine Verzeichnisliste dokumentiert sie unabhängig davon:
sudo ditto /System/Volumes/Data/.fseventsd ~/Desktop/fseventsd
sudo ls -laT /System/Volumes/Data/.fseventsd > ~/Desktop/fseventsd-listing.txt
Unter macOS 10.14 und älter ersetzen Sie -C /System/Volumes/Data durch -C /.
fseventsd schreibt während der Sicherung weiter: Das neueste Log kann kurz sein oder noch im Speicher liegen. Das ist zu erwarten; ein guter Parser behält jeden vollständigen Datensatz und meldet den Rest.
UAC
UAC sichert /.fseventsd und /System/Volumes/*/.fseventsd über sein Artefakt files/logs/macos.yaml. Die Profile ir_triage und full enthalten es:
sudo ./uac -p ir_triage /Volumes/CASE
Um nur das Log-Artefakt zu sichern:
sudo ./uac -a ./artifacts/files/logs/macos.yaml /Volumes/CASE
Führen Sie es in einem Terminal mit Festplattenvollzugriff aus. Das Ergebnis ist ein tar.gz, das die Änderungszeiten erhält; der FSEvents Parser liest es als Stream und verarbeitet nur die .fseventsd-Dateien.
Aftermath
Aftermath von Jamf sichert .fseventsd standardmäßig nicht. Fügen Sie den Ordner explizit hinzu:
sudo ./aftermath --collect-dirs /System/Volumes/Data/.fseventsd -o /Volumes/CASE
Legen Sie das resultierende ZIP ab und prüfen Sie dann den Tab Quellen: Zeigt jedes Log dieselbe Änderungszeit, wurden die Zeiten nicht erhalten, und Sie sollten mit tar erneut sichern.
Velociraptor
Zwei Möglichkeiten:
- Die Rohdateien sichern mit
Generic.Collectors.File, Root/und einer collectionSpec, die/System/Volumes/Data/.fseventsd/*und/.fseventsd/*auflistet. Legen Sie das Sicherungs-ZIP ab und prüfen Sie wie oben die Zeiten im Tab „Quellen“. - Auf dem Endpoint analysieren mit
MacOS.Forensics.FSEvents, das jeden Datensatz mit den Zeiten seiner Quelldatei ausgibt. Das eignet sich gut fürs Hunting über viele Macs hinweg; die Ausgabe ist allerdings eine Velociraptor-Ergebnistabelle, keine Dateien, die diese Seite liest. Die Standardwerte sind 10 MB fürMaxFileSizeund 600 Sekunden Timeout; erhöhen Sie beide bei großen Ordnern.
Disk-Images
Hängen Sie das Image schreibgeschützt und ohne Finder ein und archivieren Sie dann den Ordner des Data-Volumes:
hdiutil attach -readonly -nobrowse /cases/MBP01.dmg
sudo tar -czf ~/Desktop/fseventsd-image.tar.gz -C "/Volumes/Macintosh HD - Data" .fseventsd
Hängen Sie Beweismittel auf Ihrem Analyse-Mac niemals mit Schreibzugriff ein: Dessen eigenes fseventsd beginnt sonst, auf das Beweismittel-Volume zu protokollieren. Dasselbe gilt für USB-Laufwerke: Verwenden Sie einen Writeblocker. Bei E01-Images liest das FSEVENTS-Plugin von mac_apt den Ordner direkt und liefert eine nützliche Zweitmeinung.
Checkliste
- Festplattenvollzugriff für die sichernde App.
- Der ganze Ordner, einschließlich
fseventsd-uuidundno_log. tar,ditto,cp -poder UAC; mtimes erhalten.- Externe Laufwerke über einen Writeblocker.
- Nach dem Laden im Tab „Quellen“ bestätigen, dass die mtimes original wirken.
FAQ
Warum sind die Änderungszeiten der Dateien für FSEvents so wichtig?
FSEvents-Datensätze haben keine Zeitstempel. Die Änderungszeit jeder Logdatei ist die einzige Uhr; eine Kopie, die diese Zeiten zurücksetzt, macht jeden Datensatz zeitlich unbestimmbar.
Sichert UAC den Ordner .fseventsd?
Ja. Das Artefakt files/logs/macos.yaml sichert /.fseventsd und /System/Volumes/*/.fseventsd, und die Profile ir_triage und full enthalten es. Das Ergebnis ist ein tar.gz, das die Änderungszeiten erhält.
Warum scheitert tar mit Operation not permitted?
Der Terminal-App fehlt der Festplattenvollzugriff (Full Disk Access). Erteilen Sie ihn unter Systemeinstellungen, Datenschutz & Sicherheit, Festplattenvollzugriff und führen Sie den Befehl dann erneut mit sudo aus.