Glossar
LaunchAgent / LaunchDaemon
Property Lists, die launchd anweisen, ein Programm automatisch zu starten, pro Benutzer oder systemweit; ein klassischer Persistenzort unter macOS.
Ein LaunchAgent ist eine Property List (.plist), die launchd anweist, ein Programm im Namen eines Benutzers automatisch zu starten, meist bei der Anmeldung (RunAtLoad), nach Zeitplan oder dauerhaft laufend (KeepAlive). Benutzerspezifische Agents liegen in ~/Library/LaunchAgents, solche für alle Benutzer in /Library/LaunchAgents. Ein LaunchDaemon ist das systemweite Gegenstück in /Library/LaunchDaemons: Er läuft beim Systemstart als root, ohne dass sich jemand anmeldet. Apples eigene Agents und Daemons liegen unter /System/Library auf dem schreibgeschützten Systemvolume.
Warum das für Untersuchungen wichtig ist
Diese Ordner gehören zu den häufigsten Persistenzorten unter macOS. Legitime Updater und Hilfsprogramme nutzen sie täglich, Malware ebenso, denn eine plist ist schnell abgelegt und übersteht Neustarts. Die plist nennt in ProgramArguments das zu startende Programm; die Datei selbst ist daher der beste Beleg, sofern sie noch existiert.
FSEvents bewahrt die Geschichte oft auch dann, wenn die Datei verschwunden ist. Ein Datensatz in Users/<name>/Library/LaunchAgents/ oder Library/LaunchDaemons/ zeigt, dass die plist erstellt, umbenannt, geändert oder entfernt wurde, und die Node-ID verbindet einen temporären Namen mit dem endgültigen. Der FSEvents Parser meldet Schreibvorgänge direkt in diesen Ordnern als Befund. FSEvents verrät weder, was die plist enthielt, noch ob launchd sie geladen hat: Kombinieren Sie den Befund mit dem Inhalt der plist, den Unified Logs und den Spuren des Programms selbst.
Beispiel
Im synthetischen Beispiel gelangt com.example.updater.plist über eine Umbenennung in den Agents-Ordner des Benutzers:
Users/dana.whitlock/Library/LaunchAgents/com.example.updater.plist.tmp:Created;Modified;File- der
.tmp-Name, danncom.example.updater.plist:Renamed;File, gleiche Node-ID com.example.updater.plist:InodeMetaMod;File
Alle drei liegen im Logfenster 10:09:55 bis 10:23:18 UTC, kurz nach einem Schreibvorgang in TCC.db: eine Abfolge, die einer Erklärung bedarf.
Verwandte Begriffe
Filtern Sie im FSEvents Parser nach LaunchAgents, und sehen Sie diesen Persistenzschritt im Zusammenhang im Exfiltrationsbeispiel.