🛡️ 为什么需要技能安全审计?

2026年初,ClawHub 爆发了震惊业界的 ClawHavoc 安全事件:820+ 恶意 Skills 被上传,138 个 CVE 漏洞被利用,数千个 Agent 受到影响。这让我们意识到:开放生态需要安全防线

⚠️ 真实案例:某恶意 Skill 伪装成「天气查询」工具,实际会窃取用户 cookie 并上传到攻击者服务器。这类攻击被称为「Trojan Skill」攻击。

🚀 安全风险分类

高危

数据外泄、权限提升、远程代码执行

中危

过度权限申请、未加密存储

低危

隐私收集、追踪代码、无用依赖

🔍 OpenClaw 安全扫描工具

1. 使用 ClawShield 扫描本地 Skills

OpenClaw 内置 clawshield 工具,可以扫描已安装的 Skills:

# 扫描所有已安装 Skills
openclaw clawshield scan --all

# 扫描指定 Skill
openclaw clawshield scan --skill weather-skill

# 输出详细报告
openclaw clawshield scan --all --format json --output report.json

2. 检查 Skill 权限声明

# 查看 Skill 的权限要求
openclaw skills inspect weather-skill --permissions

# 输出示例:
# Permission: web_fetch (required)
# Permission: file_read (optional)
# Permission: browser (NOT requested - SAFE)

3. 网络请求审计

# 监控 Skill 的网络请求
openclaw clawshield monitor --skill suspicious-skill --duration 60s

# 检测异常:
# ❌ 向未知域名发送数据
# ❌ 加密的 POST 请求体
# ❌ 绕过代理直接连接

💡 安全最佳实践

  1. 沙箱执行 - 所有第三方 Skills 在 sandbox 中运行,禁止访问宿主机文件系统
  2. 权限最小化 - 只授予 Skill 必须的权限,拒绝 file_write 除非必要
  3. 来源验证 - 只安装来自已验证发布者的 Skills(检查 ✅ Verified 徽章)
  4. 定期审计 - 每周运行 clawshield scan,检查已安装 Skills 的安全状态
  5. 网络隔离 - 敏感任务使用 offline_mode,禁止 Skill 访问外网

📝 实战:构建安全 Skill 安装流程

安全安装脚本

#!/bin/bash
SKILL_NAME=$1

echo "🔍 Step 1: 从 ClawHub 获取 Skill 信息"
openclaw skills info $SKILL_NAME

echo "🛡️ Step 2: 安全扫描"
openclaw clawshield scan --skill $SKILL_NAME --fail-on-high

if [ $? -ne 0 ]; then
  echo "❌ 安全扫描未通过,拒绝安装"
  exit 1
fi

echo "📋 Step 3: 审核权限"
openclaw skills inspect $SKILL_NAME --permissions

read -p "确认安装?(y/n) " -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
  exit 1
fi

echo "📦 Step 4: 沙箱安装"
openclaw skills install $SKILL_NAME --sandbox

echo "✅ 安装完成!"

⚠️ ClawHavoc 事件教训

关键教训:
  • 不要盲目信任高下载量的 Skills,检查最近更新时间
  • 关注 ClawHub 官方安全公告(/audits 页面)
  • 使用 openclaw-clawhavoc-security-guide.html 中的检测脚本
  • 敏感数据相关的 Agent 必须启用 clawshield 实时监控

🔗 相关教程