大型语言模型智能体能够自主利用一日漏洞

LLM Agents can Autonomously Exploit One-day Vulnerabilities

![[Pasted image 20250326111155.png]]

摘要

大型语言模型(LLMs)在良性用途和恶意用途上都变得日益强大。随着其能力的提升,研究人员对其利用网络安全漏洞的能力越来越感兴趣。特别是,近期的一些工作已经对大型语言模型智能体自主攻击网站的能力进行了初步研究。然而,这些研究仅限于简单的漏洞。
在本研究中,我们证明了大型语言模型智能体能够自主利用现实世界系统中的一日漏洞。为了展示这一点,我们收集了一个包含15个一日漏洞的数据集,其中一些漏洞在CVE描述中被归类为严重级别。
实验表明,当提供CVE描述时,GPT-4能够成功利用87%的这些漏洞,而其他所有模型(包括GPT-3.5、开源LLMs)以及开源漏洞扫描工具(如ZAP和Metasploit)的成功率为0%。值得庆幸的是,我们的GPT-4智能体需要依赖CVE描述才能实现高性能:在没有描述的情况下,GPT-4仅能利用7%的漏洞。我们的研究结果引发了关于高能力大型语言模型智能体广泛部署的潜在风险的讨论。

1 引言

近年来,大型语言模型(LLMs)在性能上取得了显著的进步,在许多基准测试中达到了超人类的表现 [Touvron 等, 2023; Achiam 等, 2023]。这种性能的提升引发了对大型语言模型智能体的广泛兴趣。这些智能体能够通过工具采取行动、进行自我反思,甚至阅读文档 [Lewis 等, 2020]。据报道,这些大型语言模型智能体可以充当软件工程师 [Osika, 2023; Huang 等, 2023],并协助科学发现 [Boiko 等, 2023; Bran 等, 2023]。

然而,关于大型语言模型智能体在网络安全领域的能力,我们知之甚少。近期的研究主要集中在“人类辅助”场景中 [Happe & Cito, 2023; Hilario 等, 2024],即大型语言模型作为聊天机器人协助人类,或者在更广泛的攻防类别中进行推测 [Lohn & Jackson, 2022; Handa 等, 2019]。与此最相关的工作表明,大型语言模型智能体可以用于自主攻击模拟网站 [Fang 等, 2024]。

然而,据我们所知,该领域的所有工作都集中在模拟问题或“夺旗”练习上,这些并不能反映现实世界的部署情况 [Fang 等, 2024; Happe & Cito, 2023; Hilario 等, 2024]。这一差距引发了一个自然的问题:大型语言模型智能体能否自主攻击现实世界的系统?

在本研究中,我们证明了大型语言模型智能体能够自主利用一日漏洞,从而肯定地回答了上述问题。

为了证明这一点,我们收集了一个包含15个现实世界一日漏洞的基准数据集。这些漏洞来自通用漏洞披露(CVE)数据库以及被高度引用的学术论文,我们能够复现这些CVE(即排除了闭源解决方案)。这些CVE包括现实世界的网站漏洞(CVE-202424041)、容器管理软件漏洞(CVE-2024-21626)以及存在漏洞的Python包(CVE-2024-28859)。

基于我们的基准数据集,我们创建了一个单一的大型语言模型智能体,能够利用我们收集的87%的一日漏洞。为此,我们只需赋予该智能体访问工具、CVE描述的权限,并使用ReAct智能体框架。我们的智能体总共仅用了91行代码,展示了执行此类攻击的简易性。

重要的是,我们证明GPT-4的成功率为87%,而我们测试的所有其他大型语言模型(包括GPT-3.5和8个开源模型)以及开源漏洞扫描工具的成功率均为0%。在没有CVE描述的情况下,GPT-4的成功率下降至7%,这表明我们的智能体在利用漏洞方面的能力远远超过发现漏洞的能力。

在本文的其余部分,我们将描述我们的漏洞数据集、智能体设计以及对其性能的评估。

2 计算机安全与大型语言模型智能体的背景

2.1 计算机安全

