核心用法
skill-vettr 是一款专为 OpenClaw 生态设计的第三方技能安全扫描器,采用静态分析技术在不执行目标代码的前提下检测潜在威胁。用户可通过三种方式启动扫描:本地目录审查(/skill:vet --path)、远程 URL 下载分析(/skill:vet-url --url)以及 ClawHub 官方仓库技能直检(/skill:vet-clawhub --skill)。工具底层基于 tree-sitter 构建 AST 语法树解析引擎,结合正则模式匹配,覆盖代码执行、Shell 注入、动态依赖加载、原型污染、提示词注入、同形异义字符攻击、依赖混淆等 12 类安全风险检测。
显著优点
该技能的核心优势在于零执行安全分析——完全依赖静态 AST 解析而非动态运行,从根本上杜绝了被分析技能反制扫描器的可能性。技术实现上,tree-sitter 提供了生产级的语法解析精度,支持 JavaScript 与 TypeScript 双语言;多层输入验证体系(路径清理、URL 强制 HTTPS、命令白名单)体现了防御性编程理念;依赖审计模块内置已知恶意包黑名单(如 event-stream、flatmap-stream),并采用 Levenshtein 算法检测 typosquatting 攻击。此外,工具设计充分考虑了易用性,扫描结果以结构化报告输出,支持 CI/CD 流水线集成。
潜在缺点与局限性
作为启发式扫描器,skill-vettr 存在固有的能力边界。静态分析无法捕捉运行时行为,例如技能在安装后从远程服务器下载并执行恶意代码的多阶段攻击完全无法被检测。混淆与规避技术构成实质性威胁——复杂的多阶段字符串拼接、自定义编码器或 WASM 二进制载荷均可绕过 AST 检测。语言覆盖局限明显,仅支持 JS/TS 源码,二进制文件、图片资源及非文本内容被直接跳过。网络检测能力薄弱,仅识别 fetch()() 的字面量 URL,对 axios、http 模块及动态构造 URL 无能为力。此外,提示词注入检测仅扫描字符串字面量,注释中的隐藏指令会被遗漏。
适合的目标群体
该技能主要面向三类用户:OpenClaw 平台管理员需对 ClawHub 上架技能进行批量安全审计;企业安全团队希望在私有技能仓库中建立准入检查机制;高级终端用户具备技术背景,希望在安装来源不明的第三方技能前进行自主风险评估。对于普通用户,建议依赖平台官方审核而非自行操作。
使用风险
常规风险集中于供应链与执行环境:尽管扫描器自身设计安全,但其依赖的 tree-sitter WASM 运行时及 npm 包仍存在潜在漏洞;execSafe 函数虽实现命令白名单,但 curl 下载环节存在 SSRF 理论风险;大规模扫描时可能因文件数量或体积导致资源耗尽。建议在高安全环境中配合容器沙箱与人工源码复核使用。