☰
Skill Scanner的11个分析器逐一拆解:从YARA签名到LLM判官的能力矩阵
2026/10/3 20:04:43 网站建设 项目流程

Skill Scanner的11个分析器逐一拆解:从YARA签名到LLM判官的能力矩阵

【免费下载链接】skill-scannerSecurity Scanner for Agent Skills项目地址: https://gitcode.com/gh_mirrors/sk/skill-scanner

Skill Scanner 是一个面向 AI Agent Skills 的安全扫描器,用 11 个可组合的分析器(Analyzers)对提示词注入、数据外泄、恶意代码等威胁做分层检测。本文逐一拆解这 11 个分析器的定位、触发方式与适用场景,帮你快速选对组合、看懂每个发现(Finding)来自哪一层防线。

🧭 先看全貌:11 个分析器的能力矩阵

所有分析器都独立运行、输出统一的Finding结构,由扫描器合并后报告。官方文档中的能力矩阵如下:

分析器类型需要 API Key阶段主要目标
Static 静态确定性规则否1YAML 签名 + YARA 模式
Bytecode 字节码确定性规则否1.pyc完整性
Pipeline 管道启发式否1Shell 命令链风险
Behavioral 行为AST/数据流否1Python 源码行为
VirusTotal外部情报是1二进制文件信誉
AI Defense外部服务是1提示/内容/代码威胁信号
OSV外部服务否1已知漏洞的固定依赖
Trigger 触发器启发式否1模糊或高风险的描述
LLM 大模型语义判官通常需要2意图级威胁推理
Meta 元分析语义后处理通常需要2误报过滤与优先级排序
Cross-Skill 跨技能关联分析否扫描后跨技能数据中继

完整定义见 docs/architecture/analyzers/index.md

🔄 两阶段流水线:谁先跑、谁后跑

整个扫描分为两个阶段(构建逻辑集中在 skill_scanner/core/analyzer_factory.py):

  1. 第一阶段:除 LLM/Meta 外的分析器并行独立运行,各自只拿到技能(Skill)模型;
  2. 第二阶段:LLM 与 Meta 分析器拿到第一阶段的发现作为富化上下文,再做语义推理;
  3. 扫描器合并所有发现、去重、后处理后输出报告。

完整执行流程见 docs/architecture/scanning-pipeline.md。

🛡️ 第一组:确定性本地引擎(默认开启、离线可跑)

1. Static 静态分析器 —— 签名与 YARA 的主力

静态分析器是最核心的确定性引擎,内部是一条有序流水线:YAML 签名匹配、YARA-X 规则扫描、Python 编程检查、文件清单审计、二进制与文档检查、Unicode 隐藏字符检测等约 28 个环节依次执行,覆盖提示词注入、命令注入、数据外泄、硬编码密钥、依赖未固定、PDF/Office 宏等常见攻击面。

  • 签名规则:skill_scanner/data/packs/core/signatures/
  • YARA 规则:skill_scanner/data/packs/core/yara/
  • 实现:skill_scanner/core/analyzers/static.py
  • 详解:docs/architecture/analyzers/static-analyzer.md

2. Bytecode 字节码分析器 —— 揪出"源码与编译产物不一致"

它会重新编译可见的.py源码,并与同路径的.pyc文件做归一化对比。攻击者常用手法是让你看良性的 Python 源码、实际执行却是另一套编译产物——这个分析器就是专门抓这种"狸猫换太子"的。

  • 实现:skill_scanner/core/analyzers/bytecode_analyzer.py

3. Pipeline 管道分析器 —— 命令链污点追踪

针对 Shell 命令管道做污点(taint)建模:单独看每段命令都无害,串起来却可能是攻击链。比如"读敏感文件 → Base64 编码 → 网络发送"这种三步外泄,每一步都会被标注污点类型,组合后升级风险等级。

  • 实现:skill_scanner/core/analyzers/pipeline_analyzer.py

🔎 第二组:启发式与深度行为分析

4. Behavioral 行为分析器 —— 跨文件数据流侦探

纯静态、不执行代码,但比签名匹配看得更深:用 AST 解析 Python 源码,基于控制流图做前向数据流分析,追踪"数据来源(Source)→ 危险操作(Sink)"的完整路径。它能抓到静态规则难以覆盖的组合型攻击:环境变量 → 网络外发、凭据文件 → 编码后上传,甚至横跨多个文件的"采集 → 编码 → 上报"三段式外泄。CLI 开启:--use-behavioral。

  • 实现:skill_scanner/core/analyzers/behavioral_analyzer.py
  • 详解:docs/architecture/analyzers/behavioral-analyzer.md

5. Trigger 触发器分析器 —— 给"万能助手"类描述亮黄灯

AI 智能体靠技能描述决定何时激活技能。描述写得越笼统("帮你做任何事"),越容易被无关请求触发,甚至被恶意技能"截胡"。该分析器对这类过度泛化的描述给出信息级提醒。CLI 开启:--use-trigger,无需任何外部依赖。

  • 实现:skill_scanner/core/analyzers/trigger_analyzer.py

