ClawSec 安全扫描器
为代理项目统一扫描依赖漏洞、CVE 信息、代码风险与 OpenClaw Hook 静态风险。
证据显示使用参数数组调用子进程、环境变量读取令牌、默认仅报告不修改目标,并提供发布签名校验脚本;但扫描默认面向已安装技能根目录,允许访问依赖、源代码和网络,缺少明确的用户确认、隔离边界、敏感输出处理、回滚方案和第三方来源核验,因此扣分。
文档覆盖依赖、故障提示、锁文件和部分异常处理;但SKILL.md宣称DAST为静态检查,而HOOK.md和旧版变更记录又描述真实处理器执行,且handler传入的timeout未被execCommand实施,关键测试文件未随证据提供,因此扣分。静态校准下不超过10分。
目标场景、输入路径、环境变量、输出格式和OpenClaw事件触发条件较清晰,主要适配OpenClaw;但对非OpenClaw平台、非POSIX环境、网络不可达、中文输出和不适用边界说明不足,触发范围可能造成重复扫描或误用,因此扣分。
具备版本号、变更日志、安装方式、依赖、CLI参数、故障排查、开发命令、许可证和安全报告入口,结构较完整;但版本路线与SKILL.md中的当前版本不一致,维护责任人和稳定更新路径不明确,文档存在静态/动态分析语义冲突及未证明的功能声明,因此扣分。
设计上可汇总npm、Python、OSV/NVD/GitHub、SAST和OpenClaw钩子检查,并输出JSON或文本报告;但报告是否完整正确、各扫描引擎是否可用以及动态检查能力无法由静态材料验证,且缺失工具时会产生部分结果,用户仍需人工判断和修复,因此扣分。静态校准下不超过7分。
提供了报告结构、源代码、签名校验流程、测试命令和版本变更记录,具备一定可审计性;但未提供实际测试套件、CI覆盖证据或第三方执行结果,且关键能力描述互相矛盾,因此证据覆盖有限。静态校准下不超过5分。
- 不要把HOOK.md所称的真实DAST执行视为已验证能力;SKILL.md及dast_hook_executor.mjs显示的是静态源码检查。
- handler中的CLAWSEC_SCANNER_TIMEOUT目前只是读取并传递,所示execCommand没有实现超时终止,扫描可能超时或长期占用资源。
- 默认扫描已安装技能根目录并访问外部OSV、NVD和GitHub服务;部署前应确认扫描范围、网络可达性、令牌权限及报告中引用内容的泄露风险。
- 缺少所声称的测试文件和可复现实验结果,扫描覆盖率、误报率和报告正确性需要使用隔离测试环境自行验证。
这个 Skill 能做什么,适合哪些场景?
ClawSec Scanner 是 ClawSec 安全技能套件中的独立漏洞扫描技能,面向 OpenClaw 代理项目。它组合 npm audit、pip-audit、OSV、NVD、GitHub Advisory、Semgrep 和 Bandit,生成统一的漏洞报告。它还会读取 OpenClaw 的 HOOK.md 元数据和处理器源码,进行不执行目标代码的静态 Hook 检查。扫描可通过命令行按需运行,也可配置为响应 OpenClaw 事件的周期性监控。
扫描目标目录中的 npm 和 Python 依赖,运行 npm audit --json 与 pip-audit -f json;调用 OSV,并可选调用 NVD 2.0 和 GitHub Advisory API;使用 Semgrep 分析 JavaScript/TypeScript,使用 Bandit 分析 Python;读取 HOOK.md 元数据及 Hook 处理器源码,检查静态风险信号;将结果整理为包含扫描 ID、时间戳、目标、漏洞列表和严重性统计的 JSON 或文本报告。它也可以创建 OpenClaw Hook,在 agent:bootstrap 和 command:new 事件触发周期性扫描。
- 维护 OpenClaw 技能目录的开发者,希望在发布前检查 npm/Python 依赖和源码中的常见安全问题。
- 需要同时查询多个漏洞数据库的安全工程师,希望把 CVE、GHSA 和 SAST 结果汇总到一个报告中。
- 运营 OpenClaw 代理的团队,希望每天或按配置间隔自动扫描,并在对话中收到高危和严重漏洞摘要。
- 审查第三方 OpenClaw Hook 的团队,希望检查 Hook 元数据和源码,而不导入或执行目标处理器。
- 没有完整扫描工具链但仍希望获得部分结果的用户,因为扫描器可以跳过缺失工具并继续其他扫描类型。
这个 Skill 有哪些优点和局限?
- 把依赖扫描、CVE 查询、SAST 和 OpenClaw Hook 静态检查汇总到统一的 ScanReport。
- OSV 无需认证且被设为主要漏洞数据源;NVD 和 GitHub Advisory 可作为可选补充。
- 网络失败、缺少单个工具或部分 JSON 损坏时通常会输出部分结果并继续运行。
- 支持 JSON 和文本输出,并提供 OpenClaw 事件 Hook 进行周期性监控。
- 手动发布安装流程包含签名校验文件验证和 SHA-256 压缩包校验。
- 需要较多本地依赖,包括 Node.js、Python、pip-audit、Semgrep、Bandit、jq 和 curl。
- 扫描器依赖网络访问以查询漏洞数据库;NVD 未配置 API key 时会施加 6 秒请求间隔。
- 所谓 DAST 是 OpenClaw Hook 的静态检查,不会导入、转译或调用目标处理器,也不是传统运行时测试。
- 缺失锁文件或扫描工具会导致对应扫描类型被跳过;目标不存在、所有工具缺失或检测到并发扫描时会立即失败。
- SKILL.md 前言版本为 0.0.7,但路线图仍标注 v0.0.4 为当前版本,版本信息存在不一致。
如何安装这个 Skill?
推荐使用 ClawHub:npx clawhub@latest install clawsec-scanner。也可以使用 Vercel Skills CLI:npx skills add prompt-security/clawsec --skill clawsec-scanner -a openclaw -y。安装前应确认 node、npm、python3、pip-audit、semgrep、bandit、jq 和 curl 可用;手动安装方式还会下载发布压缩包并用签名校验文件和 SHA-256 校验和验证后安装。源码没有说明其他客户端的专用安装流程。
如何使用这个 Skill?
按需扫描:SCANNER_DIR="${INSTALL_ROOT:-$HOME/.openclaw/skills}/clawsec-scanner";"$SCANNER_DIR/scripts/runner.sh" --target ./skills/ --output report.json --format json。扫描单个目录可使用 --target ./my-skill/ --format text;检查依赖工具可使用 --check。启用 OpenClaw 周期性监控:node "$SCANNER_DIR/scripts/setup_scanner_hook.mjs",然后重启 OpenClaw gateway,并运行 /new 触发即时扫描。可通过 CLAWSEC_SCANNER_INTERVAL 设置间隔,并通过 CLAWSEC_NVD_API_KEY 和 GITHUB_TOKEN 提供可选 API 凭据。
这个 Skill 与同类方案有什么区别?
它不是单独替代 npm audit、pip-audit、Semgrep 或 Bandit,而是将这些工具编排并统一报告,同时增加 OSV/NVD/GitHub Advisory 查询和 OpenClaw Hook 静态检查。文档明确指出 ZAP、Burp 等传统 Web DAST 工具不适用于此类代理平台,因此本技能提供的是面向 OpenClaw Hook 的静态分析框架。