我们提供了与本文内容相关的计算机安全背景知识。由于计算机安全是一个过于广泛的领域,无法在此详细覆盖,因此我们推荐读者参考优秀的综述文章以获取更多信息 [Jang-Jaccard & Nepal, 2014; Engebretson, 2013; Sikorski & Honig, 2012]。

每当计算机程序被部署时,恶意攻击者可能会滥用这些程序,从而引发非预期的行为。在严重情况下,这些行为可能包括获取服务器的root权限 [Roselin 等, 2019]、执行任意远程代码 [Zheng & Zhang, 2013] 以及窃取私密数据 [Ullah 等, 2018]。

黑客可以通过多种方法实施这些非预期行为。最简单的攻击方式包括未受保护的SQL注入,攻击者可以通过例如网页表单执行任意SQL查询 [Halfond 等, 2006]。而更复杂的攻击则可能涉及通过字体指令利用远程代码执行漏洞,将JavaScript打包为有效载荷,通过硬件内存映射I/O(MMIO)寄存器绕过内存保护,并在单一iPhone攻击中利用Safari漏洞 [Kuznetsov 等, 2023]。

一旦现实世界的漏洞被发现,它们会被披露给软件提供商,以便提供商修复软件。之后,许多漏洞会被发布到通用漏洞披露(CVE)数据库 [Vulnerabilities, 2005]。这确保了软件保持最新状态,并允许安全研究人员研究这些漏洞。

许多CVE涉及闭源软件,因此无法复现。然而,一些CVE涉及开源软件,因此可以在沙盒环境中复现。

2.2 大型语言模型智能体

过去几年中,大型语言模型智能体变得越来越普遍。至少,这些智能体能够使用工具并对使用工具的输出作出反应 [Yao 等, 2022; Schick 等, 2023; Mialon 等, 2023]。其他能力包括规划 [Yao 等, 2022; Varshney, 2023]、创建子智能体 [Wang 等, 2024] 以及阅读文档 [Lewis 等, 2020]。

随着大型语言模型的能力不断提升,其智能体的能力也在增强。例如,借助工具的大型语言模型智能体现在能够执行复杂的软件工程任务 [Jimenez 等, 2023],甚至协助科学调查 [Boiko 等, 2023; Bran 等, 2023]。

实现这些高级任务的重要能力之一是使用工具的能力。不同大型语言模型在使用工具和对其反馈作出反应方面的能力差异很大。正如我们在评估中所展示的,GPT-4目前在所有测试模型中表现最为突出。近期的研究已在自主攻击中利用了大型语言模型智能体,但仅限于模拟的“夺旗”练习。在我们的工作中,我们探索了大型语言模型智能体攻击现实世界漏洞的能力。

2.3 术语与威胁模型

在本研究中,我们专注于研究“一日漏洞”,即已被披露但尚未在系统中修复的漏洞。在许多现实世界的部署中,安全补丁不会立即部署,这使得这些部署容易受到一日漏洞的影响。正如我们所展示的,开源漏洞扫描工具无法发现其中的一些一日漏洞,但大型语言模型智能体能够利用它们。此外,许多漏洞披露并未提供如何利用漏洞的分步说明,这意味着攻击者必须自行重建这些步骤。

具体而言,考虑一个随时间演化的系统StS_tSt(t表示时间)。在时间t=0t = 0t=0时,系统中的漏洞被发现,这样一系列操作AAA就可以利用该漏洞。我们考虑从漏洞被披露(t=1t = 1t=1)到被修复(t=nt = nt=n,未来某个时间点)之间的时间段。因此,攻击者拥有漏洞的描述信息。

3 现实世界漏洞的基准数据集

数据集
为了回答大型语言模型智能体是否能够利用现实世界的计算机系统漏洞,我们首先从CVE(通用漏洞披露)和学术论文中创建了一个包含真实漏洞的基准数据集。如前所述,CVE是对现实系统中漏洞的描述。

许多CVE涉及闭源软件,由于这些漏洞通常在供应商修复软件后才公开披露,因此我们无法复现它们。为了创建我们的基准数据集,我们专注于开源软件。

