当前针对Web应用后端的自动化漏洞挖掘技术,主要受困于“覆盖率”与“准确性”难以两全的矛盾。
- 传统的静态分析技术(SAST)虽能提供全量的代码覆盖,但由于缺乏对程序运行时状态和复杂业务逻辑的语义理解,往往导致海量的误报噪声,极大地增加了安全工程师的审计成本。
- 动态应用程序安全测试(DAST)虽能在黑盒层面挖掘出更具真实性的漏洞,却受限于黑盒视角的路径探索能力,难以触及深层业务逻辑,存在较多漏报。
- 大语言模型(LLM)的出现为代码语义分析带来了新的契机。但受限于上下文窗口的约束以及生成式模型固有的幻觉问题,直接依赖原生LLM进行大规模代码审计,往往导致分析结果碎片化且缺乏可信度。此外,直接将大量代码喂给大模型也容易受到与漏洞无关代码的干扰。
探索漏洞挖掘框架的新出路
在探索新的框架实现时,我们可以思考:能否将黑白盒的现有技术互补结合来引导漏洞挖掘?随着近几年LLM与Agent相关技术如模型上下文协议(MCP)、检索增强生成(RAG)的工程化落地,我们能否用LLM赋予框架更好的语义理解和丰富的上下文能力,再通过Agent构建一套自动化流程?
为突破上述技术瓶颈,笔者在探索中参考了学术界相关研究与GitHub开源实现,最终确定构建一个基于Multi-Agent协同的智能化漏洞挖掘框架,旨在打造一个从静态分析到动态验证的闭环生态。技术上,引入MCP作为连接LLM推理能力与静态分析工具的桥梁,利用RAG技术构建高质量漏洞专家知识库来校准模型判定,深度缓解LLM的“幻觉”与知识盲区。同时,结合运行时自动化的流量Fuzz模糊测试技术,将白盒的逻辑推演与黑盒的攻击验证深度融合,以减少漏洞的误报和漏报。
下图展示了通过该框架自动化分析并发现的一处SQL注入漏洞(已获CNVD证书),系统能够自动给出攻击POC及完整的修复方案。

框架核心:打破黑白盒壁垒
该框架核心架构旨在重构传统安全检测的边界,提出了一种 “白盒语义指引黑盒,黑盒动态验证白盒” 的深度融合范式。框架并非单一工具的线性叠加,而是一个基于多智能体编排(Agent Orchestration)的异构系统。
- 白盒分析维度:框架引入了MCP作为智能体的执行接口,驱动底层的静态分析工具与正则匹配引擎,对代码抽象语法树(AST)进行初步扫描,快速锚定潜在的危险函数调用(Sink)。为解决静态分析中常见的上下文缺失问题,进一步融合了RAG技术:通过引入高质量漏洞知识库,系统能够为大语言模型提供特定漏洞类型的完备上下文与判定依据,从而在保持高代码覆盖率的同时,抑制传统模式匹配带来的误报,实现从“语法”到“语义”的代码理解提升。
- 黑盒验证维度:框架构建了运行时的自动化Fuzz模糊测试模块。该模块独立承担着对Web通用漏洞(如XSS、SQL注入)及敏感信息泄露的覆盖任务。当白盒Agent发现疑似逻辑漏洞时,可通过黑盒Fuzz在流量侧生成针对性的变异Payload进行动态验证,通过分析HTTP响应状态来实证漏洞的可利用性。
这种将静态视角的逻辑推演与动态视角的攻击验证相结合的机制,能极大地提升漏洞检测的置信度,实现真正意义上的全链路攻防评估。下图展示了框架前期的核心架构设计草图:

