Skill Scanner — 智能体技能安全扫描器

针对 AI Agent 技能的安全扫描工具,识别提示注入、数据外泄和恶意代码。

Star 数
★ 2.6k
最近更新
3 天前
License
NOASSERTION
主语言
Python

30 秒速览

运行形态
命令行工具代码库 / SDK
可在哪里用
Codex · Claude Code
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.10+uv 或 pipShell / 命令行网络访问本地文件系统
典型场景
软件开发者在将技能纳入代码库前,使用 CLI 命令扫描单个技能目录以发现潜在风险。
不适合
  • 希望扫描结果能证明技能安全、无需人工复核的团队
  • 只使用非标准技能格式且不愿接受 --lenient 精度下降的用户

这个 Agent 能做什么,适合哪些场景?

Skill Scanner 是一个由 Cisco AI Defense 团队开发的最佳努力型安全扫描器,用于检测 AI Agent 技能中的潜在威胁。它结合了基于模式的检测(YAML + YARA)、LLM 语义分析和行为数据流分析,以最大程度地覆盖可能的风险,同时减少误报。该工具支持 OpenAI Codex Skills 和 Cursor Agent Skills 格式,并可通过 --lenient 模式扫描 Claude Code 命令等非标准格式。它提供命令行界面、Python SDK 和 GitHub Actions 集成,可输出 SARIF 格式以便在 CI/CD 中使用。该项目基于 Apache 2.0 许可证开源,要求 Python 3.10+。

Skill Scanner 读取技能目录,扫描技能元数据文件和脚本,检测恶意模式。它包含多个分析引擎:静态分析使用 YAML 和 YARA 规则,字节码分析验证 .pyc 文件完整性,管道分析检查 shell 管道中的命令污染,行为分析使用 AST 数据流分析,LLM 分析器通过 API 进行语义评估,另有元分析器用于过滤误报,以及 VirusTotal 和 Cisco AI Defense 云服务集成。用户可通过 CLI 命令如 skill-scanner scan 或 scan-all 触发扫描,也可通过 Python SDK 编程调用。输出支持 summary、json、markdown、table、sarif 和 html 等格式,并提供了 fail-on-severity 等选项支持 CI 失败。

  1. 软件开发者在将技能纳入代码库前,使用 CLI 命令扫描单个技能目录以发现潜在风险。
  2. CI/CD 工程师将 GitHub Actions 工作流集成到仓库,在每次 PR 时自动扫描 .cursor/skills 目录,并在 PR 中产生内联注释。
  3. 安全团队对技能仓库进行递归扫描,使用 scan-all --recursive 和 --check-overlap 检测跨技能描述重叠的威胁。
  4. 使用 --use-llm 和 --enable-meta 的团队进行深度语义分析,并利用元分析器减少误报。
  5. 需要遵循严格安全策略的团队,通过 --policy strict 或自定义策略文件强制执行安全基线。

如何安装或部署这个 Agent?

安装前需具备 Python 3.10+ 和 uv 或 pip。使用 uv:uv pip install cisco-ai-skill-scanner;使用 pip:pip install cisco-ai-skill-scanner。可选安装云提供商额外依赖:如 pip install cisco-ai-skill-scanner[bedrock]、[google]、[vertex]、[azure] 或 [all]。

如何使用这个 Agent?

首次使用可运行 skill-scanner 启动交互式向导。或直接使用 CLI:skill-scanner scan /path/to/skill --use-llm --enable-meta。设置环境变量 SKILL_SCANNER_LLM_API_KEY 和 SKILL_SCANNER_LLM_MODEL 以启用 LLM 分析。可使用 scan-all --recursive 递归扫描多个技能,scan-repo owner/repo 扫描 GitHub 仓库。生成 SARIF 输出以集成到 GitHub Code Scanning:skill-scanner scan-all ./skills --fail-on-severity high --format sarif --output results.sarif。Python SDK 示例:from skill_scanner import SkillScanner; from skill_scanner.core.analyzers import BehavioralAnalyzer; scanner = SkillScanner(analyzers=[BehavioralAnalyzer()]); result = scanner.scan_skill("/path/to/skill")。

这个 Agent 有哪些优点和局限?

优点
  • 多引擎检测:同时使用静态、行为、LLM 和云服务分析,提高覆盖范围。
  • 提供预提交钩子和 GitHub Actions 集成,方便在开发流程中自动扫描。
  • 支持多种输出格式,包括 SARIF,可直接用于 GitHub Code Scanning。
局限
  • 需要配置外部 API 密钥(如 LLM 分析器需要 SKILL_SCANNER_LLM_API_KEY)才能使用完整功能。
  • 扫描结果可能产生误报,需要结合人工审查,不能完全自动化决策。
  • 对非标准技能格式的支持需要 --lenient 模式,可能降低准确性。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Skill Scanner — 智能体技能安全扫描器 当前 62 · 存在缺口 命令行工具免费 + 模型费 ★ 2.6k 3 天前 Python Codex · Claude Code
