摘要: 针对覆盖引导的模糊测试(CGF)中存在大量无效变异且造成性能浪费的问题,提出了一种自适应敏感区域变异算法。首先根据变异出的测试用例是否执行新路径将对应的变异位置分为有效变异位置集合和无效变异位置集合,然后基于有效变异位置确定敏感区域,并将后续的变异集中在敏感区域内。在后续的模糊测试过程中,根据测试用例的执行结果自适应地调整对应种子的敏感区域,实现减少无效变异的目的。此外,设计了新的种子选择策略来配合敏感区域变异。将敏感区域算法集成到AFL上,并将其命名为Sensitive-region-based Mutation American Fuzzy Lop(SMAFL)。在12个流行的应用程序上对SMAFL进行评估,结果表明在相同的时间内,SMAFL平均比AFL多发现了39.3%的路径,SMAFL的模糊次数为AFL的3至4倍,并且SMAFL在12个程序中都实现了更高的代码覆盖率。在对LAVA-M的测试中,SMAFL发现了更多的bug,并且发现bug所用时间更短。
中图分类号: