中文

选择更好的JVM模糊测试初始种子

软件工程 2024-08-19 v1

摘要

传统程序模糊测试领域的文献已确认,有效性在很大程度上受到初始种子之间冗余性的影响,因此提出了一系列种子选择方法。与传统方法相比,JVM模糊测试具有独特的特征,包括大规模和复杂的代码,以及同时具有语法和语义特征的程序。然而,目前尚不清楚现有的种子选择方法是否适用于JVM模糊测试,以及利用程序特征是否能提高有效性。为此,我们总共设计了10种初始种子选择方法,包括基于覆盖度的、基于预模糊测试的以及基于程序特征的。我们随后在三个JVM实现上进行了实证研究,在两种最先进的模糊测试技术(JavaTailor和VECT)中广泛评估了种子选择方法的性能。具体而言,我们从三个方面评估性能:(i)使用广泛研究的初始种子的有效性和效率,(ii)使用野外程序的有效性,以及(iii)检测新漏洞的能力。评估结果首先表明,利用控制流图的基于程序特征的方法不仅具有显著更低的时间开销(即30秒),而且优于其他方法,相比完整初始种子集实现了142%至269%的提升。其次,结果表明初始种子选择显著提高了野外程序的质量,并通过检测新行为表现出互补有效性。第三,结果表明,在相同的测试周期内,初始种子选择通过检测更多未知漏洞来改进JVM模糊测试技术。特别是,25个检测到的漏洞中有21个已被开发者确认或修复。这项工作首次研究了JVM模糊测试中的初始种子选择,确认了其对模糊测试有效性和效率的重要性。

关键词

引用

@article{arxiv.2408.08515,
  title  = {Selecting Initial Seeds for Better JVM Fuzzing},
  author = {Tianchang Gao and Junjie Chen and Dong Wang and Yile Guo and Yingquan Zhao and Zan Wang},
  journal= {arXiv preprint arXiv:2408.08515},
  year   = {2024}
}