『 论文解读 』大语言模型(LLM)代理能够自主地利用1 day漏洞,利用成功率竟高达87%,单次利用成本仅8.8美元

server/2024/10/20 7:16:05/

1. 概览

该论文主要展示了大语言模型LLM代理能够自主利用现实世界的 1 day 漏洞。研究我发现, GPT-4 在提供了CVE描述的情况下,能够成功利用 87% 的漏洞。 这与其他测试模型(如 GPT-3.5 和其他开源 LLM )以及开源漏洞扫描器(如 OWASP ZAP、Metasploit)的 0% 成功率形成鲜明对比。这一发现引发了关于高能力 LLM 代理广泛部署的问题和讨论。

2. 技术方案

2.1. 技术背景

2.1.1. 什么是LLM 代理

近年来,随着 LLM 的发展,LLM 代理变得起来越普遍。LLM 代理是指能够执行特定任务的系统,它们利用 LLM 的语言理解和生成能力来与用户交互、操作工具、反应工具输出以及执行复杂的任务。这些代理 可以通过工具执行动作,如使用终端、编辑文件或执行代码,并能够根据这些工具的输出做出反应

LLM 代理的能力随着 LLM 的进步而增强。例如,工具辅助的 LLM 代理现在能够执行复杂的软件工程任务,并协助科学研究。这些代理的一个重要能力是使用工具,不同的 LLM 代理 在使用工具和响应反馈方面的能力差异较大

2.1.2. 什么是 1 day 漏洞

论文研发的重点是 1 day 漏洞,这些是已经被披露但在系统中尚未修复的漏洞。在许多真实世界的部署中,安全补丁并不会立即部署,这使得这些部署容易受到 1 day 漏洞的攻击。研究表明,尽管开源漏洞扫描器无法发现某些 1 day 漏洞,但 LLM 代理能够利用它们。此外,许多漏洞披露并不提供如何利用漏洞的逐步指导,这意味着攻击者必须自己构建利用步骤。

2.2. 漏洞自主利用步骤

该技术方案包括以下几个关键部分:

  1. 数据采集:研究团队收集了15个现实世界中的 1 day漏洞,这些漏洞主要来自于在 CVE 描述中被归类为严重的漏洞。

  2. LLM代理:创建了一个能够利用这些 1 day 漏洞的LLM代理。代理使用了 reAct 代理 框架,并且只需要 91 行代码即可实现。
    在这里插入图片描述

  3. 工具访问:代理可以访问网络浏览元素、终端、网络搜索结果、文件创建和编辑以及代码解释器等工具。

  4. 提示:使用了详细的提示来指导代理进行创造性的尝试和不同的方法。提示总共包含了 1056 个 token。

若要了解更多技术细节,可参阅论文原文:LLM Agents can Autonomously Exploit One-day Vulnerabilities.pdf (访问密码: 6277)

在这里插入图片描述

3. 实验结果

实验结果显示:

  1. 成功率:GPT-4 在没有 CVE 描述的情况下,成功率为 87%。而在没有 CVE 描述的情况下,成功率骤降至 7%,表明发现漏洞比利用漏洞更具有挑战性。

  2. 模型比较:GPT-4 是唯一能够成功利用 1 day 漏洞的模型。其他所有模型,包括 GPT-3.5 和所有测试的开源模型,都未能成功利用任何漏洞。在这里插入图片描述

  3. 成本分析:使用 GPT-4 进行漏洞利用的平均成本为每次运行 3.52 美元,平均成功率为40%,这意味着每次成功利用的成功约为 8.8 美元。与雇佣网络安全专家相比,使用 LLM 代理的成本更低,且易于扩展。

这些实验结果不仅展示了 GPT-4 的强大能力,也突显了在没有详细漏洞描述的情况下,即使是最先进的模型也会面临挑战。此外,这些发现强调了在部署高能力 LLM 代理时需要考虑的安全性问题。

4. 未来研究方向(部分)

  • 增强规划和探索能力:研究表明,增强 LLM 代理的规划和探索能力可提高成功利用漏洞的能力。未来工作可能会集中在开发更高级的规划算法和探索机制,以提高在没有 CVE 描述时发现和利用漏洞的能力。
  • 模型鲁棒性:研究如何提高 LLM 代理在面对未知或 0 day 漏洞时的鲁棒性和适应性。
  • 跨模型能力研究:研究不同 LLM 模型之间在网络安全任务上的性能差异,以及如何结合多个模型的优势来提高整体性能

5. 参考

Richard Fang, Rohan Bindu, Akul Gupta, Daniel Kang:LLM Agents can Autonomously Exploit One-day Vulnerabilities.pdf

5.1. 扩展阅读

  • 「 网络安全常用术语解读 」通用漏洞披露CVE详解
  • AIGC时代企业与个人应该如何应对?

在这里插入图片描述


http://www.ppmy.cn/server/7714.html

相关文章

Spark---RDD的创建分类和基础操作算子详解

一、RDD的创建 原生api提供了两种创建方式,一种就是读取文件textFile,还有一种就是加载一个scala集合parallelize。当然,也可以通过transformation算子来创建的RDD。 //创建RDD//加载数据,textFile(参数1,…

朗思-我的家园正式上线:朗思科技Agent工具软件--人人拥有“Ai-机器人”

4月16日,朗思科技正式发布"朗思-我的家园"。朗思科技是国内领先的Ai Agent智能自动化工具软件产品及方案的提供商,始终坚持自主研发,全面支持国产信创,不断加快产品创新迭代。基于技术领先性和战略前瞻性,其…

基于STM32的智能小车

一、硬件清单 1、主控STM32F103C8T6 2、L9110S电机模块 3、超声波模块 4、sg90舵机模块 5、oled屏 6、测速模块 7、红外模块 8、esp8266模块(wifi模块) 9、语音模块 10、循迹模块 二、功能实现 左右转与前进后退:通过控制左组轮和右组轮的配…

svn使用(上传自己的项目到svn上)

安卓开发工具版本 创建项目后,首先在.gitgnore文件里面加入你要过滤的文件路径 然后点击VCS——》share Project,然后下一步选择一个svn路径,点击确定后。然后将代码提交。

微信小程序小游戏开发,微信开发者工具提示该目录下的项目(wxapp2)已在工具中创建,怎么办

微信小程序小游戏开发,微信开发者工具提示该目录下的项目(wxapp2)已在工具中创建,怎么办 情况描述, 导入一个项目的时候,导入成了小游戏项目了 想换成小游戏项目,变不了了,提示 “…

开发语言漫谈-SQL

SQL是另一个门类的开发语言,是专用于结构化数据库操作的专用语言。SQL不可能单独开发系统,但是做数据库方面的系统不懂SQL也不行。市面上很大部分开发岗位(后台)都是要和数据库打交道的,所以SQL必须掌握。 好消息是&am…

Rust基本数据类型-切片

一、切片是什么,怎么用 1、切片是什么 切片并不是 Rust 独有的概念,在 Go 语言中就非常流行,它允许你引用集合中部分连续的元素序列,而不是引用整个集合。 对于字符串而言,切片就是对 String 类型中某一部分的引用&…

0 回归-海上风电出力预测

https://www.dcic-china.com/competitions/10098 分析一下:特征工程如何做。 时间特征: 小时、分钟、一个星期中的第几天、一个月中的第几天。这些可以作为周期特征的标识。比如周六周日的人流会有很大的波动,这些如果不告诉模型它是很难学习…