We use cookies to improve your experience with our site.

ISC4DGF: LLM驱动的定向灰盒模糊测试初始种子语料库生成方法

ISC4DGF: Enhancing Directed Grey-Box Fuzzing with Initial Seed Corpus Generation Driven by Large Language Models

  • 摘要:
    研究背景 模糊测试是一种重要的软件安全技术,通过提供多样化的输入来触发程序异常行为或崩溃,从而帮助开发者及早发现和修复漏洞,降低后期修复成本。定向灰盒模糊测试(Directed Grey-Box Fuzzing, DGF)关注于快速触发已知漏洞,提升漏洞检测的效率,在补丁测试、崩溃复现和静态分析报告验证等场景中表现突出。近年来,大型语言模型(Large Language Model, LLM)在代码理解与生成方面取得了显著进展。LLM具备强大的逻辑理解和模式识别能力,使其在DGF的初始种子语料库生成方面具有潜力。然而,虽已有研究尝试利用LLM提示来引导种子变异,但尚无专门研究聚焦于使用LLM提示来生成DGF的初始种子语料库。利用LLM提示生成DGF初始种子语料库面临诸多挑战:1)LLM的输入长度有限,难以完整处理大型项目数据,同时计算开销较大;2)项目文档、示例代码等可能引入无关信息,干扰提示的有效性;3)LLM输出的格式为纯文本,难以符合程序输入所需的特定格式要求;4)LLM可能存在幻觉问题,产生不准确或无效的结果,依赖人工筛选,不仅存在偏差,还会影响系统的可扩展性。
    目的 研究目的是通过优化模糊器的初始种子语料库,提升DGF对已知漏洞的检测能力和效率。
    方法 本文提出了一种基于LLM、专门面向DGF的初始种子语料库生成方法ISC4DGF。该方法利用 LLM的程序理解能力,结合用户提供的关键信息提示,实现高效的初始种子生成。ISC4DGF旨在通过优化初始种子选择过程来提高检测已知漏洞的效率。它采用两阶段方法,如图1所示,首先利用提示优化模型(Refinement LLM)优化输入提示,再通过生成模型(Generation LLM)生成并筛选潜在种子。图1 ISC4DGF流程图1. 提示优化(Refinement LLM)针对提示输入大小的限制,ISC4DGF 提取测试程序的关键信息,如项目介绍、驱动源代码、CVE 详情和补丁信息;针对无关信息干扰问题,ISC4DGF 使用Refinement LLM优化提示内容,消除冗余信息,并通过温度参数调整生成多组候选提示。2. 种子生成(Generation LLM)针对格式生成问题,ISC4DGF 引导 LLM 生成 Python 脚本,确保输出种子符合模糊测试要求;针对 LLM的幻觉问题,ISC4DGF 引入静态分析工具和自动化脚本对生成的种子进行验证,确保语法正确性和格式合规性,并对种子评分筛选。ISC4DGF 使用最终生成的优化种子语料库替换模糊测试器的默认种子,运行模糊测试,直至触发目标漏洞或测试周期结束。
    结果 本文通过以下研究问题来评估ISC4DGF的有效性:RQ1:与其他模糊器相比,ISC4DGF重现已知漏洞的效率如何?RQ2:ISC4DGF的提示设计和候选提示能否提高其有效性?RQ3:ISC4DGF如何提高触发目标漏洞的速度?RQ4:ISC4DGF是否将引信覆盖范围集中在目标区域?RQ5:ISC4DGF的初始种子语料库与目标漏洞语义相关吗?(1)已知漏洞的触发效率与现有流行的模糊器相比,ISC4DGF的平均性能提高了25.03倍。(2)消融实验驱动程序源代码、CVE细节和CVE对应补丁的提示设计,以及候选提示的使用,提高了模糊器在漏洞检测能力和效率(如表1所示)。表1 消融实验结果(3)快速触发漏洞能力验证与现有流行的模糊器相比,ISC4DGF可以在更少目标抵达更少的情况下,更快的触发目标漏洞(如表2所示)。表2 触发目标漏洞所需的抵达次数(4)覆盖范围集中在目标区域ISC4DGF实现了在更多抵达目标次数情况下的更小测试覆盖范围,使得测试资源集中于目标漏洞(如图2所示)。图2 代码覆盖率和目标到达率对比图(5)种子的语义验证ISC4DGF生成的初始种子可以有效映射漏洞相关的信息(请见表3)。表3 初始种子语料库的语义验证
    结论 本文提出了一种定向灰箱模糊化的新方法ISC4DGF,通过使用LLM生成优化的初始种子语料库。通过专注于初始种子语料库的设计,ISC4DGF提高了模糊测试的效率和精度,从而更快、更准确地检测特定漏洞。实验结果表明,ISC4DGF优于目前先进的模糊化器,在已知漏洞重现中实现了25.03倍的速度提升,同时将模糊器的执行过程更有效地集中在关键代码区域。进一步的研究方向包括基于LLM的DGF种子突变策略和减少漏洞信息依赖的DGF方法。

     

    Abstract: Fuzz testing is crucial for identifying software vulnerabilities, with coverage-guided grey-box fuzzers like AFL and Angora excelling in broad detection. However, as the need for targeted detection grows, directed grey-box fuzzing (DGF) has become essential, focusing on specific vulnerabilities. The initial seed corpus, which consists of carefully selected input samples that the fuzzer uses as a starting point, is fundamental in determining the paths that the fuzzer explores. A well-designed seed corpus can guide the fuzzer more effectively towards critical areas of the code, improving the efficiency and success of the fuzzing process. Even with its importance, much work concentrates on refining guidance mechanisms while paying less attention to optimizing the initial seed corpus. In this paper, we introduce ISC4DGF, a novel approach to generating optimized initial seed corpus for DGF using large language models (LLMs). By leveraging LLMs’ deep understanding of software and refined user inputs, ISC4DGF creates a precise seed corpus that efficiently triggers specific vulnerabilities through a multi-round validation process. Implemented on AFL and tested against state-of-the-art fuzzers such as Titan, BEACON, AFLGo, FairFuzz, and Entropic using the Magma benchmark, ISC4DGF achieves a 25.03x speedup with fewer target reaches. Moreover, ISC4DGF improves target vulnerabilities detection accuracy while narrowing the detection scope and reducing code coverage.

     

/

返回文章
返回