【论文速读】| CovRL:基于覆盖引导的强化学习对LLM基础变异进行JavaScript引擎模糊测试

news2024/9/22 19:32:15

图片

本次分享论文为:CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutation

基本信息

原文作者:Jueon Eom, Seyeon Jeong, Taekyoung Kwon

作者单位:延世大学、苏瑞软科技公司

关键词:模糊测试, 运行代码引擎, 覆盖率引导, 增强学习, 大语言模型

原文链接:

https://arxiv.org/pdf/2402.12222.pdf

开源代码:暂无

论文要点

论文简介:这篇论文介绍了CovRL这一创新技术,该技术融合了覆盖率引导的增强学习与大语言模型(LLM),通过将覆盖反馈直接融入到LLM,显著提升了针对JavaScript引擎的Fuzzing性能。利用TF-IDF方法创建的加权覆盖图,允许基于LLM的变异器产生更可能探索到新覆盖区域的测试用例,从而在提升漏洞侦测的效率和准确性方面取得了突破。

图片

研究目的:针对复杂系统(如JavaScript引擎)Fuzzing过程中精确语法输入的挑战,尤其是利用覆盖率引导进行Fuzzing时存在的限制,提出了CovRL技术,以增强JavaScript引擎Fuzzing的效率和准确性。

研究贡献:

1.推出了 CovRL,这是一种创新技术,通过使用覆盖反馈将大语言模型 (LLM) 与强化学习相结合。这种独特的方法通过 TF-IDF 直接将覆盖率反馈纳入 LLM,从而促进高级覆盖率引导的模糊测试。

2.开发了 CovRL-Fuzz,这是一款采用 CovRL 技术的模糊测试工具,专为模糊 JavaScript 引擎而设计。实验表明,CovRL-Fuzz 在代码覆盖率和漏洞检测能力方面均优于现有模糊测试工具,凸显了其在管理 JavaScript 引擎模糊测试复杂性方面的效率。

3.CovRL-Fuzz 成功识别了 48 个安全相关漏洞,其中包括最新 JavaScript 引擎中的 39 个先前未知的漏洞(11 个 CVE)。

引言

在数字时代,JavaScript 及其引擎在构建 Web 应用程序和确保网络安全方面发挥着关键作用。随着 JavaScript 应用程序的流行,其引擎的安全性变得越来越重要。漏洞可能导致严重的网络安全威胁。传统的模糊测试技术在应对此类复杂软件的复杂性方面面临着挑战,尤其是在 JavaScript 引擎测试的严格语法方面,这使得很难发现有效的漏洞。

为了解决这个问题,CovRL 技术应运而生,它将大语言模型 (LLM) 的上下文处理能力与覆盖率引导的强化学习结合起来。这项创新显著提高了模糊测试的精度和效率。通过智能生成有针对性的测试用例,CovRL 有效地探索了未充分测试的代码区域,大幅提高了漏洞发现的成功率。

CovRL 的引入不仅为研究者提供了理解和改进软件测试的新视角,而且标志着在确保 JavaScript 引擎安全性方面向前迈出了重要一步。通过将先进的语言模型与智能学习算法相结合,不仅可以有效地发现复杂软件中隐藏的漏洞,还可以为软件测试的未来铺平新的道路。接下来,研究者将深入研究 CovRL 的设计原理、实现方法和卓越性能,强调其在增强 JavaScript 引擎模糊测试方面的关键作用。

研究背景

在当今互联网广泛使用的时代,作为现代 Web 应用程序核心的 JavaScript 引擎的安全性至关重要。然而,随着 JavaScript 语言的不断发展和引擎功能的日益复杂,传统的模糊测试技术很难生成有效的测试用例并实现最大的代码覆盖率。为了应对这些挑战,开发了 CovRL 技术。它将大语言模型(LLM)生成高质量测试用例的能力与覆盖率引导的强化学习算法相结合,智能地探索未经测试的代码区域,从而显著提高模糊测试的效率和覆盖率。这种创新方法不仅为JavaScript引擎的安全测试开辟了新的道路,也为软件测试领域的未来发展指明了方向。

图片

实验设计

为了全面评估CovRL技术的效能,研究者设计了一系列精心策划的实验。首先,研究者选取了包括V8、JavaScriptCore、ChakraCore和JerryScript等在内的多个最新版本JavaScript引擎作为测试目标。这些引擎在各种网络应用中广泛使用,代表了市场上的主流JavaScript执行环境。在实验过程中,为确保结果的公正性和可比性,每个引擎均在相同的硬件和软件配置下运行。研究者使用了来自开源社区的JavaScript测试套件作为初始种子,借由CovRL技术生成新的测试用例,并监测这些用例在各引擎中的执行情况,特别关注代码覆盖率的变化和能够揭示的潜在漏洞数量。为了更精确地评估CovRL的表现,研究者还将其结果与当前领先的Fuzzing技术进行了对比。这一系列实验不仅测试了CovRL在不同环境下的适应性和效率,也为该技术的进一步优化和改进提供了宝贵的数据支持。

