clawsec-suite

📦 AI 工具链安全守门人

security榜 #12

OpenClaw 安全防护套件,提供恶意技能监测、签名验证与双重确认安装机制,守护 AI 工具链安全

收藏
30k
安装
8.4k
版本
0.1.0
CLS 安全性认证2026-05-18
点击查看完整报告 >

使用说明

核心用法

clawsec-suite 是 OpenClaw 生态的安全中枢套件,主要功能分为四个层面:

1. 咨询流监测(Advisory Feed Monitoring)

  • 实时轮询 ClawSec 安全公告源,追踪新发布的安全警告
  • 通过嵌入式种子文件和远程签名验证确保信息完整性
  • 本地状态持久化,避免重复通知,支持增量检测

2. 签名验证体系

  • 发布包采用 Ed25519 签名,公钥指纹预置验证
  • checksums.json 清单签名验证后才能信任其中哈希值
  • 咨询流支持分离式签名(detached signature),默认强制验签
  • 提供 CLAWSEC_ALLOW_UNSIGNED_FEED 临时绕过开关(仅迁移期使用)

3. 审批门控响应(Approval-Gated Response)

  • 检测到恶意或建议移除的技能时,立即通知用户并展示严重等级
  • 删除/禁用操作需双重确认:首次意图 + 显式二次批准
  • 安装被标记技能时,脚本返回 exit 42 提示风险,需 --confirm-advisory 参数才继续

4. 技能安装守护

  • guarded_skill_install.mjs 脚本交叉比对咨询库与目标技能
  • 版本号缺失时采用保守匹配策略:任何引用该技能名称的咨询均视为匹配
  • 集成 discover_skill_catalog.mjs 支持运行时动态发现可用安全技能

OpenClaw 自动化集成

  • setup_advisory_hook.mjs:在 agent:bootstrap/new 命令时触发扫描
  • setup_advisory_cron.mjs:可选每 6 小时定期心跳检查
  • HEARTBEAT.md 定义统一的安全检查入口,涵盖更新检测、咨询轮询、状态更新

显著优点

  • 纵深防御:签名→哈希→咨询匹配→双重确认,多层防护环环相扣
  • 故障封闭(Fail-closed):签名验证失败时默认拒绝,而非静默接受
  • 状态持久化~/.openclaw/clawsec-suite-feed-state.json 记录已知咨询,避免骚扰式重复通知
  • 保守版本匹配:无明确版本时,任何相关咨询均触发保护,降低漏报风险
  • 动态扩展:不硬编码技能列表,运行时从权威索引拉取,保持生态同步
  • 非破坏性默认:所有响应流程以通知和引导为主,不自动执行高风险操作

潜在缺点与局限性

  • 手动初始信任:首次使用需离带验证公钥指纹(711424e4535f84093...),新手可能忽略此步骤
  • 外部依赖:需预装 curl, jq, shasum, openssl,在精简环境中可能缺失
  • 网络依赖:动态目录发现、远程咨询流均依赖 clawsec.prompt.security 可用性,离线场景功能受限
  • Node.js 运行时:守护脚本基于 mjs,需 Node 环境,纯 shell 环境无法运行
  • cron 配置权限:自动定期任务需要用户级 crontab 写入权限,受限容器内可能失败
  • 咨询覆盖盲区:仅覆盖 ClawSec 收录的恶意技能,新型威胁存在时间窗口

适合人群

  • OpenClaw 重度用户,依赖多技能组合完成复杂任务
  • 企业安全团队,需要审计 AI 代理工具链的组件来源
  • 对供应链攻击高度敏感的开发者(如处理敏感数据、金融场景)
  • 安全意识较强、愿意执行手动确认流程的技术用户
  • 需要合规留痕的组织实施,审批门控提供明确的责任追溯点

常规风险

  • 误报阻塞合法技能:保守匹配策略可能将名称相似但无害的技能误判为风险
  • 用户确认疲劳:频繁的双重确认可能诱导用户形成自动输入习惯,削弱保护效果
  • 时间戳攻击:若状态文件被篡改,可能跳过关键咨询的检测
  • 签名密钥轮换:当前公钥硬编码,未来轮换时需用户手动更新指纹信任
  • 咨询源单点故障clawsec.prompt.security 若被攻陷或劫持,可能成为虚假安全信息的传播渠道
  • Shell 脚本注入:手动安装流程中的变量扩展若处理不当,存在命令注入风险(当前脚本使用 set -euo pipefail 和引号包裹降低风险)

