SuperAPI AI 工具集

clawsec-nanoclaw

安全与审计

查看项目

更新于 10-15 12:49

技能介绍

用途

ClawSec for NanoClaw 用于保护 WhatsApp 机器人免受技能与依赖项中已知漏洞的影响。其核心原则是:安装前先检查,对正在运行的组件保持监控。该技能通过 MCP 工具,将已安装技能与精选的安全公告订阅源进行比对。

主要能力

该技能提供以下 MCP 工具:

  • clawsec_check_skill_safety:安装前检查某个技能是否安全,可传入 skillName,skillVersion 为可选参数。返回结果中的 safe 字段表示是否安全,advisories 列出相关公告。
  • clawsec_check_advisories:审计所有已安装技能,默认检查容器内 ~/.claude/skills,也可通过 installRoot 指定路径。
  • clawsec_list_advisories:浏览公告列表,支持按 severity、type、exploitabilityScore 等条件筛选。
  • clawsec_verify_skill_package:验证技能包签名,参数为 packagePath。
  • clawsec_refresh_cache:刷新公告缓存,无参数。
  • clawsec_check_integrity:检查文件完整性,可传入 mode 和 autoRestore。
  • clawsec_approve_change:批准文件变更,参数为 path。
  • clawsec_integrity_status:查看基线状态,path 为可选参数。
  • clawsec_verify_audit:验证审计日志,无参数。

使用方式

安装命令:

npx skills add prompt-security/clawsec --skill clawsec-nanoclaw -a openclaw -y

典型使用模式包括:

  1. 安全安装技能:安装前始终调用 clawsec_check_skill_safety,若 safe 为真则继续安装;否则向用户展示风险公告并取得确认后再决定是否安装。
  2. 定期安全检查:可将检查任务加入计划任务,例如通过 cron 表达式 "0 9 * * *" 每天上午 9 点执行,使用 clawsec_check_advisories 检查并在出现 critical 或高可利用性匹配时告警。
  3. 回答用户安全查询:当用户询问「我的技能安全吗?」时,调用 clawsec_check_advisories 并汇报结果。

适用场景

  • 安装新技能前先检查安全性
  • 用户询问技能是否安全
  • 排查可疑行为
  • 定期安全审计
  • 收到安全通知后

限制与不适用场景

  • 不适用于代码审查,应使用其他工具。
  • 不适用于性能问题,属于不同的关注点。
  • 不适用于一般调试。

实现细节

  • 订阅源地址:https://clawsec.prompt.security/advisories/feed.json
  • 该签名订阅源为合并来源,NanoClaw 通过同一默认 URL 接收 NVD CVE、经批准的社区公告以及暂无 CVE 的临时 GHSA 公告。
  • 更新频率:每 6 小时自动更新一次。
  • 签名验证:Ed25519 签名订阅源。
  • 包验证策略:仅使用固定密钥,限制包/签名路径。
  • 缓存位置:/workspace/project/data/clawsec-advisory-cache.json
  • 更多设置与高级用法参见 INSTALL.md 及 docs/。

发布产物验证

对于独立安装,在信任 SKILL.md、skill.json 或归档文件之前,需先验证已签名的发布清单。skill.json 是包元数据/SBOM 来源,发布流水线使用 ClawSec 发布密钥对 checksums.json 进行签名。验证脚本会校验 signing-public.pem 指纹是否匹配指定 SHA256,使用 openssl 验证 checksums.json 的签名,并比对归档、SKILL.md、skill.json 的 SHA256 校验和。只有在验证成功后才可安装或解压归档。

常见错误

  • 未经检查就安装技能。正确做法是先调用 clawsec_check_skill_safety。
  • 忽略可利用性上下文,仅凭严重级别判断。正确做法是结合 exploitability_score 与 severity 一起判断。
  • 跳过 critical 级别,或在中等严重级别中忽略高可利用性。正确做法是将可利用性与严重级别共同纳入优先级。

实际效果

  • 防止安装存在已知 RCE 漏洞的技能
  • 对依赖项中的供应链攻击进行告警
  • 提供可执行的修复步骤
  • 零误报(仅使用精选订阅源)