一句话:提出 SEAMFUZZ,按种子聚类并学习自适应变异策略,提升灰盒模糊测试的路径发现与漏洞检测能力。
基于变异的模糊测试性能高度依赖选择变异方法的概率分布,已有程序自适应方法虽能为每个目标程序学习优化策略,却忽略不同种子输入的特性对探索更深程序位置的影响。为此,作者提出 SEAMFUZZ:它捕获种子输入之间的语法和语义相似性,将种子聚类为若干组,并采用定制化的 Thompson sampling 算法为每个种子簇学习专属的变异策略,从而根据当前种子自适应地选择变异方法。在真实程序上的实验表明,该方法同时提升了当前最优灰盒模糊测试器的路径发现能力和漏洞检测能力。
In this paper, we present a technique for learning seed-adaptive mutation strategies for fuzzers. The performance of mutation-based fuzzers highly depends on the mutation strategy that specifies the probability distribution of selecting mutation methods. As a result, developing an effective mutation strategy has received much attention recently, and program-adaptive techniques, which observe the behavior of the target program to learn the optimized mutation strategy per program, have become a trending approach to achieve better performance. They, however, still have a major limitation; they disregard the impacts of different characteristics of seed inputs which can lead to explore deeper program locations. To address this limitation, we present SEAMFUZZ, a novel fuzzing technique that automatically captures the characteristics of individual seed inputs and applies different mutation strategies for different seed inputs. By capturing the syntactic and semantic similarities between seed inputs, SEAMFUZZ clusters them into proper groups and learns effective mutation strategies tailored for each seed cluster by using the customized Thompson sampling algorithm. Experimental results show that SEAMFUZZ improves both the path-discovering and bug-finding abilities of state-of-the-art fuzzers on real-world programs.