skill-vettr

🛡️ 第三方技能安全审查专家

OpenClaw官方安全扫描工具,基于tree-sitter静态分析检测第三方技能中的恶意代码、依赖风险与提示词注入,为技能安装前提供自动化安全审查。

收藏
8.6k
安装
2k
版本
v2.0.3
CLS 安全性认证2026-05-20
点击查看完整报告 >

使用说明

核心用法

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 理论风险;大规模扫描时可能因文件数量或体积导致资源耗尽。建议在高安全环境中配合容器沙箱与人工源码复核使用。

安全解读

核心用法

skill-vettr 是 OpenClaw 生态的官方安全审查工具,专用于在安装第三方 Skill 前执行静态安全扫描。用户可通过 /skill:vet --path <目录> 扫描本地 Skill,/skill:vet-url --url <URL> 下载并审查远程代码,或 /skill:vet-clawhub --skill <slug> 直接检测 ClawHub 上的技能包。扫描覆盖 12 类风险:代码执行(evalFunctionvm)、Shell 注入(execspawn)、动态 require、原型链污染、提示词注入、同形异义字符攻击(Cyrillic/Greek 伪装)、编码混淆(Unicode/Hex 转义)、凭证路径探测、网络调用、恶意依赖、域名抢注(Typosquatting)及危险权限声明。

显著优点

  • 多层检测机制:结合 tree-sitter AST 解析与正则模式匹配,兼顾精确语义分析与快速启发式扫描
  • 供应链防护:内置恶意包黑名单、Levenshtein 距离算法检测拼写近似攻击,覆盖 npm 依赖风险
  • 命令安全:使用 execFile 替代 exec,配套白名单与参数净化,防止命令注入
  • 输入验证完善:路径穿越防护(..、空字符检测)、URL 白名单、临时目录隔离
  • 来源可信:作者 britrik 隶属 OpenClaw 官方生态,代码开源可审计,安全认证达 T2 级别

潜在局限

  • 纯静态分析:无法捕获运行时行为(如安装后远程下载执行代码、动态解密载荷)
  • 绕过可能性:多阶段字符串构造、复杂混淆可规避正则检测
  • 语言局限:仅支持 JS/TS,二进制、图片等非文本文件跳过扫描
  • 网络检测薄弱:仅识别字面量 URL 的 fetch(),漏检 axioshttp 模块及动态 URL
  • 无沙箱隔离:不执行或隔离目标代码,无法观察实际行为
  • 提示词扫描盲区:仅扫描字符串字面量,注释中的指令覆盖未覆盖

适合人群

  • 需要从 ClawHub 或 GitHub 安装第三方 OpenClaw Skill 的开发者与安全审查员
  • CI/CD 流程中需要自动化安全门禁的 DevOps 工程师
  • 对供应链安全有基础认知、理解"启发式扫描≠绝对安全"的技术团队

常规风险

  • 动态代码下载:核心功能需从远程拉取代码(curlgit clone),虽有白名单限制(GitHub 域名),但仍存在供应链中间人攻击理论风险
  • WASM 二进制加载:依赖 tree-sitter 的 .wasm 文件,若 npm 包被篡改可能导致解析器异常
  • 网络调用频次:默认最多 5 次并发下载,高并发场景可能触及速率限制或造成短暂 DoS

使用建议

高安全环境应结合沙箱执行、网络隔离与人工源码复审,勿将扫描结果作为唯一安全决策依据。建议启用审计日志、降低 maxNetworkCalls 至 3 以内,并定期更新恶意包黑名单。

skill-vettr 内容

src文件夹
__tests__文件夹
analyzers文件夹
utils文件夹
手动下载zip · 29.1 kB
ast-analyzer.test.tstext/plain
请选择文件