SkillSpector:NVIDIA 面向 AI Agent 技能的开源安全扫描工具

一款专为 AI Agent 技能设计的安全扫描工具,在安装前即可检测漏洞、恶意模式和安全风险。获得 NVIDIA 社区 10K Star 关注。保护 Claude Code、Codex CLI 及其他 Agent 框架。

  • 更新于 2026-06-25

SkillSpector:NVIDIA 面向 AI Agent 技能的开源安全扫描工具 #

SkillSpector 是一款专为 AI Agent 技能设计的安全扫描工具——这些模块化插件和扩展程序为 Claude Code、GitHub Copilot、Codex CLI 和 Gemini CLI 等框架提供动力。该工具由 NVIDIA 开发,在 GitHub 上已获得 10,273 个 Star,旨在解决在生产环境中安装未经审核的 Agent 技能所带来的日益增长的安全隐患。

本文涵盖安装方法、扫描能力、漏洞检测、与 Agent 框架的集成,以及保护 AI Agent 生态系统的安全最佳实践。

TL;DR #

随着 AI Agent 技能越来越流行,安装未经审核的技能所带来的安全风险也在增加。SkillSpector 提供了针对 800 多种网络安全技能的自动扫描功能,能够在这些风险到达您的系统之前检测出漏洞、恶意模式和安全威胁。它支持所有主流 Agent 框架,并提供可操作的修复建议。

什么是 SkillSpector? #

SkillSpector 源于一个关键的观察:随着 AI Agent 技能在开发者工作流中的普及,安全攻击面也在急剧扩大。与传统软件包需要经过严格的代码审查不同,许多 Agent 技能只是简单的文本文件(SKILL.md),用于指示大语言模型执行任意操作——包括执行 Shell 命令、访问 API 以及修改文件。

该工具提供:

  • AI Agent 技能文件的自动化漏洞扫描
  • 基于模式的恶意行为检测,包括命令注入、数据外泄和权限提升
  • 面向特定框架的分析,支持 Claude Code、GitHub Copilot、Codex CLI 等
  • 修复建议,针对检测到的漏洞提供具体修复方案
  • CI/CD 集成,支持在自动化流水线中进行安装前扫描

安装指南 #

前置条件 #

  • Python:3.12+(异步扫描功能必需)
  • 操作系统:Linux、macOS 或 Windows WSL2
  • 磁盘空间:500MB(含扫描器及技能数据库)
  • 网络:需要下载技能数据库和更新

方式一:通过 Pip 安装 #

# 从 PyPI 安装 SkillSpector
pip install skillspector

# 验证安装
skillspector --version

# 下载最新的技能数据库
skillspector update-db

方式二:从源码安装 #

# 克隆仓库
git clone https://github.com/NVIDIA/SkillSpector.git
cd SkillSpector

# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate

# 以开发模式安装
pip install -e .

# 初始化扫描器
skillspector init --download-database

方式三:Docker 部署 #

# 拉取官方镜像
docker pull nvcr.io/nvidia/skillspector:latest

# 运行扫描
docker run --rm \
  -v ${PWD}/skills:/app/skills \
  nvcr.io/nvidia/skillspector:latest \
  scan /app/skills

# 定期调度扫描
docker run -d \
  --name skillspector \
  -v ${PWD}/skills:/app/skills \
  -v ${PWD}/reports:/app/reports \
  nvcr.io/nvidia/skillspector:latest \
  daemon --interval 3600

扫描能力 #

漏洞检测类别 #

SkillSpector 检测多个类别的漏洞:

类别描述严重程度
命令注入执行任意 Shell 命令的技能严重
数据外泄将数据发送到外部端点的技能严重
权限提升试图获取更高权限的技能
凭证窃取访问或传输凭证的技能严重
文件篡改读写任意文件的技能
网络访问建立意外网络连接的技能
API 滥用误用 API 密钥或令牌的技能
社会工程操纵用户执行不安全操作的技能
供应链依赖未验证外部包的技能
信息泄露暴露敏感系统信息的技能

基础扫描 #

# 扫描单个技能文件
skillspector scan my_skill.md

# 扫描技能目录
skillspector scan ./skills/

# 详细输出扫描
skillspector scan ./skills/ --verbose

# 生成报告
skillspector scan ./skills/ --output report.json --format json

高级扫描选项 #

# 按自定义严重程度阈值扫描
skillspector scan ./skills/ --min-severity high

# 按指定漏洞类别扫描
skillspector scan ./skills/ --categories command_injection,data_exfiltration

# 使用特定框架规则扫描
skillspector scan ./skills/ --framework claude-code

# 解析依赖并跟随符号链接
skillspector scan ./skills/ --resolve-deps --follow-links

# 带修复建议的扫描
skillspector scan ./skills/ --remediate --output fixes/

Python API 用法 #

from skillspector.scanner import SkillScanner
from skillspector.report import ReportFormatter

