背景:为什么技能安全很重要?

ClawHub 上的技能数量已经突破 69,000+,每天有数千个新技能被安装到各种 OpenClaw 实例中。但技能的安全性一直是个隐患:

2026 年 6 月,OpenClaw 与 NVIDIA 宣布合作,推出 Skill Security Framework,从多个层面保障技能安全。

合作时间线

2026年4月 — 合作启动

OpenClaw 与 NVIDIA 安全团队开始技术对接

2026年5月 — Beta 测试

ClawHub 上线安全扫描功能 Beta 版,首批 5,000 个热门技能通过审核

2026年6月 — 正式发布

Skill Security Framework 正式发布,所有新提交的技能必须通过安全扫描

2026年Q3 — 全量覆盖

计划对 ClawHub 全部 69,000+ 技能完成安全扫描

安全扫描流程

扫描阶段

# Skill Security 扫描流程
提交技能到 ClawHub
    ↓
[阶段1] 静态分析
    - SKILL.md 语法检查
    - 敏感关键词检测(rm, sudo, curl POST, etc.)
    - 权限声明审查
    ↓
[阶段2] 行为分析
    - 沙箱执行测试
    - API 调用模式分析
    - 文件访问模式分析
    ↓
[阶段3] 供应链检查
    - 依赖项安全扫描
    - 版本一致性验证
    - 已知漏洞检查
    ↓
[阶段4] AI 语义审查
    - LLM 分析技能意图
    - 检测隐藏的恶意指令
    - 评估权限合理性
    ↓
安全评分 → 发布 / 人工审核 / 拒绝

安全评分体系

# 安全评分维度(满分 100)
┌─────────────────┬────────┬──────────────────────────┐
│ 维度             │ 权重   │ 说明                      │
├─────────────────┼────────┼──────────────────────────┤
│ 静态安全         │ 25%    │ 代码/配置安全性            │
│ 行为安全         │ 30%    │ 运行时行为是否合规          │
│ 供应链安全       │ 20%    │ 依赖项安全性              │
│ 权限合理性       │ 15%    │ 申请权限是否最小化          │
│ 社区信誉         │ 10%    │ 作者历史、下载量、评价      │
└─────────────────┴────────┴──────────────────────────┘

# 安全等级
90-100: 🟢 安全(自动通过)
70-89:  🟡 中等(标记提醒)
50-69:  🟠 警告(需人工审核)
0-49:   🔴 危险(自动拒绝)

沙箱隔离机制

沙箱架构

# 技能执行沙箱
┌─────────────────────────────────────┐
│ OpenClaw Gateway                     │
│ ┌─────────────────────────────────┐ │
│ │ Skill Sandbox (gVisor/Firecracker)│ │
│ │ ┌─────────────────────────────┐ │ │
│ │ │ SKILL.md 执行环境            │ │ │
│ │ │ - 只读文件系统               │ │ │
│ │ │ - 网络白名单                │ │ │
│ │ │ - CPU/Memory 限制            │ │ │
│ │ │ - 时间限制 (30s)             │ │ │
│ │ └─────────────────────────────┘ │ │
│ └─────────────────────────────────┘ │
│ Host System (隔离)                   │
└─────────────────────────────────────┘

沙箱策略配置

# openclaw.json
{
  "skills": {
    "sandbox": {
      "enabled": true,
      "runtime": "gvisor",  // gvisor | firecracker | docker
      "limits": {
        "cpu": "0.5",
        "memory": "256MB",
        "disk": "100MB",
        "networkOutbound": "whitelist",
        "timeoutSeconds": 30
      },
      "filesystem": {
        "readOnly": true,
        "allowedPaths": ["/tmp/skill-workspace"]
      },
      "network": {
        "allowedDomains": ["api.openai.com", "clawhub.ai"],
        "blockedPorts": [22, 3306, 5432]
      }
    }
  }
}

供应链安全

技能依赖检查

# 技能可以声明依赖
# SKILL.md
---
name: advanced-analyzer
dependencies:
  - name: data-processor
    version: ">=2.0.0"
    source: clawhub
  - name: chart-generator
    version: "^1.5.0"
    source: clawhub
---

# ClawHub 会自动检查:
# 1. 依赖是否存在
# 2. 版本是否兼容
# 3. 依赖的安全评分
# 4. 依赖的依赖(传递依赖)

签名验证

# 技能发布者签名
openclaw skill sign my-skill --key ~/.openclaw/keys/signing.key

# 安装时验证签名
openclaw skill install my-skill --verify-signature

# 签名验证结果
✅ Signature valid
✅ Signer: miaoquai (verified)
✅ Timestamp: 2026-06-10T01:00:00Z
✅ Certificate chain valid

最佳实践

💡 技能开发者安全指南:
  • 最小权限:只申请必要的权限,不要"全都要"
  • 透明意图:在 SKILL.md 中清楚说明技能的功能和行为
  • 避免硬编码:不要在技能中硬编码 API Key 或敏感信息
  • 输入验证:对所有用户输入进行验证和清洗
  • 定期更新:及时更新依赖项,修复已知漏洞
  • 签名发布:始终对发布到 ClawHub 的技能进行签名
⚠️ 技能使用者安全建议:
  • 安装技能前检查安全评分(建议 80+)
  • 关注技能的权限声明是否合理
  • 优先安装经过签名验证的技能
  • 定期审查已安装的技能列表