MOPT:优化模糊器的变异调度
摘要
基于变异的模糊化是最流行的漏洞发现解决方案之一。它生成有趣测试用例的性能在很大程度上取决于变异调度策略。然而,现有的模糊程序通常遵循一个特定的(例如,统一的)分布来选择变异算子,这在发现一般程序上的漏洞方面效率很低。因此,在本文中,我们提出了一种新的变异调度方案MOPT,它使基于变异的模糊器能够更有效地发现漏洞。MOP实现了一种定制的粒子群优化(PSO)算法,以找到与模糊有效性相关的算子的最优选择概率分布,并提供了一种起搏器模糊模式,以加快PSO的收敛速度。我们将MOPT应用于最先进的模糊程序AFL、AFLFast和Vuzzer,并分别实现了MOPT-AFL、-AFLFast和-Vuzzer,然后在13个实际开源程序上对它们进行了评估。结果表明,MOPT-AFL可以发现比AFL多170%的安全漏洞和350%的崩溃。MOPT-AFLFast和MOPT-VUzzer的表现也优于他们的同行。此外,广泛的评估还表明,MOPTP提供了良好的合理性、兼容性和稳定性,同时引入的成本可以忽略不计。
主要内容
本文将变异调度作为一个优化问题,提出了一种新的变异调度方案MOPT,旨在解决上述问题,提高模糊性能。受著名优化算法粒子群优化(PSO)[20]的启发,MOPTD动态评估候选变异算子的效率,并将其选择概率调整为最优分布。
MOPT将每个变异算子建模为沿概率空间[xmin,xmax]移动的粒子,其中xmin和xmax分别是预定义的最小概率和最大概率。在局部最优概率和全局最优概率的指导下,每个粒子(