Aug 31, 2026

skill-scanner:扫描 agent skill 里的提示注入与恶意模式

Cisco AI Defense 的 2.5k 星 Apache-2.0 扫描器——YAML+YARA 签名、LLM 判官、行为数据流分析——检测 skill 包里的提示注入、数据外泄和恶意代码,输出 SARIF 可接入 CI。

#tutorial#security#ai-agents

skill 是交给拥有渐增权限的 agent 的指令——提示注入和暗藏恶意命令也正是从这里下手。就像08-29 周报记下的,策展 skill 索引甚至会一夜消失;你依赖的仓库未必把你的安全姿态放在心上。cisco-ai-defense/skill-scanner(2.5k 星,Apache-2.0)是一个尽力而为的扫描器,在你安装或分发 skill 包之前,先检查其中是否有提示注入、数据外泄和恶意代码模式。

为什么这个 Skill 重要

扫描器把三类检测叠在一条 CLI 之下。基于模式的检测(YAML + YARA 规则)抓已知签名;LLM 判官处理签名抓不到的语义威胁;行为数据流分析在 skill 内部寻找危险的数据流动。随后元分析器过滤误报、对发现排序——README 明确说"尽量扩大覆盖同时压低噪音"就是设计目标。

它的定位是安全流水线的一环,不只待在笔记本上:SARIF 输出喂给 GitHub Code Scanning,可复用的 GitHub Actions 工作流把它接进 CI,退出码用于在 CI 里给构建设卡,标准的 pre-commit hook 让每次提交前都先扫一遍。按 Agent Skills 规范支持 Codex 和 Cursor 的 skill 格式,--lenient 标志还能扫描非标准布局,比如 Claude Code 的 .claude/commands/*.md 和扁平 markdown skill 仓库。

安装

扫描器需要 Python 3.10+,用 uv 或 pip 安装:

uv pip install cisco-ai-skill-scanner

可选的分析器从环境变量读密钥——LLM 与元分析器要 LLM API key 和模型,二进制扫描要 VirusTotal key,云引擎要 Cisco AI Defense 凭证。

实战:安装前先审计一个 skill

  1. 下载或克隆你要用的 skill 仓库。
  2. 扫整个目录:
skill-scanner scan /path/to/skill --use-behavioral --use-llm
  1. 带着 README 自己加的告诫读结果:没有发现不等于没有风险,高风险部署仍需要人工评审——扫描器收窄了攻击面,不负责盖章安全。

实战:把已经装的全扫一遍

对 agent 里已装的 skill 做递归清扫:

skill-scanner scan-all ~/.claude/skills --recursive --use-behavioral

要采用某个上游仓库之前审计它:

skill-scanner scan-repo owner/repo --use-llm

scan-repo 简写收 owner/repo 或完整 URL。

技巧

  • 用可复用 GitHub Actions 工作流 + SARIF 输出把它接进 CI,用退出码把构建闸在扫描结果上。
  • 加 pre-commit hook,让共享 skills 仓库的每次提交前都先扫一遍。
  • --use-trigger 检查可能藏住恶意意图的模糊描述;噪音敏感时用 --llm-consensus-runs 3 只保留 LLM 多数一致的结果。
  • 生产依赖它之前,README 的 scope-and-limitations 一节值得读——它对覆盖边界的诚实程度少见。

何时不用这个 Skill

它是明确的检测工具,覆盖有界:新颖或零日手法会漏,误报漏报都存在。skill 是关键任务时,扫描器是人工代码评审和威胁建模的补充而非替代。重型的分析器要 API key、烧 token;纯签名路径才是轻量的默认。


查看 排行榜 了解更多 skill。