夜雨聆风学习资料网

ARTICLE · 1224846

CyberGym:当AI开始真正验证软件漏洞

CyberGym:当AI开始真正验证软件漏洞
前阵子在厂商安全技术会议上留意到 CyberGym,特此整理分享,全文约 4200 字,阅读预计 10 分钟。
过去,我们评价 AI 的网络安全能力,往往看它能否识别漏洞、解释攻击原理,或者生成一段测试代码。但这些能力并不能直接证明 AI 能够完成真实的漏洞研究。一个模型即使准确指出了代码中的风险,也可能无法构造有效的测试输入,即使生成了 PoC,也可能无法触发目标漏洞。

CyberGym 尝试用一种更严格的方式回答这个问题,AI 不仅要分析漏洞,还要通过实际执行,证明自己生成的测试确实能够触发目标漏洞。这意味着,AI 安全能力的评价标准正在发生变化。单纯的知识问答和代码生成,正在向可执行、可验证的任务评测延伸。理解 CyberGym,不只是理解一个漏洞评测基准,更是理解 AI 智能体如何将代码分析、工具调用、测试生成和结果验证结合起来。

一、CyberGym 究竟在测试什么?

CyberGym 由加州大学伯克利分校等研究人员提出,最初发布的基准包含 1,507 个真实漏洞任务,覆盖 188 个开源软件项目。它的核心任务是让 AI 智能体根据漏洞描述和修复前的代码库,自主分析程序,并生成能够复现目标漏洞的概念验证程序,即 PoC(Proof of Concept),要理解这项工作的意义,需要区分三个不同层次的能力。

第一层是漏洞识别。给模型一段代码,让它判断是否存在越界访问、整数溢出、内存错误等问题。这主要考查模型对代码逻辑和漏洞原理的理解。

第二层是漏洞复现。模型不仅要判断问题可能存在,还需要构造特定输入,让程序真正执行到存在缺陷的代码路径。这要求模型理解输入格式、数据流、函数调用关系和漏洞触发条件。

第三层是结果验证。即使程序发生崩溃,也不能直接认定任务成功。智能体还需要证明,这次异常符合目标漏洞的验证条件,而不是由其他错误引起。

CyberGym 的重点是后两个层次,尤其强调通过实际执行验证 PoC 的有效性。例如,某个图像处理程序在计算缓冲区大小时,没有正确检查输入数据中的长度参数。模型可能很容易指出这里存在整数溢出风险,但要真正复现漏洞,还需要理解图像文件格式、相关字段之间的关系,以及输入数据如何影响程序执行。如果生成的文件在进入目标函数之前就被拒绝,漏洞仍然没有复现。如果程序确实崩溃,但崩溃发生在另一个无关位置,也不能直接判定成功。因此,CyberGym 真正考查的不是 AI 能否说出漏洞原理,而是它能否将分析结论转化为有效的执行结果。

二、从代码分析到 PoC 生成,智能体是如何工作的?

一次典型的 CyberGym 任务,可以从任务输入、代码分析、PoC 构造和执行验证四个环节来理解。

首先,评测系统向智能体提供漏洞描述和相应的修复前代码库。漏洞描述可能包含漏洞类型、相关函数或其他线索,但智能体仍需要自行分析代码,确定问题的具体触发机制。

其次,智能体开始调查目标项目。它可以调用代码搜索、文件读取、脚本执行和测试工具,寻找相关函数,分析调用关系,理解输入数据如何在程序内部传递。这一步往往比表面上看起来更加复杂。真实软件可能包含数千个文件,目标函数也未必直接处理外部输入。一个参数可能经过多层函数调用、类型转换和边界检查,最终才影响存在缺陷的操作。智能体必须沿着这些数据和控制路径逐步分析,确定哪些输入条件可能触发问题。

再次,找到疑似缺陷后,智能体需要将分析假设转化为测试输入。对于文件解析程序,它可能需要构造具有特定字段组合的文件。对于处理网络协议的程序,则可能需要满足一定格式和状态条件的输入数据。测试输入生成后,智能体调用执行环境运行程序,并根据返回结果判断是否成功。

