
macOS 감사 스크립트
macOS 시스템 강화 설정을 CIS 벤치마크 권장 사항과 비교하여 점검하고 JSON/HTML 보고서를 생성하는 Bash 기반 보안 감사 도구입니다.
제작: 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 비밀번호를 요청합니다 (로컬에서만 사용되며 절대 저장되지 않음)파일( auditMAC.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 | 설정을 확인할 수 없거나 회색 영역에 해당함 |
FAIL | 설정이 권장 사항을 충족하지 못함 |
점수는 다음과 같이 계산됩니다:
score = (passed × 100 + warnings × 50) / total_checks
| 점수 | 위험 수준 |
|---|---|
| 80–100 | 🟢 낮음 |
| 50–79 | 🟡 중간 |
| 0–49 | 🔴 높음 |
HTML/JSON 보고서의 모든 검사에는 CIS macOS 벤치마크 ID(예: 방화벽의 경우 2.1.1, FileVault의 경우 2.2.1)가 태그되어 있습니다. 이를 통해 공식 CIS 문서를 참조하여 수정 안내를 쉽게 확인할 수 있습니다.
sudo는 상승된 권한이 필요한 명령어(예: fdesetup, systemsetup, launchctl)에만 사용됩니다umask 077로 /tmp 아래에 생성되며, 오류 또는 Ctrl+C가 발생해도 항상 종료 시 정리됩니다INFO로 표시됩니다MIT — 자유롭게 사용, 수정 및 공유할 수 있습니다.
풀 리퀘스트와 이슈는 언제나 환영합니다. macOS 버전에서 특정 검사가 잘못된 결과를 생성하는 경우, sw_vers의 출력을 포함하여 이슈를 열어 주세요.
| 카테고리 | 검사 항목 |
|---|
| 시스템 보안 | 방화벽, SIP, Secure Boot, Gatekeeper, FileVault, 펌웨어 암호, 인증된 루트 |
| 개인정보 | 진단 업로드, Siri 데이터 공유, 위치 서비스, AirPlay 수신기, 화면 잠금, 게스트 계정, 자동 로그인 |
| 업데이트 및 시간 | 보류 중인 업데이트, 자동 다운로드, 중요 업데이트, 네트워크 시간, 네트워크 웨이크 |
| 공유 및 원격 접근 | 화면 공유, SMB, 프린터 공유, 원격 로그인, 원격 관리, AirDrop, Handoff |
| 시스템 서비스 | tftpd, nfsd, httpd, uucp, sshd |
| 사용자 및 권한 | 관리자 계정, 현재 사용자 역할, 루트 계정 상태 |
| 네트워크 및 포트 | 열려 있는 수신 포트 (IPv4/IPv6) |
| 시작 항목 | LaunchAgents 및 LaunchDaemons (시스템 및 사용자) |
| SSH 강화 | PermitRootLogin, PasswordAuthentication, PubkeyAuthentication, AllowUsers |
| 시스템 확장 | 활성/대기/종료된 커널 확장 |
INFO |
| 정보 제공만 해당, 통과/실패 판단 없음 |