← 最新论文
💻 计算机科学

One Successful Run Is Not an Exploit: Replaying LLM-Written Exploit Scripts with the Model Out of the Loop

本文通过展示虽然生成的漏洞利用脚本在脱离模型重放时具有高度稳定性,但实际的不稳定性在于生成过程本身,从而证明了在基于大语言模型的攻防安全基准测试中,单次运行的成功往往具有误导性,并指出必须将模型性能与人工制品可靠性分离,以进行准确评估。

原作者: Wensheng Huang

发布于 2026-11-06
📖 1 分钟阅读☕ 轻松阅读

原作者: Wensheng Huang

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在计算机安全领域,存在着一种构建防御者与试图破解者之间的持久竞赛。当一个计算机系统存在一个被称为“漏洞”的隐藏弱点时,熟练的攻击者可以编写一小段代码来利用它,从而获得未经授权的访问权限。如今,研究人员正在利用人工智能来自动编写这些代码片段。这些人工智能系统通常被称为“智能体”(agents),它们会被给予一个挑战和一套规则,并尝试生成一段能够成功攻破测试系统的脚本。如果该脚本哪怕只成功运行了一次,按照该领域的标准衡量方式,都会将其计为一次胜利。人们一直以来的假设是:如果一个人工智能能写出一段能成功运行一次的脚本,就意味着它找到了一种可靠的破解系统的方法。但这个假设留下了一个关键问题悬而未决:如果你将这段完全相同的脚本再次运行在同一个全新的系统上,它第二次还会奏效吗?

一位研究人员试图通过改变测试这些人工智能生成的脚本的方式来回答这个问题。他并没有要求人工智能一遍又一遍地重试(因为那是在测试人工智能的思考和适应能力),而是决定对脚本本身进行测试。他提取了人工智能已经生成的那些获胜脚本,并在不让人工智能参与第二轮测试的情况下,将它们反复运行在目标系统的全新、干净的副本上。这种方法就像是拿着一把成功打开过一次门的钥匙,去尝试开十几扇全新的、完全相同的门,看看它是否依然契合。研究人员想要知道,这把“钥匙”是真的好用,还是仅仅因为第一扇门的某种特定且暂时的状态才凑巧奏效。

这项研究涉及了十四个不同的安全挑战,范围从简单的登录缺陷到更复杂的、涉及系统以危险方式处理用户输入的问题。人工智能被要求解决这些挑战,它成功生成了 196 次有效的脚本尝试。随后,研究人员将这 196 个脚本中的每一个都在全新的系统中各运行了十次,总共进行了 1,960 次测试运行。结果非常清晰:在 1,950 次运行中,脚本的表现与第一次运行时完全一致。这意味着在绝大多数情况下,一旦人工智能找到了解决方案,该方案就是一个稳定、可靠且可重复使用的代码片段。该脚本并不依赖于运气或转瞬即逝的成功,而是一个能够持续工作的稳固工具。

然而,研究也发现了一个引人入胜的例外,解释了为什么旧有的测试方式是不充分的。在 196 个脚本中,有一个脚本在每次运行于新系统时都失败了。它是一个“死”脚本,无法打开那扇门。然而,当研究人员重新运行了人工智能在创建该脚本之前所采取的整个步骤序列——即按顺序重演人工智能之前的尝试,然后再运行最终脚本时——该脚本竟然每次都完美运行了。其中的原因微妙且隐蔽。该脚本依赖于计算机系统的内部状态,具体来说,是该系统编程语言在内存中保留的一个类(class)列表。人工智能之前的尝试在无意中向这个列表中添加了项目,从而改变了项目的排列位置。而最终的脚本则是硬编码(hard-coded)去寻找特定位置的特定项目的。在一个全新的系统上,这些位置要么是空的,要么存放着错误的内容。但在之前的步骤运行后,列表增长并发生了位移,使得正确的项目恰好出现在脚本预期的位置上。成功属于整个旅程,而不只是最后一步。

这一发现凸显了人工智能的思维方式与它所产生的代码行为之间存在重大差异。研究人员发现,人工智能生成解决方案的能力是非常不稳定的。在许多情况下,人工智能第一次尝试失败,第二次成功,然后第三次又失败。如果你只观察人工智能的生成过程,你会看到大量的波动。但一旦人工智能成功写出了一个可以运行的脚本,这个脚本本身几乎总是稳定的。这种不稳定性存在于思考过程中,而非其创造出的工具中。这意味着,人工智能的一次成功运行并不能证明该人工智能在寻找解决方案方面具有持续的高水平,但它确实证明了它所找到的那个特定方案通常是可靠的。

研究人员还测试了如果攻击的计算机系统略有不同(例如运行更高版本的编程语言),这些脚本是否仍然有效。他们使用更新版本的软件重建了目标系统,并再次运行了这些脚本。几乎所有的脚本仍然有效,但其中一个原本在旧系统上表现完美的脚本在新的系统上完全失效了。这表明,即使是环境的微小变化,也可能破坏一个看似完美的脚本,进一步强化了这样一个观点:脚本的成功与其被创建时的特定条件紧密相连。

这项工作的核心启示是,我们需要改变判断人工智能在安全领域成功与否的标准。仅凭一次成功不足以称之为发现了一个漏洞。要真正了解人工智能是否发现了一个真实的漏洞,我们必须验证它所写的脚本在没有人工智能协助的情况下,能否独立且重复地运行。研究表明,虽然人工智能的生成过程往往是摇摆不定且不可预测的,但它所能生成的脚本通常是稳固且可靠的。那唯一一次脚本在独立运行时失败的情况,是因为它依赖于人工智能早期尝试留下的隐藏状态,而这一细节在单次测试运行中是无法被察觉的。通过将“编写代码的行为”与“运行代码的行为”分离,研究人员提供了一个更清晰的视角来审视这些人工智能系统的实际能力,展示了它们所构建的工具往往比构建它们的流程本身更加可靠。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →