Source: https://www.ndss-symposium.org/ndss-paper/darwin-survival-of-the-fittest-fuzzing-mutators/

Authors: Patrick Jauernig, Domagoj Jakobovic, Stjepan Picek, Emmanuel Stapf, and Ahmad-Reza Sadeghi.

Download Note: https://jbox.sjtu.edu.cn/l/41v4gr

Contributor: lt

Overview

模糊测试是一种被工业界广泛使用的自动化软件测试技术,其主流类别之一是基于变异的模糊测试。虽然学术界多年来一直在研究基于变异的模糊测试,但算法在模糊测试器中的相互作用非常复杂,可能与随机性一起导致不可预测的结果。大多数优化模糊测试的方法聚焦于种子的能量分配。但是,真实世界的结果(比如谷歌的FuzzBench)表明,这些方法在实践中并没有实质性的性能提升。另一种改进模糊测试的方法是优化种子的变异,但它存在两个问题:第一,缺乏真实世界的性能提升;第二,有太多用户控制的参数,其配置需要与目标程序相关的专业知识。这让“实现可度量的改进”成为了一个具有挑战性的问题。

本文提出了DARWIN,一个基于AFL的新变异器。它不需要引入额外的用户配置参数,而且可以在真实世界中改进模糊测试的效率。DARWIN采用进化策略(Evolution Strategy,ES)系统地优化并选择变异操作的概率分布(适者生存)。

  • 在覆盖率实验(FuzzBench)中,DARWIN显著地优于最新的变异器(应该是MOPT)与AFL。
  • 在漏洞挖掘实验(MAGMA)中,DARWIN最快地找出了21个漏洞的15个漏洞。
  • 在漏洞挖掘实验(widely-used real-world applications)中,DARWIN找到了20个unique bug(1个新漏洞),比AFL多66%。