Skill Scanner 威胁分类体系完整指南:17 种 Agent Skill 攻击手法如何映射 Cisco AITech 编码
【免费下载链接】skill-scannerSecurity Scanner for Agent Skills项目地址: https://gitcode.com/gh_mirrors/sk/skill-scanner
Skill Scanner(Cisco AI Defense 出品)是一款面向Agent Skills 的安全扫描器。它的核心亮点之一是内置的Skill Scanner 威胁分类体系:将扫描发现的17 种 Agent Skill 攻击手法,逐一映射到 Cisco AI 安全框架的AITech/AISubtech标准编码,让每一行告警都能用行业通用的"安全语言"来描述、审计和聚合。
为什么需要统一的威胁分类体系
给 Agent Skill 打标签这件事,很容易"各说各话":
- LLM 分析器可能报出
PROMPT INJECTION - YARA/静态分析器可能报出
OBFUSCATION - 行为分析器可能报出
RESOURCE EXHAUSTION
如果没有统一词表,同一类风险在不同报告里会有不同名字,难以聚合、难以对齐行业标准。Skill Scanner 的做法是:
- 定义一个内部威胁类别枚举,恰好 17 个值,覆盖当前 Agent Skill 场景的主要风险面(定义见 ThreatCategory)
- 由映射层
ThreatMapping把每一类威胁翻译成 Cisco 框架的AITech-X.Y与AISubtech-X.Y.Z编码 - 用测试用例持续校验:映射层里出现的每个编码,必须真实存在于官方框架词表中,防止"造出来的编码"
上图对应的映射流程:检测引擎(静态 / YARA / 行为 / LLM)→ ThreatMapping → AITech 编码 → AISubtech 编码 → 跨框架引用(OWASP、MITRE ATLAS、NIST AML)。权威说明见 docs/architecture/threat-taxonomy.md。
映射链路:一个 Finding 如何变成标准编码
整个映射链路非常清晰,可以概括为四步:
| 步骤 | 做什么 | 关键代码位置 |
|---|---|---|
| ① 检出 | 四个分析引擎各自产出带ThreatCategory的 Finding | skill_scanner/core/analyzers/ |
| ② 翻译 | ThreatMapping按"分析器 × 威胁名"查出编码与严重度 | threats.py |
| ③ 校验 | 编码必须命中官方框架词表,否则测试失败 | test_taxonomy_validation.py |
| ④ 扩展 | 可选输出 OWASP / MITRE ATLAS / NIST 等跨框架引用 | cisco_ai_taxonomy.py |
官方词表收录了 Cisco 框架全部19 个攻击目标(OB-*)、31 个 AITech 技术、112 个 AISubtech 子技术,而扫描器只使用其中与 Agent Skill 直接相关的子集——这正是"深度解析"的价值所在:不是照抄整个框架,而是精选出 Skill 场景真正会遇到的风险,并给出精确映射。
17 种攻击手法分组速览
下面按"攻击意图"把 17 类威胁分成 4 组,方便新手快速建立心智模型:
🎯 第一组:注入与目标劫持(让 Agent 听别人的话)
| 攻击手法 | Cisco 编码 | 一句话解释 |
|---|---|---|
| Prompt Injection(提示注入) | AITech-1.1 | 直接在指令中覆盖系统提示词,劫持模型行为 |
| Transitive Trust Abuse(传递信任滥用) | AITech-1.2 | 恶意指令藏在网页/文档/API 等外部内容里,"间接"注入 |
| Jailbreak(越狱,归入提示注入类) | AITech-2.1 | DAN 角色扮演、逻辑陷阱等绕过安全护栏的话术 |
| Skill Discovery Abuse(技能发现滥用) | AITech-4.3 | 关键词堆砌、夸大描述、品牌仿冒,骗 Agent"主动加载"自己 |
这一组的共同点:攻击者不改你的代码,只改"Agent 读到的文字",是 Agent Skill 独有的风险面。
📦 第二组:数据外泄与供应链(把东西搬出去,或埋雷)
| 攻击手法 | Cisco 编码 | 一句话解释 |
|---|---|---|
| Data Exfiltration(数据外泄) | AITech-8.2 | 借 Agent 自带的网络工具把敏感数据发走 |
| Tool Chaining Abuse(工具链滥用) | AITech-8.2 | "读取 → 收集 → 上传"的多步工具串联,单步看都无害 |
| Hardcoded Secrets(硬编码密钥) | AITech-8.2 | 代码里写着 API Key,等于把钥匙留在门口 |
| Supply Chain Attack(供应链攻击) | AITech-9.3 | 未锁定版本的依赖、被投毒的包、字节码篡改 |
这一组的映射细节很讲究:数据外泄、工具链滥用、硬编码密钥三类都归到AITech-8.2(数据泄露/暴露),但用不同 AISubtech 区分成因——8.2.3(经 Agent 工具外泄)与8.2.2(LLM 数据泄漏),同一个大类里保留了成因颗粒度,审计时不会糊成一团。
⚙️ 第三组:代码执行与工具滥用(让 Agent 干危险的事)
| 攻击手法 | Cisco 编码 | 一句话解释 |
|---|---|---|
| Command Injection(命令注入) | AITech-9.1 | 把用户输入拼进 shell/SQL,典型严重度 CRITICAL |
| Code Execution(代码执行原语) | AITech-9.1 | eval、动态执行等高危原语 |
| Unauthorized Tool Use(越权工具使用) | AITech-12.1 | 使用超出allowed-tools声明范围的能力 |
| Malware(恶意软件) | 由签名包识别 | 勒索、木马等经典恶意样本的落地形态 |
工具类风险在 Cisco 框架里对应AITech-12.1(工具滥用),框架下还有"工具投毒""工具影子"等子技术,Skill Scanner 在 LLM 分析器中也纳入了Tool Poisoning / Tool Shadowing两类标签,映射为AISubtech-12.1.2与AISubtech-12.1.4。
🕶️ 第四组:规避检测与资源滥用(想被发现不了 / 把系统拖垮)
| 攻击手法 | Cisco 编码 | 一句话解释 |
|---|---|---|
| Obfuscation(混淆) | AITech-9.2 | 编码、变形等手段隐藏恶意意图 |
| Unicode Steganography(Unicode 隐写,含 ASCII Smuggling) | AITech-9.2 | 用 Unicode Tag 块字符隐藏指令,编辑器里"看不见",LLM 却"读得懂",单字符即 CRITICAL |
| Resource Abuse(资源滥用) | AITech-13.1 | 死循环、超大负载造成算力耗尽 |
| Autonomy Abuse(自主性滥用) | AITech-13.1 | "无限重试、免确认执行",把 Agent 的自主性变成 DoS 武器 |
| Social Engineering(社会工程) | AITech-15.1 | 误导性描述、诈骗式元数据 |
| Policy Violation(策略违规) | 兜底类别 | 不合规但非恶意的风险(如缺失许可证),也是未知编码的落地分类 |
兜底与校验:编码不会"凭空捏造"
这套映射体系有两个容易被忽略但很关键的设计:
- 未知兜底:查不到映射的威胁会落到占位编码
AITech-99.9/AISubtech-99.9.9,并归入policy_violation类别——这是内部占位符,不是真实框架编码,报告中看到它就知道"这里需要人工关注"。 - 一致性测试:tests/test_taxonomy_validation.py 会遍历映射层里的每一个 AITech / AISubtech 编码,验证其必须存在于 cisco_ai_taxonomy.py 的官方词表。Cisco 框架更新时,只需按 维护流程 更新词表文件并跑测试即可。
如何扩展:自定义分类与跨框架引用
- 换一套词表:设置环境变量
SKILL_SCANNER_TAXONOMY_PATH指向自己的 JSON/YAML 词表,或用 CLI 参数--taxonomy单次指定(详见 threat-taxonomy.md)。 - 改威胁映射:
--threat-mapping或SKILL_SCANNER_THREAT_MAPPING_PATH可以按威胁名覆盖aitech、aisubtech、severity与标签,支持llm_threats、yara_threats、behavioral_threats、aitech_to_category四个顶层键。 - 跨框架对齐:通过
get_framework_mappings()等辅助函数,可以把编码进一步展开为 OWASP、MITRE ATLAS/ATT&CK、NIST AML、Cisco MDL 的引用列表,方便和现有安全体系对齐。
新手上手建议 🧭
- 先跑一次基线扫描,在报告里重点看"威胁类别"一列——17 类标签就是你要逐类过目的清单。
- 优先处理 CRITICAL/HIGH 级:命令注入、硬编码密钥、数据外泄、Unicode 隐写这几类默认严重度最高。
- 写自定义规则时直接引用威胁类别,规则触发后会自动带上对应的 AITech 编码,无需手工维护映射——规则编写参考 Writing Custom Rules。
- 给团队做汇报时,用"AITech 编码 + 类别中文名"的组合表达(如"数据外泄 → AITech-8.2"),比罗列原始告警更容易被非安全背景的同事理解。
小结
Skill Scanner 的威胁分类体系用17 个内部威胁类别覆盖了 Agent Skill 从"提示词劫持"到"供应链投毒"的主要攻击面,并通过ThreatMapping映射层精确对齐Cisco AI 安全框架的 AITech / AISubtech 编码,再辅以一致性测试和自定义扩展能力。理解这张"攻击手法 → 标准编码"的对照表,你基本就读懂了 Agent Skill 安全检测的全貌。
关键文件导航
- 17 类威胁枚举:ThreatCategory
- 映射层实现:ThreatMapping
- 官方框架词表:cisco_ai_taxonomy.py
- 体系权威文档:docs/architecture/threat-taxonomy.md
【免费下载链接】skill-scannerSecurity Scanner for Agent Skills项目地址: https://gitcode.com/gh_mirrors/sk/skill-scanner
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考