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

ops/2024/10/20 7:16:58/

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/ops/5652.html

相关文章

GPT的使用

个人笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客 网站sms-activate.or…

华为海思数字芯片设计笔试第八套

声明 下面的题目作答都是自己认为正确的答案,并非官方答案,如果有不同的意见,可以评论区交流。 这些题目也是笔者从各个地方收集的,感觉有些题目答案并不正确,所以在个别题目会给出自己的见解,欢迎大家讨论…

goland2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Goland 是一款由 JetBrains 公司开发的集成开发环境(IDE),专门用于 Go 语言的开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和管理 Go 语言项目。 功能特点&#x…

自动化运维(三十一)Ansible之 YAML 详细介绍

YAML(YAML Aint Markup Language)是一种便于人类阅读的数据序列化标准,常用于配置文件、数据交换等场景。它以其简洁和易于理解的语法而受到开发者的青睐。YAML 设计的目标是易于人类阅读和支持各种编程语言的数据结构。 一、YAML 基础 1. …

leetcode724-Find Pivot Index

题目 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这…

JS打包工具 Vite

Vite是 JS 新一代的打包的工具,它所解决的问题,是前端打包慢的问题,随着前端应用复杂度越来越大,项目文件越来越多,通常项目中都是使用 Webpack 进行打包,Webpack是个静态的打包工具,每次改动都…

【C语言】指针详解(五)

目录 1.字符指针 1.1常量字符串 2.指针数组 3.数组指针 1.字符指针 字符指针就是指向字符的指针,字符指针可以存储字符变量的地址。 举例如下: 定义指针变量pa存a的地址,改变*pa的值,a也会随之改变 。 1.1常量字符串 &#x1f…

OpenHarmony轻量系统开发【4】编写第一个程序、启动流程分析

摘要:本文简单介绍如何编写第一个hello world程序,以及程序是被执行的 适合群体:适用于Hi3861开发板,启动流程分析 4.1编写第一个程序 编写一个hello world程序比较简单,可以参考官网: https://gitee.c…