安全解读

ClawSec Suite 综合评估

核心用法

ClawSec Suite 是由 Prompt Security 官方维护的 OpenClaw 安全工具套件,主要提供三大核心功能:

1. Advisory Feed 监控:实时轮询 clawsec.prompt.security 官方安全公告源,检测影响已安装技能的恶意或高危漏洞通告
2. 防护性安装流程guarded_skill_install.mjs 实现"双确认"机制——首次请求后自动交叉核对advisory数据库,若存在匹配则强制二次显式确认

3. OpenClaw 自动化集成:通过 setup_advisory_hook.mjs 在 agent 启动时自动扫描,支持可选的 cron 定时任务(默认6小时)

关键工作流:

# 发现可用技能(动态目录)
node scripts/discover_skill_catalog.mjs

# 受保护的安装(自动advisory检查)
node scripts/guarded_skill_install.mjs --skill <name> [--confirm-advisory]

# 启用实时监控hook
node scripts/setup_advisory_hook.mjs

显著优点

| 维度 | 表现 |
|------|------|
| **来源可信度** | Prompt Security 官方组织维护,T2级可信来源,配套 `clawsec.prompt.security` 专属域名 |
| **密码学安全** | Ed25519 签名验证 + SHA-256 校验和双重验证,pinned public key 指纹外带校验 |
| **网络隔离** | 严格域白名单(仅 `clawsec.prompt.security`、GitHub releases),强制 TLS 1.2+,证书验证 |
| **Fail-Closed 设计** | 默认拒绝未签名feed,`CLAWSEC_ALLOW_UNSIGNED_FEED=1` 仅作迁移临时开关 |
| **供应链安全** | 零第三方运行时依赖,纯 Node.js 内置模块实现,攻击面极小 |
| **权限克制** | 状态文件 `chmod 600`,仅操作 `~/.openclaw` 目录,无系统级权限需求 |
| **隐私合规** | GDPR/CCPA 通过认证,不采集敏感用户数据,仅处理技能元数据 |

潜在缺点与局限性

1. 生态依赖性:专为 OpenClaw 运行时设计,脱离该环境则核心价值无法发挥
2. 手动确认负担:高危advisory的"双确认"机制虽安全,但可能打断自动化 CI/CD 流程

3. 网络单点:核心功能依赖 clawsec.prompt.security 可用性,虽支持本地 seed fallback,但实时性受损

4. Ed25519 普及度:相比 RSA/ECDSA,部分企业环境对 Ed25519 工具链支持可能有限

5. 无内置漏洞扫描:专注advisory匹配而非静态代码分析,无法检测零日漏洞或供应链植入

适合人群

  • OpenClaw 生态用户:必需安装,作为安全基线防护
  • 企业安全团队:需要集中化技能治理和 audit trail 的组织
  • 高敏感度场景:金融、医疗、关键基础设施等对第三方代码供应链风险极度敏感的领域
  • 合规驱动型用户:需要满足 SOC2、ISO 27001 等标准中关于第三方组件管理的审计要求

常规风险

| 风险场景 | 等级 | 说明 |
|---------|------|------|
| 签名密钥泄露 | 中 | 虽支持密钥轮换,但历史advisory若被伪造需依赖 out-of-band 指纹校验 |
| 域名接管 | 低 | `clawsec.prompt.security` 若遭 DNS 劫持,TLS pinning 和签名验证提供纵深防御 |
| 本地状态篡改 | 低 | `~/.openclaw/clawsec-suite-feed-state.json` 权限 600,但 root 用户可覆盖 |
| 拒绝服务 | 低 | feed 服务器不可用时将 fallback 到本地 seed,可能错过紧急advisory |
| 误报/漏报 | 中 | advisory 数据库的覆盖率和时效性决定检测效果,零日漏洞存在窗口期 |

使用建议:生产环境部署时务必完成首次 out-of-band 公钥指纹验证(711424e4535f84093fefb024cd1ca4ec87439e53907b305b79a631d5befba9c8),并定期审计 ~/.openclaw 目录权限。

clawsec-suite 内容

advisories文件夹
hooks文件夹
clawsec-advisory-guardian文件夹
lib文件夹
scripts文件夹
test文件夹
手动下载zip · 45.6 kB
feed.jsonapplication/json
请选择文件