模糊测试变异算子调度优化模型
2021-02-28李明磊陆余良朱凯龙
小型微型计算机系统 2021年10期
李明磊,陆余良,黄 晖,朱凯龙
(国防科技大学 电子对抗学院,合肥 230037) (网络空间安全态势感知与评估安徽省重点实验室,合肥 230037)
1 背 景
模糊测试技术是一种通过随机输入对程序进行测试的技术.研究人员通过分析程序崩溃时的程序上下文状态与输入的测试用例实现对程序漏洞的定位[1].模糊测试技术因其自动化程度高、软件适用性好等优点被广泛应用于软件测试当中.为提高模糊测试技术的效率,研究人员对模糊测试技术开展了广泛的研究,将静态分析、污点分析、符号执行等技术引入到模糊测试技术中,使得模糊测试技术可以通过收集程序运行状态指导测试用例的生成,出现了以AFL[2]、Driller[3]、AflFast[4]、Skyfire[5]、BORG[6]为代表的反馈式模糊测试器.
当前模糊测试技术有基于变异和基于语义的两种测试用例生成方法[7].基于变异的测试用例生成方法指模糊测试器对测试用例进行随机变化,产生新的程序输入作为测试用例,每一种随机变化方式称为一种变异算子,基于变异生成测试用例的模糊测试器有AFL、AflFast、Peach[8]、EcoFuzz[9]等.基于语义的测试用例生成方法指模糊测试器对程序输入的语义进行分析得到程序输入的格式,模糊测试器在程序输入格式的指导下生成测试用例,基于语义生成测试用例的模糊测试器有SPIKE[10]、Learn & Fuzz[11]等.
无论是基于变异还是基于语义的测试用例生成方法都只关注单一变异算子本身的变异效率,在实际测试过程中模糊测试器会同时调用多种变异……
登录APP查看全文
