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 工具污染

典型适用场景

  1. 安装第三方 Skill 前审计:从 agentskills.io 或 GitHub 安装的 Skill,先跑 SkillSpector 再给 Agent 用
  2. CI/CD 集成:PR 合入前自动扫描仓库中的 SKILL.md,阻止带漏洞 Skill 进入主线
  3. 企业内部 Skill 治理:扫描内部开发的 Skill,确保没有过度权限申请或隐蔽数据外发
  4. 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 引用。