← 返回信息流
GitHub 热榜GitHub Trending · 日·1 小时前

NVIDIA SkillSpector:AI Agent 技能安全扫描器

原标题:NVIDIA/SkillSpector
Python2,340 stars+308 今日

速览

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 旨在解决以下痛点:

  1. 盲目安装风险:用户无法直观判断下载的技能是否包含数据泄露、提权或提示词注入等风险。
  2. 静态与动态分析的缺失:传统的安全扫描器难以理解 AI 技能特有的上下文逻辑(如 MCP 工具滥用、内存投毒等)。
  3. 供应链安全盲区:技能依赖的第三方库可能包含已知 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 技能包,并通过自动化测试证明其安全性。

快速上手指南

  1. 环境准备 推荐使用 uvpip 创建虚拟环境。

    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
    
  2. 安装

    # 生产环境安装
    make install
    
    # 开发环境安装(包含测试和 lint 依赖)
    make install-dev
    
  3. 配置 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
    
  4. 执行扫描

    # 扫描本地目录
    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
    
  5. 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 开源协议,欢迎社区贡献。

查看原文 →github.com