NVIDIA SkillSpector:AI Agent 技能安全扫描器
速览
SkillSpector 是 NVIDIA 推出的专门针对 AI Agent 技能的自动化安全扫描工具。它能够深入分析 Agent 的技能定义,识别潜在的安全漏洞、恶意代码模式及各类安全风险。适用于需要保障 AI Agent 部署安全性的开发者和企业团队。
AI 深度解读
这是什么
SkillSpector 是由 NVIDIA 开源的一款专为 AI Agent Skills(智能体技能)设计的安全扫描工具。该项目主要使用 Python 编写,旨在帮助开发者和用户在安装 Claude Code、Codex CLI、Gemini CLI 等 AI 编程助手技能之前,对其进行全面的安全审计。
随着 AI Agent 生态的爆发,SkillSpector 解决了“在安装前确认技能是否安全”这一核心问题。它通过结合静态代码分析与大语言模型(LLM)语义评估,检测技能包中潜在的安全漏洞、恶意模式及供应链风险。该项目在 GitHub 上已获得较高关注,反映了社区对 AI 代理安全性的迫切需求。
解决的问题
AI Agent Skills 在执行时通常享有隐式信任(implicit trust),且缺乏严格的审查机制。根据 Liu 等人 2026 年的研究《Agent Skills in the Wild: An Empirical Study of Security Vulnerabilities at Scale》,在分析的 42,447 个技能中:
- 26.1% 的技能包含至少一个安全漏洞。
- 5.2% 的技能表现出明显的恶意意图。
- 包含可执行脚本的技能,其被攻击的概率是普通技能的 2.12 倍。
SkillSpector 旨在解决以下痛点:
- 盲目安装风险:用户无法直观判断下载的技能是否包含数据泄露、提权或提示词注入等风险。
- 静态与动态分析的缺失:传统的安全扫描器难以理解 AI 技能特有的上下文逻辑(如 MCP 工具滥用、内存投毒等)。
- 供应链安全盲区:技能依赖的第三方库可能包含已知 CVE,但缺乏自动化的实时漏洞查询机制。
核心功能
SkillSpector 采用两阶段分析管道(Two-stage analysis pipeline),兼顾速度与精度:
1. 多格式输入支持
支持扫描多种来源的技能包,包括:
- Git 仓库
- URL 链接
- Zip 压缩包
- 本地目录或单个
SKILL.md文件
2. 64 种漏洞模式检测
覆盖 16 个主要安全类别,包括但不限于:
- 提示词攻击:Prompt Injection
- 数据泄露:Data Exfiltration, System Prompt Leakage
- 权限滥用:Privilege Escalation, Excessive Agency
- 供应链攻击:Supply Chain, MCP Tool Poisoning
- 代码执行风险:Dangerous Code (AST), Taint Tracking
- 其他:Memory Poisoning, Rogue Agent, Trigger Abuse, YARA Signatures
3. 两阶段分析引擎
- 第一阶段:快速静态分析
- 基于正则表达式和 AST(抽象语法树)的行为分析。
- 检测危险调用(如
exec,eval,subprocess)。 - 通过 OSV.dev 实时查询依赖项的 CVE 漏洞(支持离线回退机制)。
- 特点:高召回率(High Recall),能捕捉大部分问题,但可能存在误报。
- 第二阶段:LLM 语义评估(可选)
- 利用 LLM 分析上下文和意图,过滤误报。
- 提供人类可读的解释和置信度评分。
- 特点:将精度提升至约 87%,并包含防越狱(Anti-jailbreak)保护,防止恶意技能操纵分析结果。
4. 风险评分与报告
- 评分机制:0-100 分制。
- CRITICAL: +50 分
- HIGH: +25 分
- MEDIUM: +10 分
- LOW: +5 分
- 可执行脚本:1.3 倍乘数
- 输出格式:支持终端(Terminal)、JSON、Markdown 和 SARIF(便于 CI/CD 集成)。
亮点 / 与同类相比
- 针对 AI Agent 场景深度定制:不同于通用的 Python 安全扫描器,SkillSpector 专门针对 AI 技能特有的攻击向量(如 MCP 协议漏洞、提示词泄露)设计了检测规则。
- 灵活的 LLM 集成:
- 支持多种提供商:OpenAI, Anthropic, NVIDIA (build.nvidia.com)。
- 支持本地部署:兼容 Ollama, vLLM, llama.cpp 等 OpenAI 兼容接口。
- 允许用户完全跳过 LLM 分析(
--no-llm),仅使用静态分析以获得极速反馈。
- 实时漏洞情报集成:通过 SC4 模块查询 OSV.dev,无需 API Key 即可获取 PyPI 和 npm 的数十万条漏洞情报,并具备内存缓存和离线回退能力。
- 结构化输出与 CI/CD 友好:原生支持 SARIF 格式,可直接对接 GitHub Security、GitLab 或 IDE 插件,实现自动化安全门禁。
适合谁用 / 上手
适合人群
- AI 应用开发者:在使用 Claude Code、Codex CLI 等工具前,需要审计第三方技能的开发者。
- 企业安全团队:需要建立 AI 技能供应链安全审查流程的组织。
- 开源贡献者:希望发布安全、可信的 AI 技能包,并通过自动化测试证明其安全性。
快速上手指南
-
环境准备 推荐使用
uv或pip创建虚拟环境。git clone https://github.com/NVIDIA/skillspector.git cd skillspector uv venv .venv && source .venv/bin/activate # 或使用 pip: python3 -m venv .venv && source .venv/bin/activate -
安装
# 生产环境安装 make install # 开发环境安装(包含测试和 lint 依赖) make install-dev -
配置 LLM(可选,用于语义分析) 若需启用 LLM 分析,需设置环境变量。例如使用 OpenAI:
export SKILLSPECTOR_PROVIDER=openai export OPENAI_API_KEY=sk-...或使用本地 Ollama:
export SKILLSPECTOR_PROVIDER=openai export OPENAI_API_KEY=ollama export OPENAI_BASE_URL=http://localhost:11434/v1 export SKILLSPECTOR_MODEL=llama3.1:8b -
执行扫描
# 扫描本地目录 skillspector scan ./my-skill/ # 扫描单个文件 skillspector scan ./SKILL.md # 扫描 Git 仓库 skillspector scan https://github.com/user/my-skill # 输出 JSON 报告 skillspector scan ./my-skill/ --format json --output report.json # 仅静态分析(跳过 LLM) skillspector scan ./my-skill/ --no-llm -
Python SDK 调用 也可通过 Python 代码集成:
from skillspector import graph result = graph.invoke({ "input_path": "/path/to/skill", "output_format": "json", "use_llm": True }) print(f"Risk Score: {result['risk_score']}/100") print(f"Severity: {result['risk_severity']}")
SkillSpector 采用 Apache License 2.0 开源协议,欢迎社区贡献。