最如果没有触发目标漏洞,智能体就需要分析失败原因。问题可能出在输入格式、参数取值、程序执行路径,也可能出在最初的漏洞假设上。它可以根据错误信息调整输入,重新检查代码,并再次尝试。

这个过程体现了 AI 智能体与普通大模型问答的本质区别。大模型主要根据输入生成回答,而智能体可以在目标环境中连续执行多个动作,并利用执行反馈调整下一步决策。

当然,具体使用哪些工具、采用何种任务分解方式,取决于智能体系统的实现。CyberGym 提供的是任务和评测机制,并不强制要求所有智能体采用同一种内部架构。

三、为什么一次尝试往往不够?

真实漏洞研究存在大量不确定性。即使智能体已经理解了漏洞原理,也不一定能在第一次尝试中构造出有效 PoC。原因在于,漏洞触发通常需要多个条件同时满足。假设某个程序在解析文件时存在越界访问问题。智能体可能正确找到了目标函数,却没有理解输入文件中的长度字段和偏移字段之间的约束关系。第一次生成的文件因此无法通过前置检查,程序根本没有执行到漏洞代码。此时,如果智能体只根据“没有发生崩溃”就判断漏洞不存在,就会过早结束任务。更合理的做法是分析程序为什么拒绝输入,判断问题出在文件格式、执行路径,还是漏洞假设本身,再根据证据调整测试方案。这就是反馈闭环的价值。执行结果不只是最终的评分依据,也可以成为下一轮分析的输入。

在多轮探索中,智能体可能逐步缩小搜索范围,排除无效假设,并提高测试输入的有效性。不过,多次尝试也会带来额外的计算成本。重复生成相似输入、忽略错误信息,或者在错误方向上持续探索,都可能浪费资源。智能体的实际能力不仅取决于模型本身,还取决于它如何规划任务、利用工具、解释反馈,以及决定何时继续尝试、何时停止。

CyberGym 的研究结果也体现了尝试次数对部分任务成功率的影响。研究团队报告,在其特定实验设置下,领先智能体单次尝试的成功率约为 30%,将尝试次数增加到 30 次后,成功率约为 67%。这些数字反映的是特定评测条件下的表现,不应直接视为所有 AI 系统在真实软件中的漏洞发现率。

更重要的启示是:评估智能体时,不能只看底层模型的名称或参数规模,还需要考虑任务预算、工具权限、执行环境和尝试次数。

四、如何判断一个 PoC 真正复现了漏洞?

在漏洞研究中,生成测试程序只是开始,证明测试结果与目标漏洞之间存在明确关系,才是关键。CyberGym 的验证机制强调修复前后版本之间的差异。简单来说,生成的 PoC 应当能够在修复前的程序中触发目标问题,而在修复后的程序中不再触发相应问题。

为什么要比较两个版本?

假设一个程序存在越界访问漏洞,开发人员随后增加了长度检查。智能体生成的测试输入在修复前版本中触发崩溃,但在修复后版本中不再触发。这种前后差异能够为目标漏洞的复现提供有力证据。如果同一输入在修复后版本中仍然触发相同崩溃,就需要进一步调查:补丁是否没有彻底修复问题?测试是否触发了另一个缺陷?或者崩溃是否来自与目标漏洞无关的执行路径?

修复前后版本的对比虽然能够提高结果可信度,但也不是对所有安全问题都适用的万能证明。复杂程序可能存在其他缺陷,补丁也可能改变多个执行路径。因此,评测仍然需要明确任务定义和验证条件。

从 AI 安全系统设计的角度看,这里有一个值得重视的原则。模型负责提出分析假设,执行环境负责提供运行证据,独立验证机制负责判断结果是否满足要求。

可信的安全结论,不应只来自模型自己声称成功,而应来自能够被重复执行和复查的证据。

五、从漏洞复现到自主漏洞发现,还有多远?