☁️ 第三组:外部情报与服务增强

6. VirusTotal 分析器 —— 二进制文件信誉查询

技能包里若带二进制文件,可查询 VirusTotal 的文件哈希/文件信誉;被验证为良性的文件,其BINARY_FILE_DETECTED发现会被自动抑制,减少噪音。需要VIRUSTOTAL_API_KEY,CLI 开启:--use-virustotal。

  • 实现:skill_scanner/core/analyzers/virustotal_analyzer.py

7. AI Defense 分析器 —— 云端的威胁分类服务

将提示、Markdown 与代码内容发送到 Cisco AI Defense 云端做安全分类(提示词注入、数据外泄、工具投毒等),并把云端的违规等级映射为本地严重级别。需要AI_DEFENSE_API_KEY,CLI 开启:--use-aidefense。

  • 实现:skill_scanner/core/analyzers/aidefense_analyzer.py
  • 详解:docs/architecture/analyzers/aidefense-analyzer.md

8. OSV 分析器 —— 依赖漏洞免费查询

把技能中"精确固定版本"的 Python 依赖(如requirements.txt里的pkg==1.2.3)批量提交 OSV.dev 漏洞库查询,命中已知漏洞即报SUPPLY_CHAIN_KNOWN_VULNERABILITY。免费、无需 API Key、网络失败时"失败放行"(只告警不中断扫描)。CLI 开启:--use-osv。

  • 实现:skill_scanner/core/analyzers/osv_analyzer.py

🧠 第四组:LLM 判官与复核

9. LLM 分析器 —— 意图级语义判官

这是"看得懂动机"的一层:用大模型按 Cisco 威胁框架理解技能整体意图,输出结构化 JSON(强制合法 AITech 分类编码,如AITech-1.1直接提示注入),覆盖社交工程、隐蔽外泄等模式匹配难以为继的场景。工程细节值得一提:

  • 随机分隔符防注入:技能内容被随机标签包裹,恶意技能无法预测并伪造"分析结束"标记;
  • 多厂商统一接入:Anthropic、OpenAI、Bedrock、Gemini、Azure 等;
  • 共识模式:多轮投票只保留多数一致的发现,提高置信度。

CLI 开启:--use-llm。实现:skill_scanner/core/analyzers/llm_analyzer.py,详解:docs/architecture/analyzers/llm-analyzer.md

10. Meta 元分析器 —— 发现结果的"二审法官"

Meta 分析器是可选的第二遍 LLM 分析:拿到所有分析器的发现后,对照源码逐条复核——真误报就过滤、相关发现归成关联组、按可利用性排序,并为技能给出 SAFE / SUSPICIOUS / MALICIOUS 的总体裁决。它内置"分析器权威等级"(LLM > Behavioral > AI Defense > Static > Trigger),避免低置信度的纯关键词匹配覆盖高置信度结论。CLI 开启:--enable-meta(建议至少 2 个分析器同时开启)。

  • 实现:skill_scanner/core/analyzers/meta_analyzer.py
  • 详解:docs/architecture/analyzers/meta-analyzer.md

🔗 第五组:跨技能关联

11. Cross-Skill 扫描器 —— 单看无害、合起来是暗网

它不分析单个技能,而是横向比对一批技能之间的关联:共享的可疑 URL、互补的触发词、跨技能的数据中继链路——这是供应链式攻击的典型形态。接口与其他分析器不同(analyze_skill_set),只在scan-all --check-overlap批量扫描时运行。

  • 实现:skill_scanner/core/analyzers/cross_skill_scanner.py

🎯 如何按场景选择分析器组合?

官方给出的推荐组合(详见 docs/architecture/analyzers/meta-and-external-analyzers.md):

场景建议参数
快速 CI 门禁默认(仅核心确定性分析器)
单技能深度审查--use-llm --use-behavioral --use-trigger --enable-meta
二进制密集型技能--use-virustotal
依赖密集型技能--use-osv
企业级(有 AI Defense 权限)--use-aidefense --use-llm --enable-meta
最大覆盖--use-llm --use-behavioral --use-trigger --use-virustotal --use-osv --enable-meta

⚠️ 使用边界:扫描通过 ≠ 绝对安全

最后提醒:Skill Scanner 提供的是"尽力而为"(best-effort)检测,覆盖本身不可能是完备的——没有发现不等于没有风险,误报与漏报都可能存在。高价值或生产环境场景,建议把扫描结果与人工代码审查、威胁建模结合,作为纵深防御的一环。各预设策略(默认、严格、宽松等)可在 skill_scanner/data/ 下查看,调优方法见 docs/user-guide/custom-policy-configuration.md。

【免费下载链接】skill-scannerSecurity Scanner for Agent Skills项目地址: https://gitcode.com/gh_mirrors/sk/skill-scanner

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询