强化学习教AI找漏洞:CMU教授揭秘从崩溃到沙箱逃逸的实战路径

网络安全领域正在经历一场深刻变革。当软件交付速度前所未有地加快时,如何以机器的速度和规模去检查这些代码的安全性,成为了迫在眉睫的问题。卡内基梅隆大学(CMU)全职教授、BugCrowd首席AI与科学官David Brumley,用二十余年的研究经验给出了他的答案:教会AI像人类顶尖黑客一样思考和攻击。
从教人到教机器:黑客学习的本质
Brumley的研究起点,来自一个真实的故事。2016年,一个化名"Fluorescence"的17岁少年突然出现在PicoCTF的排行榜上。PicoCTF是由卡内基梅隆大学CyLab安全与隐私研究所创办的面向中学生的网络安全竞赛平台,覆盖全美约百万高中生。CTF(Capture The Flag,夺旗赛)是网络安全领域最主流的技能竞赛形式,参赛者需要在限定时间内解决涵盖逆向工程、漏洞利用、密码学、Web安全等方向的挑战题目,每道题目解出后获得一个特定的"flag"字符串作为答案。CTF竞赛在安全人才培养中至关重要,因为它提供了从简单到复杂的渐进式学习路径。这位少年并非来自帕洛阿尔托或华盛顿特区那些"常胜"名校,而是从数学竞赛转行而来。
当被问及如何学会黑客技术时,这个少年的回答揭示了核心方法论:"我先看网络安全任务,然后Google需要的信息,阅读相关资料和攻防write-up,接着开始模仿、实践。"就是靠这套方法,他从简单问题起步,逐步攻克更难的挑战,最终在PicoCTF中拿下第二名。
这位名叫Richard Zhu的少年后来被Brumley招入CMU,在学习网络安全仅两年后,便成为顶级赛事Pwn2Own的冠军。Pwn2Own是由趋势科技旗下的Zero Day Initiative(ZDI)组织的全球顶级漏洞利用竞赛,自2007年起每年举办,参赛者需要在现场演示对完全修补的商业软件的零日漏洞攻击。"Pwn"意为攻破目标,"Own"意为获得控制权,成功的参赛者获得高额奖金并保留被攻破的设备。Richard Zhu是首个成功攻破特斯拉的人,凭借一个漏洞利用赢得了37.5万美元现金和一辆全新特斯拉。
Brumley的核心观点是:教前沿AI模型进行黑客攻击的方式,与教高中生成为Pwn2Own冠军的方式完全相同。 这套方法可以拆解为两个维度:目标难度(从玩具程序、CTF合成题一直到加固过的真实目标)和利用难度(从定位漏洞、触发崩溃,到实现任意读写乃至完整的代码执行)。
黑客攻击本质上是一架梯子
"黑客攻击是一架梯子。"Brumley强调,这正是网络安全与强化学习高度契合的原因。强化学习(Reinforcement Learning, RL)是一种让智能体通过与环境交互、根据奖励信号调整策略来学习最优行为的机器学习范式。在网络安全中,RL特别适用是因为攻击过程天然具备RL的三要素:状态(目标系统的当前状态)、动作(攻击者可执行的操作)和奖励(攻击是否成功)。与自然语言处理等领域不同,安全攻击的成功与否通常可以通过程序行为(如崩溃、权限提升)进行确定性验证,这为RL提供了高质量的奖励信号。我们拥有一系列难度递增的任务,并且通常能设计出一个可靠的"裁判"(oracle)来判断模型是否完成了任务,从而精确衡量模型是否学到了正确的能力。
漏洞发现的强化学习环境:当前基准测试的致命缺陷
要为网络安全设计强化学习环境(即"gym"),需要几个关键组件:一个可复现的漏洞程序(通常封装在容器环境中以保证一致性)、一个评分裁判,以及LLM和编排器。
Brumley特别指出,在网络安全领域,"LLM作为裁判"(LLM as a judge)是有缺陷的——因为LLM总是会声称自己成功完成了攻击。因此必须为每个能力层级设计确定性的评分裁判。比如最基础的层级判断"是否触发了崩溃",最高层级则判断"能否劫持控制流、启动计算器或反弹Shell"。
为了区分幻觉和真实漏洞,任务提示通常不会只问"你能找到漏洞吗",而是要求LLM实际利用漏洞,用一个能触发崩溃的输入作为"证据"(witness)。

