
Script macOS para auditoria
Um kit de ferramentas de auditoria de segurança baseado em Bash para macOS que verifica configurações de hardening do sistema em relação às recomendações do CIS Benchmark e gera relatórios JSON/HTML.
Criado por Bartłomiej Pogwizd · https://www.youtube.com/@pTech-pl
Este kit de ferramentas consiste em dois scripts:
auditMAC.sh — executa a auditoria de segurança completa e envia os resultados para o terminal e um arquivo de dados TSVgenerate_reports.sh — converte o arquivo de dados TSV em um relatório JSON e um relatório HTML estilizado
sudo (necessário para várias verificações)chmod +x auditMAC.sh
./auditMAC.sh
O script vai:
sudo (usada apenas localmente, nunca armazenada)Coloque os arquivos ( auditMAC.sh e generate_reports.sh ) na mesma pasta os arquivos json e html aparecerão na pasta; eles são gerados automaticamente
Isso gera dois arquivos no diretório atual:
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
Legenda de status:
| Status | Significado |
|---|---|
OK | A configuração atende ao valor recomendado |
WARN |
A pontuação é calculada da seguinte forma:
score = (passed × 100 + warnings × 50) / total_checks
| Pontuação | Nível de Risco |
|---|---|
| 80–100 | 🟢 Baixo |
| 50–79 | 🟡 Médio |
| 0–49 | 🔴 Alto |
Cada verificação no relatório HTML/JSON é marcada com um ID do CIS macOS Benchmark (ex.: 2.1.1 para Firewall, 2.2.1 para FileVault). Isso facilita a referência cruzada à documentação oficial do CIS para obter orientações de remediação.
sudo é usado apenas para comandos que exigem privilégios elevados (ex.: fdesetup, systemsetup, launchctl)/tmp com umask 077 e são sempre limpos ao sair, mesmo em caso de erro ou Ctrl+CINFO com instruções para verificação manualMIT — sinta-se à vontade para usar, modificar e compartilhar.
Pull requests e issues são bem-vindos. Se uma verificação produzir resultados incorretos na sua versão do macOS, abra uma issue e inclua a saída de sw_vers.
| Categoria | Verificações |
|---|
| Segurança do Sistema | Firewall, SIP, Secure Boot, Gatekeeper, FileVault, Firmware Password, Authenticated Root |
| Privacidade | Envios de diagnóstico, compartilhamento de dados da Siri, Serviços de Localização, Receptor de AirPlay, Bloqueio de Tela, Conta de Convidado, Login Automático |
| Atualizações e Hora | Atualizações pendentes, Download automático, Atualizações críticas, Horário de rede, Wake-on-Network |
| Compartilhamento e Acesso Remoto | Compartilhamento de Tela, SMB, Compartilhamento de Impressora, Login Remoto, Gerenciamento Remoto, AirDrop, Handoff |
| Serviços do Sistema | tftpd, nfsd, httpd, uucp, sshd |
| Usuários e Privilégios | Contas de administrador, função do usuário atual, estado da conta Root |
| Rede e Portas | Portas de escuta abertas (IPv4/IPv6) |
| Itens de Inicialização | LaunchAgents e LaunchDaemons (do sistema e do usuário) |
| Hardening de SSH | PermitRootLogin, PasswordAuthentication, PubkeyAuthentication, AllowUsers |
| Extensões do Sistema | Extensões do kernel ativas/em espera/terminadas |
| Não foi possível determinar a configuração ou ela é uma área cinzenta |
FAIL | A configuração não atende à recomendação |
INFO | Apenas informativo, sem julgamento de aprovado/reprovado |