SuperAPI AI 工具集

clawsec-scanner

安全与审计

查看项目

更新于 10-15 12:41

技能介绍

用途

ClawSec Scanner 是面向智能体平台(agent platforms)的综合安全扫描器,用于自动化检测多维度漏洞。它可独立运行,也可作为 ClawSec 生态(clawsec-suite、clawsec-feed)的一部分。

主要能力

依赖扫描:以子进程方式执行 npm audit --json 与 pip-audit -f json,解析结构化输出,提取 CVE ID、严重性与受影响版本,并处理缺少 package-lock.json、零漏洞、JSON 格式错误等边界情况。

CVE 数据库查询:查询 OSV API(主要来源,免费、无需认证,支持 npm、PyPI、Go、Maven 等生态);可选查询 NVD 2.0(需 API key 以避免限流);可选查询 GitHub Advisory Database(GraphQL API,需 OAuth token)。所有 API 响应会被规范化为统一的 Vulnerability 结构。

静态代码分析(SAST):JavaScript/TypeScript 使用 Semgrep(--config auto 或 --config p/security-audit),Python 使用 Bandit。检测硬编码密钥(API key、token)、命令注入(eval、exec)、路径穿越、不安全反序列化。

动态分析(DAST):从 HOOK.md 元数据发现 OpenClaw 钩子处理程序,进行静态钩子源码检查,在不导入、转译或调用目标处理程序的前提下验证覆盖范围与源码级风险信号。说明指出传统 Web DAST 工具(ZAP、Burp)不适用于智能体平台,此处提供的是智能体专用测试。

统一报告:所有扫描类型输出一致的 ScanReport JSON 结构,含 scan_id(UUID)、timestamp(ISO 8601)、target、vulnerabilities 数组、按 critical/high/medium/low/info 统计的 summary。每个 Vulnerability 包含 id、source(npm-audit | pip-audit | osv | nvd | github | sast | dast)、severity、package、version、fixed_version、title、description、references、discovered_at。

持续监控:通过 OpenClaw 钩子在可配置间隔运行(默认 86400 秒/24 小时),在 agent:bootstrap 与 command:new 事件触发,将结果写入 event.messages 并附严重性摘要,受 CLAWSEC_SCANNER_INTERVAL 限流。

使用方式

通过 Vercel Skills CLI 安装:npx skills add prompt-security/clawsec --skill clawsec-scanner -a openclaw -y

通过 clawhub 安装(推荐):npx clawhub@latest install clawsec-scanner

按需 CLI 扫描:"$SCANNER_DIR/scripts/runner.sh" --target ./skills/ --output report.json --format json,支持 --target(必填)、--output、--format <json|text>、--check(检查依赖二进制)等参数。

启用持续监控钩子:node "$SCANNER_DIR/scripts/setup_scanner_hook.mjs",启用后需重启 OpenClaw gateway,再运行 /new 触发立即扫描。

环境变量:CLAWSEC_NVD_API_KEY(可选,避免 NVD 限流)、GITHUB_TOKEN(可选)、CLAWSEC_SCANNER_INTERVAL(可选)、CLAWSEC_ALLOW_UNSIGNED_FEED(可选,开发用)。

另有带校验的手动安装流程,包含发布签名公钥验证、checksums.json 签名验证与归档 SHA-256 校验(脚本内容见官方资料)。

适用场景

扫描智能体技能目录与 Python/JavaScript 依赖、检测代码中的密钥与注入类问题、对 OpenClaw 钩子做静态风险审查、在智能体运行中周期性监控漏洞、生成统一 JSON 报告便于后续处理。

限制

DAST 部分不执行目标钩子处理程序,仅为静态源码检查,JavaScript/TypeScript 钩子文件以 info 级静态覆盖发现形式报告,是否需更深入的沙箱测试需人工判断。传统 Web DAST 不适用于智能体平台。NVD 无 API key 时有 6 秒请求延迟。扫描器采用失败开放策略(网络失败输出部分结果、工具缺失跳过该扫描类型、JSON 错误解析有效部分、限流时指数退避并回退其他来源)。立即退出的关键失败包括:目标路径不存在、无任何扫描工具可用、检测到并发扫描(锁文件 /tmp/clawsec-scanner.lock 存在)。

平台与许可

要求 Node v20+、Python 3.10+,以及 pip-audit、semgrep、bandit、jq、curl。架构为模块化设计,各扫描类型可独立运行。许可证为 AGPL-3.0-or-later。当前版本 v0.0.4。