[论文阅读]Large Language Model guided Protocol Fuzzing

Large Language Model guided Protocol Fuzzing

Proceedings 2024 Network and Distributed System Security Symposium

https://www.ndss-symposium.org/wp-content/uploads/2024-556-paper.pdf

由于我并不了解这方面,只进行一个简单的描述

整个文章就是针对用自然语言书写的互联网协议规范RFC,使用LLM协助自动化测试协议中的漏洞。

LLMPF方案:利用LLM指导的协议模糊测试,包括语法引导突变、丰富初始种子和跨越覆盖瓶颈三种策略。

整个文章看下来,对我有用的东西几乎没有,因为在我看来这篇文章就是借助LLM强大的文本生成、阅读理解和上下文提示学习的强大能力,给出一些上下文例子让LLM生成针对协议的测试语料然后投入使用,验证各种指标。

甚至说这篇文章和LLM关联不大,还是在处理协议漏洞的事情,LLM的作用就是一个辅助。

在没有机器可读的协议规范的情况下,如何发现协议实现中的安全漏洞?面对互联网,协议实现是特别安全关键的软件系统,其中输入必须遵循特定  的结构和顺序,这些结构和顺序通常是用自然语言写成的数百页的 RFC 文档非正式地指定。如果没有该协议的一些机器可读版本,就很难自动为其具体实现生  成遵循所需结构和顺序的有效测试输入。在一组作为输入种子的消息序列上进行  基于变异的模糊测试,可以部分缓解这一挑战。然而,可用的种子集通常是相当  有限的,并且很难涵盖协议状态和输入结构的巨大多样性。

开发了一个 LLM 指导的协议实现模糊测试引擎。我们的协议模糊器 CHATAFL 为协议  中的每种消息类型构建语法,然后通过与 LLM 的交互改变消息或预测消息序列中的下一条消息。在 PROFUZZBENCH 广泛的现实世界使用的协议上进行的实  验显示,CHATAFL 在状态和代码覆盖方面具有显著的功效。我们的 LLM 指导  的状态模糊器与最先进的 AFLNET 和 NSFUZZ 模糊器进行了比较。CHATAFL  分别多覆盖 47.60%和 42.69%的状态转换,29.55%和 25.75%的状态,5.81%和 6.74%  的代码。除了增强的覆盖范围外,CHATAFL 在广泛使用和经过广泛测试的协议  实现中发现了 9 个不同且以前未知的漏洞,而 AFLNET 和 NSFUZZ 分别只发现 了 3 个和 4 个漏洞。

 贡献

  1. 我们为协议实现构建了一个大语言模型(LLM)引导的模糊测试引擎,以  克服现有协议模糊器遇到的挑战。为了更深入地覆盖这些协议的行为,  需要实时状态推断——这是通过询问 LLM(如 ChatGPT)关于给定协议的  状态机和输入结构来完成的。  
  2.  我们提出了将 LLM 集成到基于突变的协议模糊器中的三种策略,每种  策略都明确地解决了协议模糊测试遇到的挑战。我们开发了一种扩展的  灰盒模糊测试算法,并将其作为原型 CHATAFL 实现。该工具可在  https://github.com/ChatAFLndss/ChatAFL 上公开获取。
  3. 我们进行了实验,证明我们的由 LLM 指导的状态模糊器原型 CHATAFL  在协议状态空间和协议实现代码的覆盖方面比最先进的 AFLNET 和  NSFUZZ 有效得多。除了增强的覆盖范围外,CHATAFL 还在广泛使用  的协议实现中发现了 9 个以前未知的漏洞,其中大多数是 AFLNET 和  NSFUZZ 无法发现的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458900.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WRF数据准备】基于GEE下载静态地理数据-叶面积指数LAI及绿色植被率Fpar

【WRF数据准备】基于GEE下载静态地理数据 准备:WRF所需静态地理数据(Static geographical data)数据范围说明基于GEE下载叶面积指数及绿色植被率GEE数据集介绍数据下载:LAI(叶面积指数)和Fpar(绿色植被率)数据处理:基于Python处理为单波段LAI数据参考GEE的介绍可参见另…

VantUI

官网:Vant 4 - A lightweight, customizable Vue UI library for mobile web apps. Vant组件库: 基础组件 按钮、图标、布局、提示信息等 表单组件 日历、复选框、时间选择、输入框、评分等 反馈组件 弹出框、加载、下拉菜单、消息提示、下拉刷新、滚动…

面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生

测试员可以先在大厂镀金,以后去中小厂毫无压力,基本不会被卡,事实果真如此吗?但是在我身上却是给了我很大一巴掌... 所谓大厂镀金只是不卡简历而已,如果面试答得稀烂,人家根本不会要你。况且要不是大厂出来…

C#入坑JAVA MyBatis入门 CURD 批量 联表分页查询

本文,分享 MyBatis 各种常用操作,不限于链表查询、分页查询等等。 1. 分页查询 在 下文的 的「3.4 selectPage」小节,我们使用 MyBatis Plus 实现了分页查询。除了这种方式,我们也可以使用 XML 实现分页查询。 这里&#xff0c…

1-petalinux2018.3 摸索记录 -petalinux-config

一、petalinux-config的具体配置-ZYNQMP Configuration 1、Linux Compoment Selection Linux Compoment Selection,Linux组件选择. First Stage Bootloader和Auto update ps_init勾选会自动生成fsbl.elf,自动更新ps_init。 PMU Firmware平台管理单元固…

熵与信息论

经典信息论的核心概念是香农熵。假设我们得到了一个变量X的值,X的香农熵量化了我们在获悉 X的值时所能得到的平均信息量;另一种观点是将X的看作在我们获悉的值前对其不确定程度的度量。这两种观点是互补的;我们既可以将看作在我们获悉X的值前…

Ubuntu 22.04系统启动时自动运行ROS2节点

在 Ubuntu 启动时自动运行 ROS2 节点的方法 环境:Ubuntu 系统,ROS2 Humble,使用系统自带的 启动应用程序 目标:在系统启动时自动运行指定的 ROS2 节点 效果展示 系统启动后,自动运行小乌龟节点和键盘控制节点。 实践…

龙蟠科技业绩压力显著:资产负债率持续攀升,产能利用率也不乐观

《港湾商业观察》施子夫 黄懿 去年十月至今两度递表后,10月17日,江苏龙蟠科技股份有限公司(以下简称,龙蟠科技;603906.SH,02465.HK)通过港交所主板上市聆讯。 很快,龙蟠科技发布公告称,公司全…

OceanBase 安全体系解析之身份鉴别

本文作者:金长龙爱可生测试工程师,负责 DMP 产品的测试工作。 本文以MySQL为参照,详细阐述了OceanBase 在MySQL模式下的安全体系中,身份鉴别的能力,涵盖了身份鉴别机制、用户名的构成规则、密码的复杂度,以…

在Java中的动态绑定和静态绑定

动态绑定和静态绑定是两种方法调用的绑定机制静态绑定 静态绑定也称为早期绑定,是在编译时确定调用的方法。动态绑定 动态绑定也称为晚期绑定,是在运行时确定调用的方法。静态绑定用于编译时确定的方法调用,动态绑定是Java实现运行时多态的…

CISE|暴雨受邀出席第二十六届中国国际软件博览会

10月24日至26日,备受瞩目的第二十六届中国国际软件博览会(简称CISE)在国家会展中心(天津)圆满举办。CISE不仅汇聚了来自全国各地的顶尖软件企业和机构,还吸引了众多专家学者和行业精英共襄盛举,…

Cesium基础-(Entity)-(Box)

** 里边包含Vue、React框架代码详细步骤、以及代码详细解释 ** 3、Box 盒子 以下是 BoxGeometry 类的属性、方法和静态方法,以表格形式展示: 属性 属性名类型默认值描述minimumCartesian3盒子的最小 x, y, 和 z 坐标。maximumCartesian3盒子的最大 x, y, 和 z 坐标。vertex…

【PHP】PHP使用Modbus-Rut协议与RS485串口通信,向设备发送和接收数据

目录 一、前言 二、开发前说明 三、效果图 四、安装PHP扩展 五、安装phpModbus类库 六、通信逻辑 七、完整实例 一、前言 使用PHP语言与硬件设备通信交互,并向COM串口发送和接收数据。 前面写了三篇关于PHP与RS235和USB端口通信的文章,可以作为参…

现代数字信号处理I--最佳线性无偏估计 BLUE 学习笔记

目录 1. 最佳线性无偏估计的由来 2. 简单线性模型下一维参数的BLUE 3. 一般线性模型下一维参数的BLUE 4. 一般线性模型下多维参数的BLUE 4.1 以一维情况说明Rao论文中的结论 4.2 矢量参数是MVUE的本质是矢量参数中的每个一维参数都是MVUE 4.3 一般线性模型多维参数BLUE的…

视频剪辑哪个软件好用?推荐四款热门工具!!

在这个Vlog和短视频当道的互联网时代,掌握一款好用的视频剪辑软件就像拥有了打开创作世界的魔法钥匙。今天我们来聊聊视频剪辑软件,帮你成为剪辑达人哦!接下来,给大家详细介绍四款常用且各具特色的视频剪辑软件,助你轻…

算法:利用前序序列和中序序列构造二叉树

题目 链接:leetcode链接 思路分析 前序遍历的顺序是:根 左子树 右子树 中序遍历的顺序是: 左子树 根 右子树 所以,我们可以通过前序遍历获得二叉树的根 可以通过中序遍历去分割二叉树,将二叉树分割成 左子树 根…

偷懒总结篇|贪心算法|动态规划|单调栈|图论

由于这周来不及了,先过一遍后面的思路,具体实现等下周再开始详细写。 贪心算法 这个图非常好 122.买卖股票的最佳时机 II(妙,拆分利润) 把利润分解为每天为单位的维度,需要收集每天的正利润就可以,收集正利润的区间…

HarmonyOS ArkTS与C++数据类型转换

1. HarmonyOS ArkTS与C数据类型转换 本文介绍了C与TS各自数据类型与互相之间的数据类型转换,在需要使用C模块时可以快速上手对各种数据类型进行转换。 1.1. 概述 HarmonyOS的主力开发语言是ArkTS,也提供了C语言的支持,对于一些能力&#xff…

1.3 面向对象 C++面试问题

1.3.1 简述一下什么是面向对象,面向对象与面向过程的区别 什么是面向对象 面向对象(Object-Oriented Programming,OOP)是一种编程范式,它通过将现实世界中的实体抽象为“对象”来组织代码。面向对象编程关注对象及其交互&#x…

D51【python 接口自动化学习】- python基础之模块与标准库

day51 模块的导入 学习日期:20241027 学习目标:模块与标准库 -- 66 模块的导入:如何使用其他人编写好的代码功能? 学习笔记 模块的作用 导入模块的方法 # 导入模块 # 方式一 import os # 获取当前的位置 print(os.getcwd())# …