Skip to content

knowledgeC.db: ubicación y adquisición de flujos Biome

Dónde están knowledgeC.db y los flujos de Biome en macOS y cómo recolectarlos con Terminal, UAC, Velociraptor o una imagen de disco sin perder el WAL.

Publicado el 8 min de lectura

Resumen. El knowledgeC.db del usuario está en ~/Library/Application Support/Knowledge/, el del sistema en /private/var/db/CoreDuet/Knowledge/, y los flujos de Biome del usuario en ~/Library/Biome/streams/. Conceda «Acceso total al disco» a Terminal o al recolector, copie cada base de datos con su -wal y su -shm, copie la carpeta de Biome completa, calcule el hash de todo y no abra nunca los originales. UAC y Velociraptor pueden ayudar, pero cada uno tiene carencias; para los almacenes del sistema protegidos por SIP, cree una imagen del disco o del volumen Data en lugar de desactivar SIP.

Para saber qué contienen estos almacenes, empiece por la guía de análisis forense de knowledgeC.db. Encontrará referencias rápidas de ambos artefactos en las fichas de análisis forense de macOS: knowledgeC.db y Biome SEGB.

Qué recolectar

AlmacénRutaProtección
knowledgeC, sistema/private/var/db/CoreDuet/Knowledge/knowledgeC.db + -wal, -shmRoot, restringido por SIP
knowledgeC, usuario~/Library/Application Support/Knowledge/knowledgeC.db + -wal, -shmTCC: «Acceso total al disco»
Biome, flujos del usuario~/Library/Biome/streams/restricted/<Stream>/local/ y ~/Library/Biome/streams/public/<Stream>/local/TCC: «Acceso total al disco»
Biome, sincronizado desde otros dispositivos…/<Stream>/remote/<device UUID>/Igual
Biome, archivos caducados…/<Stream>/local/tombstone/Igual
Biome, flujos del sistema/private/var/db/biome/streams/Propiedad de _biome, restringido por SIP

En iOS, el almacén de Biome del usuario es /private/var/mobile/Library/Biome/; este artículo trata de macOS.

La línea del -wal no es opcional. knowledgeC funciona en modo WAL, y los eventos recientes a menudo solo están confirmados en el WAL; el porqué y cómo aprovecharlo se explican en recuperar eventos recientes de knowledgeC.db-wal. En el caso de Biome, recolecte remote/ y tombstone/ aunque no piense usarlos: los registros remotos deben identificarse para poder excluirlos, y los archivos de tombstone contienen datos caducados que los parsers a menudo omiten.

Acceso: TCC, «Acceso total al disco» y SIP

Se aplican dos protecciones, y son distintas.

  • TCC protege las copias de usuario. A un proceso al que no se le ha concedido «Acceso total al disco» se le deniega el acceso a estas carpetas, aunque se ejecute como root. Concédalo a Terminal (Ajustes del Sistema, Privacidad y seguridad, «Acceso total al disco») o a su recolector y reinicie la app.
  • SIP protege los almacenes del sistema. UAC documenta que solo recolecta /private/var/db/CoreDuet/Knowledge/knowledgeC.db y /private/var/db/biome en vivo cuando SIP está desactivado. Desactivar SIP implica reiniciar en modo de recuperación y modificar el sistema que es evidencia, algo difícil de justificar. Es preferible una imagen del disco completo o del volumen Data, y extraer de ella las rutas.

Opción 1: una copia en vivo con Terminal

Con «Acceso total al disco» concedido a Terminal y una carpeta de destino ya creada en su unidad de recolección:

cp -p ~/Library/Application\ Support/Knowledge/knowledgeC.db* <dest>/
ditto ~/Library/Biome <dest>/Biome_user
shasum -a 256 <dest>/knowledgeC.db*

El * incluye knowledgeC.db, knowledgeC.db-wal y knowledgeC.db-shm de una sola vez; -p conserva las fechas de modificación y los permisos. ditto copia el árbol de Biome con su estructura de carpetas, que necesita para distinguir local, remote y tombstone. Calcule el hash de todos los archivos copiados, no solo de la base de datos, y anote el comando, la hora y la cuenta utilizada. Repítalo para cada usuario de interés.

La copia se toma mientras CoreDuet puede seguir escribiendo. Es aceptable para un triaje: copie los tres archivos de knowledgeC en un solo comando, para que el archivo principal y su WAL estén lo más próximos posible en el tiempo.

Opción 2: UAC

UAC tiene un archivo de artefacto para cada almacén:

sudo ./uac -a ./artifacts/files/system/knowledgec.yaml -a ./artifacts/files/system/biome.yaml /tmp

Los perfiles ir_triage y full incluyen ambos a través de files/system/*. Conozca sus carencias antes de confiar en ellos:

Artefacto de UACRecolectaNo recolecta
knowledgec.yamlknowledgeC.db en ambas rutasLos archivos -wal y -shm; la copia del sistema, salvo que SIP esté desactivado
biome.yaml~/Library/Biome/streams/restricted/*/local por usuario; /private/var/db/biome solo con SIP desactivadoLas carpetas public/, remote/ y tombstone/

Así que, tras una ejecución de UAC, añada manualmente los archivos WAL y las carpetas de Biome que faltan (opción 1), y conceda también «Acceso total al disco» al proceso de UAC.

Opción 3: Velociraptor

Velociraptor no tiene un target de triaje integrado para knowledgeC ni Biome en macOS. Use el buscador de archivos genérico con la subida de archivos activada:

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

El patrón que termina en knowledgeC.db* arrastra consigo los archivos WAL y SHM. El cliente de Velociraptor también necesita «Acceso total al disco»; en un parque gestionado, despliéguelo con un perfil MDM de preferencias de privacidad (PPPC) antes de necesitarlo. El artefacto de Exchange MacOS.Applications.KnowledgeC analiza las filas in situ, lo que resulta útil para buscar en muchos endpoints, pero no sustituye la recolección de los archivos. Consulte la documentación de Velociraptor para lanzar recolecciones desde el servidor.

Opción 4: una imagen del disco o del volumen Data

Una imagen es la forma más limpia de obtener los almacenes del sistema sin tocar SIP, y conserva todo lo demás que pueda necesitar más adelante. Desde la imagen montada, o con una herramienta como mac_apt que exporta archivos desde una imagen, extraiga:

  • /private/var/db/CoreDuet/Knowledge/ (la carpeta completa, para que se incluyan los archivos WAL);
  • /private/var/db/biome/;
  • para cada usuario, Library/Application Support/Knowledge/ y Library/Biome/.

Monte la imagen en solo lectura y extraiga a la carpeta del caso antes de analizar nada.

Herramientas que no los recolectan

Aftermath (Jamf) no recolecta knowledgeC ni Biome. Si fue su herramienta de primera respuesta, vuelva a por estos archivos con una de las opciones anteriores.

Comprobar la recolección

Antes de abandonar el lugar, compruebe que cada copia de knowledgeC tiene su -wal al lado y que la copia de Biome tiene una carpeta streams con subcarpetas de flujos. Un análisis rápido de la copia de Biome con mac_apt en modo artifact-only confirma que los archivos se pueden leer:

python3 mac_apt_artifact_only.py -i case/Biome_user/streams -o out -c BIOME

O suelte la carpeta completa del caso en KnowledgeC Parser: empareja cada base de datos con su WAL, avisa cuando llega una base de datos en modo WAL sin él y muestra el registro más antiguo y el más reciente de cada flujo.

Problemas habituales

ProblemaCausaSolución
Acceso denegado al copiarTerminal o el recolector no tiene «Acceso total al disco»Concédalo y reinicie la app
No hay eventos recientesNo se recolectó el -wal (comportamiento por defecto de UAC)Copie knowledgeC.db*
La base de datos cambió tras la recolecciónSe abrió el original en su ubicación y el WAL pasó por un checkpointNo abra nunca los originales; trabaje sobre copias
Registros atribuidos al Mac que procedían de un teléfonoremote/ aplanado o ignoradoConserve la estructura de carpetas
Faltan los almacenes del sistemaSIP activado durante una recolección en vivoExtráigalos de una imagen del disco o del volumen Data
Faltan datos antiguosNo se recolectó tombstone/Copie la carpeta de Biome completa

Integridad

Calcule el hash de los archivos tal como se recolectaron, anote las herramientas y los comandos, y trabaje sobre copias. No abra nunca el knowledgeC.db original con sqlite3 ni con un navegador gráfico de bases de datos: abrir una base de datos WAL puede provocar un checkpoint, que escribe las páginas del WAL en el archivo principal y puede reiniciar el WAL que quería examinar. El mismo cuidado se aplica a sus propias copias: conserve un juego intacto con su hash y analice una segunda copia.

Siguiente paso

Cargue la colección en KnowledgeC Parser, o lea su guía de recolección para ver los mismos pasos de forma abreviada.

Preguntas frecuentes

¿Dónde se guarda knowledgeC.db en macOS?

La copia del sistema es /private/var/db/CoreDuet/Knowledge/knowledgeC.db y la copia de cada usuario es ~/Library/Application Support/Knowledge/knowledgeC.db. Ambas están en modo WAL, así que recolecte knowledgeC.db-wal y knowledgeC.db-shm junto con cada base de datos.

¿Necesito desactivar SIP para recolectar knowledgeC y Biome?

No para las copias de usuario: basta con conceder «Acceso total al disco» a Terminal o al recolector. Según UAC, el knowledgeC.db del sistema y /private/var/db/biome solo se recolectan en vivo con SIP desactivado. En lugar de desactivar SIP, es preferible una imagen del disco completo o del volumen Data y extraerlos de ella.

¿Recolecta UAC el archivo WAL de knowledgeC?

No. El artefacto knowledgec de UAC recolecta solo knowledgeC.db, no los archivos -wal y -shm, y su artefacto biome solo toma restricted/*/local. Copie por separado los archivos WAL y las demás carpetas de Biome.

¿Qué carpetas de Biome debo recolectar?

Si puede, la carpeta ~/Library/Biome completa de cada usuario. Como mínimo, tome streams/restricted y streams/public, incluidas las subcarpetas local, remote/<device UUID> y local/tombstone de cada flujo, además de /private/var/db/biome/streams para el almacén del sistema.

Artículos relacionados

Artículos relacionados

Qué registra knowledgeC.db en macOS, dónde está, cómo funcionan ZOBJECT y sus flujos, cómo convertir sus marcas de tiempo y qué no demuestran los datos.
¿knowledgeC.db o Biome? En qué se diferencian los dos almacenes de actividad de macOS, qué flujo de Biome equivale a cada flujo de knowledgeC y qué esperar hoy.
Paso a paso: cargue knowledgeC.db con su -wal y los flujos SEGB de Biome en un parser gratuito en el navegador, fije un rango, revise sesiones y exporte.