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分别是预定义的最小概率和最大概率。在局部最优概率和全局最优概率的指导下,每个粒子(即算子)向其最优选择概率移动,从而产生更多高质量的测试用例。因此,MOPT的目标是通过聚合粒子发现的概率来找到算子的最佳选择概率分布,从而聚合产生更高质量的测试用例。与粒子群算法类似,MOP算法根据粒子的局部最优概率和全局最优概率对粒子的概率进行更新。然后,对所有粒子的更新概率进行积分,得到新的概率分布。MOPT可以快速收敛到选择变异算子的概率分布的最佳解,从而显著提高模糊性能。在AFL及其后代中,我们进一步设计了一种特殊的起搏器模糊模式,可以进一步加快MOPT的收敛速度。