利用 Munch 提升函数覆盖率:一种模糊测试与定向符号执行混合方法
软件工程
2017-12-13 v2
摘要
模糊测试和符号执行是发现程序漏洞和生成测试用例的常用技术。模糊测试是一种对种子输入值进行变异的黑盒方法,通常无法生成覆盖程序中所有路径的多样化输入。由于路径爆炸问题以及对 SMT 求解器的依赖,符号执行也可能无法达到较高的路径覆盖率。结合模糊测试和符号执行的混合技术可能比单独使用模糊测试或符号执行实现更好的函数覆盖率。在本文中,我们提出 Munch,一个实现基于模糊测试和符号执行的两种混合技术的开源框架。我们使用九个大型开源程序实证表明,总体而言,Munch 比单独的符号执行或模糊测试实现了更高的(深层次)函数覆盖率。基于总分析时间和向 SMT 求解器发出查询次数的指标,我们还表明 Munch 在达到更好函数覆盖率方面更高效。
引用
@article{arxiv.1711.09362,
title = {Improving Function Coverage with Munch: A Hybrid Fuzzing and Directed Symbolic Execution Approach},
author = {Saahil Ognawala and Thomas Hutzelmann and Eirini Psallida and Alexander Pretschner},
journal= {arXiv preprint arXiv:1711.09362},
year = {2017}
}
备注
To appear at 33rd ACM/SIGAPP Symposium On Applied Computing (SAC). To be held from 9th to 13th April, 2018