Skill Scanner架构全解:两阶段扫描流水线如何协同11个检测引擎
Skill Scanner架构全解两阶段扫描流水线如何协同11个检测引擎【免费下载链接】skill-scannerSecurity Scanner for Agent Skills项目地址: https://gitcode.com/gh_mirrors/sk/skill-scannerSkill Scanner是一款面向 AI Agent Skills智能体技能包的开源安全扫描器。它用一条两阶段扫描流水线串联起11 个检测引擎——先由确定性引擎快速完成模式匹配与行为分析再让 LLM 分析引擎带着第一阶段的线索做语义级研判。本文将带你从零看懂这套架构为什么这样分阶段、每个引擎负责什么、以及如何按需组合使用。为什么 Agent Skills 需要专业安全扫描Agent Skills 通常由SKILL.md指令文件和配套脚本、二进制文件组成会被 AI Agent 直接执行。一个恶意技能包可能藏有提示注入、数据外传指令、混淆脚本甚至二进制载荷。单靠一种检测手段总有盲区正则签名抓不到语义上有害但字面上干净的指令LLM 又可能误报普通代码。Skill Scanner 的答案是分层多引擎协同——确定性引擎负责快而准语义引擎负责深而全两者通过流水线上下文接力。架构总览一张图看懂 Skill Scanner整个系统由三部分组成入口层CLIskill-scanner、FastAPI REST API、Pre-commit Hook三者共用同一套分析器工厂保证行为一致核心引擎SkillScanner编排器skill_scanner/core/scanner.pySkillLoader加载器skill_scanner/core/loader.py 可插拔的分析器集合数据层核心规则包YAML 签名 YARA 规则 Python 检查位于 skill_scanner/data/packs/core/、LLM 提示词模板skill_scanner/data/prompts/以及策略预设文件分析器的组装由唯一的真相来源——skill_scanner/core/analyzer_factory.py 完成build_core_analyzers()按策略构建核心引擎build_analyzers()再按命令行/API 开关追加可选引擎。完整的架构说明见官方文档 docs/architecture/index.md。两阶段扫描流水线从加载到报告流水线定义在 docs/architecture/scanning-pipeline.md共 7 个阶段。阶段 0加载与预处理SkillLoader负责验证技能目录、解析SKILL.mdfrontmatter、递归发现文件并分类Python/Bash/Markdown/二进制ContentExtractor则安全地解包技能中内嵌的 ZIP/TAR 归档同时防御 ZIP 炸弹、路径穿越、符号链接等经典解包攻击——解包结果直接并入分析范围。阶段 18 个确定性引擎火力全开所有非 LLM 引擎在这一阶段独立运行包括策略驱动的核心引擎和按开关启用的可选引擎引擎类型核心职责Static静态确定性YAML 签名 YARA 模式匹配覆盖提示注入、Unicode 走私、硬编码密钥等Bytecode字节码确定性校验.pyc与源码的一致性防止改了字节码没改源码的伪装Pipeline管道启发式Shell 命令链污点分析识别下载即执行等高危管道Behavioral行为AST/数据流Python 源码级数据流与跨文件关联分析VirusTotal外部情报二进制文件哈希信誉查询需 API KeyAI Defense外部服务Cisco 云端威胁信号分类需 API KeyOSV外部服务固定版本依赖的已知 CVE 查询免 KeyTrigger触发器启发式识别过于宽泛、模糊的技能描述静态引擎是主力内部按序执行约 20 轮检查清单校验 → 指令体签名 → 动态执行检测 → Unicode 走私 → YARA 扫描 → 文档/PDF/Office 结构分析等详见 docs/architecture/analyzers/static-analyzer.md。阶段 1.5CEL 决策层 裁决器第一阶段的候选发现会先做精确去重然后投影为有界的ScanFacts交由CEL 决策层做门控。它只能保留/抑制已有的候选发现不能凭空造出告警投影不完整或运行出错时一律 fail-open放行详见 docs/architecture/cel-decision-layer.md。紧接着的 **Adjudicator裁决器**会用 LLM 复核纯字面正则命中的高严重度发现只降不升——避免一条错误的高危误报进入下一阶段后被 LLM引用放大。阶段 2带上下文增强的 LLM 引擎这是两阶段设计最巧妙的地方。LLM 引擎LLM Analyzer和 Meta 引擎Meta-Analyzer刻意延后执行并先接收一份由阶段 1 结果构建的增强上下文文件清单总文件数、类型分布、未被引用的脚本魔术字节不匹配清单文件扩展名与实际内容不符静态引擎的前 10 条 CRITICAL/HIGH 级发现摘要可分析性评分与清单能力声明也就是说LLM 不是盲审而是拿着确定性引擎的线索做语义级意图分析如社会工程、隐蔽数据外传、多步攻击而 Meta 引擎则做最后一道误报过滤与优先级排序复核所有前序发现。后处理结果净化的最后闸门分析结束并非终点还要依次执行VirusTotal 已验证二进制的去重抑制 → 禁用规则过滤 → 严重度覆盖 →可分析性评分扫描器看不到的内容越多分数越低fail-closed 策略下会生成UNANALYZABLE_BINARY告警→ 发现归一化与去重 → 共现元数据标注 → 策略指纹附加。最后生成ScanResult输出为 summary/JSON/Markdown/Table/SARIF/HTML 六种格式之一。11 个检测引擎能力矩阵谁抓什么威胁11 个引擎的分工与威胁类别覆盖如下✓ 表示可产出该类发现来源 docs/architecture/analyzers/index.md威胁类别静态字节码管道行为LLM触发器VTAI Defense跨技能提示注入✓✓✓命令注入✓✓✓✓✓数据外传✓✓✓✓✓✓混淆✓✓✓✓✓✓硬编码密钥✓✓恶意软件✓✓社会工程✓✓✓✓✓有害内容✓同一类别有多个引擎覆盖意味着更强的检测纵深一个引擎漏掉的模式另一个可能接住。还有一个特殊角色——Cross-Skill Scanner跨技能扫描器。它不在单技能流水线内运行而是在scan-all --check-overlap时对整个技能集合做关联分析识别数据接力、共享外部 URL、互补触发器等同谋攻击模式接口见 skill_scanner/core/analyzers/cross_skill_scanner.py。如何按需组合从快速 CI 到最大覆盖11 个引擎并非全部强开。核心引擎随策略默认运行可选引擎按需激活场景推荐开关快速 CI 门禁仅核心引擎零配置单技能深度审查--use-llm --use-behavioral --use-trigger --enable-meta二进制密集型技能--use-virustotal依赖密集型技能--use-osv最大覆盖--use-llm --use-behavioral --use-trigger --use-virustotal --use-osv --enable-meta策略系统skill_scanner/core/scan_policy.py还提供 balanced默认/strict/permissive 三套预设外加严重度覆盖、禁用规则等 14 个可配置分区无需改代码即可调优。关键源码路径速查想深入源码时建议按此顺序阅读流水线编排skill_scanner/core/scanner.py两阶段循环的核心分析器工厂skill_scanner/core/analyzer_factory.py分析器基类skill_scanner/core/analyzers/base.pyLLM 引擎skill_scanner/core/analyzers/llm_analyzer.py行为引擎skill_scanner/core/analyzers/behavioral_analyzer.py扩展指南自定义规则docs/architecture/analyzers/writing-custom-rules.md功能总览与威胁能力矩阵docs/features/index.md总结Skill Scanner 的架构精髓可以概括为一句话让确定性引擎先跑、把线索交给语义引擎再用决策层和裁决器双向降噪。两阶段流水线让 11 个检测引擎各司其职又彼此增强——阶段 1 提供速度与证据阶段 2 提供深度与语义CEL 层与 Adjudicator 守住精度可分析性评分兜住盲区。对新手而言记住核心三引擎默认开、可选引擎按需开就足以开始使用对进阶用户源码中的SkillScanner编排逻辑是理解全貌的最佳入口。【免费下载链接】skill-scannerSecurity Scanner for Agent Skills项目地址: https://gitcode.com/gh_mirrors/sk/skill-scanner创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