# 初始化扫描器
scanner = SkillScanner(
    database_path="~/.skillspector/db",
    categories=["all"],
    severity_threshold="medium"
)

# 扫描技能文件
result = scanner.scan("suspicious_skill.md")

# 分析结果
print(f"发现漏洞数: {result.vulnerability_count}")
print(f"严重程度: {result.overall_severity}")

# 获取详细发现
for finding in result.findings:
    print(f"- [{finding.severity}] {finding.category}: {finding.description}")
    print(f"  位置: {finding.location}")
    print(f"  修复建议: {finding.remediation}")

# 生成格式化报告
formatter = ReportFormatter(format="markdown")
report = formatter.generate(result)
print(report)

面向特定框架的分析 #

Claude Code 技能 #

Claude Code 技能是定义 Claude Code Agent 行为指令的 Markdown 文件。SkillSpector 对这些文件进行分析,检测:

  • 指令中的危险 Shell 命令模式
  • 技能内容中的 API 密钥暴露
  • 超出预期范围的文件系统访问
  • 网络连接请求
# 扫描 Claude Code 技能
skillspector scan ~/.claude/skills/ --framework claude-code

# 检查危险命令模式
skillspector check-commands ~/.claude/skills/ --framework claude-code

GitHub Copilot 技能 #

Copilot 技能为 Copilot Agent 定义自定义行为。SkillSpector 检测:

  • 未经授权的代码仓库访问模式
  • API 端点篡改
  • 技能定义中的凭据收集
  • 通过 Copilot 内置工具的数据外泄
# 扫描 Copilot 技能
skillspector scan ~/.config/github-copilot/skills/ --framework copilot

# 检查仓库访问模式
skillspector check-repo-access ~/.config/github-copilot/skills/

Codex CLI 技能 #

Codex CLI 技能扩展了 Codex Agent 的能力。SkillSpector 查找:

  • 任意命令执行指令
  • 超出项目范围的目录遍历
  • 与未知端点的网络通信
  • 环境变量篡改
# 扫描 Codex 技能
skillspector scan ~/.codex/skills/ --framework codex

# 检查环境变量篡改
skillspector check-env-manipulation ~/.codex/skills/

Gemini CLI 技能 #

Gemini CLI 技能为 Google 的 Gemini CLI Agent 提供自定义指令。SkillSpector 分析:

  • 可能绕过安全措施的工具有使用模式
  • 技能定义中的提示词注入向量
  • 数据访问范围违规
  • 外部 API 调用模式
# 扫描 Gemini CLI 技能
skillspector scan ~/.gemini/skills/ --framework gemini

# 检查提示词注入向量
skillspector check-injection ~/.gemini/skills/

CI/CD 集成 #

GitHub Actions 集成 #

# .github/workflows/skill-security.yml
name: Skill Security Scan
on:
  pull_request:
    paths:
      - 'skills/**'
      - '**/SKILL.md'

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install SkillSpector
        run: pip install skillspector

      - name: Update vulnerability database
        run: skillspector update-db

      - name: Scan skills
        run: |
          skillspector scan ./skills/ \
            --min-severity high \
            --output skillspector-report.json \
            --format json

      - name: Upload report
        uses: actions/upload-artifact@v4
        with:
          name: skillspector-report
          path: skillspector-report.json

GitLab CI 集成 #

# .gitlab-ci.yml
skill-security-scan:
  image: python:3.12
  script:
    - pip install skillspector
    - skillspector update-db
    - skillspector scan ./skills/ --output gl-skillspector-report.json --format json
  artifacts:
    reports:
      sast: gl-skillspector-report.json

安装前钩子 #

#!/bin/bash
# .git/hooks/pre-install-skill

# 在安装任何新技能之前运行 SkillSpector
skillspector scan "$1" --min-severity critical
if [ $? -ne 0 ]; then
  echo "错误:技能包含严重漏洞。安装已阻止。"
  exit 1
fi

echo "技能通过安全扫描。继续安装。"
exit 0

修复建议 #

自动修复建议 #

SkillSpector 为每个检测到的漏洞提供具体的修复步骤:

# 生成修复建议
skillspector scan ./skills/ --remediate --output-dir ./remediated/

# 查看修复详情
skillspector remediation ./skills/suspicious.md

示例修复输出:

发现项:Shell 命令中的命令注入
严重程度:严重
位置:第 45 行:"Execute: rm -rf /tmp/* && curl..."

