Santa es un sistema de autorización de acceso a archivos y binarios para macOS. Consiste en una extensión del sistema que monitorea las ejecuciones, un demonio que toma decisiones de ejecución basadas en el contenido de una base de datos local, un agente GUI que notifica al usuario en caso de una decisión de bloqueo y una utilidad de línea de comandos para administrar el sistema y sincronizar la base de datos con un servidor.
Se llama Santa porque realiza un seguimiento de los binarios que son traviesos o agradables.
Los documentos de Santa se almacenan en el directorio Docs y se publican en https://santa.dev.
Los documentos incluyen opciones de implementación, detalles sobre cómo funcionan partes de Santa e instrucciones para desarrollar Santa.
Si tiene preguntas o necesita ayuda para comenzar, el grupo santa-dev es un gran lugar.
Si cree que tiene un error, no dude en informarlo y le responderemos lo antes posible.
Si cree que ha encontrado una vulnerabilidad, lea la política de seguridad para informar sobre divulgación.
Modos múltiples: en el modo MONITOR predeterminado, se permitirá la ejecución de todos los archivos binarios, excepto aquellos marcados como bloqueados, mientras se registran y registran en la base de datos de eventos. En el modo LOCKDOWN, sólo se permite ejecutar los archivos binarios enumerados.
Registro de eventos: cuando se carga la extensión del sistema, se registran todos los lanzamientos binarios. En cualquier modo, todos los binarios desconocidos o denegados se almacenan en la base de datos para permitir una agregación posterior.
Reglas basadas en certificados, con niveles de anulación: en lugar de depender del hash de un binario (o 'huella digital'), los ejecutables se pueden permitir/bloquear mediante su certificado de firma. Por lo tanto, puede permitir/bloquear todos los archivos binarios de un editor determinado que hayan sido firmados con ese certificado en todas las actualizaciones de versión. Un binario solo puede ser permitido por su certificado si su firma se valida correctamente, pero una regla para la huella digital de un binario anulará una decisión para un certificado; es decir, puede incluir un certificado en la lista de permitidos mientras bloquea un binario firmado con ese certificado, o viceversa.
Reglas basadas en rutas (a través de NSRegularExpression/ICU): esto permite una característica similar a la que se encuentra en Managed Client (el precursor de los perfiles de configuración, que usaba el mismo mecanismo de implementación), restricciones de inicio de aplicaciones a través del binario mcxalr. Esta implementación tiene el beneficio adicional de ser configurable mediante expresiones regulares y no depender de LaunchServices. Como se detalla en la wiki, al evaluar las reglas, esto tiene la prioridad más baja.
Reglas de certificado a prueba de fallos: no puede establecer una regla de denegación que bloquee el certificado utilizado para firmar launchd, también conocido como pid 1 y, por lo tanto, todos los componentes utilizados en macOS. Por lo tanto, los archivos binarios en cada actualización del sistema operativo (y en algunos casos en versiones completamente nuevas) se permiten automáticamente. Esto no afecta a los archivos binarios de la App Store de Apple, que utilizan varios certificados que cambian periódicamente para aplicaciones comunes. Del mismo modo, no puedes bloquear a Santa, y Santa utiliza un certificado distinto al de otras aplicaciones de Google.
Los componentes del área de usuario se validan entre sí: cada uno de los componentes del área de usuario (el demonio, el agente GUI y la utilidad de línea de comandos) se comunican entre sí mediante XPC y verifican que sus certificados de firma sean idénticos antes de aceptar cualquier comunicación.
Almacenamiento en caché: los binarios permitidos se almacenan en caché, por lo que el procesamiento necesario para realizar una solicitud solo se realiza si el binario aún no está en caché.
Ningún sistema o proceso por sí solo detendrá todos los ataques ni proporcionará un 100% de seguridad. Santa está escrito con la intención de ayudar a proteger a los usuarios de sí mismos. Las personas suelen descargar malware y confiar en él, dándole credenciales de malware o permitiendo que software desconocido filtre más datos sobre su sistema. Como componente administrado centralmente, Santa puede ayudar a detener la propagación de malware entre una gran flota de máquinas. De forma independiente, Santa puede ayudar a analizar lo que se está ejecutando en su computadora.
Santa es parte de una estrategia de defensa en profundidad y debes continuar protegiendo a los anfitriones de cualquier otra forma que consideres adecuada.
Santa solo bloquea la ejecución (execve y variantes), no protege contra bibliotecas dinámicas cargadas con dlopen, bibliotecas en el disco que han sido reemplazadas o bibliotecas cargadas usando DYLD_INSERT_LIBRARIES
.
Scripts: Santa está actualmente escrito para ignorar cualquier ejecución que no sea binaria. Esto se debe a que después de sopesar el costo de administración versus el beneficio, descubrimos que no valía la pena. Además, varias aplicaciones utilizan scripts generados temporalmente, que no podemos incluir en la lista de permitidos y no hacerlo causaría problemas. Estaremos felices de volver a visitar esto (o al menos convertirlo en una opción) si fuera útil para otros.
El cliente de línea de comandos santactl
incluye un indicador para sincronizar con un servidor de administración, que carga eventos que han ocurrido en la máquina y descarga nuevas reglas. Hay varios servidores de código abierto con los que puedes sincronizar:
Alternativamente, santactl
puede configurar reglas localmente (sin un servidor de sincronización).
Una herramienta como Santa realmente no se presta para capturas de pantalla, así que aquí hay un video.
Los parches para este proyecto son bienvenidos. Consulte el documento CONTRIBUYENTE.
Este no es un producto oficial de Google.