🛡️ 为什么需要技能安全审计?
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 请求体
# ❌ 绕过代理直接连接
💡 安全最佳实践
- 沙箱执行 - 所有第三方 Skills 在 sandbox 中运行,禁止访问宿主机文件系统
- 权限最小化 - 只授予 Skill 必须的权限,拒绝
file_write除非必要 - 来源验证 - 只安装来自已验证发布者的 Skills(检查 ✅ Verified 徽章)
- 定期审计 - 每周运行
clawshield scan,检查已安装 Skills 的安全状态 - 网络隔离 - 敏感任务使用
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实时监控