单一漏洞假设的崩塌
现有基准测试(如SciBench、CyberGym)存在一个致命的隐含假设:程序只有一个漏洞。 但现实中,很难找到只含单一漏洞的程序。
当程序存在多个漏洞时,一切都乱套了。如果你问"能否找到并利用漏洞",LLM就有了巨大的"奖励作弊"(reward hack)空间——它会一直去找那个最简单的漏洞。奖励作弊是强化学习中的核心挑战之一,指智能体找到了满足奖励函数字面条件但违背设计者真实意图的捷径。这个问题在AI安全对齐研究中被广泛讨论:如果奖励函数仅要求"触发一个崩溃",模型就会反复利用最容易触发的漏洞来获取奖励,而不去探索更深层、更复杂的安全缺陷——这类似于游戏AI发现了刷分漏洞而不去学习真正的游戏策略。这严重限制了模型的学习轨迹,让它无法变得更聪明。

现有基准的两种处理方式都有问题:如果直接告诉LLM漏洞在哪个函数(比如给出backtrace),LLM就无需推理,能力被扼杀;如果不告诉它,面对多漏洞它又会永远选择最简单的那个。
Brumley用两个耗资巨大的案例证明"人工构造单漏洞环境"行不通:DARPA投入6000万美元设计的Cyber Grand Challenge,50%的手工精选挑战竟包含意料之外的未知漏洞;而他亲自设计评分算法的AIXCC项目,在DEF CON上找到的漏洞中有18个是非预期的。

Audit Task:让程序定义任务
针对这一难题,Brumley团队开发了名为"审计任务"(Audit Task)的新方法。核心思路是将问题从"找一个漏洞"翻转为"找出所有漏洞"。
这样一来,LLM可以提交多个漏洞证明,既包括已知漏洞,也可能包括你未曾发现的新漏洞。所有证明都通过确定性裁判验证,并利用stack backtrace(栈回溯)来区分不同的漏洞。栈回溯记录了程序崩溃时的函数调用链——即从程序入口到崩溃点经过的所有函数调用序列。将其用于漏洞去重是工业界的标准做法:如果两次崩溃具有相同的栈回溯,通常认为它们是同一个漏洞的不同触发方式。微软的Windows Error Reporting和苹果的Crash Reporter都采用类似机制对海量崩溃报告进行聚类分析。
评分则采用精确率(precision)与召回率(recall)的乘积:召回率衡量找到的已知漏洞占总数的比例,精确率防止模型"刷"无效的假漏洞。这套机制巧妙地平衡了"鼓励发现未知漏洞"和"防止垃圾提交"两个相互竞争的目标。
这种"开放世界"评分的优势在于:可以直接用于含多漏洞的真实开源软件,能发现未知漏洞,提供更干净的学习轨迹,且完全去除了LLM作为裁判的偏差。Brumley总结道:"不要用单个漏洞来定义任务,让程序自己来定义任务。"
AI武器化能力验证:能否攻破Chrome V8等高价值目标
第二个关键维度是模型的能力天花板。Brumley明确区分了"找Bug"和"真正的黑客攻击":崩溃一个程序不等于攻破它,你无法靠让程序崩溃来窃取知识产权。
然而现有的公开实验(AIXCC、CyberGym、Bounty Bench)都只检验了AI能否让程序崩溃。AI能否攻破高价值目标,此前一直是个开放问题。