CyberGym 展示了 AI 智能体在真实漏洞复现任务中的潜力,但漏洞复现与自主漏洞发现并不是同一件事。

CyberGym 的典型任务会提供漏洞描述和相应的目标代码。智能体需要根据这些线索,完成漏洞分析和复现。自主漏洞发现则可能要求 AI 从大量代码中寻找此前未知的缺陷,没有明确的漏洞位置,也没有现成的触发条件。

这两类任务的难度和评价方式存在明显差异。

同样,漏洞复现也不等于漏洞利用。生成一个 PoC 并触发程序崩溃,只能说明测试满足了相应的复现条件,并不意味着已经能够绕过安全机制、获取未授权权限,或者构建稳定的攻击链。

完整的软件安全研究还涉及根因分析、影响范围判断、补丁编写、回归测试和修复效果验证。这些环节相互关联,却不能仅凭一个漏洞复现分数就全部推断出来。

2026 年出现的 CyberGym-E2E 进一步将漏洞发现、验证和修复纳入端到端评测,体现了研究方向从单一漏洞复现向完整软件安全任务拓展的趋势。但端到端任务同样需要分别验证各个环节,不能把生成补丁直接视为修复成功。

对于真实企业环境,还存在额外挑战。代码库可能依赖特定编译器、第三方组件和运行配置;测试环境可能无法完整模拟生产系统;自动生成的补丁也可能影响原有功能。

因此,更合理的判断是:CyberGym 为衡量 AI 完成真实漏洞研究中的关键任务提供了一个可执行的起点,但它不能单独证明 AI 已经具备全面自主的漏洞研究或攻防能力。

六、CyberGym 对 AI 安全意味着什么?

CyberGym 最重要的价值,在于它改变了评价 AI 安全能力的方式。

过去,衡量模型的安全能力,往往依赖问答正确率、代码分析质量或漏洞识别结果。但在真实的软件安全工作中,分析结论只有转化为可执行的测试,并通过验证,才能真正形成可靠的技术证据。

CyberGym 将这一过程转化为可以重复执行和比较的评测任务,让研究人员能够观察智能体在代码分析、PoC 构造和执行验证中的表现。

这也使得 AI 安全研究的关注点逐渐从单一模型能力转向系统整体能力。

一个模型可能非常擅长解释代码,但不擅长利用工具;另一个模型可能推理能力相近,却能够通过更合理的任务规划和反馈机制完成更多测试任务。只有将这些能力放在具体执行环境中评估,才能更加准确地理解系统的实际表现。

对于未来的 AI 安全应用,这意味着安全自动化不能只关注模型是否能够生成专业答案,还需要关注权限控制、执行环境隔离、操作记录和独立验证。

当智能体能够访问代码仓库、编译环境和测试工具时,它的能力边界不仅由模型决定,也由系统授予的权限决定。合理的设计应当限制智能体只能在授权环境中开展任务,对高风险操作实施必要的控制,并确保重要结果能够追溯和复核。这并不是要求所有安全任务都必须由人工完成,而是要求自动化能力与验证机制同步建设。

七、从“会分析”到“能证明”,才是关键变化

CyberGym 最值得关注的地方,不是它让 AI 多学会了几个漏洞知识点,而是它将漏洞分析转化成了能够通过实际执行验证的任务。从理解代码、定位缺陷,到构造 PoC、分析执行反馈,再到比较修复前后的程序行为,整个过程展示了 AI 智能体如何把推理能力转化为实际行动。

当然,能够复现漏洞不等于能够发现所有未知漏洞,更不等于具备完整的自主攻防能力。但它提供了一个清晰的技术判断标准,AI 是否真正完成任务,不能只看它说了什么,还要看它做了什么,以及结果能否被验证。

当 AI 开始通过实际运行结果证明漏洞存在时,我们衡量它的标准,就不应再停留在“回答得有多好”,而应该进一步追问:它完成了什么任务,证据是否充分,结果能否重复,以及它是否清楚自己的能力边界。

相关学习资料