SkillSpector 技能安全扫描器 62 · 存在缺口 命令行工具免费 + 模型费 ★ 21k 2 天前 Python Codex · Claude Code · OpenAI API · Claude API
Repo Forensics:AI Agent 仓库离线安全审计器 44 · 缺口较多 命令行工具付费 ★ 194 2 天前 Python Codex · Claude Code
Node9 82 · 表现良好 命令行工具免费版 + 付费版 ★ 219 今天 TypeScript Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
62/ 100 五分制 3.1 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 6 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 16/29
可靠稳定 9/14
适用触发 12/18
规范维护 12/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

证据显示:扫描器默认仅进行静态分析,不自动上传文件;LLM和VirusTotal等外部服务需显式启用并提供API密钥;文档明确说明扫描结果需人工复核。扣分原因:未发现明确的用户确认机制(如扫描前提示),且外部服务调用可能发送数据,但未提供数据流透明度的详细说明。

可靠稳定9 / 14 · 3.2/5

证据显示:项目有完整的测试套件和CI配置,依赖锁定在uv.lock中,且提供了失败时的错误信息。扣分原因:未提供详细的故障恢复机制或错误处理文档。

适用触发12 / 18 · 3.3/5

证据显示:支持多种技能格式(OpenAI Codex、Cursor、Claude Code),提供lenient模式和非标准格式扫描,且支持自定义策略和规则。扣分原因:未明确说明不同环境(如CI、本地)的适配细节。

规范维护12 / 18 · 3.3/5

证据显示:文档结构清晰,包含安装、快速开始、CLI选项、示例输出等;提供Apache 2.0许可证;有版本标签和变更日志链接。扣分原因:未提供详细的变更日志内容,且维护责任未明确指定。

有效结果9 / 13 · 3.5/5

证据显示:提供多种输出格式(SARIF、HTML、JSON等),适合CI/CD集成;扫描器针对Agent Skills安全检测,具有明确的价值。扣分原因:未提供性能基准或与其他工具的对比。

证据核验4 / 8 · 2.5/5

证据显示:README中明确区分了检测结果和保证,且提供了架构文档和威胁分类。扣分原因:未提供独立的第三方验证或交叉验证证据。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 外部服务(LLM、VirusTotal、AI Defense)可能发送技能内容到第三方,需谨慎配置API密钥和网络策略。
  • 扫描结果不保证安全,需人工复核,尤其在高风险场景。
  • 未提供回滚机制,若扫描器误报可能导致CI失败,需配置适当的失败策略。
证据充分度:低 评估于 2026年8月9日 审查版本 48f59347a54b 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 2.3.0 Skill Scanner 2.3.0
    发布说明摘录
    Skill Scanner 2.3.0 This release maps every finding to the Cisco AI Security and Safety Taxonomy, closes several ways to hide text from the frontmatter scan, and stops silently skipping symlinks and unloadable skills, while keeping the measured false-positive rate steady on the pull-request development corpus. Changes …
    在 GitHub 查看 ↗
  2. 2.2.2 Skill Scanner 2.2.2
    发布说明摘录
    Skill Scanner 2.2.2 This release improves static detection while keeping the measured false-positive rate steady on the pull-request development corpus. Changes - Detect whole process-environment value dumps in Python, JavaScript/TypeScript, and shell code. Targeted reads, keys-only enumeration, literal examples, and comments stay below the HIGH rule boundary. - Avoid quadratic regex work on scripts padded with long runs of blank lines. - Stop PG_PII_CREDIT_CARD from treating digits in decimal fractions as card numbers. …
    在 GitHub 查看 ↗
  3. 2.2.1
    发布说明摘录
    A patch release with a security fix for untrusted archives and Markdown, report-format fixes, and a working Homebrew formula. Upgrading from 2.2.0 is recommended. Security - Bounded TAR extraction and linear-time Markdown parsing (#246, by @ihabler; reported by Koh Jun Sheng). - TAR archives used to be expanded with no compression-ratio, size or member-count limit; only ZIP archives had decompression-bomb checks. A 20 KB .tar.gz could expand to 20 MB with no finding. The scanner now copies the TAR payload through a bounded buffer and checks every member before it writes anythi …
    在 GitHub 查看 ↗

常见问题

Skill Scanner 能否保证我的技能完全安全?
不能。它是最佳努力型检测工具,未发现已知威胁不意味着技能没有风险,尤其对零日攻击可能无效。
使用 LLM 分析器需要付费吗?
需要,LLM 分析器需要外部 API 密钥(如 Anthropic 或 OpenAI),可能产生费用。
扫描结果出现误报怎么办?
可以调整扫描策略(如使用 --policy strict 或自定义 YAML),或启用元分析器(--enable-meta)来过滤误报。
能否扫描非标准格式的技能?
可以,使用 --lenient 模式,它会容忍格式不规范并扫描 Markdown 文件,但可能增加误报率。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents