Cómo recopilar los registros unificados de macOS
Recopile los registros unificados de macOS con log collect, una copia de diagnostics y uuidtext, UAC, Velociraptor o mac_apt, sin lagunas.
En resumen. Recopile el almacén completo, no solo los archivos .tracev3: el texto de los mensajes está en uuidtext y dsc, y las marcas de tiempo necesitan timesync. En un Mac en vivo, sudo log collect lo reúne todo en un único .logarchive. Desde una imagen o con una herramienta de triaje, copie /private/var/db/diagnostics y /private/var/db/uuidtext respetando su estructura. Todos los métodos siguientes producen algo que Unified Log Parser abre directamente.
Qué debe obtener
| Necesario | Motivo |
|---|---|
diagnostics/Persist, Special, Signpost, HighVolume | las entradas (.tracev3) |
diagnostics/timesync | convierte las horas relativas al arranque a UTC |
uuidtext/00…FF | cadenas de formato de cada binario |
uuidtext/dsc | cadenas de la caché compartida de dyld (la mayoría de los frameworks de Apple) |
La ficha de los registros unificados en Mac Forensics resume las rutas y la retención; este artículo se centra en obtener una copia completa.
Opción 1: log collect (Mac en vivo, recomendada)
sudo log collect --output ~/Desktop/$(hostname -s).logarchive
ditto -c -k --keepParent ~/Desktop/$(hostname -s).logarchive ~/Desktop/$(hostname -s).logarchive.zip
log collect copia el almacén, los archivos de cadenas y timesync en un único paquete, además del búfer en memoria (logdata.LiveData.tracev3). --last 3d, --start y --size limitan la recopilación cuando el almacén completo es demasiado grande; también existe --predicate, pero, según la propia ayuda de Apple, penaliza el rendimiento y la memoria. Siempre que pueda, escriba en un soporte externo y anote el comando y la hora en UTC.
Un .logarchive es un paquete de macOS, es decir, una carpeta. Calcule el hash de los archivos que contiene, o comprímalo con ditto y calcule el hash del ZIP. Algunos selectores de archivos no permiten seleccionar un paquete; arrastrarlo a la página del analizador funciona, y el ZIP también.
Opción 2: copiar las carpetas en bruto
OUT=/Volumes/EVIDENCE/$(hostname -s)_ul
sudo mkdir -p "$OUT"
sudo ditto /private/var/db/diagnostics "$OUT/diagnostics"
sudo ditto /private/var/db/uuidtext "$OUT/uuidtext"
Así se conservan archivos que log collect podría omitir (archivos Special antiguos fuera de la ventana temporal) y no interviene ninguna herramienta de Apple, algo que algunos equipos prefieren. El almacén se sigue escribiendo mientras copia, por lo que el archivo más reciente puede quedar incompleto; el analizador señala los archivos dañados en lugar de fallar.
Opción 3: herramientas de triaje
UAC. El artefacto macos_unified_logs copia los archivos tracev3, la carpeta uuidtext y timesync, y el perfil ir_triage lo incluye:
sudo ./uac -a ./artifacts/files/logs/macos_unified_logs.yaml /Volumes/EVIDENCE
UAC genera un .tar.gz de forma predeterminada (-f zip para un ZIP). Arrástrelo tal cual: el analizador lee el archivo en flujo y conserva solo los archivos de los registros unificados.
Velociraptor. No incluye un artefacto específico para los registros unificados de macOS; use Generic.Collectors.File con Root / y los patrones private/var/db/diagnostics/** y private/var/db/uuidtext/**, en una búsqueda (hunt) o en un recolector sin conexión, y luego arrastre el ZIP de la recopilación.
Aftermath. Aftermath, de Jamf, no copia el almacén; guarda los resultados de un conjunto de predicados de log show. Consérvelos y obtenga además un .logarchive.
mac_apt. Desde una imagen, el complemento UNIFIEDLOGEXPORT exporta los archivos tracev3, uuidtext y dsc a Export/UNIFIEDLOGEXPORT.
Opción 4: desde una imagen de disco
Monte el volumen Data en solo lectura. En un Mac, log collect puede reconstruir un archivo a partir de un almacén sin conexión siempre que uuidtext esté junto a diagnostics:
sudo log collect --directory /Volumes/Image/private/var/db/diagnostics --output ~/case.logarchive
En Linux, copie ambas carpetas respetando su estructura, por ejemplo cd /mnt/mac/private/var/db && zip -r ~/case_ul.zip diagnostics uuidtext.
Errores habituales
- Falta
uuidtext: el error más frecuente. El analizador muestra las entradas, pero marca sus mensajes como no resueltos. - Recopilar tarde: el almacén rota por tamaño y
sudo log eraselo elimina. Recopile antes de cualquier otra acción que genere muchos registros. - Solo texto de
log show: una exportación sirve para un vistazo rápido, pero depende de las opciones utilizadas (--info,--debug,--signpost,--timezone). Consulte exportar y construir cronologías. - Rutas aplanadas: las herramientas que copian los archivos sin sus carpetas pierden el UUID codificado en la ruta de cada archivo
uuidtext.
Una vez recopilado, siga el recorrido en el navegador o pase directamente a las consultas de triaje.