SkillSpector 技能安全扫描器
在安装前扫描智能体技能的安全风险。
这个 Agent 能做什么,适合哪些场景?
SkillSpector 是用于审查 AI 智能体技能的安全扫描器,可扫描 Git 仓库、URL、ZIP 文件、本地目录和单个文件。它以静态分析为第一阶段,并可选用 LLM 进行语义评估;扫描对象不会被执行。工具覆盖 17 类、68 种漏洞或恶意行为模式,包括提示注入、凭据或上下文外传、危险代码、依赖风险、MCP 最小权限和 MCP 工具投毒。它可输出终端报告、JSON、Markdown 或 SARIF,并给出 0–100 风险分数、严重度、安装建议和具体发现。它既可作为 Python LangGraph 工作流调用,也可通过 `skillspector mcp` 作为 MCP 服务器,为 Claude Code、Codex CLI、Gemini CLI 等支持 MCP 的运行时提供安装前门禁。
运行 skillspector scan <target> 后,工具先摄取目标并对符合条件的文件执行正则静态检测、Python AST 行为分析、YARA 签名检查,以及 SC4 通过 OSV.dev 进行的依赖 CVE 查询。随后,如未使用 --no-llm,它会把符合分析条件的文件内容发送给所配置的 SKILLSPECTOR_PROVIDER,进行可选的 LLM 语义评估和误报过滤。最终报告包含 risk_assessment、组件清单、issues 和扫描元数据;JSON 结果可作为 CI 或 IDE 的稳定集成接口。skillspector baseline 可生成基线,后续扫描可通过 --baseline 仅报告新的发现。安装 MCP extra 后,scan_skill(target, use_llm=true, output_format="json") 会返回结构化的 risk_score、severity、recommendation、safe_to_install 和 findings。
- 维护 Claude Code 技能库的团队,在将第三方 Git 仓库纳入内部目录前执行静态扫描,并以 JSON 报告决定是否允许安装。
- 为 Codex CLI 配置 MCP 工具的开发者,在添加新技能或 MCP 相关内容前调用 `scan_skill`,按风险建议实施安装门禁。
- 在 CI 中维护技能包的安全工程师,使用 SARIF 输出将危险调用、未固定依赖和供应链发现导入现有代码扫描流程。
- 需要审计 ZIP 形式技能交付物的安全负责人,在不执行其中代码的前提下检查提示注入、数据外传和可疑 YARA 特征。
- 需要降低重复告警的技能维护者,提交 `.skillspector-baseline.yaml`,让后续复扫聚焦尚未处置的新发现。
这个 Agent 有哪些优点和局限?
- 将正则检测、Python AST、YARA、OSV.dev 依赖漏洞查询和可选 LLM 语义评估组合为两阶段流程,而非只做关键词匹配。
- 可扫描本地文件、目录、ZIP、URL 与 Git 仓库,并提供终端、JSON、Markdown、SARIF 四种报告输出。
- 明确不执行被扫描技能;`--no-llm` 可避免将文件内容发送给 LLM 提供商。
- 支持基线抑制与指纹或 glob 规则,便于在持续扫描中只处理新增风险。
- 提供 MCP 服务和 Python `graph.invoke` 接口,可用于安装门禁、CI 和编辑器集成。
- 静态分析可能产生误报,LLM 语义评估虽可提高精度,但需要配置提供商、凭据或本地 CLI 运行时。
- 启用 LLM 分析会将符合条件的文件内容发送给所配置的提供商;即使使用 `--no-llm`,SC4 仍会向 OSV.dev 发送依赖名称和版本。
- 工具是安装前检测而不是沙箱;若仍安装高风险技能,它不会隔离或限制该技能对主机的影响。
- 文档列出的限制包括可能遗漏非英语模式、无法分析图片中的文字或加密/编译代码,也不进行动态行为执行。
- HTTP MCP 传输默认没有认证;若绑定到可路由接口,必须自行放置带认证的反向代理。
如何安装或部署这个 Agent?
CLI 仅安装:
uv tool install git+https://github.com/NVIDIA/skillspector.git
若要运行 MCP 服务器:
uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'
从源码安装时,先创建并激活 Python 虚拟环境,然后运行 make install;开发依赖使用 make install-dev。无凭据的首次静态扫描可直接使用 --no-llm。启用 LLM 分析时,需要按所选提供商配置凭据;例如 OpenAI 路径需要 SKILLSPECTOR_PROVIDER=openai 和 OPENAI_API_KEY。
如何使用这个 Agent?
先进行本地静态扫描:
skillspector scan ./my-skill/ --no-llm
生成机器可读报告:
skillspector scan ./my-skill/ --no-llm --format json --output report.json
扫描 Git 仓库:
skillspector scan https://github.com/user/my-skill
使用 OpenAI 进行可选语义分析:
export SKILLSPECTOR_PROVIDER=openai
export OPENAI_API_KEY=sk-...
skillspector scan ./my-skill/
启动本地 MCP 服务:
skillspector mcp
向 Claude Code 注册该服务:
claude mcp add skillspector -- skillspector mcp