knowledgeC.db: Speicherort und Sicherung der Biome-Streams
Wo knowledgeC.db und Biome-Streams unter macOS liegen und wie Sie sie mit Terminal, UAC, Velociraptor oder aus einem Abbild sichern, ohne das WAL zu verlieren.
Kurz gesagt. Die Benutzer-knowledgeC.db liegt in ~/Library/Application Support/Knowledge/, die Systemdatenbank in /private/var/db/CoreDuet/Knowledge/ und die Biome-Streams des Benutzers in ~/Library/Biome/streams/. Erteilen Sie Terminal oder dem Sicherungswerkzeug Festplattenvollzugriff, kopieren Sie jede Datenbank mit ihrer -wal und -shm, kopieren Sie den kompletten Biome-Ordner, hashen Sie alles und öffnen Sie niemals die Originale. UAC und Velociraptor können helfen, haben aber jeweils Lücken; für die durch SIP geschützten Systemspeicher erstellen Sie ein Abbild der Festplatte oder des Data-Volumes, statt SIP zu deaktivieren.
Was diese Speicher enthalten, erklärt der Leitfaden zur forensischen Analyse von knowledgeC.db. Kurzreferenzen zu beiden Artefakten finden Sie auf den macOS-Forensik-Spickzetteln: knowledgeC.db und Biome SEGB.
Was Sie sichern sollten
| Speicher | Pfad | Schutz |
|---|---|---|
| knowledgeC, System | /private/var/db/CoreDuet/Knowledge/knowledgeC.db + -wal, -shm | root, durch SIP eingeschränkt |
| knowledgeC, Benutzer | ~/Library/Application Support/Knowledge/knowledgeC.db + -wal, -shm | TCC: Festplattenvollzugriff |
| Biome, Streams des Benutzers | ~/Library/Biome/streams/restricted/<Stream>/local/ und ~/Library/Biome/streams/public/<Stream>/local/ | TCC: Festplattenvollzugriff |
| Biome, von anderen Geräten synchronisiert | …/<Stream>/remote/<device UUID>/ | Ebenso |
| Biome, abgelaufene Dateien | …/<Stream>/local/tombstone/ | Ebenso |
| Biome, System-Streams | /private/var/db/biome/streams/ | Gehört _biome, durch SIP eingeschränkt |
Unter iOS liegt der Biome-Speicher des Benutzers in /private/var/mobile/Library/Biome/; dieser Artikel behandelt macOS.
Die Zeile mit -wal ist nicht optional. knowledgeC läuft im WAL-Modus, und aktuelle Ereignisse sind oft nur im WAL festgeschrieben; warum das so ist und wie Sie es nutzen, steht in aktuelle Ereignisse aus knowledgeC.db-wal retten. Sichern Sie bei Biome auch remote/ und tombstone/, selbst wenn Sie sie nicht verwenden wollen: Remote-Datensätze müssen erkannt werden, um sie ausschließen zu können, und Tombstone-Dateien enthalten abgelaufene Daten, die Parser oft übergehen.
Zugriff: TCC, Festplattenvollzugriff und SIP
Zwei Schutzmechanismen greifen, und sie sind verschieden.
- TCC schützt die Benutzerkopien. Einem Prozess ohne Festplattenvollzugriff wird der Zugriff auf diese Ordner verweigert, selbst wenn er als root läuft. Erteilen Sie das Recht Terminal (Systemeinstellungen, Datenschutz & Sicherheit, Festplattenvollzugriff) oder Ihrem Sicherungswerkzeug und starten Sie die App anschließend neu.
- SIP schützt die Systemspeicher. UAC dokumentiert, dass es
/private/var/db/CoreDuet/Knowledge/knowledgeC.dbund/private/var/db/biomeim laufenden Betrieb nur bei deaktiviertem SIP sichert. SIP zu deaktivieren bedeutet einen Neustart in die Wiederherstellung und eine Änderung am Beweissystem, was schwer zu rechtfertigen ist. Erstellen Sie lieber ein Abbild der ganzen Festplatte oder des Data-Volumes und extrahieren Sie die Pfade daraus.
Option 1: eine Live-Kopie mit Terminal
Mit Festplattenvollzugriff für Terminal und einem bereits angelegten Zielordner auf Ihrem Sicherungslaufwerk:
cp -p ~/Library/Application\ Support/Knowledge/knowledgeC.db* <dest>/
ditto ~/Library/Biome <dest>/Biome_user
shasum -a 256 <dest>/knowledgeC.db*
Das * erfasst knowledgeC.db, knowledgeC.db-wal und knowledgeC.db-shm in einem Zug; -p erhält Änderungszeiten und Berechtigungen. ditto kopiert den Biome-Baum mit seiner Ordnerstruktur, die Sie brauchen, um local, remote und tombstone auseinanderzuhalten. Hashen Sie jede kopierte Datei, nicht nur die Datenbank, und dokumentieren Sie den Befehl, die Uhrzeit und das verwendete Konto. Führen Sie das für jeden relevanten Benutzer aus.
Die Kopie entsteht, während CoreDuet möglicherweise noch schreibt. Für eine Triage ist das vertretbar: Kopieren Sie die drei knowledgeC-Dateien mit einem einzigen Befehl, damit Hauptdatei und WAL zeitlich möglichst nah beieinanderliegen.
Option 2: UAC
UAC hat für jeden Speicher eine eigene Artefaktdatei:
sudo ./uac -a ./artifacts/files/system/knowledgec.yaml -a ./artifacts/files/system/biome.yaml /tmp
Die Profile ir_triage und full enthalten beide über files/system/*. Kennen Sie die Lücken, bevor Sie sich darauf verlassen:
| UAC-Artefakt | Sichert | Fehlt |
|---|---|---|
knowledgec.yaml | knowledgeC.db für beide Pfade | Die Dateien -wal und -shm; die Systemkopie, sofern SIP nicht deaktiviert ist |
biome.yaml | ~/Library/Biome/streams/restricted/*/local je Benutzer; /private/var/db/biome nur bei deaktiviertem SIP | Die Ordner public/, remote/ und tombstone/ |
Ergänzen Sie nach einem UAC-Lauf also die WAL-Dateien und die fehlenden Biome-Ordner manuell (Option 1) und erteilen Sie auch dem UAC-Prozess Festplattenvollzugriff.
Option 3: Velociraptor
Velociraptor hat kein eingebautes macOS-Triage-Target für knowledgeC oder Biome. Verwenden Sie den generischen Dateifinder mit aktivierten Uploads:
velociraptor artifacts collect MacOS.Search.FileFinder --args 'SearchFilesGlob=/Users/*/Library/Application Support/Knowledge/knowledgeC.db*' --args Upload_File=Y --output knowledgec.zip
velociraptor artifacts collect MacOS.Search.FileFinder --args 'SearchFilesGlob=/Users/*/Library/Biome/streams/**' --args Upload_File=Y --output biome.zip
Der Glob, der auf knowledgeC.db* endet, bringt die WAL- und SHM-Dateien mit. Auch der Velociraptor-Client braucht Festplattenvollzugriff; verteilen Sie ihn in einer verwalteten Umgebung mit einem MDM-Profil für Datenschutzeinstellungen (PPPC), bevor Sie ihn brauchen. Das Exchange-Artefakt MacOS.Applications.KnowledgeC wertet Zeilen direkt auf dem System aus. Das ist nützlich für die Suche über viele Endpunkte hinweg, ersetzt aber nicht die Sicherung der Dateien. Wie Sie Sammlungen vom Server aus starten, beschreibt die Velociraptor-Dokumentation.
Option 4: ein Abbild der Festplatte oder des Data-Volumes
Ein Abbild ist der sauberste Weg, die Systemspeicher zu erhalten, ohne SIP anzutasten, und es bewahrt alles andere, was Sie später noch brauchen könnten. Extrahieren Sie aus dem eingebundenen Abbild oder mit einem Werkzeug wie mac_apt, das Dateien aus einem Abbild exportiert:
/private/var/db/CoreDuet/Knowledge/(den ganzen Ordner, damit die WAL-Dateien mitkommen);/private/var/db/biome/;- für jeden Benutzer
Library/Application Support/Knowledge/undLibrary/Biome/.
Binden Sie das Abbild schreibgeschützt ein und extrahieren Sie in Ihren Fallordner, bevor Sie irgendetwas auswerten.
Werkzeuge, die sie nicht sichern
Aftermath (Jamf) sichert weder knowledgeC noch Biome. War es Ihr Werkzeug für die Erstreaktion, holen Sie diese Dateien mit einer der obigen Optionen nach.
Die Sicherung prüfen
Prüfen Sie, bevor Sie den Einsatzort verlassen, dass neben jeder knowledgeC-Kopie ihre -wal liegt und dass die Biome-Kopie einen Ordner streams mit Stream-Unterordnern enthält. Eine kurze Auswertung der Biome-Kopie mit mac_apt im Artifact-only-Modus bestätigt, dass die Dateien lesbar sind:
python3 mac_apt_artifact_only.py -i case/Biome_user/streams -o out -c BIOME
Oder ziehen Sie den ganzen Fallordner in KnowledgeC Parser: Das Werkzeug ordnet jeder Datenbank ihr WAL zu, warnt, wenn eine Datenbank im WAL-Modus ohne WAL ankommt, und zeigt je Stream den ältesten und den neuesten Datensatz.
Stolperfallen
| Problem | Ursache | Lösung |
|---|---|---|
| Zugriff beim Kopieren verweigert | Terminal oder dem Sicherungswerkzeug fehlt der Festplattenvollzugriff | Recht erteilen, App neu starten |
| Keine aktuellen Ereignisse | -wal nicht gesichert (UAC-Standard) | knowledgeC.db* kopieren |
| Datenbank nach der Sicherung verändert | Original direkt geöffnet, WAL per Checkpoint übertragen | Originale nie öffnen; mit Kopien arbeiten |
| Datensätze eines Telefons dem Mac zugeordnet | remote/ abgeflacht oder ignoriert | Ordnerstruktur beibehalten |
| Systemspeicher fehlen | SIP bei einer Live-Sicherung aktiv | Aus einem Abbild der Festplatte oder des Data-Volumes extrahieren |
| Ältere Daten fehlen | tombstone/ nicht gesichert | Den kompletten Biome-Ordner kopieren |
Integrität
Hashen Sie die Dateien im gesicherten Zustand, dokumentieren Sie Werkzeuge und Befehle und arbeiten Sie mit Kopien. Öffnen Sie die originale knowledgeC.db niemals mit sqlite3 oder einem grafischen Datenbankbrowser: Das Öffnen einer WAL-Datenbank kann einen Checkpoint auslösen, der WAL-Seiten in die Hauptdatei schreibt und das WAL zurücksetzen kann, das Sie untersuchen wollten. Dieselbe Sorgfalt gilt für Ihre eigenen Kopien: Bewahren Sie einen unveränderten, gehashten Satz auf und werten Sie eine zweite Kopie aus.
Nächster Schritt
Laden Sie die Sicherung in KnowledgeC Parser oder lesen Sie die Anleitung zur Sicherung, die dieselben Schritte in Kurzform enthält.
FAQ
Wo wird knowledgeC.db unter macOS gespeichert?
Die Systemkopie ist /private/var/db/CoreDuet/Knowledge/knowledgeC.db, die Kopie pro Benutzer ist ~/Library/Application Support/Knowledge/knowledgeC.db. Beide laufen im WAL-Modus, sichern Sie daher zu jeder Datenbank auch knowledgeC.db-wal und knowledgeC.db-shm.
Muss ich SIP deaktivieren, um knowledgeC und Biome zu sichern?
Nicht für die Benutzerkopien: Festplattenvollzugriff für Terminal oder das Sicherungswerkzeug genügt. Die System-knowledgeC.db und /private/var/db/biome lassen sich laut UAC im laufenden Betrieb nur mit deaktiviertem SIP sichern. Erstellen Sie lieber ein Abbild der ganzen Festplatte oder des Data-Volumes und extrahieren Sie sie daraus, statt SIP zu deaktivieren.
Sichert UAC die WAL-Datei von knowledgeC?
Nein. Das UAC-Artefakt knowledgec sichert nur knowledgeC.db, nicht die Dateien -wal und -shm, und das Artefakt biome erfasst nur restricted/*/local. Kopieren Sie die WAL-Dateien und die übrigen Biome-Ordner separat.
Welche Biome-Ordner sollte ich sichern?
Wenn möglich den kompletten Ordner ~/Library/Biome jedes Benutzers. Sichern Sie mindestens streams/restricted und streams/public, einschließlich der Unterordner local, remote/<device UUID> und local/tombstone jedes Streams, sowie /private/var/db/biome/streams für den Systemspeicher.