
Script de macOS para auditoría
Un conjunto de herramientas de auditoría de seguridad basado en Bash para macOS que verifica la configuración de endurecimiento del sistema según las recomendaciones del CIS Benchmark y genera informes JSON/HTML.
Creado por Bartłomiej Pogwizd · https://www.youtube.com/@pTech-pl
Este conjunto de herramientas consta de dos scripts:
auditMAC.sh — ejecuta la auditoría de seguridad completa y muestra los resultados en la terminal y en un archivo de datos TSVgenerate_reports.sh — convierte el archivo de datos TSV en un informe JSON y un informe HTML con estilo
sudo (requerido para varias comprobaciones)chmod +x auditMAC.sh
./auditMAC.sh
El script:
sudo (solo se usa localmente, nunca se almacena)Coloca los archivos (auditMAC.sh y generate_reports.sh) en la misma carpeta los archivos json y html aparecerán en la carpeta, se generan automáticamente
Esto produce dos archivos en el directorio actual:
macos_security_report.jsonmacos_security_report.html========================================
macOS Security / Audit Report
Author: Bartłomiej Pogwizd / youtube.com/pTech
Version: 2.5
========================================
System Security
----------------------------------------
Firewall OK Enabled
SIP OK Enabled
FileVault FAIL Disabled
Gatekeeper OK Enabled
...
Security Score 72/100
Risk Level: Medium
Passed 31
Warnings 4
Failures 8
Leyenda de estado:
| Estado | Significado |
|---|---|
OK | La configuración cumple con el valor recomendado |
WARN |
La puntuación se calcula como:
score = (passed × 100 + warnings × 50) / total_checks
| Puntuación | Nivel de riesgo |
|---|---|
| 80–100 | 🟢 Bajo |
| 50–79 | 🟡 Medio |
| 0–49 | 🔴 Alto |
Cada comprobación en el informe HTML/JSON está etiquetada con un ID del CIS macOS Benchmark (por ejemplo, 2.1.1 para Firewall, 2.2.1 para FileVault). Esto facilita la referencia cruzada con la documentación oficial de CIS para obtener orientación sobre remediación.
sudo se usa solo para comandos que requieren privilegios elevados (por ejemplo, fdesetup, systemsetup, launchctl)/tmp con umask 077 y siempre se eliminan al salir, incluso en caso de error o Ctrl+CINFO con instrucciones para verificar manualmenteMIT — siéntete libre de usar, modificar y compartir.
Las solicitudes de extracción y los problemas son bienvenidos. Si una comprobación produce resultados incorrectos en tu versión de macOS, abre un problema e incluye la salida de sw_vers.
| Categoría | Comprobaciones |
|---|
| Seguridad del sistema | Firewall, SIP, Secure Boot, Gatekeeper, FileVault, Contraseña de firmware, Root autenticado |
| Privacidad | Cargas de diagnóstico, uso compartido de datos de Siri, Servicios de ubicación, Receptor AirPlay, Bloqueo de pantalla, Cuenta de invitado, Inicio de sesión automático |
| Actualizaciones y hora | Actualizaciones pendientes, Descarga automática, Actualizaciones críticas, Hora de red, Activación por red |
| Compartir y acceso remoto | Compartir pantalla, SMB, Compartir impresora, Inicio de sesión remoto, Gestión remota, AirDrop, Handoff |
| Servicios del sistema | tftpd, nfsd, httpd, uucp, sshd |
| Usuarios y privilegios | Cuentas de administrador, rol de usuario actual, estado de la cuenta Root |
| Red y puertos | Puertos de escucha abiertos (IPv4/IPv6) |
| Elementos de inicio | LaunchAgents y LaunchDaemons (del sistema y del usuario) |
| Refuerzo SSH | PermitRootLogin, PasswordAuthentication, PubkeyAuthentication, AllowUsers |
| Extensiones del sistema | Extensiones de kernel activas/en espera/terminadas |
| No se pudo determinar la configuración o es un área gris |
FAIL | La configuración no cumple con la recomendación |
INFO | Solo informativo, sin veredicto de aprobado/fallo |