NVIDIA/SkillSpector · 上手攻略
- 仓库:NVIDIA/SkillSpector
- 链接:https://github.com/NVIDIA/SkillSpector
- 分类:安全审计 · AI Agent · MCP
- 作者:Tom
- 更新:2026-08-06
这是什么
SkillSpector 是 NVIDIA 开源的 AI Agent Skill 安全扫描器,专门检测 Claude Code、Codex CLI、Gemini CLI 等 Agent 工具中安装的 Skill(SKILL.md 格式技能包)是否存在安全漏洞、恶意模式和数据泄露风险。
核心背景数据:26.1% 的公开 Skill 存在漏洞,5.2% 表现出恶意意图(来源:NVIDIA 官方 README)。SkillSpector 是 NVIDIA Verified Skills 流水线的一部分,通过扫描的 Skill 会获得 NVIDIA 签名并发布至官方目录。
解决什么问题
AI Agent 的 Skill 机制允许模型在运行时执行任意代码——这是一个巨大的攻击面。Skill 以 SKILL.md 为载体,描述 agent 该如何调用工具、读写文件、发送网络请求。一旦 Skill 被污染(供应链攻击、恶意 Prompt Injection、隐蔽后门),你的 AI Agent 就是一把上了膛的枪。
SkillSpector 要回答的核心问题是:这个 Skill 能安全安装吗?
快速安装
uv(推荐,CLI 即装即用)
uv tool install git+https://github.com/NVIDIA/skillspector.git
# 升级
uv tool update skillspector
含 MCP 支持版本(用于 agent 内置扫描)
uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'
源码构建
git clone https://github.com/NVIDIA/skillspector.git
cd skillspector
uv venv .venv && source .venv/bin/activate
make install # 生产安装
# make install-dev # 含开发依赖
Docker(无需 Python 环境)
make docker-build
# 或
docker build -t skillspector .
核心用法
基本扫描命令
# 扫描本地 Skill 目录
skillspector scan ./my-skill/
# 扫描单个 SKILL.md 文件
skillspector scan ./SKILL.md
# 扫描远程 Git 仓库
skillspector scan https://github.com/user/my-skill
# 扫描 zip 文件
skillspector scan ./my-skill.zip
Docker 扫描(无 Python 环境)
# 静态扫描(无需 LLM)
docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm
# 带 LLM 语义分析(需传 API Key)
docker run --rm \
-v "$PWD:/scan" \
-e SKILLSPECTOR_PROVIDER=anthropic \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
skillspector scan ./my-skill/
# 输出 JSON 报告
docker run --rm -v "$PWD:/scan" \
skillspector scan ./my-skill/ --no-llm --format json --output report.json
输出格式
# 终端(默认,人类可读)
skillspector scan ./my-skill/
# JSON(机器可读,CI 集成)
skillspector scan ./my-skill/ --format json --output report.json
# Markdown(文档化)
skillspector scan ./my-skill/ --format markdown --output report.md
# SARIF(IDE / CI 工具集成,GitHub Security Lab 兼容)
skillspector scan ./my-skill/ --format sarif --output report.sarif
批量扫描
python -m contrib.batch_scan.batch_scan ./my-skills/ --no-llm
python -m contrib.batch_scan.batch_scan ./my-skills/ --workers 20 -f json -o report.json
⚠️ LLM 分析默认使用 DeepSeek(最便宜的公开选项),但 DeepSeek API 即将停止服务,批量扫描若需 LLM 语义分析,建议自建 Ollama 或 vLLM 后端(PR 欢迎)。
误报抑制(Baseline / 白名单)
# 首次扫描,生成 baseline
skillspector scan ./my-skill/ --no-llm --format json --output baseline.json
# 下次扫描只报新增问题
skillspector scan ./my-skill/ --no-llm --baseline baseline.json
扫描能力:68 种漏洞模式,17 个类别
| 类别 | 涵盖问题 |
|---|---|
| Prompt Injection | 指令注入、角色扮演绕过 |
| Data Exfiltration | 数据外泄、敏感信息发送 |
| Privilege Escalation | 权限提升、越权操作 |
| Supply Chain | 依赖供应链风险 |
| Excessive Agency | 过度自主权 |
| Output Handling | 输出处理缺陷 |
| System Prompt Leakage | 系统 Prompt 泄露 |
| Memory Poisoning | 记忆污染 |
| Tool Misuse | 工具滥用 |
| Rogue Agent | 恶意 Agent 行为 |
| Anti-Refusal | 拒绝安全检查绕过 |
| Trigger Abuse | 触发器滥用 |
| Dangerous Code (AST) | 危险代码静态分析 |
| Taint Tracking | 污染传播追踪 |
| YARA Signatures | YARA 规则签名 |
| MCP Least Privilege | MCP 最小权限违反 |
| MCP Tool Poisoning | MCP 工具污染 |
典型适用场景
- 安装第三方 Skill 前审计:从 agentskills.io 或 GitHub 安装的 Skill,先跑 SkillSpector 再给 Agent 用
- CI/CD 集成:PR 合入前自动扫描仓库中的 SKILL.md,阻止带漏洞 Skill 进入主线
- 企业内部 Skill 治理:扫描内部开发的 Skill,确保没有过度权限申请或隐蔽数据外发
- Agent 内置扫描(Pi 扩展):在 Agent 运行会话内直接扫描即将执行的 Skill
坑与注意
| 坑点 | 说明 |
|---|---|
| LLM 分析默认后端即将停服 | DeepSeek API 即将 sunset,--no-llm 静态扫描不受影响;需要 LLM 语义分析建议自建 Ollama |
| 扫描有文件大小限制 | 单文件 1MB 分析上限;URL/Git/zip 下载总大小上限 100 MiB;zip 内最多 10000 个条目 |
| Python 版本要求 | 需 Python 3.10+,项目用 uv 管理依赖 |
| MCP 扩展需单独安装 | uv tool install 'skillspector[mcp]' 才会装 Pi 扩展,基础版不含 MCP |
| Docker 镜像基于 Python 3.12-slim | 离线环境需提前 build 镜像 |
| 未验证的 OAuth App Scope 限制 | 若你的 GCP 账号未过 Google 验证,Scope 数超 25 会导致安装失败(与本工具无关,属 Google 政策) |
与同类对比
| 工具 | 定位 | 支持 Skill 格式 | LLM 语义分析 | 输出格式 |
|---|---|---|---|---|
| SkillSpector | 专用 Skill 安全扫描 | Claude/Codex/Gemini MCP Skills | 可选 | Terminal/JSON/MD/SARIF |
| Semgrep(通用SAST) | 通用代码安全 | 需手写规则 | 不支持 | JSON/SARIF |
| OSV.dev(漏洞数据库) | CVE 查漏洞 | 不针对 Skill | 不支持 | JSON |
| YARA(恶意签名) | 恶意软件模式 | 通用 | 不支持 | 通用 |
SkillSpector 专为 Agent Skill 设计,68 种漏洞模式覆盖 Skill 特有的攻击向量(Prompt Injection、MCP 工具污染等),通用 SAST 工具无法覆盖 SKILL.md 中的 Prompt 注入风险。
一句话推荐结论
安装任何第三方 Agent Skill 之前,习惯性跑一遍
skillspector scan --no-llm——26% 的 Skill 有漏洞,SkillSpector 就是你的安全门卫。
最小可跑命令
# 安装(uv 或 pip)
uv tool install git+https://github.com/NVIDIA/skillspector.git
# 扫描当前目录 Skill(静态,无需 Key)
skillspector scan ./ --no-llm
# Docker 方式(无 Python 环境)
docker run --rm -v "$PWD:/scan" skillspector scan ./ --no-llm
硬件/版本备注:Python 3.10+;Docker 方式无需本地 Python 环境;MCP 支持需 Python 3.10 + uv 环境;多 API Key 并行 LLM 扫描参考
contrib/batch_scan/.env.example配置。
原始链接:https://github.com/NVIDIA/SkillSpector | 开发文档 | Pi 扩展指南 | Suppression 文档 | NVIDIA 官方项目,无特定 commit SHA 引用。