介绍
# security-audit
一个针对代码库和 OpenClaw/ClawHub 技能的、具有“敌意设计”原则、**“故障阻断”** 的审计工作流。
它**不**试图回答“这个技能是否能工作?”。
它试图回答:**“这个技能是否会背叛系统?”**
## 检查内容(概览)
该技能的脚本结合了多层检查:
- **密钥 / 凭据泄露:** trufflehog - **静态分析:** semgrep(自动规则) - **敌意代码库审计(自定义):** 提示注入信号、持久化机制、可疑产物、依赖项卫生状况
如果任何一层检查失败,整体审计结果即为 **FAIL**。
## 运行审计 (JSON)
在该技能文件夹中执行(使用 `bash`,以便即使因 zip 下载导致可执行位未保留也能正常运行):
```bash bash scripts/run_audit_json.sh <path> ```
示例:
```bash bash scripts/run_audit_json.sh . > /tmp/audit.json jq '.ok, .tools' /tmp/audit.json ```
### 安全级别(用户可配置)
设置严格程度级别(默认:`standard`):
```bash OPENCLAW_AUDIT_LEVEL=standard bash scripts/run_audit_json.sh <path> OPENCLAW_AUDIT_LEVEL=strict bash scripts/run_audit_json.sh <path> OPENCLAW_AUDIT_LEVEL=paranoid bash scripts/run_audit_json.sh <path> ```
- `standard`:务实的严格默认值(要求锁定文件;安装钩子/持久化/提示注入信号将导致失败) - `strict`:更多模式将变为硬性 **FAIL**(例如压缩/混淆产物) - `paranoid`:不存在“尽力而为”的哈希失败;更多“故障阻断”行为
## 清单要求(用于零信任安装工作流)
对于严格/隔离工作流,要求在代码库根目录提供机器可读的意图/权限清单:
- `openclaw-skill.json`
如果代码库/技能未提供此清单,敌意审计应将其视为 **FAIL**。
参见:`docs/OPENCLAW_SKILL_MANIFEST_SCHEMA.md`。
## 可选:执行沙箱 (Docker)
在此 Docker 是**可选**的。该技能可在没有 Docker 的情况下用于静态审计。
如果您想执行任何生成的/不受信任的代码,请在单独的沙箱工作流中运行(推荐)。
## 文件
- `scripts/run_audit_json.sh` — 主要的 JSON 审计运行器 - `scripts/hostile_audit.py` — 提示注入/持久化/依赖项卫生状况扫描器 - `scripts/security_audit.sh` — 便捷封装脚本(始终返回 JSON,从不返回非零值) - `openclaw-skill.json` — 机器可读的意图/权限清单