Agent之Skill:SkillSpector的简介、安装和使用方法、案例应用之详细攻略

Agent之Skill:SkillSpector的简介、安装和使用方法、案例应用之详细攻略

目录

SkillSpector的简介

1、特点

SkillSpector的安装和使用方法

1、安装

1)基础安装

2)Docker 安装

2、使用方法

1)最基本的使用方式

2)输出格式的选择

3)LLM 分析的配置

4)命令行参数与环境变量

SkillSpector的案例应用

审查可疑 skill 包中的恶意行为

供应链风险审计

检查 skill 里的危险代码和自动化行为

把扫描结果接入研发流程

离线或受限环境下的本地审查


SkillSpector的简介

SkillSpector 是一个面向 AI agent skills 的安全扫描器,目标是在你安装某个 skill 之前,先判断它是否安全,能否识别其中的漏洞、恶意模式和其他安全风险。仓库首页直接把它定义为 “Security scanner for AI agent skills”,并明确指出它是为 Claude Code、Codex CLI、Gemini CLI 等 AI agent skills 的安全检查而设计的。

仓库的动机很明确:AI agent skills 往往带着“隐式信任”运行,人工审核又通常很少,但研究显示,技能中有相当一部分存在漏洞,另有一部分表现出可疑或恶意倾向。因此,SkillSpector 的核心问题就是帮助用户回答一句很现实的话:“这个 skill 安全吗,能装吗?”。

从项目定位看,它不是一个单纯的规则检查器,而是一个结合静态分析与可选 LLM 语义分析的安全审计工具;同时它还会查询实时漏洞信息,并输出可读报告,方便人类和 CI/CD 流程共同使用。

Github地址:GitHub - NVIDIA/SkillSpector: Security scanner for AI agent skills. Detect vulnerabilities, malicious patterns, and security risks. · GitHub

1、特点

特点

核心说明

输入形式

支持多种输入源:Git 仓库、URL、zip 文件、本地目录或单个文件。既可检查本地技能包,也可直接扫描远程仓库链接。

漏洞检测模式

内置 64 种漏洞模式,分布于 16 个类别。涵盖 prompt injection、data exfiltration、privilege escalation、supply chain、excessive agency、output handling、system prompt leakage、memory poisoning、tool misuse、rogue agent、trigger abuse、dangerous code(AST)、taint tracking、YARA signatures、MCP least privilege、MCP tool poisoning 等。

两阶段分析

• 第一阶段(快速静态分析):正则匹配、AST 行为分析、依赖漏洞查询。
• 第二阶段(可选 LLM 语义分析):结合上下文减少误报,输出可读解释,并内置 anti-jailbreak 防护,防止恶意 skill 反向操纵分析器。

实时漏洞查询

对依赖项进行 OSV.dev 查询,获取已知 CVE 和安全通告。无需 API key,支持批量查询并缓存结果;离线或网络不可用时自动回退至 本地 fallback 列表。

输出格式

支持 四种报告格式:
• Terminal:适合人工快速阅读
• JSON:适合程序处理
• Markdown:适合编写文档
• SARIF:适合接入 CI/CD 和 IDE 工具链

风险评分机制

明确的风险评分规则:
• 基础分:CRITICAL +50、HIGH +25、MEDIUM +10、LOW +5
• 加权:执行脚本再 × 1.3
• 最终映射:LOW / MEDIUM / HIGH / CRITICAL 四等级,并输出 “SAFE / CAUTION / DO NOT INSTALL” 类建议。

高风险检测实例

重点识别包括 prompt injection、data exfiltration、supply chain、excessive agency、system prompt leakage、rogue agent、trigger abuse、dangerous code、taint tracking、MCP tool poisoning 等风险。具体检测项例如:exec()、eval()、subprocess、os.system、动态 import、可疑 shell 命令、隐藏指令、凭据外传、Unicode 伪装、参数注入等。

SkillSpector的安装和使用方法

1、安装

1)基础安装

仓库建议先创建并激活虚拟环境,因为它的 make 目标默认都假设 venv 已启用。官方示例给出的安装流程是:先克隆仓库,再创建 .venv,然后执行 make install;如果需要开发依赖,则执行 make install-dev。仓库还说明,make 会优先使用 uv,如果没有则回退到 pip。

2)Docker 安装

