macos无统一安全评分,但可通过原生命令逐层验证:sip需enabled、filevault需启用、gatekeeper需assessments enabled、系统更新不可关闭;app须签名有效且公证;日志中排查签名拒绝、沙盒违规及可疑加载;登录项与sudo使用需审计。

macOS 没有“系统安全性指标”这类统一打分或实时健康值,终端也不会输出类似“安全评分:87/100”的结果。但你可以通过原生命令逐层检查关键安全控制是否启用、签名是否有效、权限是否合规、日志中是否存在可疑行为——这些才是真实可用的安全性证据。
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
确认系统级安全机制是否激活
这是 macOS 安全基线的硬性要求,缺一不可:
- 运行
csrutil status(需在恢复模式下执行)查看系统完整性保护(SIP)状态,输出必须为 “enabled” - 检查文件系统是否启用加密:
diskutil apfs list | grep -A 5 "FileVault",若显示 “FileVault: Yes”,说明主卷已加密 - 验证 Gatekeeper 是否开启:
spctl --status,返回 “assessments enabled” 表示应用签名验证正常工作 - 查看自动更新设置:
defaults read /Library/Preferences/com.apple.SoftwareUpdate | grep -E "(AutomaticCheck|AutomaticDownload|InstallSystemFiles)",确认关键补丁通道未被关闭
验证已安装 App 的签名与公证状态
每个 App 的来源和签名质量直接决定运行风险:
- 检查单个 App:
codesign -dv --verbose=4 /Applications/Safari.app,重点看Authority字段是否含 “Apple Mac OS Application Signing” 或合法 Developer ID - 批量筛查未签名或弱签名程序:
find /Applications -name "*.app" -maxdepth 1 -exec codesign -dv {} \; 2>/dev/null | grep -B1 "invalid signature\|no signature" - 检查是否通过 Apple 公证:
spctl -a -v /Applications/Zoom.us.app,成功返回应含 “notarized” 和 “assessments passed”
排查内核与系统日志中的安全异常事件
真实威胁往往藏在后台日志里,而非界面提示:
- 搜索最近 48 小时的代码签名拒绝记录:
log show --predicate 'subsystem == "com.apple.securityd" && eventMessage contains "code signing"' --last 2d | grep -i "deny\|reject\|invalid"
- 查找内核级权限绕过尝试:
log show --predicate 'process == "kernel" && eventMessage contains "sandbox"' --last 2d | grep -i "violated\|denied"
- 筛选可疑进程加载(如无签名 dylib 注入):
log show --predicate 'subsystem == "com.apple.xpc" && eventMessage contains "load"' --last 2d | grep -v "Apple"
检查用户账户与登录项安全性
权限滥用常始于登录时自动启动的未知程序:
- 列出所有用户级登录项(含 LaunchAgents):
ls ~/Library/LaunchAgents/ /Library/LaunchAgents/ /Library/LaunchDaemons/ 2>/dev/null | grep -E "\.plist$"
- 检查是否有非 Apple 签名的守护进程正在运行:
launchctl list | awk '!/0x|com\.apple/ {print $3}' | xargs -I{} launchctl print gui/$(id -u)/{} 2>/dev/null | grep -E "(Path|ProgramArguments)" | grep -v "Apple" - 查看 sudo 使用历史(需有日志配置):
last -n 20 | grep "sudo"
不复杂但容易忽略










