AI终于学会了“想清楚再动手“,漏洞复现率飙升至84.5%
这项由新加坡国立大学、南洋理工大学和香港科技大学广州联合开展的研究以预印本形式发布于2026年7月2日论文编号为arXiv:2607.01764有兴趣深入了解的读者可以通过该编号查询完整论文。软件世界里有一种特殊的侦探工作叫做漏洞复现。当一个软件系统被发现存在安全漏洞时安全研究人员需要做的第一件事不是急着打补丁而是先证明这个漏洞确实存在——他们需要构造一个精心设计的触发文件专业上叫做PoC即概念验证文件让系统按照特定方式崩溃从而证明漏洞是真实的、可被利用的。这项工作既需要看懂成千上万行代码又需要像破案一样推理出漏洞的触发路径极度消耗专业人力。近年来AI被寄予厚望希望它能自动完成这项侦探工作。已有不少AI系统可以在代码仓库里跑来跑去、执行命令、提交文件但一个令人头疼的问题始终存在这些AI侦探虽然行动能力不差却老是选错调查方向。它们就像一个手脚很快但脑子没转好的侦探一路跑错了场子。正是为了解决这个选错方向的核心问题研究团队开发了一套名为**Mastermind**的系统。这套系统的核心思路可以用一句话概括**与其训练AI更努力地行动不如训练AI更聪明地规划**。一、问题究竟出在哪里要理解Mastermind的价值得先明白这个选错方向的问题有多严重。研究团队做了一系列实验来量化这件事。他们固定使用同一个AI执行器GPT-5.4 mini来操作代码仓库但给它不同质量的侦查策略然后看结果有什么变化。当什么策略都不给AI自己闷头干时成功率只有23.5%。当给它一个由另一个AI根据更丰富信息生成的策略时成功率跳升至39.5%——同样的执行能力仅凭一份更好的调查计划成功率提升了整整16个百分点。更有意思的是一个反直觉的结果把漏洞的官方标准答案直接塞给AI让它照着答案去复现成功率反而只有32%甚至低于那个软策略的39.5%。这说明一件事知道答案是什么和知道怎么一步步走到答案是完全不同的两种知识。一份可执行的调查计划比一个现成的结论更有用。研究团队还测试了另一种常见思路既然一次不行多试几次总行吧他们让AI独立尝试8次每次都不知道前几次的经历结果成功率从23.5%升至63%。确实有提升但提升曲线是前陡后平的——前几次尝试收获大后几次越来越多地在重复相似的错误方向边际效益急剧递减。于是又有人想到把前几次失败的经历告诉AI让它边学边改。这个迭代改进的方法表现很好成功率达到77%而且比独立尝试8次用了少得多的资源753次执行 vs 1600次执行。这说明从失败中学习并修正方向比盲目多试几次高效得多。这三个实验共同指向一个结论制约AI安全侦探的瓶颈是**选策略的能力**不是执行命令的能力。Mastermind就是为了正面攻克这个瓶颈而设计的。二、Mastermind的设计一个聪明的双循环侦探机构Mastermind的架构可以用一个侦探机构来理解。这个机构里有四个角色各司其职配合得相当精妙。**档案管理员Curator策展者** 负责管理一个任务专属的案件档案。每次对同一个漏洞发起调查档案管理员都会翻出以前的记录——哪些路径走过了、哪些输入格式失败了、哪个文件是关键线索——然后把这些信息递给下一个角色。档案管理员的职责是确保机构不会在同一个案子上重蹈覆辙。**策略规划师Planner规划者** 是整个机构的核心也是唯一需要通过训练来提升的角色。它接收档案管理员递来的历史记录结合当前任务的描述制定一份简洁的调查策略去哪里看代码、重点关注什么样的输入格式、如何验证触发结果。这份策略不超过2000个词语单位精炼而具体绝对不是一份流水账的操作日志。**现场执行员Executor执行者** 是一个完全冻结的AI模型它只负责把策略规划师的计划付诸行动——翻代码、运行命令、构造文件、提交给验证系统。关键在于冻结这两个字执行员的参数在整个过程中从不更新研究团队专门这样设计是为了严格证明成功来自于更好的策略而非来自于执行能力本身的提升。**裁判员Verifier验证者** 使用CyberGym这个专业基准系统在真实的Docker沙箱容器里运行AI提交的触发文件检验两件事漏洞版本的程序有没有按预期崩溃以及打了补丁的版本是否正常运行不崩溃。这个双版本验证机制确保AI不能靠让程序随机崩溃来糊弄过关必须精确命中那个特定漏洞。这四个角色之间存在两条反馈回路构成双循环。第一条是**经验回路**每次尝试的结果都会被档案管理员记录下来为同一任务的下一次尝试提供参考这是任务专属的短期记忆。第二条是**策略回路**训练阶段中策略规划师会根据多次尝试的结果不断更新自己的参数学习哪类策略更容易成功这是可以跨任务泛化的长期记忆。这种设计有一个深刻的哲学两种知识属于不同的性质应该存放在不同的地方。这个漏洞的触发文件应该关注文件头部的长度字段这类任务专属事实在任务结束后就没用了放在档案里够用而遇到内存越界类漏洞时应该优先尝试攻击者可控的计数字段这类跨任务规律才值得烧录进模型权重里。Mastermind的双循环正是按照这个逻辑分别处置两类知识。三、如何训练一个更聪明的策略规划师策略规划师使用的基础模型是Qwen3.6-35B-A3B训练分两个阶段进行就像培养一位优秀侦探要先学基本功再磨高级判断一样。第一阶段是**监督微调SFT**相当于给规划师看大量真实的案例教材。研究团队从其他AI系统Claude Code和Codex的实际操作轨迹中提取训练数据给定某个任务和到目前为止的档案记录应该生成什么样的下一步策略通过这批数据规划师学会了一件至关重要的事——看到失败记录之后要换一个思路而不是重复同样的方向。第二阶段是**强化学习GRPO**相当于让规划师在真实案子上接受实战磨砺。每次训练迭代中规划师对同一个任务同时生成16个不同的策略分成两组各8个。这16个策略分别交给执行员去实施然后看各自能走到哪个阶段。表现好的策略走得更远、更接近成功的那些会给规划师正向激励表现差的给负向惩戒规划师由此逐渐学会哪类策略更靠谱。为了避免规划师陷入重复同一类策略的思维定势研究团队设计了一套8个**策略槽位**每次生成的8个策略分别被要求从不同角度出发。第一个槽位要求从最小化复现角度出发第二个要求假设这是一个文件格式解析漏洞第三个要求假设是整数越界或内存分配问题第四个假设是释放后使用或状态机错误第五个要求先挖掘现有测试用例和模糊测试语料第六个要求先利用崩溃信息反推路径第七个要求从源代码入口到危险操作做正向追踪第八个则要求避开最显眼的方向、主动探索次优假设。这8个槽位就像给侦探开了8个并行的脑细胞每个从不同角度切入大幅提高了探索的广度。奖励信号的设计同样精心。研究团队不满足于简单的成功/失败二元判断——那个信号太稀疏规划师学起来太慢。他们设计了一套8级里程碑体系从找到了相关源代码0.5分到构造出了触发文件1.5分到提交给服务器并被接受4分到触发了错误崩溃但不是目标漏洞8分再到最终的精确复现目标漏洞且补丁版本正常12分。最后一步的奖励远高于前面所有步骤之和确保规划师最终目标始终是精确复现而非停留在差不多触发个崩溃就算数的状态。四、实验结果数字背后的真实差距研究团队在CyberGym基准上进行了严格的评估该基准包含来自188个真实开源项目的1507个漏洞复现任务数据来源覆盖ARVO和Google OSS-Fuzz两个权威渠道。训练使用了260个任务测试在完全独立的200个任务上进行两者没有重叠。以最强的执行器GPT-5.5为基础各种方法的表现构成了一条清晰的阶梯。单次尝试的成功率是23.5%独立重试8次升至63%加入静态分析工具PAGENT的指导后升至70.5%使用迭代经验改进后升至77%而Mastermind达到了84.5%用了560次执行比迭代改进的753次还少。换用弱一些的执行器GPT-5.4 miniMastermind同样产生了显著的提升从45%升至60%。而对于使用GLM 5.1的配置走的是Claude Code脚手架成功率从58.5%升至71%。更关键的是规划师是**只用GPT-5.4 mini的轨迹训练的**却能直接改善GPT-5.5和GLM 5.1的表现这证明学到的策略知识确实是跨执行器可迁移的而不是针对特定AI的特殊技巧。从里程碑分布的变化可以看出规划师起作用的具体机制。相比基础版本Mastermind明显减少了触发了错误崩溃m6漏洞版本和补丁版本都崩溃的情况增加了精确复现目标漏洞m7的情况。对于GPT-5.5m6从20次降至5次m7从145次升至169次对于GLM 5.1m6从31次降至18次m7从117次升至142次。这说明规划师的主要贡献在于引导AI更精准地命中特定漏洞而非仅仅让程序崩溃。累积成功率随尝试次数的变化曲线也揭示了有趣的模式。独立重试的曲线前陡后平大量尝试堆叠在一起只换来极小的边际收益而Mastermind的曲线从第一次尝试就明显更高且在后续每次尝试中都能稳步提升。以GPT-5.5为例Mastermind第一次尝试的成功率就达到47%已经超过了迭代改进在相同时刻的水平。对于那些最终没能解决的任务研究团队也做了细致的失败分析。一类是语义失败——AI构造出了看起来合理的触发文件但就是差那么一点没命中真正的漏洞条件比如FLAC音频解析器的某个比特读取漏洞arvo:17069和libarchive的RAR5格式解析漏洞arvo:20459另一类是搜索失败——多次尝试都陷入了同一条死路比如mruby大整数处理的某个漏洞arvo:494278次独立尝试全都提交了同一类思路的变体还有系统接口失败——比如提交脚本出了问题或者AI模型的安全过滤策略把任务当成了危险请求而拒绝执行。研究团队还诚实地报告了3个疑似基准本身存在问题的案例无论是Mastermind还是官方提供的标准答案都无法在这3个任务上通过双版本验证候选触发文件要么在补丁版本上也崩溃要么崩溃在了错误的调用栈位置。这3个任务被保留在200的分母中以保证结果的保守性。五、与其他方法的根本区别研究团队在一张对比表中梳理了Mastermind与当前主流方法的差异这张表本身就是一份关于agent设计空间的导航图。MPO、PilotRL、Plan-and-Act、CoDA这些方法都有可训练的规划模块也做了规划与执行的分离但它们缺少跨次尝试的经验积累也就是没有档案管理员这个角色。A-Mem做了跨次经验存储但它的规划器是冻结的不会从反馈中学习。AlphaEvolve有进化式的多样性探索也保留了候选方案的历史但没有经过明确的强化学习训练。Tree-GRPO做了过程级别的信用分配但没有把规划和执行分开。Mastermind是同时具备可训练规划器、规划执行分离、跨次经验积累、过程级奖励信号、策略多样性机制这五个维度的唯一方法。这不是凑功能每个维度都对应前述诊断实验中发现的一个具体问题。关于安全性研究团队也做了认真的讨论。Mastermind训练的是策略选择能力而非凭空创造新的执行能力边界是清晰的。训练过程需要大量的执行器调用成本远高于普通的单次攻击这从经济上形成了一定的门槛。所有PoC的验证都在CyberGym提供的Docker沙箱中进行提交还需要校验和认证系统无法访问基准之外的目标。研究团队也明确表示任何在开放性探索中发现的新漏洞都应遵循CyberGym的负责任披露流程不在主要结果中公开未修复的零日漏洞数量。归根结底这项研究讲了一个朴素但深刻的道理在需要做大量判断和推理的复杂任务里聪明地选择方向比快速地重复执行更有价值。Mastermind把这个道理变成了一套可训练、可复用、可迁移的机制并在真实的、有数百个工程项目覆盖的安全测试基准上验证了它的效果。对于未来的AI软件工程系统而言这种先想清楚再动手的架构思路或许比单纯追求更强的执行模型更值得认真对待。有兴趣深入了解技术细节的读者可以通过arXiv:2607.01764这个编号找到完整论文原文包含了完整的实验设置、奖励函数推导以及失败案例的详细分析。QAQ1Mastermind系统和普通的AI重复尝试有什么本质区别A普通的重复尝试Best-of-N每次都是独立的不会从前几次的失败中学任何东西就像侦探每次接案都从零开始越来越多地走重复的弯路。Mastermind的不同之处在于两点一是有档案管理员把每次失败的经历记下来下次调查时作为参考二是规划器本身经过了训练知道哪类侦查策略在什么情况下更可能成功。两者叠加效果远超盲目多试几次。Q2Mastermind训练好的规划器为什么能用在没训练过的AI执行器上A因为规划器生成的策略是用自然语言写成的描述的是去看哪段代码、关注什么输入格式、如何验证结果这类通用侦查思路并不包含任何针对特定AI模型的指令格式或操作细节。无论是GPT-5.5还是GLM 5.1读到同一份策略文本都能按照自己的方式把它转化成具体操作。策略知识的可迁移性本质上来自它的抽象层级足够高。Q3CyberGym的双版本验证机制为什么重要A很多漏洞触发的本质是程序崩溃但让程序崩溃和精确复现某个特定漏洞是两回事。双版本验证要求AI构造的触发文件必须在有漏洞的版本上崩溃同时在打了补丁的版本上正常运行缺一不可。这排除了大量随机崩溃的误报确保AI真的找到并复现了那个特定的安全漏洞而不是碰巧触发了一个不相关的错误。