
Agent Skill 用起来很顺手:装一个 SKILL.md,Claude Code、Codex、Gemini CLI 就多了一套现成的工作方法。但这些 Skill 带着隐含的信任在运行,装之前几乎没人认真审过。NVIDIA 开源的 SkillSpector 就是来回答一个问题的:这个 Skill 装上去安全吗?
项目仓库在 GitHub 上已有约 2.26 万星,采用 Apache-2.0 协议。它是 NVIDIA Verified Skills 流水线的一部分:通过扫描、评估并签名的 Skill,才会发布到 NVIDIA 的 Skills 目录。换句话说,它既是给普通用户装 Skill 前的安检仪,也是 Skill 发布前的一道门禁。
它发现了什么问题
按仓库 README 的说法,在其分析的 31,132 个 Skill 样本子集中,26.1% 含有漏洞,5.2% 表现出可能的恶意意图。这个数字来自项目方引用的研究数据集子集,读的时候要把它当作“问题并不罕见”的信号,而不是对所有 Skill 的精确统计。
SkillSpector 在仓库 README 中列出 71 种漏洞模式、17 个类别,包括提示词注入、数据外泄、权限提升、供应链问题、过度授权、输出处理、系统提示词泄露、记忆投毒、工具滥用、流氓 Agent 行为、反拒绝、触发器滥用、危险代码(AST 分析)、污点追踪、YARA 规则、MCP 最小权限与 MCP 工具投毒。官方文档页列出的模式数为 68 种,与 README 口径略有出入,实际以你装的版本为准。
两阶段分析:先静态扫,再看语义
默认是快速的静态分析,能抓住可疑字符串、依赖风险、危险 API 调用和“声明的权限与实际行为不符”。可选的第二阶段是 LLM 语义评估:对比 Skill 自称的用途和代码实际在做的事,揪出描述与行为不一致、含糊的触发条件这类静态规则难发现的问题。
它还支持通过 OSV.dev 实时查询已知漏洞依赖,离线时自动回退。扫描结果给出 0–100 分的风险评分和严重程度标签,并给出明确建议;输出格式有终端、JSON、Markdown 和 SARIF(可接 CI 与代码扫描系统)。
怎么用
需要 Python 3.12+。用 uv 一行装好 CLI:
uv tool install git+https://github.com/NVIDIA/SkillSpector.git
也可以从源码安装,或用 Docker(不需要本地装 Python),把当前目录挂载到容器的 /scan 再扫。扫描本地目录、单个文件、Git 仓库或 zip 包都可以:
skillspector scan ./my-skill/
skillspector scan ./SKILL.md
skillspector scan https://github.com/user/my-skill
skillspector scan ./my-skill.zip
只想做静态检查、不调用大模型时加 --no-llm;要机器可读的报告就加 --format json --output report.json。反复扫描同一个 Skill 时,可以用 baseline(基线)把已确认的问题收起来,让复扫只报新增发现,避免每次都被同一批已知问题淹没。
什么时候该扫
官方文档给出的分流建议很直接:严重或高危发现先挡住发布,直到修复或正式接受;隐藏指令或工具投毒要先删干净;声明能力不足的要么补声明、要么去掉行为;已知漏洞依赖要升级、锁定修复版或书面说明接受的理由;描述与行为不一致的要么改描述、要么改代码。
对普通用户来说,一个实用的顺序是:新 Skill 先 --no-llm 快速扫一遍;准备长期用、会接触敏感文件或联网工具的,再开 LLM 语义分析看一遍;团队内部分发的 Skill 则把扫描放进发布流程,配合 baseline 管住回归。
也要知道它的边界:扫描是门禁,不是保证。仓库 README 提醒,项目会下载并安装额外的第三方开源软件,使用前请先看清它们的许可条款;LLM 分析需要配置模型提供方与密钥。扫描报告干净,不等于 Skill 永远无害——权限越大的 Skill,越值得先扫再装。
如果你最近也在囤各种 Skill,不妨先读读站内介绍的 11.5 万星的 Caveman 4.0:让 AI 编程智能体少说废话的省 Token 技能,以及社区里 Cloudflare 开源 security-audit-skill:4.2 万星的 Agent 安全审计工作流,前者是值得装的 Skill 例子,后者是同一条安全思路下的另一种做法。
转自 GitHub 作者 NVIDIA 的项目《SkillSpector》,原文链接:https://github.com/NVIDIA/SkillSpector












暂无评论内容