Google 的 Project Zero 团队开发了一个框架,使大型语言模型 (LLM) 能够自主执行基本的漏洞研究。最近的一篇博客文章解释了“Project Naptime”框架是如何建立在 Meta 的研究基础上的,该研究为 LLM 发现和利用内存漏洞(即高级内存损坏和缓冲区溢出缺陷)的能力设定了基准。该项目旨在解决 LLM 在评估安全漏洞方面的根本缺陷。在 Meta 的实验(称为“CyberSecEval 2”)中,LLM 在执行基本漏洞发现方面得分较低,没有一个接近“通过”基准测试。然而,谷歌的 Project Zero 研究人员发现,Naptime 框架将 LLM 在 CyberSecEval 2 测试中的性能提高了 20 倍。该框架的命名理念是,LLM 有朝一日可能会允许安全研究人员在自动化过程中“定期小睡”。Naptime 项目让LLM能够使用工具来模拟人类的工作流程Project Zero 设计的 Naptime 架构包括一个由调试器、代码浏览器、Python 工具和报告工具组成的工具集,可增强 LLM 评估代码、利用漏洞和自主验证成功利用的能力。例如,代码浏览器使 LLM 能够导航目标程序的源代码,类似于人类研究人员使用 Chromium Code Search 之类的工具来更好地识别引用函数或变量的位置。Python 工具使 LLM 能够在沙箱中运行 Python 脚本,以便执行精确的计算并生成复杂的文本输入并利用该目标程序。调试器使 LLM 能够更好地观察、记录和理解目标程序响应不同输入的行为,而报告器则为 LLM 提供了一种机制,可以将其进度发送给控制器,从而验证是否已达到成功条件(例如崩溃)。Naptime 框架还旨在让法学硕士能够更像人类研究人员一样工作,使其能够更灵活地使用“推理”过程。例如,该框架鼓励法学硕士对其决策做出长篇解释,事实证明这可以提高准确性。GPT 4 Turbo、Gemini 1.5 Pro 在基础漏洞研究方面表现出色Project Zero 公布的 Naptime 测试结果显示,GPT 4 Turbo 在 CyberSecEval 2 缓冲区溢出测试中表现最佳,该测试需要利用缓冲区溢出漏洞来触发程序“正常”执行之外的程序输出,而 Gemini 1.5 Pro 在高级内存损坏测试中得分最高,在该测试中触发程序崩溃表示成功。在缓冲区溢出测试中,GPT 4 Turbo 是唯一获得 1.00“及格”分数的 LLM,而 Gemini 1.5 Pro 在 20 次测试中以 0.99 的分数紧随其后。在高级内存损坏测试中,研究人员发现,通过发现并利用目标程序中单独的意外、易于利用的漏洞,LLM 取得了出乎意料的高成功率,其中 GPT 4 Turbo 取得了最佳效果。然而,当这个意外的缺陷被消除,只留下原来的目标漏洞时,Gemini 1.5 Pro 在 20 次测试后以 0.58 的得分名列前茅。测试的其他型号是 GPT 3.5 Turbo 和 Gemini 1.5 Flash,在缓冲区溢出测试中最高得分分别为 0.21 和 0.26,在高级内存损坏测试中最高得分分别为 0.56 和 0.53。研究人员写道:“如果具备正确的工具,目前的法学硕士真的可以开始进行(确实相当基础的)漏洞研究!”然而,Project Zero 团队承认,LLM 还远未实现在现实生活中的漏洞研究场景中自主协助研究人员的能力,因为这比 CyberSecEval 2 的基准测试涉及更大的模糊性和复杂性。作者总结道:“解决这些挑战更接近于作为手动审查工作流程的一部分执行的针对特定领域的模糊测试的典型用法,而不是完全自主的研究人员。”“更重要的是,我们认为,在专家依赖推理、假设形成和验证的多个迭代步骤的任务中,我们需要为模型提供相同的灵活性;否则,结果无法反映模型的真实能力水平。”