关于 macos-security
macos-security 是供 AI Agent 执行 macOS 安全检查和系统加固的技能。它通过 macOS 命令整合恶意软件扫描、权限管理、签名验证、隔离属性处理和日志审计。
主要功能
- 01XProtect 恶意软件扫描
- 02MRT 威胁清除
- 03TCC 权限管理
- 04隔离属性处理
- 05代码签名验证
- 06安全日志审计
适用场景
- 01部署前检查应用
- 02审查应用对摄像头或联系人的访问
- 03扫描可疑文件并检查日志
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill macos-security安装后在 Claude Code 中输入/macos-security确认已加载。
详细介绍
macos-security
用途
此技能可让 AI Agent 管理 macOS 安全功能,包括用于恶意软件检测的 XProtect、用于移除恶意软件的 MRT、用于隐私权限管理的 TCC、隔离属性、代码签名验证和安全审计。使用它来强化 macOS 系统,抵御威胁并确保合规。
适用场景
在系统强化例行工作、应用部署检查、隐私审计或恶意软件扫描期间使用此技能。它适用于全新 macOS 设置、软件安装,或在排查未经授权的应用访问、未签名二进制文件等安全问题时使用。
主要功能
- 通过查询最新定义并扫描文件,使用 XProtect 检测恶意软件。
- 运行 MRT,从系统中移除已知威胁。
- 管理 TCC 权限,控制应用对摄像头或通讯录等敏感数据的访问。
- 检查并移除已下载文件上的隔离标记,以允许执行。
- 验证应用的代码签名,确保其来自受信任的开发者。
- 使用系统日志执行安全审计,以识别潜在的入侵行为。
使用模式
在脚本中调用此技能以实现自动化强化,例如在 macOS 应用的虚拟机预配或 CI/CD 工作流期间使用。可在事件响应时被动使用,也可在计划任务中主动使用。对于 AI Agent,可通过处理 macOS 专用命令的函数封装调用此技能,并在需要时使用 sudo 提升权限。模式:先检查安全状态,再应用修复。
常用命令/API
使用以下 macOS CLI 命令执行安全任务。所有命令都需要管理员权限;通过退出代码检查错误。
- XProtect 扫描:使用
softwareupdate --list检查更新,然后运行xprotect scan /path/to/file(通过内部工具)。 示例代码段:system("softwareupdate --list"); if (exit_code != 0) { handle_error("Update check failed"); } - MRT 移除:运行
/usr/libexec/MRTConfigData remove以触发恶意软件移除。 示例代码段:system("/usr/libexec/MRTConfigData remove"); print("MRT executed; check logs for results."); - TCC 权限:使用
tccutil reset <service> <app>重置权限,或使用tccutil set <service> <app> allow授予权限。 示例:使用tccutil set Camera com.example.app allow授予摄像头访问权限。 - 隔离处理:使用
xattr -l /path/to/file检查,并通过xattr -d com.apple.quarantine /path/to/file移除。 示例代码段:xattr -l /path/to/file; if (grep("com.apple.quarantine")) { system("xattr -d com.apple.quarantine /path/to/file"); } - 代码签名验证:运行
codesign -vvv --verify --strict /path/to/app检查签名。 示例:使用codesign -dvvv /Applications/MyApp.app进行详细验证。 - 安全审计:使用
log show --predicate 'subsystem == "com.apple.securityd"' --last 1h查询日志。 配置格式:在log命令中使用谓词进行筛选,例如通过--style json输出 JSON。
如果需要 API 密钥(例如用于第三方安全工具),请在脚本中使用 $SECURITY_API_KEY 等环境变量:curl -H "Authorization: Bearer $SECURITY_API_KEY" https://api.example.com/scan。
集成说明
将命令封装在 AI Agent 函数中进行集成,例如使用 Python 的 subprocess 调用 tccutil。对于自动化,可结合 Jamf 或 MDM API 等工具使用。确保 Agent 具有足够的权限;如有需要,可使用 osascript 提示用户。可以编辑 /etc/authorization 等配置文件来设置 TCC 策略,但请先备份。请在沙盒化的 macOS 环境中测试集成,以避免造成中断。
错误处理
始终检查命令的退出代码;例如,如果 codesign 返回非零值,请记录错误并建议重新签名。解析输出中的特定字符串,例如,如果 tccutil 因 "Access denied" 失败,请提示用户提升管理员权限。在脚本中使用 try-catch:
try {
system("tccutil set Camera com.example.app allow");
} catch (e) {
if (e.includes("permission")) { system("sudo -u root tccutil set Camera com.example.app allow"); }
}
常见错误:权限问题(使用 sudo)、找不到文件(验证路径),或 XProtect 已过时(先运行更新)。将所有错误记录到 /var/log/securityd.log 以供审计。
具体使用示例
-
恶意软件扫描与清除:扫描可疑文件并清除威胁:
- 首先,更新 XProtect:
softwareupdate --install --all。 - 然后运行 MRT:
system("/usr/libexec/MRTConfigData remove")。 - 验证:
log show --predicate 'eventMessage contains "MRT"'。 这样可以清理系统;如果出错,请检查 MRT 是否可用。
- 首先,更新 XProtect:
-
管理应用的 TCC 权限:为新应用授予相机访问权限:
- 检查当前状态:
tccutil reset Camera com.example.app。 - 授予权限:
tccutil set Camera com.example.app allow。 - 测试:运行应用并确认其可以访问。
如果出错,请使用
sudo,并记录操作以供审计。
- 检查当前状态:
图关系
- 相关:macos-filesystem(用于处理已隔离的文件)
- 依赖:macos-networking(用于涉及网络日志的安全审计)
- 冲突:无
- 使用方:general-security(作为 macOS 专用加固的子系统)