实现方法

CovRL技术核心地创新融合了大语言模型(LLM)和覆盖率引导的增强学习算法,为JavaScript引擎的Fuzzing工作带来创新性的突破。在具体实施方面,该技术首先借助LLM的出色语言理解与生成能力,创建符合JavaScript语法的高品质测试用例。然后,通过应用词频-逆向文件频率(TF-IDF)方法对测试用例进行加权,形成覆盖率权重图。该权重图作为增强学习算法中奖励机制的一部分,引导LLM生成更有可能探索到尚未覆盖的代码区域的测试用例。此策略不仅显著加快了Fuzzing过程中代码覆盖率的提升速度,而且大幅增强了发掘潜在漏洞的能力。CovRL通过这一智能反馈机制,实现了Fuzzing过程的实时优化,确保测试用例的生成不仅高效,而且针对性强,为JavaScript引擎安全测试设定了新的高标准。

研究评估

通过一系列细致的实验,CovRL技术的研究评估旨在全面验证其在JavaScript引擎Fuzzing应用的有效性。在这些实验中,CovRL与当前先进的Fuzzing技术进行了比较,重点考察了代码覆盖率的提高、潜在漏洞发现能力以及测试用例的语法准确性。CovRL在多个主流JavaScript引擎上的应用表明,其不仅显著提升了代码覆盖率,更关键的是,成功地发现了许多以前未被识别的安全漏洞。此外,由CovRL生成的测试用例表现出较低的语法错误率,证明了其在生成测试用例方面的高效能。这些实验成果不仅印证了CovRL在增强JavaScript引擎安全性方面的功效,同时为Fuzzing技术未来的进展提供了宝贵的洞见和参考。

图片

论文结论

CovRL技术的研究与应用代表了JavaScript引擎安全测试领域的一个重大进展。它通过将大语言模型(LLM)与覆盖率引导的增强学习巧妙融合,不仅在提升Fuzzing过程的代码覆盖率方面取得了成功,也在发掘潜在安全漏洞的能力上实现了显著增强。实验结果显示,与现行的Fuzzing技术相比,CovRL在效率和成效方面均展现了明显的优势。同时,其产生的测试用例错误率较低,进一步展示了其生成高品质测试用例的能力。这些成就不仅为JavaScript引擎安全性研究提供了新的视角和方法,也为未来的软件测试及安全保护工作奠定了坚实基础。CovRL的成功推广和应用,推进了Fuzzing技术的发展,并为软件安全研究领域开启了新篇章,期待它在未来的进展和应用中持续扮演重要角色。

原作者:论文解读智能体

润色:Fancy

校对:小椰风

图片

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot + Vue实现的校园(接单跑腿)服务平台管理系统设计与实现+(12000字)毕业论文+开题报告+搭建视频​(包运行成功)

介绍 本系统包含管理员、接单员、普通用户三个角色。 管理员角色:管理员管理、基础数据管理、接单详情管理、接单员管理、公告信息管理、用户管理、用户投诉管理、余额变更记录管理。 接单员角色:接单详情管理、接单员管理、跑腿任务管理。 普通用户…

分类算法(数据挖掘)

目录 1. 逻辑回归(Logistic Regression) 2. 支持向量机(Support Vector Machine, SVM) 3. 决策树(Decision Tree) 4. 随机森林(Random Forest) 5. K近邻(K-Nearest …

JavaScript(五)-正则表达式

文章目录 正则表达式正则表达式的介绍语法元字符修饰符 正则表达式 正则表达式的介绍 什么是正则表达式 正则表达式(Regular expression)是用于匹配字符串中字符组合的模式,在JavaScript中,正则表达式也是对象通常用来查找、替…

【Golang学习笔记】从零开始搭建一个Web框架(三)

文章目录 分组控制分组嵌套中间件 前情提示: 【Golang学习笔记】从零开始搭建一个Web框架(一)-CSDN博客 【Golang学习笔记】从零开始搭建一个Web框架(二)-CSDN博客 分组控制 分组控制(Group Control)是 Web 框架应提供…

传销?链动2+1模式 合法合规的商业模式!

大家好,我是吴军,来自一家深耕于软件开发领域的公司,担任产品经理的职务。 今天,我希望与大家共同探讨一个具有深刻意义的话题——链动21模式,并探究其如何有效应对用户留存与复购的挑战。 或许有人会说,链…

UE5学习日记——实现自定义输入及监听输入,组合出不同的按键输入~

UE5的自定义按键和UE4有所不同,在这里记录一下。 本文主要是记录如何设置UE5的自定义按键,重点是学会原理,实际开发时结合实际情况操作。 输入映射 1. 创建输入操作 输入操作并不是具体的按键映射,而是按键的激活方式&#xff0…

如何落地一个FaaS平台?

简介: 函数即服务(FaaS)作为云计算 2.0 时代重要的发展方向,能够从工程效率、可靠性、性能、成本等方面给开发者带来巨大的价值,尤其是能够极大地提升研发效率。因此,拥抱FaaS成为开发者关心的重要技术领域…

01-Git 之快速入门操作本地仓库

https://learngitbranching.js.org/?localezh_CN在线练习git 1. Git 安装好Git以后, 先检查是否已经绑定了用户名和邮箱 git config --list1.1 为什么要使用版本控制? 从个人角度: 在做项目时,如果一点点去改代码会很乱,不利…

华为云开年采购季:企业级市场的火爆营销炼成记

作者 | 曾响铃 文 | 响铃说 销售火爆,一单又一单,“生意好个不停”。 这一幕,常常发生在C端消费品市场上,要么是线上爆单,要么是线下人头攒动。 而现在,在B端企业级市场上也发生了类似的情景。 自3月1…

ZJJ-2A直流绝缘监视继电器额定电流3.1mA额定电压110VDCJOSEF约瑟

系列型号 JJJ-1绝缘监视继电器; ZJJ-1/A绝缘监视继电器; ZJJ-1A绝缘监视继电器; ZJJ-2型直流绝缘监视继电器 ZJJ-2直流绝缘监视继电器; ZJJ-2B直流绝缘监视继电器; ZJJ-2AC直流绝缘监视继电器; 用途…

Day 41:动态规划 LeedCode 343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 思路: 1.确定dp数组&#xff0…

《TinyLlama: An Open-Source Small Language Model》全文翻译

【Title】 TinyLlama:开源小语言模型 【Abstract】 我们推出了 TinyLlama,这是一个紧凑的 1.1B 语言模型,在大约 1 万亿个令牌上进行了大约 3 个时期的预训练。 TinyLlama 基于 Llama 2(Touvron 等人,2023b&#xff…

自定义Centos的终端的命令提示符

背景 当我们使用终端登陆Centos时,就自动打开了ssh终端。这个终端的命令提示符一般是这样的: 这个以#号结束的一行字,就是我们说的命令提示符了。 这个是腾讯云的服务器的提示符,可以看到主机名是VM-4-7-centos。 但是这个看起…

Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

随着航空、航天、近地空间遥感平台的持续发展,遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升,呈现出大数据特征。这为相关研究带来了新机遇,但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…

SD-WAN提升企业网络体验

在现代企业中,网络体验已成为提升工作效率与业务质量的关键因素。SD-WAN技术的出现,以其独特的优势,为企业提供了优化网络连接、加速数据传输、提升服务质量和应用访问体验,以及增强网络稳定性的解决方案。接下来,我们…

设计模式在芯片验证中的应用——策略

1. 策略模式 策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 在RTL设计中可能包含了复杂的多个访问仲裁逻辑,使用了多种算法来确定访问内存优先级顺序&am…

plc远程监控系统

随着工业4.0时代的到来,智能制造成为了工业发展的核心驱动力。在这个信息化、网络化的新时代,PLC远程监控系统以其强大的监控与管理能力,正逐渐成为工业自动化领域的明星产品。今天,我们就来聊聊PLC远程监控系统以及HiWoo Cloud平…

网络协议——OSPF(开放式最短路径优先)详解

1.什么是OSPF 开放式最短路径优先OSPF 是一种动态的高度可靠和高度可扩展的路由协议,用于构建大型网络中的动态路由系统 2. OSPF的协议号为:89 3. OSPF的特点: OSPF是链路状态协议使用了区域概念:减少路由选择协议对路由器CPU,…

从零开始学习Linux(1)---基本命令(1)

1.学习准备 我学习Linux是使用xshell远程登录自己的云服务器来进行。 xshell是一个远程终端管理软件,下载官网: https://www.netsarang.com/products/xsh_overview.htm 下载安装的时候选择 "home/school"…

H.265网页无插件播放EasyPlayer.js流媒体播放器常见问题及解答

EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无须安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。 今天我们来汇总下用户常见的几个问题及解答。 1、EasyPlayer.js播放多路H.265视…