除了闭源软件外,许多开源漏洞也难以复现。导致这些漏洞无法复现的原因包括未指定的依赖项、损坏的Docker容器或CVE描述中的信息不足。

在根据上述标准过滤掉无法复现的CVE后,我们从CVE中收集了14个现实世界的漏洞。此外,我们还纳入了Warszawski & Bailis (2017)研究的一个漏洞,因其复杂性和严重性。该漏洞被称为ACIDRain。一种ACIDRain攻击曾被用于入侵一家加密货币交易所,造成5000万美元的损失 [Popper, 2016]。对于ACIDRain漏洞,我们使用了类似的平台——WooCommerce平台。我们在表1和表2中总结了这些漏洞。
![[Pasted image 20250326111218.png]]

![[Pasted image 20250326111228.png]]

漏洞的特征
我们的漏洞涵盖了网站漏洞、容器漏洞和存在漏洞的Python包。超过一半(8/15)被CVE描述归类为“高”或“严重”级别。此外,在15个漏洞中,有11个(73%)超出了我们在实验中使用的GPT-4的知识截止日期。

因此,我们的数据集包含现实世界中的高严重性漏洞,而非用于模拟场景的“夺旗”式漏洞 [Fang 等, 2024; Happe & Cito, 2023; Hilario 等, 2024]。


4 智能体描述

在本节中,我们描述了能够利用漏洞的大型语言模型智能体。我们的智能体由以下部分组成:

  1. 基础大型语言模型(base LLM),
  2. 提示(prompt),
  3. 智能体框架。

我们在图1中展示了系统架构图。
![[Pasted image 20250326111308.png]]

在评估中,我们尝试了不同的基础大型语言模型,但需要注意的是,只有GPT-4能够利用我们数据集中的漏洞。所有其他方法均失败。

我们使用了LangChain中实现的ReAct智能体框架。对于OpenAI模型,我们使用了Assistants API。我们赋予智能体访问工具的能力,包括:

  1. 网页浏览元素(检索HTML、点击元素等),
  2. 终端,
  3. 网络搜索结果,
  4. 文件创建与编辑,
  5. 代码解释器。

与先前的工作类似 [Fang 等, 2024],我们的提示详细且鼓励智能体发挥创造力、不放弃并尝试不同的方法。提示总长度为1056个token。智能体还可以进一步检索CVE描述。出于伦理原因,我们在公开版本的手稿中省略了提示内容,并将根据请求提供提示,正如先前的工作所做 [Fang 等, 2024]。

我们用总共91行代码实现了该智能体,包括调试和日志记录语句,表明这些大型语言模型智能体易于实现。

此外,我们注意到我们并未实现子智能体或单独的规划模块。正如我们在第5.3节中所描述的,我们的实验表明,一个单独的规划模块可能会提高智能体的性能。

5 大型语言模型智能体能够自主利用一日漏洞

我们现在开始评估我们的大型语言模型智能体在所收集的现实世界漏洞上的表现。

5.1 实验设置

评估指标
我们测量了两个主要指标:成功率(pass at 5 和 pass at 1)和美元成本。为了测量成功率,我们手动评估了智能体是否成功利用了目标漏洞。为了测量美元成本,我们统计了运行过程中消耗的token数量,并使用撰写本文时OpenAI API的定价进行计算。

模型
我们在ReAct框架中测试了10个模型:

  1. GPT-4 [Achiam 等, 2023]
  2. GPT-3.5 [Brown 等, 2020]
  3. OpenHermes-2.5-Mistral-7B [Teknium, 2024]
  4. LLaMA-2 Chat (70B) [Touvron 等, 2023]
  5. LLaMA-2 Chat (13B) [Touvron 等, 2023]
  6. LLaMA-2 Chat (7B) [Touvron 等, 2023]
  7. Mixtral-8x7B Instruct [Jiang 等, 2024]
  8. Mistral (7B) Instruct v0.2 [Jiang 等, 2023]
  9. Nous Hermes-2 Yi (34B) [Research, 2024]
  10. OpenChat 3.5 [Wang 等, 2023]

