当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Facilitating Parallel Fuzzing with mutually-exclusive Task Distribution
arXiv - CS - Software Engineering Pub Date : 2021-09-17 , DOI: arxiv-2109.08635
Yifan Wang, Yuchen Zhang, Chengbin Pang, Peng Li, Nikolaos Triandopoulos, Jun Xu

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.

中文翻译:

通过互斥的任务分配促进并行模糊测试

模糊测试或模糊测试已成为软件行业发现错误的事实上的标准技术之一。通常,模糊测试为目标程序提供各种输入以发现未处理的异常和崩溃。在时间预算有限的业务领域,软件供应商通常会并行启动许多模糊测试实例,作为增加代码覆盖率的常用手段。然而,大多数流行的 fuzzing 工具在其并行模式下 - 天真地同时运行多个实例,没有精心分配工作负载。这会导致不同的实例探索重叠的代码区域,最终降低并发的好处。在本文中,我们提出了一个通用模型来描述并行模糊测试。该模型将互斥但权重相似的任务分配给不同的实例,促进并发性和实例间的公平性。遵循这个模型,我们开发了一个称为 AFL-EDGE 的解决方案,以改进 AFL 的并行模式,将一轮对唯一种子的突变视为一项任务,并采用边缘覆盖来定义种子的唯一性。我们在 AFL 之上实施了 AFL-EDGE,并在 9 个广泛使用的基准程序上评估了 AFL 的实施。这表明 AFL-EDGE 可以有利于 AFL 的边缘覆盖。在 24 小时的测试中,AFL-EDGE 给 AFL 带来的边缘覆盖率提升幅度在 9.49% 到 10.20% 之间,具体取决于实例数量。作为附带的好处,我们发现了 14 个以前未知的错误。将一轮对唯一种子的突变视为一项任务,并采用边缘覆盖来定义种子的唯一性。我们在 AFL 之上实施了 AFL-EDGE,并在 9 个广泛使用的基准程序上评估了 AFL 的实施。这表明 AFL-EDGE 可以有利于 AFL 的边缘覆盖。在 24 小时的测试中,AFL-EDGE 给 AFL 带来的边缘覆盖率提升幅度在 9.49% 到 10.20% 之间,具体取决于实例数量。作为附带的好处,我们发现了 14 个以前未知的错误。将一轮对唯一种子的突变视为一项任务,并采用边缘覆盖来定义种子的唯一性。我们在 AFL 之上实施了 AFL-EDGE,并在 9 个广泛使用的基准程序上评估了 AFL 的实施。这表明 AFL-EDGE 可以有利于 AFL 的边缘覆盖。在 24 小时的测试中,AFL-EDGE 给 AFL 带来的边缘覆盖率提升幅度在 9.49% 到 10.20% 之间,具体取决于实例数量。作为附带的好处,我们发现了 14 个以前未知的错误。49% 到 10.20%,具体取决于实例数量。作为附带的好处,我们发现了 14 个以前未知的错误。49% 到 10.20%,具体取决于实例数量。作为附带的好处,我们发现了 14 个以前未知的错误。
更新日期:2021-09-20
down
wechat
bug