Triaje de registros unificados de macOS: consultas clave
Predicados de log show y filtros para sudo, SSH, Compartir pantalla, TCC, Gatekeeper, XProtect, agentes de arranque, USB y el comando log.
En resumen. Parta de los procesos y subsistemas, no del texto exacto de los mensajes: sudo, sshd, screensharingd, tccd / com.apple.TCC, syspolicyd, XProtect, launchd y Background Task Management, diskarbitrationd y el propio comando log. Cada sección ofrece un predicado de log show para un Mac y el filtro o preajuste equivalente en Unified Log Parser, que marca automáticamente las mismas familias en la pestaña Hallazgos.
Una advertencia antes de las consultas: Apple trata los mensajes de registro como texto libre. Las frases cambian entre versiones, y una consulta que no devuelve nada no demuestra una ausencia. Lea las entradas que rodean cada coincidencia (mismo PID, mismo minuto).
Uso de privilegios: sudo y su
log show --archive case.logarchive --timezone UTC --predicate 'process == "sudo" AND eventMessage CONTAINS "COMMAND="'
Cada línea tiene la forma user : TTY=ttys001 ; PWD=/Users/user ; USER=root ; COMMAND=/bin/…. Los intentos fallidos aparecen como incorrect password attempt. En el analizador, el preajuste Autenticación selecciona sudo, su, opendirectoryd, loginwindow, authd, sshd y SecurityAgent; la marca Uso de sudo conserva solo las líneas con un comando o un fallo, no el ruido de consultas al directorio que sudo también genera.
authd registra los derechos de autorización, como system.privilege.admin cuando una aplicación solicita una contraseña de administrador, junto con el cliente que la pidió. La marca correspondiente es Derechos de autorización.
Acceso remoto: SSH y Compartir pantalla
log show --archive case.logarchive --timezone UTC --predicate 'process BEGINSWITH "sshd" OR process == "screensharingd"'
Sesión remota y Compartir pantalla están desactivados de forma predeterminada; cualquier actividad significa que alguien los activó. Las versiones recientes de OpenSSH dividen el servidor en sshd y sshd-session, así que busque ambos. El preajuste SSH / Compartir pantalla cubre los dos, además de ARDAgent para Apple Remote Desktop.
Permisos de privacidad: TCC
log show --archive case.logarchive --timezone UTC --predicate 'subsystem == "com.apple.TCC"'
Es muy verboso: se registra cada solicitud de cliente. Céntrese en las decisiones del propio tccd y en los servicios de mayor impacto: kTCCServiceSystemPolicyAllFiles (Acceso total al disco), kTCCServiceAccessibility, kTCCServiceScreenCapture, kTCCServiceListenEvent, kTCCServicePostEvent, kTCCServiceAppleEvents. La marca Permisos de privacidad sensibles (TCC) del analizador conserva las decisiones de tccd para esos servicios; la marca Permisos de privacidad (TCC) conserva el resto de solicitudes y avisos. Conceder Acceso total al disco a Terminal poco antes de un acceso masivo a archivos es un patrón que merece reconstruirse minuto a minuto. Contraste los resultados con la propia base de datos TCC.
Gatekeeper, cuarentena y XProtect
log show --archive case.logarchive --timezone UTC --predicate 'process == "syspolicyd" OR process BEGINSWITH "XProtect" OR eventMessage CONTAINS[c] "quarantine"'
syspolicyd evalúa el código descargado; la mayor parte de su salida es rutinaria. La marca Decisiones de Gatekeeper se limita a las líneas que mencionan un bloqueo, una denegación, la falta de notarización o una anulación por parte del usuario ("Abrir igualmente"). Las menciones a la cuarentena ayudan a vincular un archivo con la aplicación que lo descargó. XProtect genera mucha actividad programada; la marca conserva la redacción relativa a detecciones y correcciones.
Persistencia: agentes de arranque, daemons e ítems de inicio
log show --archive case.logarchive --timezone UTC --predicate 'eventMessage CONTAINS "/Library/LaunchAgents/" OR eventMessage CONTAINS "/Library/LaunchDaemons/" OR subsystem == "com.apple.backgroundtaskmanagement"'
Background Task Management (macOS 13 y posteriores) registra los nuevos ítems de inicio y de arranque a medida que se dan de alta. Las rutas bajo ~/Library/LaunchAgents y /Library/LaunchDaemons también aparecen cada vez que se inicia un agente existente, así que espere coincidencias rutinarias; busque etiquetas nuevas y plists con nombres de proveedores que usted no tiene (el com.example.updater.plist del ejemplo). El preajuste launchd / ítems de inicio y la marca Agentes y daemons de arranque, ítems de inicio cubren este caso.
Dispositivos USB y volúmenes
log show --archive case.logarchive --timezone UTC --predicate 'process == "diskarbitrationd" OR subsystem BEGINSWITH "com.apple.DiskArbitration"'
Los montajes, desmontajes y expulsiones indican el nombre del volumen (/Volumes/EXFIL en el ejemplo). Relaciónelos con la actividad de archivos de esos mismos minutos para sostener que los datos se copiaron a una unidad extraíble. El preajuste USB y montajes y la marca Montaje de volúmenes los seleccionan.
El propio comando log
En las versiones recientes, la herramienta log registra sus propias ejecuciones, con el proceso padre y los argumentos, en el subsistema com.apple.log. Un intruso que ejecute log show para comprobar qué se ha registrado, o sudo log erase, deja allí un rastro, hasta que el borrado surte efecto. La marca El comando log conserva estas entradas.
Indicios de shell y scripts
Los registros unificados no son un registro de ejecución de procesos, pero las líneas de comandos se filtran en los mensajes: sh -c, osascript -e, curl -o, python -c, base64 -d, chmod +x, xattr -d com.apple.quarantine. La marca Comandos de shell y scripts busca estos patrones en cualquier parte. Trate las coincidencias como pistas; los instaladores y actualizadores generan muchas.
Juntarlo todo
Use la pestaña Hallazgos para una primera pasada, ajuste el intervalo de tiempo alrededor de la primera señal sólida ("Alrededor ±1 h" desde cualquier entrada) y luego pase a la pestaña Registro y quite el filtro de marcas para leer todo lo que hicieron esos mismos procesos. El recorrido en el navegador hace exactamente esto con el caso sintético FIN-MBP-03, y el artículo sobre exportación explica cómo llevar los resultados a una cronología.