利用互斥任务分配实现并行Fuzzing
Facilitating Parallel Fuzzing with mutually-exclusive Task Distribution
摘要:
模糊测试,或称模糊测试,已经成为软件工业中错误发现的事实标准技术之一。一般来说,模糊处理向目标程序提供各种输入,以发现未处理的异常和崩溃。在时间预算有限的业务部门,软件供应商通常并行启动许多模糊实例,作为增加代码覆盖率的常用方法。然而,大多数流行的模糊工具在并行模式下都是单纯地并发运行多个实例,而没有详细的工作负载分配。这可能导致不同的实例探索重叠的代码区域,最终减少并发的好处。在本文中,我们提出了一个通用的模型来描述并行模糊。该模型将互斥但权重相似的任务分配给不同的实例,促进了并发性和实例间的公平性。根据这个模型,我们开发了一个解决方案,称为AFL-EDGE,以改善AFL的并行模式,考虑一轮突变到一个唯一的种子作为一个任务,并采用边缘覆盖来定义一个种子的唯一性。我们已经在AFL之上实现了AFL-EDGE,并在9个广泛使用的基准程序上评估了AFL的实现情况。这表明AFL-EDGE可以提高AFL的边缘覆盖率。在24小时的测试中,根据实例数量的不同,AFL-EDGE给AFL带来的边缘覆盖率提升幅度在9.49%到10.20%之间。作为一个附带的好处,我们发现了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 to discover unhandled exceptions and crashes. In business sectors where the time budget is limited, software vendors often launch many fuzzing instances in parallel as 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, called AFL-EDGE, to improve the parallel mode of AFL, considering a round of mutations to a unique seed as a task and adopting edge coverage to define the uniqueness of a seed. We have implemented AFL-EDGE on top of AFL and evaluated the implementation with AFL on 9 widely used benchmark programs. It shows that AFL-EDGE can benefit the edge coverage of AFL. In a 24-hour test, the increase of edge coverage brought by AFL-EDGE to AFL ranges from 9.49% to 10.20%, depending on the number of instances. As a side benefit, we discovered 14 previously unknown bugs.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。