如果不想本机安装 Python,SkillSpector 也可以通过 Docker 运行。仓库说明它提供了 Dockerfile,镜像基于 Docker Official Python 3.12-slim-bookworm,你可以先 make docker-build 或直接 docker build -t skillspector .。

容器运行时,只要把当前目录挂载到 /scan,就能扫描本地技能目录;例如可以执行 skillspector scan ./my-skill/ --no-llm 做纯静态扫描。如果需要启用 LLM 语义分析,也可以通过 .env 文件或环境变量传入模型提供方和 API key。

2、使用方法

1)最基本的使用方式

仓库给出的基础命令非常简单,就是一个 scan 子命令:你可以扫描本地目录、单个 SKILL.md 文件、Git 仓库链接,或者 zip 包。官方示例分别写成:skillspector scan ./my-skill/、skillspector scan ./SKILL.md、skillspector scan https://github.com/user/my-skill、skillspector scan ./my-skill.zip。

2)输出格式的选择

如果你只想在终端查看,默认就是漂亮的 Terminal 输出;如果要给程序处理,就用 --format json --output report.json;如果要生成文档,用 --format markdown --output report.md;如果要接 CI/CD 或 IDE 安全管道,则用 --format sarif --output report.sarif。

3)LLM 分析的配置

SkillSpector 支持多种 LLM 提供方。仓库列出的 provider 包括 openai、anthropic 和 nv_build,并给出各自的凭据环境变量和默认模型:OpenAI 默认 gpt-5.4,Anthropic 默认 claude-opus-4-6,NVIDIA build.nvidia.com 默认 deepseek-ai/deepseek-v4-flash。此外,它也支持本地 OpenAI-compatible 服务,比如 Ollama、vLLM、llama.cpp。

如果你不想做语义分析,可以直接加 --no-llm,这会让工具只做静态分析,速度更快。官方文档明确把这称为“Skip LLM analysis (faster, static analysis only)”。

4)命令行参数与环境变量

仓库列出了 skillspector scan --help 下的主要选项,包括:--format、--output、--no-llm、--verbose。环境变量方面,SKILLSPECTOR_PROVIDER 用来选择模型提供方,NVIDIA_INFERENCE_KEY、OPENAI_API_KEY、OPENAI_BASE_URL、ANTHROPIC_API_KEY、SKILLSPECTOR_MODEL、SKILLSPECTOR_MODEL_REGISTRY、SKILLSPECTOR_LOG_LEVEL 都有明确说明。

SkillSpector的案例应用

从仓库内容看,SkillSpector 最直接的应用场景就是:在安装 AI agent skills 之前做安全审查。这和它的主张完全一致,即先回答“Is this skill safe to install?”,再决定要不要把这个 skill 放进你的 agent 生态里。

审查可疑 skill 包中的恶意行为

仓库给出的示例输出里,一个名为 suspicious-skill 的样例被判定为 78/100,等级 HIGH,并给出 “DO NOT INSTALL” 的建议;其中检测到了 Env Variable Harvesting (E2) 和 External Transmission (E1),还解释了代码如何收集环境变量并把数据发往外部服务器。这个示例非常适合作为“恶意外传凭据/环境变量”的典型案例。

供应链风险审计

仓库明确把 SC4 Known Vulnerable Dependencies 列为一个检测项,并通过 OSV.dev 做实时查询,这意味着它可以在安装 skill 之前检查依赖是否带有已知 CVE。对依赖安全敏感的团队,这类场景尤其重要。

检查 skill 里的危险代码和自动化行为

仓库列出的 AST 风险包括 exec()、eval()、subprocess、os.system、动态 import、动态 getattr,以及“危险执行链”;同时它也会识别 “self-modification”“session persistence”“overly broad trigger” 这类 rogue agent 与 trigger abuse 风险。换句话说,它很适合用来发现“这个 skill 会不会悄悄改自己、常驻后台、或者被宽泛触发”的问题。

把扫描结果接入研发流程

因为它支持 SARIF、JSON 和 Markdown,所以可以把结果接到 CI/CD、代码审查、文档系统或安全平台里。尤其是 SARIF,仓库已经明确写出其用途是 CI/CD integration and IDE tooling。

离线或受限环境下的本地审查

仓库说明,当外网不可用时,OSV.dev 检查会自动回退到本地 fallback 列表,而且静态分析本身不依赖外部网络,因此它适合在 air-gapped、内网或安全要求较高的环境里运行。