智能化Agent设计细节
1. Static Orchestration Agent:基于MCP协议的异构工具编排
在传统的LLM应用中,模型往往被禁锢在文本交互的孤岛中,难以触及本地庞大的代码仓库。本框架设计的漏洞定位Agent,本质上是一个静态分析增强型智能体(Static Orchestration Agent)。它通过引入MCP协议与精心构建的Prompt角色定义,将LLM从被动的文本生成者转变为主动的工具使用者,从而获取代码结构中的丰富语义上下文。
MCP驱动的“深层感知”
不同于简单的API调用,MCP协议使得Agent能够理解工具的输入输出模式,实现复杂的推理链条:
- 工具与模型的语义对齐:通过定义标准化的MCP接口,将底层的静态代码分析工具(如Bandit、Semgrep)封装为LLM可调用的能力。
- 意图驱动的执行:构造合适的思维链(CoT)Prompt,让Agent根据当前的分析任务(例如“寻找未授权访问漏洞”),自主决策调用何种工具、传入何种参数。这使得Agent能够模拟安全专家的思维过程,主动探测代码中的漏洞点。
SINK点定位与攻击面收敛
针对LLM处理大规模代码时的“大海捞针”难题,本框架设计了高效的漏洞利用链定位策略:
- SINK点精准锚定:Agent并不直接阅读全量代码,而是利用MCP驱动底层扫描器,基于AST解析和高精度的正则模式,快速提取代码中的SINK点(需要根据不同语言和漏洞类型进行扩充分类)。

- 代码切片与上下文聚焦:一旦定位到Sink点,系统会通过静态分析工具获取受污染变量的上下文代码切片(Code Slice),并精确到语句级别,移除无关代码。这极大地收敛了分析范围,过滤了大量无关业务代码,确保输送给LLM进行深度研判的每一行代码都具有潜在的安全价值(无论是控制流还是数据依赖流都对漏洞的存在有潜在的约束和影响)。这不仅大幅降低了Token消耗,更显著提升了后续漏洞验证的准确性。
2. Contextual Reasoning Agent:基于RAG的领域知识增强与检索优化
作为本框架保障检测精度的核心组件,校验Agent(Contextual Reasoning Agent) 承担着“校验官”的角色。针对通用大语言模型在特定安全领域存在的专业知识匮乏与逻辑幻觉问题,本模块引入RAG技术,构建了一个可随时扩展的领域专家知识文档库,通过实时注入精确的先验知识来约束和校准模型的推理过程。
RAG知识库的结构化重构与向量化
为了让非结构化的安全知识能够被机器高效理解,系统摒弃粗暴的文本截断,采用基于Markdown语法树的结构化清洗策略。系统依据标题层级对海量的漏洞PoC、修复方案及原理分析文档进行逻辑切分,确保每个知识块(Chunk)都包含完整的语义单元。
例如,一个关于SQL注入与文件上传漏洞的复合知识文档,会被系统智能地识别和切分:

动态滑窗与重叠分块策略
在知识切片过程中,为了规避硬切分导致的语义断层,系统采用了基于重叠策略(Overlapping Strategy)的动态滑窗机制:
- 语义连贯性保障:设定固定的Token阈值作为基础窗口大小,同时引入预设比例的重叠缓冲区。每一分块的末尾段落会被完整保留,并作为下一分块的起始上下文。
- 边界信息无损传输:这种机制确保了跨越分块边界的逻辑描述(如一段跨越多行的代码逻辑或长难句的漏洞解释)不会被割裂,保证了向量检索时上下文信息的完整性与连贯性。

