核心用法
security-audit 是一款失败关闭(fail-closed)设计的安全审计技能,核心目标并非验证功能正确性,而是回答关键问题:"此技能/代码能否背叛系统?"
执行方式
# JSON 格式输出(推荐) bash scripts/run_audit_json.sh <仓库路径> # 可调严格等级 OPENCLAW_AUDIT_LEVEL=strict bash scripts/run_audit_json.sh ./target-skill
三层检测架构:
- 密钥泄露扫描:集成 TruffleHog 检测硬编码凭证
- 静态代码分析:Semgrep 自动规则集扫描漏洞模式
- 对抗性审计(自定义):检测提示注入信号、持久化机制、可疑混淆产物、依赖项卫生
显著优点
1. 失败关闭哲学:任一检测层失败即整体判定 FAIL,避免"部分通过"的安全幻觉
2. 分级严格度:standard/strict/paranoid 三级可调,适配不同风险场景
3. 零信任工作流:强制要求 openclaw-skill.json 权限清单,无清单即拒绝
4. 静态分析优先:无需 Docker 即可执行,降低使用门槛
潜在局限
- 依赖外部工具链:需预装 jq、trufflehog、semgrep、Python3,跨平台安装脚本存在碎片化(apt/brew/pipx 多路径)
- 误报风险:strict/paranoid 模式对混淆代码、minified 产物零容忍,可能误杀合法压缩资源
- 无动态沙箱:声明 Docker 为可选,但执行未信任代码仍需用户自建隔离环境
- 规则集黑盒:Semgrep "auto rules" 具体覆盖范围未文档化,审计结果可解释性受限
适合人群
- 技能平台运营方:ClawHub/OpenClaw 等第三方技能市场的入库审核
- 企业安全团队:CI/CD 流水线中前置的供应链安全检查
- 高敏感环境管理员:需在启用任何外部代码前完成对抗性风险评估
常规风险
- 供应链攻击面:工具链本身(trufflehog/semgrep)若被入侵将级联污染审计结论
- 配置漂移:
OPENCLAW_AUDIT_LEVEL环境变量未显式设置时回退 standard,可能低于预期防护 - JSON 解析依赖:输出管道依赖 jq,若目标系统缺失将导致下游自动化失效
- 权限清单绕过:
openclaw-skill.json的自声明模式存在被恶意技能伪造的风险