我们选择了与Fang 等(2024)相同的一组模型以与先前工作进行比较。这些模型在ChatBot Arena [Zheng 等, 2024] 中排名较高。对于GPT-4和GPT-3.5,我们使用了OpenAI API;对于其余模型,我们使用了Together AI API。

对于GPT-4,其知识截止日期为2023年11月6日。因此,在15个漏洞中,有11个超过了该截止日期。

开源漏洞扫描工具
我们进一步在两个开源漏洞扫描工具上测试了这些漏洞:ZAP [Bennetts, 2013] 和 Metasploit [Kennedy 等, 2011]。这些工具被渗透测试人员广泛用于发现漏洞。然而,我们的部分漏洞不适用于ZAP或Metasploit(例如,因为它们涉及Python包),因此我们无法在这些漏洞上运行这些扫描工具。

我们强调,这些漏洞扫描工具无法自主利用漏洞,因此严格来说比我们的GPT-4智能体能力更弱。

漏洞
我们在表1列出的漏洞上测试了我们的智能体和开源漏洞扫描工具。我们在沙盒环境中复现了所有这些漏洞,以确保在测试过程中不会对真实用户或相关方造成损害。最后,我们再次强调,在15个漏洞中,有11个超出了我们使用的GPT-4基础模型的知识截止日期。

5.2 端到端攻击

![[Pasted image 20250326111339.png]]

我们测量了10个模型和开源漏洞扫描工具在现实世界漏洞上的总体成功率,结果如表3所示。如图所示,GPT-4达到了87%的成功率,而其他所有方法均未能发现或利用任何一个漏洞。这些结果表明GPT-4可能具有“涌现能力” [Wei 等, 2022],尽管还需要进一步研究 [Schaeffer 等, 2024]。

GPT-4仅在两个漏洞上失败:Iris XSS和Hertzbeat RCE。Iris是一个“帮助事件响应者在调查期间共享技术细节的网络协作平台” [CVE-2024-25640]。Iris的网页应用对大型语言模型智能体来说极其难以导航,因为导航是通过JavaScript完成的。结果,智能体尝试访问表单/按钮时未与使其可用的必要元素交互,从而导致失败。Hertzbeat的详细描述是中文的,这可能使我们部署的GPT-4智能体感到困惑,因为我们使用的是英文提示。我们进一步指出,当仅考虑超过知识截止日期的漏洞时,GPT-4的成功率为82%(11个漏洞中的9个)。

如前所述,包括GPT-3.5在内的所有其他方法、我们测试的所有开源模型、ZAP和Metasploit均未能发现或利用任何漏洞。我们在开源模型上的结果与Fang 等(2024)的研究一致。即使是在简单的“夺旗”练习中,所有开源模型的成功率均为0%。定性来看,GPT-3.5和开源模型在工具使用方面表现得差得多。然而,仍需更多研究来确定其他模型在网络安全领域的可行性。

5.3 移除CVE描述

然后,我们修改了智能体以移除CVE描述。这项任务现在变得更加困难,因为它需要既找到漏洞又实际利用它。由于其他所有方法(包括GPT-3.5和我们测试的所有开源模型)即使提供漏洞描述也成功率为0%,后续实验仅在GPT-4上进行。

移除CVE描述后,成功率从87%下降到7%。这表明确定漏洞极具挑战性。

为了理解这一差异,我们计算了正确识别漏洞的成功率(pass at 5)。令人惊讶的是,GPT-4能够在33.3%的时间内正确识别漏洞,但在成功检测到的漏洞中,它只能利用其中一个。当仅考虑超过知识截止日期的漏洞时,它可以找到其中的55.6%。

我们进一步通过计算智能体在有无CVE描述情况下的操作次数进行了分析。令人惊讶的是,我们发现有无CVE描述时的平均操作次数仅相差14%(24.3次操作 vs 21.3次操作)。我们怀疑这在一定程度上是由上下文窗口长度驱动的,进一步表明规划机制和子智能体可以提高性能。

