Skip to content

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.

Veröffentlicht am 7 Min. Lesezeit

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

SpeicherPfadSchutz
knowledgeC, System/private/var/db/CoreDuet/Knowledge/knowledgeC.db + -wal, -shmroot, durch SIP eingeschränkt
knowledgeC, Benutzer~/Library/Application Support/Knowledge/knowledgeC.db + -wal, -shmTCC: 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.db und /private/var/db/biome im 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-ArtefaktSichertFehlt
knowledgec.yamlknowledgeC.db für beide PfadeDie 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 SIPDie 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/ und Library/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

ProblemUrsacheLösung
Zugriff beim Kopieren verweigertTerminal oder dem Sicherungswerkzeug fehlt der FestplattenvollzugriffRecht erteilen, App neu starten
Keine aktuellen Ereignisse-wal nicht gesichert (UAC-Standard)knowledgeC.db* kopieren
Datenbank nach der Sicherung verändertOriginal direkt geöffnet, WAL per Checkpoint übertragenOriginale nie öffnen; mit Kopien arbeiten
Datensätze eines Telefons dem Mac zugeordnetremote/ abgeflacht oder ignoriertOrdnerstruktur beibehalten
Systemspeicher fehlenSIP bei einer Live-Sicherung aktivAus einem Abbild der Festplatte oder des Data-Volumes extrahieren
Ältere Daten fehlentombstone/ nicht gesichertDen 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.

Verwandte Artikel

Verwandte Artikel

Was knowledgeC.db unter macOS aufzeichnet, wo sie liegt, wie ZOBJECT und Streams aufgebaut sind, wie Sie Zeitstempel umrechnen und was die Daten nicht beweisen.
knowledgeC.db oder Biome? Wie sich die Aktivitätsspeicher von macOS unterscheiden, welche Streams sich entsprechen und was aktuelle Versionen erwarten lassen.
Anleitung: knowledgeC.db mit -wal und Biome-SEGB-Streams im kostenlosen Browser-Parser laden, Zeitraum setzen, Sitzungen prüfen, Zeitleiste exportieren.