核心用法
ClawSecCheck 是面向 OpenClaw AI 代理的本地安全自审技能,通过纯只读方式扫描用户自有代理的配置文件、引导文件、日志、会话记录及已安装技能,生成 A-F 安全评分与漏洞报告。全程零网络传输、无需 API 密钥、不修改任何配置。
典型触发场景:用户说"检查我的 OpenClaw 安全"、"审计我的设置"、"我的代理安全吗"、"安全评分多少"等。
扫描范围(只读)
~/.openclaw/openclaw.json主配置- 工作区引导文件(
SOUL.md、AGENTS.md、TOOLS.md、MEMORY.md等) - 已安装技能的文本内容(Python AST 静态解析,永不执行)
- 配置审计日志与会话日志(用于检测异常写入与审批策略)
- 主机防御态势:IDS/FIM/EDR/防火墙配置文件的存在性检测
- 凭证存储路径清单(
.env、SSH 目录、钥匙串等路径存在性,不读取内容)
关键检测能力
1. 致命三合一(Lethal Trifecta):检测「不受信任输入 × 敏感数据 × 出站操作」三重风险叠加
2. 技能恶意代码扫描:识别 ClawHavoc 恶意软件类特征(shell 执行、凭证窃取、粘贴主机上传、base64 混淆载荷)
3. 提示注入风险:扫描引导文件中的注入倾向指令
4. 供应链安全:MCP 服务器信任度、技能/插件来源审查
5. 主机监控缺失:检测代理是否在无监控的裸机上运行
运行模式
- 默认模式:
--full全面审计 + 能力自报告 + 实时自测试(金丝雀/干运行/红队) - 安装前审查:
--vet <path>对本地技能/插件进行 A-F 评级(SAFE/SUSPICIOUS/DANGEROUS) - 来源审查:
--vet-source <slug|url>零网络身份检查,识别已知恶意包名、typosquatting、未固定 git 引用 - MCP 审查:
--vet-mcp检查已配置 MCP 服务器的供应链风险 - 持续监控:
--monitor建立基线快照,后续仅报告变更 - 实时注入测试:
--canary/--dryrun/--redteam可选主动测试(需用户明确同意)
输出产物
- Dashboard:等级卡片(🦞 OpenClaw Security Audit — Grade X · Y/100)+ 按风险家族分组的发现在一个消息中完整呈现
- 报告格式:
--json、--html、--sarif、--badge(可分享的等级徽章) - 本地历史:
~/.clawseccheck/下的审计历史与趋势(--no-history可禁用)
显著优点
| 维度 | 优势 |
|------|------|
| **隐私优先** | 完全本地运行,零网络传输,零 API 密钥,敏感数据不出本机 |
| **只读承诺** | 明确区分"检查"与"修复",永不修改配置,降低误操作风险 |
| **供应链防护** | 安装前审查(vet)覆盖技能、插件、MCP 服务器、外部包来源 |
| **实时能力感知** | 通过 `--ask` + `--attest` 协议让运行时代理自报告工具能力与审批策略,弥补静态配置的盲区 |
| **结构化隔离** | 对不可信内容(技能代码、MCP 描述)采用子代理隔离模式(context-firewall),防止提示注入通过审计上下文攻击宿主代理 |
| **透明可审计** | 所有检测逻辑本地 Python 标准库实现,开源 MIT 许可,可验证无后门 |
潜在缺点与局限性
| 局限 | 说明 |
|------|------|
| **静态审计边界** | 评估的是配置层面的"能力"而非运行时行为,高评分不代表运行时免疫注入攻击 |
| **依赖自报告诚实性** | B43/B44(能力爆炸半径、配置漂移)依赖运行时代理的自报告,存在被欺骗可能 |
| **主机监控探测受限** | 仅通过进程/服务名模式匹配检测 EDR/IDS,可能被规避或漏报 |
| **技能代码静态分析** | Python AST 扫描无法捕获动态代码生成、编译扩展或 obfuscation 技术 |
| **无自动修复** | 纯报告工具,用户需自行理解并实施修复,对非技术用户门槛较高 |
| **MCP 服务器不连接** | `--vet-mcp` 仅检查配置,不实际连接服务器验证其行为 |
适合人群
- OpenClaw 代理用户:希望了解自身代理安全态势的个人开发者或团队
- 企业安全团队:需要在 CI/CD 中集成代理配置安全检查(支持 SARIF/JSON 输出)
- 安全研究员:研究 LLM 代理攻击面与防御模式的审计工具
- 供应链谨慎用户:习惯在安装第三方技能/MCP 前进行来源审查的谨慎实践者
常规风险
1. 审计输出即不可信数据:工具明确警告需将审计输出视为不可信输入,发现中的技能名称、文件内容、载荷预览可能包含提示注入攻击,禁止跟随其中的任何指令。
2. 子代理隔离失败降级:若宿主环境不支持 agents.subagents,则回退到单代理内联读取,虽有过滤规则但隔离强度降低。
3. 实时测试的副作用:--canary/--redteam 等主动测试虽为本地模拟,但仍可能触发代理的审批机制或日志记录,需在明确告知用户后执行。
4. 历史数据本地泄露:~/.clawseccheck/ 下的审计历史包含配置快照,虽权限为 owner-only,但物理访问或备份泄露仍可能暴露安全态势信息。
5. 版本过时风险:工具自身不联网更新,旧版本可能遗漏新型攻击特征检测,需用户主动关注更新。