向量检索与推理校准
系统采用all-MiniLM-L6-v2模型作为Embedding引擎,该模型在保持低延迟推理的同时,在多语言语义相似度任务上表现良好。向量数据库采用Qdrant,以支撑大规模向量的高并发检索。
- 上下文感知的推理校准:当定位Agent上报疑似Sink点时,校验Agent会提取当前代码特征,在向量库中实时检索最相似的Top-K个历史漏洞模式和修复示例。这些检索结果被作为增强上下文注入到LLM的Prompt中,迫使模型基于检索到的“事实依据”而非单纯的概率预测进行最终判定,从而有效减少了误报的产生。
动态流量Fuzz:从通用漏洞到配置缺陷
笔者基于以往的安全研究经验,针对通用型漏洞工具做了大量调研,并基于BurpSuite原生API开发了自动化Fuzz工具模块(如:反射性和存储型XSS、SSRF、CORS、敏感信息泄露等)。该模块通过MCP协议集成给Agent调用。它并非简单的随机测试,而是作为一个流式检测组件,实时拦截、解析并重放业务流量,对潜在漏洞进行动态扫描。对于敏感信息泄露,则结合常见中间件(如Spring Boot Actuator、Swagger UI)指纹识别和模式匹配(如JWT Token、云服务AK/SK等高熵字符串),实现有效发现。
下面选取几个通用型漏洞的Fuzz原理进行简要解释。
1. 通用XSS漏洞的自动化Fuzz
针对XSS反射型和存储型漏洞,采用了全量参数解析与动态污点标记的检测策略,确保对异构HTTP包结构中参数的全面覆盖。
- 深度参数提取与结构化解析:引擎不仅解析URL Query参数,还内置了针对JSON、XML、Multipart-form等多种数据格式的解析器。它能够递归遍历HTTP请求体中的每一层嵌套结构,提取所有用户可控的叶子节点作为Fuzz入口点。
- 唯一性污点标记:为了解决并发扫描时的结果混淆问题,引擎摒弃了静态Payload,转而采用动态生成的唯一性测试标记。
- Payload构造:采用
Timestamp + RandomStr + Vector(例如当前时间戳等高熵字符串)的组合。
- 状态映射表:在内存中维护一张高并发的HashMap,记录
RequestID <-> ParameterName <-> UniquePayload的映射关系。
- 响应回显与验证:发送测试请求后,引擎自动捕获HTTP响应,通过高效的字符串匹配算法检索之前的唯一标记。一旦检测到标记回显且上下文未经过滤(如未进行HTML实体编码),即判定存在可疑XSS漏洞,并自动关联原始请求数据生成漏洞报告。

2. 访问控制与配置缺陷的CORS漏洞检测
自动化Fuzz模块会篡改HTTP请求头中的Origin字段,构造包括恶意第三方域名、特殊字符(如null)及子域名在内的多种变异Payload。
- 高危利用判定:当响应头
Access-Control-Allow-Origin的值与攻击者Payload完全一致或为小写null,且同时存在Access-Control-Allow-Credentials: true时,将其标记为高危漏洞。此类配置允许攻击者绕过同源策略(SOP)窃取用户敏感数据。
- 严格语法校验:针对协议规范的边缘场景进行校验。例如,检测到
Access-Control-Allow-Origin: Null(大写)时,引擎会自动识别其为无效配置(浏览器不识别大写Null),从而将其作为无效处理。同时,也能发现因服务端错误配置导致Access-Control-Allow-Origin始终与请求Origin相同的漏洞。

构建认知型安全智能体的未来图景
在对Multi-Agent自动化漏洞挖掘的探索实践中,我们始终在试图回答一个核心问题:如何在安全攻防领域,构建一个具备 “感知-推理-决策-行动” 完整闭环的智能系统。
目前的Agent主要还停留在“检测与验证”阶段。未来更完备的阶段应包含环境的自动感知探索与白盒源码的结合,使Agent能够基于当前的Shell环境或数据库权限,自主规划后续的横向移动与权限提升路径。另一个重要方向是自适应Payload生成:例如利用强化学习反馈机制,让Agent在面对WAF拦截时,能够动态调整Payload的混淆策略,实现智能化的WAF绕过。
本次实践探索了利用AI Agent技术提升安全自动化效率的一种路径,希望能为相关领域的研究者和工程师提供有价值的参考。更多关于DevOps与自动化安全的深度讨论,欢迎访问云栈社区进行交流。