
Скрипт macOS для аудита
Инструмент аудита безопасности для macOS на основе Bash, который проверяет настройки защиты системы в соответствии с рекомендациями CIS Benchmark и генерирует отчёты в форматах JSON/HTML.
Создано Bartłomiej Pogwizd · https://www.youtube.com/@pTech-pl
Этот набор инструментов состоит из двух скриптов:
auditMAC.sh — выполняет полный аудит безопасности и выводит результаты в терминал и в TSV-файл данныхgenerate_reports.sh — преобразует TSV-файл данных в отчёт JSON и стилизованный HTML-отчёт
sudo (требуется для нескольких проверок)chmod +x auditMAC.sh
./auditMAC.sh
Скрипт сделает следующее:
sudo (используется только локально, никогда не сохраняется)Поместите файлы ( аудитMAC.sh и generate_reports.sh ) в одну папку Файлы json и html появятся в папке, они создаются автоматически.
Это создаёт два файла в текущем каталоге:
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
Легенда статусов:
| Статус | Значение |
|---|---|
OK | Параметр соответствует рекомендуемому значению |
WARN |
Оценка рассчитывается по формуле:
score = (passed × 100 + warnings × 50) / total_checks
| Оценка | Уровень риска |
|---|---|
| 80–100 | 🟢 Низкий |
| 50–79 | 🟡 Средний |
| 0–49 | 🔴 Высокий |
Каждая проверка в HTML/JSON отчёте помечена идентификатором CIS macOS Benchmark (например, 2.1.1 для Firewall, 2.2.1 для FileVault). Это упрощает перекрёстные ссылки на официальную документацию CIS для получения рекомендаций по исправлению.
sudo используется только для команд, требующих повышенных привилегий (например, fdesetup, systemsetup, launchctl)/tmp с umask 077 и всегда удаляются при выходе, даже при ошибке или нажатии Ctrl+CINFO с инструкциями по ручной проверкеMIT — можно свободно использовать, изменять и распространять.
Pull request'ы и issues приветствуются. Если какая-либо проверка даёт неверные результаты в вашей версии macOS, пожалуйста, откройте issue и приложите вывод команды sw_vers.
| Категория | Проверки |
|---|
| Безопасность системы | Firewall, SIP, Secure Boot, Gatekeeper, FileVault, Firmware Password, Authenticated Root |
| Конфиденциальность | Отправка диагностики, Обмен данными Siri, Службы геолокации, Приёмник AirPlay, Блокировка экрана, Гостевая учётная запись, Автоматический вход |
| Обновления и время | Ожидающие обновления, Автозагрузка, Критические обновления, Сетевое время, Пробуждение по сети |
| Общий доступ и удалённый доступ | Общий доступ к экрану, SMB, Общий доступ к принтеру, Удалённый вход, Удалённое управление, AirDrop, Handoff |
| Системные службы | tftpd, nfsd, httpd, uucp, sshd |
| Пользователи и привилегии | Учётные записи администратора, роль текущего пользователя, Статус учётной записи root |
| Сеть и порты | Открытые прослушиваемые порты (IPv4/IPv6) |
| Элементы автозагрузки | LaunchAgents и LaunchDaemons (системные и пользовательские) |
| Усиление SSH | PermitRootLogin, PasswordAuthentication, PubkeyAuthentication, AllowUsers |
| Системные расширения | Активные/ожидающие/завершённые расширения ядра |
| Параметр не удалось определить или он находится в серой зоне |
FAIL | Параметр не соответствует рекомендации |
INFO | Только информационно, без оценки пройдено/не пройдено |