Facilitating Parallel Fuzzing with mutually-exclusive Task Distribution

Facilitating Parallel Fuzzing with mutually-exclusive Task Distribution
复制标题

DOI:
10.1007/978-3-030-90022-9_10
复制
发表时间:
2021-09
期刊:
ArXiv
影响因子:
--
通讯作者:
Yifan Wang;Yuchen Zhang;Chengbin Pang;Peng Li;Nikolaos Triandopoulos;Jun Xu
Yifan Wang;Yuchen Zhang;Chengbin Pang;Peng Li;Nikolaos Triandopoulos;Jun Xu
中科院分区:
其他
文献类型:
--
作者:
Yifan Wang;Yuchen Zhang;Chengbin Pang;Peng Li;Nikolaos Triandopoulos;Jun Xu

文献摘要

相似文献

模糊测试(fuzzing)已经成为软件行业中事实上的bug发现标准技术之一。一般来说,模糊测试为目标程序提供各种输入,目的是发现未处理的异常和崩溃。在时间预算有限的业务部门中,软件供应商经常并行地启动许多模糊测试实例,作为增加代码覆盖率的常用方法。然而,大多数流行的模糊测试工具——在它们的并行模式下——天真地并发运行多个实例,而没有详细地分配工作负载。这可能导致不同的实例探索重叠的代码区域,最终降低并发性的好处。在本文中,我们提出了一个描述并行模糊的通用模型。该模型将互斥但权重相似的任务分配给不同的实例,从而促进了实例之间的并发性和公平性。在此基础上,我们提出了一种解决方案afl - edge,以改进afl的并行模式,将对一个唯一种子的一轮突变作为一个任务,并采用边缘覆盖来定义种子的唯一性。我们已经实现了afl - edgeon,并使用aflon 9广泛使用的基准程序对其实施进行了评估。结果表明,afl - edge可以提高afl的边缘覆盖率。在24小时的测试中,根据实例的数量,afl - edgetoafl带来的边缘覆盖率的增加范围从9.5%到10.2%不等。附带的好处是,我们发现了14个以前未知的bug。
Fuzz testing, or fuzzing, has become one of the de facto standard techniques for bug finding in the software industry. In general, fuzzing provides various inputs to the target program with the goal of discovering un-handled exceptions and crashes. In business sectors where the time budget is limited, software vendors often launch many fuzzing instances in parallel as a common means of increasing code coverage. However, most of the popular fuzzing tools—in their parallel mode—naively run multiple instances concurrently, without elaborate distribution of workload. This can lead different instances to explore overlapped code regions, eventually reducing the benefits of concurrency. In this paper, we propose a general model to describe parallel fuzzing. This model distributes mutually-exclusive but similarly-weighted tasks to different instances, facilitating concurrency and also fairness across instances. Following this model, we develop a solution, calledAFL-EDGE, to improve the parallel mode ofAFL, consideringa round of mutations to a unique seedas a task and adopting edge coverage to define the uniqueness of a seed. We have implementedAFL-EDGEon top ofAFLand evaluated the implementation withAFLon 9 widely used benchmark programs. It shows thatAFL-EDGEcan benefit the edge coverage ofAFL. In a 24-h test, the increase of edge coverage brought byAFL-EDGEtoAFLranges from 9.5% to 10.2%, depending on the number of instances. As a side benefit, we discovered 14 previously unknown bugs.