论文部分内容阅读
随着信息技术的不断发展,软件广泛应用于人们的生产与生活过程中,软件的安全性也越发受到重视。模糊测试是一种高效的自动化漏洞挖掘技术,在软件安全领域内备受关注。随着软件规模的增加和程序的复杂化,模糊测试面临着测试效率和准确性等诸多方面的新挑战。目前的模糊测试主要存在2个缺陷,一个是变异的盲目性,另一个是特殊字段变异困难。针对特殊字段变异困难的问题,研究者们提出了基于动态符号执行或动态污点分析的相关方法来解决。针对模糊测试过程中的盲目性问题,本文提出了基于程序控制流图的覆盖率引导模糊测试。该方法结合了程序静态分析中控制流图分析方法,利用控制流图引导变异的方向。具体的,对于种子文件选取过程的盲目性,使用基于候选节点的选择算子筛选出高质量的种子文件;针对模糊测试对长分支路径变异效率低的问题,提出基于候选节点的变异掩码技术,通过合理利用原种子文件中的有效信息,提高变异结果的质量。实验和测试表明,本文提出的基于程序控制流图的覆盖率引导模糊测试能有效降低变异中的盲目性,提升代码覆盖率和漏洞挖掘能力。