FuzzingBrain-Bench V1: Evaluating Open-Ended Bug Discovery by LLMs
本文介绍了 FuzzingBrain-Bench,这是一个旨在评估大语言模型开放式漏洞发现能力的全新基准测试集,通过衡量其在来自 43 个开源项目的 77 个挑战中,生成能够触发经由消毒器(sanitizer)插桩的测试桩(harness)产生不同崩溃的输入的的能力来进行评估。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在运行我们现代世界的庞大且无形的软件景观中,隐藏的缺陷是一个持续存在的现实。这些缺陷被称为漏洞,就像大坝上的微小裂缝;如果不及早修补,它们可能会让攻击者突破系统、窃取数据或关闭关键服务。几十年来,寻找这些裂缝一直是一个依赖人工、劳动密集型的过程,由人类专家细致地检查代码,寻找暗示存在弱点的模式。然而,随着软件数量的增长,报告的缺陷数量已达到历史新高,人类的处理能力已无法跟上。这促使研究人员提出了一个新问题:人工智能,特别是能够编写和理解代码的大型语言模型,能否被教导比以前更快、更有效地发现这些漏洞?挑战不仅在于在纸面上发现缺陷,还在于通过创建一个迫使软件失效的特定输入来证明其存在,这一过程需要对代码在压力下的行为有深刻的理解。
德克萨斯 A&M 大学的一个研究小组通过创建一个名为 FuzzingBrain-Bench 的新测试场,向回答这个问题迈出了重要一步。与以往要求人工智能模型仅仅识别已知弱点或重现特定预告错误的测试不同,这个新基准要求模型扮演独立探索者的角色。研究人员向模型提供了已知包含漏洞的真实开源软件项目的源代码,以及一个专门的测试工具——“测试桩”(harness)。这个测试桩是一个受控环境,旨在运行软件并密切观察任何失败的迹象。模型并不知道漏洞在哪里,也不知道漏洞长什么样。相反,它们的任务是生成数千个不同的输入,将它们喂给软件,看看是否能触发崩溃。在这种语境下,崩溃是指软件意外停止工作的时刻,通常会揭示一个隐藏的漏洞。模型获得奖励的标准不是发现某个特定的、预先选定的漏洞,而是发现尽可能多类型的不同失败,无论这些失败是否与原始已知问题相匹配。
该基准由来自 43 个不同软件项目的 77 个挑战组成,涵盖了从图像处理库、视频编解码器到数据库工具和 Web 服务器等项目。这些项目是用三种主要编程语言(C、C++ 和 Java)编写的。为了确保公平性并防止模型访问外部信息,每个挑战都被封装在一个安全的隔离容器中。在容器内部,模型只能看到代码和测试工具;它无法访问互联网,没有关于漏洞报告的历史记录,也没有关于如何修复软件的信息。模型必须完全依靠自身的推理能力来构建能够破坏系统的输入。研究人员通过计算模型导致软件崩溃的独特方式的数量来衡量成功。他们使用了一种将相似崩溃分组在一起的系统,以确保模型因发现一种新的失败类型而非仅仅是重复同一个错误而获得积分。
当研究人员测试三种不同版本的先进人工智能系统时,结果既展示了这项技术的潜力,也揭示了其目前的局限性。功能最强大的版本(被称为 Opus)成功在 77 个挑战中的 60 个中触发了崩溃,在大多数情况下成功找到了破坏软件的新方法。稍弱的版本(Sonnet)在 50 个挑战中取得了成功,而速度最快、最经济的版本(Haiku)则在 35 个挑战中找到了崩溃。研究人员根据模型发现漏洞的难度为每个挑战分配了难度评分。最困难的挑战(即没有任何模型能找到崩溃的挑战)需要最复杂的推理。即使是表现最好的模型,在 13 个挑战中也未能发现任何漏洞,这表明尽管这些模型功能强大,但它们并不完美,在处理最复杂或最隐晦的软件缺陷时仍然感到吃力。
研究还发现了模型在处理任务时的有趣差异。功能最强大的模型往往比其他模型更早停止搜索,通常很快找到漏洞后就转向下一个,而其他模型则倾向于使用完整的分配时间,在放弃之前进行更多测试。这种行为意味着,即使在解决较简单的问题时表现更好,最强大的模型在面对难题时有时也会缺乏彻底性。研究人员注意到,运行这些测试的成本差异显著:功能最强大的模型运行成本更高,尤其是在处理需要花费更多时间和生成更多数据的困难挑战时。然而,成本较低的模型在发现深度漏洞方面的效率也较低。研究结果表明,虽然人工智能正在成为寻找软件漏洞的可行伙伴,但它尚未成为人类专业知识的替代品。这些模型擅长发现常见或易于触及的缺陷,但在处理最难以捉摸的缺陷时仍会出错,这表明软件安全的未来很可能涉及人类专家与这些日益强大的数字助手之间的协作。
最终,这项工作提供了一种清晰、可衡量的评估方式,用于判断人工智能在现实世界中发现软件漏洞的能力。通过不再使用简单的“匹配已知答案”的测试,研究人员创建了一个更真实的模拟,模拟了安全专家实际的工作方式。结果显示,当前的模型可以发现多种类型的软件失效,但它们还无法发现所有的缺陷。随着基准测试包含更多挑战和更多类型的软件,它将成为追踪人工智能在网络安全领域进展的重要工具。目标不仅仅是构建能够通过测试的模型,而是开发能够可靠保护我们赖以生存的数字基础设施的系统,在他人利用这些裂缝之前就先一步发现它们。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。