【论文速读】| CovRL:基于覆盖引导的强化学习对 LLM 基础变异进行 JavaScript 引擎模糊测试
本次分享论文为: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
校对:小椰风
评论