修复建议:
  1. 移除无限制的 Shell 命令模式
  2. 替换为特定、有边界的命令
  3. 对任何用户提供参数添加输入验证
  
  修复前:rm -rf /tmp/* && curl $EXTERNAL_URL
  修复后:find /tmp -name "*.log" -mtime +7 -delete
          curl --max-time 30 --connect-timeout 10 "$SANITIZED_URL"

  4. 为允许的外部域名添加白名单
  5. 为外部请求实现速率限制

技能作者的安全最佳实践 #

  1. 最小化 Shell 命令范围:仅包含技能目的所必需的命令
  2. 验证所有输入:切勿将用户输入直接传递给 Shell 命令
  3. 避免处理凭证:不要在技能文件中包含 API 密钥、密码或令牌
  4. 限制文件系统访问:将文件操作限制在项目目录内
  5. 记录数据流向:清晰描述技能访问的数据及其发送位置
  6. 使用白名单:指定允许的域名、文件模式和命令参数
  7. 审查依赖项:审计技能所需的任何外部包

对比:SkillSpector 与传统安全工具 #

功能SkillSpectorBanditSnykTrivy
AI Agent 技能支持不支持不支持不支持
SKILL.md 分析支持不支持不支持不支持
框架支持4+ 种框架仅 Python多平台容器/文件
提示词注入支持不支持部分支持不支持
命令注入支持支持支持不支持
数据外泄支持不支持支持不支持
CI/CD 就绪支持支持支持支持
价格免费免费免费增值免费(开源)

局限性 #

  • 基于模式的检测:一些复杂的攻击可能绕过模式匹配
  • 语义理解:扫描器分析技能文本,但无法完全理解 LLM 的行为影响
  • 框架演进:新的 Agent 框架需要更新的规则集
  • 误报:合法的技能可能会触发需要人工审查的警告
  • 数据库时效性:检测效果依赖于定期的数据库更新

入门清单 #

# 1. 安装 SkillSpector
pip install skillspector

# 2. 更新漏洞数据库
skillspector update-db

# 3. 扫描现有技能
skillspector scan ~/.claude/skills/ --framework claude-code

# 4. 设置 CI/CD 集成
# 从文档中添加 GitHub Actions 工作流

# 5. 配置安装前钩子
# 将安装前钩子复制到 git hooks 目录

# 6. 计划定期扫描
crontab -e
# 添加:0 */6 * * * skillspector scan ~/.claude/skills/ --output daily-report.json

结论 #

SkillSpector 填补了 AI Agent 安全领域的一个重要空白。随着 Agent 技能成为 AI 编程助手的标准扩展机制,专用安全扫描的需求变得至关重要。通过提供自动化漏洞检测、面向特定框架的分析和 CI/CD 集成,SkillSpector 帮助开发者维护安全的 Agent 生态系统。

SkillSpector 由 NVIDIA 开发,并由网络安全研究社区提供支持,它是首个面向新兴 AI Agent 技能生态系统的专用安全工具。其开源性质确保了透明度和社区驱动的改进,使其成为任何在生产环境中部署 AI Agent 技能的人不可或缺的工具。

来源 #

行动号召 #

立即保护您的 AI Agent 生态系统。访问 SkillSpector GitHub 仓库 开始使用。如需托管您的安全扫描基础设施,可考虑使用 HTStack 获取实惠的 CI/CD 运行器,或使用 DigitalOcean 托管 GitHub Actions 运行器。

如需大规模企业级安全扫描,ProxyShard 提供安全的代理基础设施,用于隔离 Agent 技能的执行环境。

常见问题 #

问:漏洞数据库应该多久更新一次? #

答:NVIDIA 建议每周更新数据库,最好在每次扫描之前更新。SkillSpector 包含自动更新检查功能,当有新签名可用时会通知您。对于 CI/CD 流水线,请将数据库更新配置为扫描步骤的一部分。

问:SkillSpector 是否适用于自定义或专有 Agent 框架? #

答:SkillSpector 的扫描引擎是框架无关的。虽然它包含了 Claude Code、Copilot、Codex CLI 和 Gemini CLI 的预配置规则,但您可以通过创建支持格式的规则文件,为任何 Agent 框架定义自定义规则集。

问:SkillSpector 能否检测 Agent 技能中的供应链攻击? #

答:可以。SkillSpector 分析技能依赖项、外部包引用和网络通信模式,以检测潜在的供应链攻击。它会标记那些依赖未验证包或与未知端点建立连接的技能。

问:扫描技能目录的预期时间是多少? #

答:对于典型的包含 100 个技能文件的目录,SkillSpector 可在 10 秒内完成全面扫描。较大的目录(1000+ 文件)可能需要 30-60 秒。扫描时间与文件数量呈线性关系,而非文件大小。

问:SkillSpector 是否支持团队协作功能? #

答:目前,SkillSpector 专注于个人扫描和报告。团队协作功能(如共享漏洞数据库和协作修复)计划在未来的版本中推出。JSON 报告格式设计为易于与团队协作平台集成。

问:SkillSpector 如何处理误报? #

答:SkillSpector 为每个发现分配置信度分数,并允许按严重程度阈值进行过滤。可以通过在配置中添加排除模式来抑制误报。NVIDIA 积极根据社区反馈审查和改进检测准确性。

📦 出现在以下合集中

💬 留言讨论