结构化决策模型 Jev 实战笔记,3 个原语、4 个限制、5 个落地场景

结构化决策模型 Jev 实战笔记,3 个原语、4 个限制、5 个落地场景

Jev 不是更小的生成模型,也不属于 cc-switch 那一类模型切换工具。切换器管的是这一次请求走哪家供应商,Jev 管的是这条输入归哪一类、这件事成立的概率是多少。一个在流量层,一个在判断层。这两层混在一起聊,成本账和延迟账都会算…

2026/11/11 13:18:52 阅读更多 →
AnyPS5着色器重编译器完全解析:从RDNA汇编解码到Vulkan SPIR-V生成的完整流水线

AnyPS5着色器重编译器完全解析:从RDNA汇编解码到Vulkan SPIR-V生成的完整流水线

AnyPS5着色器重编译器完全解析:从RDNA汇编解码到Vulkan SPIR-V生成的完整流水线 【免费下载链接】AnyPS5 Tool for automatic PS5 executables porting to Linux and Windows 项目地址: https://gitcode.com/gh_mirrors/an/AnyPS5 🎮 为什么游戏移…

2026/11/11 13:18:52 阅读更多 →
AI搜索引擎到底在哪里“看见“你的品牌?一组真实数据拆解企业最容易踩的GEO误区

AI搜索引擎到底在哪里“看见“你的品牌?一组真实数据拆解企业最容易踩的GEO误区

核心摘要:Google AI Overviews的引用来源中,YouTube、Reddit等社交/UGC平台合计占比约六成,企业官网类内容占比很低;而豆包、Kimi、DeepSeek、元宝、千问等国产AI平台的信源覆盖率与偏好结构彼此差异巨大,并不存在一套…

2026/11/11 13:28:54 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/11 17:16:37 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/11 17:16:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