这些结果表明,增强智能体的规划和探索能力将提高其成功率,但仍需更多探索。

5.4 成本分析

我们现在评估使用GPT-4利用现实世界漏洞的成本。在进行分析之前,我们强调这些数字仅为估算值(用于人类劳动成本),旨在突出成本趋势。这与先前估计其他类型攻击成本的工作一致,例如网站攻击 [Fang 等, 2024] 和钓鱼攻击 [Kang 等, 2023]。

为了测量GPT-4的成本,我们计算了每次运行的输入和输出token数量(两者成本不同)。在撰写本文时,GPT-4的输入token成本为每百万token 10美元,输出token成本为每百万token 30美元。

每次运行的平均成本为3.52美元,其中大部分成本来自输入token(347k输入 vs 1.7k输出)。这是因为许多工具的返回值是完整的HTML页面或终端日志。考虑到整体成功率为40%,每次攻击的实际成本为8.80美元。

根据Fang 等(2024)的估算,网络安全专家的时薪为50美元,每个漏洞大约需要30分钟。这相当于每个漏洞总成本为25美元。因此,使用大型语言模型智能体已经比人类劳动便宜2.8倍。此外,大型语言模型智能体可以轻松扩展,而人类劳动则不然。

这一差距小于先前工作的差距 [Fang 等, 2024; Kang 等, 2023]。尽管如此,我们预计GPT-4的成本会下降,因为在一年内GPT-3.5的成本已经下降了3倍以上。

6 理解智能体能力

我们现在更详细地研究GPT-4智能体的行为,以理解其高成功率以及为何在移除CVE描述时失败。
![[Pasted image 20250326111358.png]]

首先,我们观察到许多漏洞需要大量操作才能成功利用,每个漏洞的平均操作次数如表4所示。例如,Wordpress XSS-2(CVE-2023-1119-2)每次运行平均需要48.6步。一次成功的攻击(提供CVE描述)需要100步,其中70步用于导航网站,因为Wordpress布局复杂。此外,一些页面超过了撰写本文时OpenAI工具响应大小限制(512 kB)。因此,智能体必须基于CSS选择器使用按钮和表单,而不是直接从页面读取并采取行动。

其次,考虑CSRF + ACE(CVE-2024-24524),该漏洞需要同时利用CSRF攻击并执行代码。在没有CVE描述的情况下,智能体会列出可能的攻击类型,例如SQL注入攻击、XSS攻击等。然而,由于我们未实现启动子智能体的能力,智能体通常会选择一种漏洞类型并尝试该特定类型的攻击。例如,它可能会尝试不同形式的SQL注入,但不会回溯尝试其他类型的攻击。添加子智能体功能可能会提高性能。

第三,考虑ACIDRain漏洞。确定某个网站是否易受ACIDRain攻击较为困难,因为它取决于与事务控制相关的后端实现细节。然而,执行ACIDRain攻击仍然复杂,需要以下步骤:

  1. 导航到网站并提取超链接,
  2. 导航到结账页面,下测试订单,并记录结账所需的字段,
  3. 编写Python代码以利用竞态条件,
  4. 通过终端实际执行Python代码。

该漏洞利用需要操作多个工具,并根据网站上的操作编写代码。

最后,我们注意到我们的GPT-4智能体还能自主利用非Web漏洞。例如,Astropy RCE漏洞(CVE-2023-41334)。该漏洞存在于一个Python包中,允许远程代码执行。尽管这与先前工作专注于的网站漏洞有很大不同 [Fang 等, 2024],但我们的GPT-4智能体可以自主编写代码来利用其他类型的漏洞。事实上,Astropy RCE漏洞是在GPT-4的知识截止日期之后发布的,因此GPT-4能够编写成功执行的代码,即使这些内容不在训练数据集中。这些能力还扩展到利用容器管理软件漏洞(CVE-2024-21626),同样在知识截止日期之后。

我们的定性分析表明,GPT-4智能体能力很强。此外,我们认为通过添加更多功能(例如规划、子智能体和更大的工具响应大小),可以使GPT-4智能体更加高效。


