对模糊测试发现的污点型漏洞的静态探索
密码学与安全
2017-06-02 v1 编程语言
软件工程
摘要
污点型漏洞构成了模糊测试器所发现程序故障的大部分。这些漏洞通常表现为由受污染的程序输入引发的内存访问违规。尽管模糊测试器迄今已帮助发现了软件中的大多数污点型漏洞,但它们受限于(i)测试覆盖的范围;以及(ii)可模糊测试用例的可用性。因此,仅靠模糊测试无法提供所有污点型漏洞均已被发现的高保证度。本文中,我们使用静态模板匹配来寻找模糊测试器已发现漏洞的复现。为弥补模板匹配固有的不完备性,我们实现了一种简单而有效的匹配排序算法,该算法利用测试覆盖率数据将注意力集中在那些包含未测试代码的匹配上。我们使用Clang/LLVM编译器工具链原型化了我们的方法,并将其与现代覆盖率引导的模糊测试器afl-fuzz结合使用。通过在Open vSwitch代码库上进行的案例研究,我们展示了我们的原型能够发现缺乏可模糊测试驱动模块中的边界情况。我们的工作表明,静态分析可以有效补充模糊测试,是安全评估工具集的有益补充。此外,我们的技术有望提高程序分析和测试的有效性,并可作为混合漏洞发现框架的构建模块。
引用
@article{arxiv.1706.00206,
title = {Static Exploration of Taint-Style Vulnerabilities Found by Fuzzing},
author = {Bhargava Shastry and Federico Maggi and Fabian Yamaguchi and Konrad Rieck and Jean-Pierre Seifert},
journal= {arXiv preprint arXiv:1706.00206},
year = {2017}
}
备注
10 pages excl. bibliography