FileVault 仅保护静态数据,必须结合启动安全性策略和固件级防护才能防绕过、防离线攻击;需验证加密状态(系统设置显示“已开启”且100%、终端fdesetup status返回“FileVault is On.”)、恢复密钥备份有效性、Apple芯片Mac的启动策略设为“完整安全性”及“仅允许已签名启动项”,并排查非Apple内核模块与可疑登录项。

macOS 磁盘加密(FileVault)启用后,仅保护静态数据,不等于启动链安全。真正防绕过、防离线攻击,必须结合启动安全性策略和固件级防护。审计不能只看“已加密”,而要验证整个启动信任链是否完整。
检查 FileVault 加密状态是否真实生效
很多用户误以为开启 FileVault 就万事大吉,但实际可能处于“已启用但未完成加密”或“恢复密钥丢失导致无法验证”的风险状态:
- 打开「系统设置」→「隐私与安全性」→「文件保险箱」,确认显示“已开启”且进度为“100%”
- 终端执行 sudo fdesetup status,输出必须为 “FileVault is On.”(注意大小写和句点)
- 检查恢复密钥:若用 iCloud 备份,确认「iCloud 设置」中已开启「高级数据保护」;若用个人密钥,需核对是否存于离线安全位置(如打印件锁进保险柜)
验证 Apple 芯片 Mac 的启动安全性策略
搭载 Apple 芯片的 Mac 支持独立配置每个启动磁盘的安全等级。FileVault 加密的磁盘若配了“宽松”策略,攻击者仍可外接启动盘绕过密码直接访问磁盘镜像。
- 关机后按住电源键进入启动选项 → 点“选项”→ 进入恢复模式
- 顶部菜单选「实用工具」→「启动安全性实用工具」→ 输入管理员密码解锁
- 选择当前系统磁盘 → 点「安全策略」→ 确认设为“完整安全性”(不是“降低安全性”)
- 同时检查「允许启动介质」是否为“仅允许已签名的启动项”(该选项在“完整安全性”下自动锁定)
排查固件密码与启动权限冲突
固件密码本身不加密数据,但它能阻止非授权启动介质加载。若已设固件密码,但启动安全性策略为“宽松”,反而会削弱整体防护——因为固件密码在“宽松”模式下可能被绕过。
- 在「启动安全性实用工具」中,若看到“固件密码:已启用”,需确认它与当前安全策略兼容
- Apple 芯片 Mac 不再单独提供固件密码开关,其控制权已整合进启动安全性策略;若策略为“完整”,固件级保护即默认启用
- 如曾手动关闭过固件保护(例如通过终端命令
firmwarepasswd -mode custom),需重置并回归“完整安全性”模式
交叉验证启动项与可信内核扩展
即使磁盘加密+启动策略正确,恶意内核扩展(kext)或系统扩展(System Extension)仍可能在启动早期注入,窃取解密密钥或劫持登录流程。
- 终端运行 kmutil showloaded | grep -v apple,检查是否有非 Apple 签名的内核模块加载(Apple Silicon Mac 默认禁用 kext,此命令仅适用于 Intel 或降级兼容场景)
- 执行 systemextensionsctl list,确认所有启用的系统扩展均来自可信开发者(Bundle ID 应含明确公司域名,非随机字符串)
- 检查登录项:「系统设置」→「通用」→「登录项」,禁用来源不明、无签名或权限过大的第三方启动项


