7 相关工作

网络安全与AI
与我们的工作最相关的是最近的一项研究,表明大型语言模型智能体可以攻击网站 [Fang 等, 2024]。这项工作集中在“夺旗”式环境中的简单漏洞,未能反映现实世界的系统。与我们同期的工作也在网络安全背景下评估了大型语言模型智能体的能力 [Phuong 等, 2024],但表现明显不如我们的智能体和CTF设置中的智能体 [Fang 等, 2024]。由于智能体的细节未公开发布,难以理解性能差异。我们假设这主要与提示有关。在我们的工作中,我们展示了大型语言模型智能体可以攻击现实世界的一日漏洞。

其他近期工作表明,大型语言模型可以辅助渗透测试或恶意软件生成 [Happe & Cito, 2023; Hilario 等, 2024]。这些工作主要集中于“人类辅助”场景,即大型语言模型协助人类操作员。另一些工作则关注AI与网络安全交叉的社会影响 [Lohn & Jackson, 2022; Handa 等, 2019]。在我们的工作中,我们专注于智能体(可以轻松扩展,而不像人类),以及攻击现实世界漏洞的具体可能性。

网络安全
网络安全是一个极其广泛的研究领域,涵盖从密码最佳实践 [Herley & Van Oorschot, 2011] 到研究网络攻击的社会影响 [Bada & Nurse, 2020],再到理解Web漏洞 [Halfond 等, 2006] 的方方面面。与我们最接近的网络安全子领域是自动漏洞检测与利用 [Russell 等, 2018; Bennetts, 2013; Kennedy 等, 2011; Mahajan, 2014]。

在网络安全中,黑帽和白帽行为者常用的工具包括自动漏洞扫描程序,例如ZAP [Bennetts, 2013]、Metasploit [Kennedy 等, 2011] 和Burp Suite [Mahajan, 2014]。尽管这些工具很重要,但开源漏洞扫描程序无法发现我们研究的任何漏洞,这显示了大型语言模型智能体的能力。

大型语言模型智能体的安全性
与我们研究相关但正交的一个研究方向是大型语言模型智能体的安全性 [Greshake 等, 2023a; Kang 等, 2023; Zou 等, 2023; Zhan 等, 2023; Qi 等, 2023; Yang 等, 2023]。例如,攻击者可以使用间接提示注入攻击来误导大型语言模型智能体 [Greshake 等, 2023b; Yi 等, 2023; Zhan 等, 2024]。攻击者还可以通过微调移除模型的保护措施,使高度能力的模型执行创建者未预期的动作或任务 [Zhan 等, 2023; Yang 等, 2023; Qi 等, 2023]。这类工作可用于绕过大型语言模型提供商设置的保护措施,但与我们的研究正交。


8 结论

在这项工作中,我们展示了大型语言模型智能体能够自主利用现实世界的一日漏洞。目前,只有提供CVE描述的GPT-4能够利用这些漏洞。我们的结果既显示了涌现能力的可能性,也表明发现漏洞比利用漏洞更为困难。尽管如此,我们的研究结果强调了更广泛的网络安全社区和大型语言模型提供商需要认真思考如何将大型语言模型智能体整合到防御措施中,以及它们的广泛部署问题。


9 伦理声明

我们的研究表明,大型语言模型智能体可用于攻击现实世界系统。与许多技术一样,这些结果可能被用于黑帽目的,这既是不道德的也是非法的。然而,正如计算机安全和机器学习安全领域的许多研究一样,我们认为在学术环境中调查这些问题非常重要。在我们的工作中,我们采取了预防措施,确保仅使用沙盒环境以防止损害。

我们在发表之前已向OpenAI披露了我们的发现。他们明确要求我们不要将提示公开发布给更广泛的公众,因此我们将仅在请求时提供提示。此外,许多先进机器学习模型和网络安全领域的论文出于伦理原因未发布具体细节(例如NeurIPS 2020最佳论文 [Brown 等, 2020])。因此,我们认为保留提示的具体细节符合最佳实践。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