一句话:揭示变异算子顺序对灰盒模糊测试有效性的交互效应,并提出学习最优变异序列的 MuoFuzz。
灰盒模糊器通过在种子输入上随机选择并应用变异算子来生成新测试输入。论文假设变异算子的应用顺序会显著影响灰盒模糊测试的有效性。作者对包含所有变异算子对有效性的数据集拟合线性模型,验证了所猜想的交互效应。基于此,论文提出 MuoFuzz:它学习在给定前一变异算子的条件下,下一变异算子产生有趣输入的条件概率,并通过随机游走采样生成变异序列。在 FuzzBench 和 MAGMA 基准上,MuoFuzz 与使用固定选择概率的 AFL++ 以及孤立优化各变异算子选择概率的 MOPT 进行比较,取得了最高代码覆盖率,并发现 AFL++ 漏掉的四个 bug 以及 AFL++ 和 MOPT 均漏掉的一个 bug。
A greybox fuzzer is an automated software testing tool that generates new test inputs by applying randomly chosen mutators (e.g., flipping a bit or deleting a block of bytes) to a seed input in random order and adds all coverage-increasing inputs to the corpus of seeds. We hypothesize that the order in which mutators are applied to a seed input has an impact on the effectiveness of greybox fuzzers. In our experiments, we fit a linear model to a dataset that contains the effectiveness of all possible mutator pairs and indeed observe the conjectured interaction effect. This points us to more efficient fuzzing by choosing the most promising mutator sequence with a higher likelihood. We propose MuoFuzz, a greybox fuzzer that learns and chooses the most promising mutator sequences. MuoFuzz learns the conditional probability that the next mutator will yield an interesting input, given the previously selected mutator. Then, it samples from the learned probability using a random walk to generate mutator sequences. We compare the performance of MuoFuzz to AFL++, which uses a fixed selection probability, and MOPT, which optimizes the selection probability of each mutator in isolation. Experimental results on the FuzzBench and MAGMA benchmarks show that MuoFuzz achieves the highest code coverage and finds four bugs missed by AFL++ and one missed by both AFL++ and MOPT. Data and material: https://doi.org/10.5281/zenodo.17391100