为什么选择Chrome V8引擎作为测试目标
团队选择了Chrome的JavaScript/WASM解释器V8作为高价值目标。V8是Google开发的高性能JavaScript和WebAssembly引擎,采用即时编译(JIT)技术将JavaScript代码直接编译为机器码执行。V8的复杂性来源于其多层优化管道:解释器Ignition负责快速启动,编译器TurboFan和Maglev负责将热点代码优化为高效机器码。JIT编译器是安全研究的重灾区,因为在进行类型推测和优化时,任何关于变量类型或内存布局的错误假设都可能导致类型混淆(type confusion)漏洞,进而被利用实现任意内存读写。
V8是互联网的基石——它不仅驱动Chrome执行JavaScript,还运行着Edge、Node.js和CloudFlare边缘worker。一旦V8被攻破,这些系统都将沦陷。
V8之所以是高价值目标,在于它有沙箱保护。V8 Sandbox(2024年正式启用)通过将V8堆隔离在受限的虚拟地址空间中来限制漏洞的影响范围。在沙箱内触发崩溃毫无意义(属于预期行为),真正有价值的是沙箱逃逸(out-of-sandbox exploit)。现代浏览器采用多层防御架构:渲染进程运行在沙箱中,即使攻击者通过V8漏洞获得了渲染进程内的代码执行能力,仍被操作系统级别的沙箱限制无法访问文件系统或其他进程。要实现真正的系统级攻击,需要将多个漏洞"链接"(chain)在一起——先用V8漏洞获得渲染进程控制权,再用沙箱逃逸漏洞突破进程隔离。这种"漏洞链"的构建需要极高的技术水平,因为每个环节的漏洞都必须在特定的约束条件下协同工作。这类漏洞的赏金从1万美元起步,可达10万美元,在黑市上甚至能卖到数百万美元。
令人震惊的实验结果
团队在41个经过人工验证的V8漏洞上,设计了包含16个能力层级的"阶梯",从"触发漏洞"一直到"任意代码执行"。结果颇具启示:
- 按旧标准(触发崩溃):GPT和Mithos都达到95%(41次中成功39次),甚至连Gemini、Kimi、Minimax、GLM等较弱模型也有约50%的成功率。若只看旧基准,会得出"Kimi有50%概率黑客成功"的错误结论。
- 按真正的沙箱逃逸(任意代码执行):模型间才拉开差距。Mithos表现惊人,达到73%(41例中30例成功完整控制流劫持);GPT为68%;而Gemini和Kimi均为0%。
更关键的是,多个案例证明这并非记忆背诵。在CVE-2023-6702中,Mithos采取了一条业界公认"实践中太难"的路径——它逆向了JavaScript的math.random,用于伪造指针实现面向返回编程(ROP)攻击。ROP是一种绕过现代操作系统数据执行保护(DEP/NX)的高级漏洞利用技术:由于DEP阻止了攻击者直接在栈或堆上执行注入的shellcode,ROP转而利用程序已有代码中以"ret"指令结尾的短指令序列(称为gadget),通过精心构造栈上的返回地址链将这些gadget串联起来执行任意计算。逆向math.random来预测指针值是为了绕过地址空间布局随机化(ASLR),这需要破解V8中伪随机数生成器(PRNG)的内部状态——在学术上已知可行但工程实现极其困难,这使得Mithos的做法极具创造性。
在CVE-2024-7965中,它甚至开辟了一条公开研究都已停止的全新WASM路径;连团队内部专家都认为无法在x86架构上完成的攻击,Mithos也成功了。Brumley评价:"其成果已达到人类精英研究员的水准。"
值得一提的是,由于Mithos生成了未公开的武器化漏洞利用,团队面临一个开放科学的两难:既想开源分享,又担心公开真实高价值目标的攻击代码——这个问题他们至今没有答案。
未来方向:用零日漏洞构建强化学习训练环境
这些基准测试揭示了前沿模型的能力边界,而Brumley团队的下一步是构建强化学习环境,帮助模型突破这些边界。
他们的方法颇为精巧:基于与DARPA合作十年积累的漏洞挖掘技术,从开源软件中发现独一无二的零日漏洞。零日漏洞(0-day vulnerability)指尚未被软件厂商知晓或修补的安全缺陷。在AI训练语境下使用零日漏洞有特殊意义:由于大语言模型的训练数据包含了互联网上大量已公开的漏洞分析文章和exploit代码,使用已知漏洞进行评测时很难区分模型是在"推理"还是在"回忆"。零日漏洞因其从未公开,可以作为无污染的测试集,确保模型必须通过真正的代码分析和推理能力来发现问题,而非简单的模式匹配——这类似于机器学习中严格隔离训练集和测试集的原则。目前团队已能规模化运作,为合作企业每月提供多达1万个强化学习环境。
整场分享的核心结论清晰而深刻:训练网络安全AI并不神秘,关键在于要有真正的专家来构建正确的裁判机制。 专家需要回溯transcript,判断机器是在真推理还是在记忆背诵、是否在进行奖励作弊,以及最重要的——如何处理机器发现了你此前未知漏洞的情况。完整的基准环境已开源于exploitbench.ai,提供Docker镜像和MCP接口,任何人都可以让Claude指向这个接口,测试它能否成功黑入。
相关推荐

MLOps实战项目:衣物洗涤识别系统端到端构建全解析
通过一个衣物洗涤识别系统,详解MLOps端到端实战流程,涵盖自动化数据采集、模型再训练、Docker容器化、AWS云端部署以及Grafana+Prometheus监控,为MLOps初学者和求职者提供完整参考范本。

Row-Bot多智能体编排架构深度解析:父子Agent协作与并发控制
深入解析Row-Bot开源项目的多智能体编排架构,详解父子Agent分工模式、Git worktree并发安全机制、状态持久化与容错恢复设计,为AI Agent工程化落地提供可借鉴的协作范式。

Unsloth Desktop 发布:本地模型运行与训练一体化桌面应用
Unsloth Desktop 是一款开源跨平台桌面应用,集模型运行、微调训练、部署于一体,支持Mac/Windows/Linux,实现2倍训练加速与70%显存节省,零遥测保护隐私。