针对覆盖引导的模糊测试(CGF)中存在大量无效变异且造成性能浪费的问题,提出一种自适应敏感区域变异算法。首先,根据变异出的测试用例是否执行新路径将对应的变异位置分为有效变异位置集合和无效变异位置集合;然后,基于有效变异位置确...针对覆盖引导的模糊测试(CGF)中存在大量无效变异且造成性能浪费的问题,提出一种自适应敏感区域变异算法。首先,根据变异出的测试用例是否执行新路径将对应的变异位置分为有效变异位置集合和无效变异位置集合;然后,基于有效变异位置确定敏感区域,将后续的变异集中在敏感区域内。在后续的模糊测试过程中,根据测试用例的执行结果自适应地调整对应种子的敏感区域,减少无效变异。此外,设计新的种子选择策略配合敏感区域变异。将自适应敏感区域算法集成至美国模糊循环(AFL),并将它命名为SMAFL(Sensitive-region-based Mutation American Fuzzy Lop)。在12个流行的应用程序上评估SMAFL,实验结果表明,与AFL相比,当初始种子数为1时,SMAFL发现的路径数平均提升了31.4%,模糊次数增加了3.4倍;并且在12个程序中都实现了更高的代码覆盖率。在对LAVA-M数据集的测试中,SMAFL比AFL多发现2个bug,并且发现相同bug所用时间更短。整体地,自适应敏感区域变异算法能提升模糊测试器的探索效率。展开更多
文摘针对覆盖引导的模糊测试(CGF)中存在大量无效变异且造成性能浪费的问题,提出一种自适应敏感区域变异算法。首先,根据变异出的测试用例是否执行新路径将对应的变异位置分为有效变异位置集合和无效变异位置集合;然后,基于有效变异位置确定敏感区域,将后续的变异集中在敏感区域内。在后续的模糊测试过程中,根据测试用例的执行结果自适应地调整对应种子的敏感区域,减少无效变异。此外,设计新的种子选择策略配合敏感区域变异。将自适应敏感区域算法集成至美国模糊循环(AFL),并将它命名为SMAFL(Sensitive-region-based Mutation American Fuzzy Lop)。在12个流行的应用程序上评估SMAFL,实验结果表明,与AFL相比,当初始种子数为1时,SMAFL发现的路径数平均提升了31.4%,模糊次数增加了3.4倍;并且在12个程序中都实现了更高的代码覆盖率。在对LAVA-M数据集的测试中,SMAFL比AFL多发现2个bug,并且发现相同bug所用时间更短。整体地,自适应敏感区域变异算法能提升模糊测试器的探索效率。