经典模糊测试的相关性:我们是否已经解决了这一问题?
软件工程
2021-01-05 v2
摘要
随着模糊测试走过其30周年,面对模糊测试技术与工具令人难以置信的进展,一个问题随之产生:经典、基础的模糊技术是否仍然有用且适用?秉承该传统,我们更新了基础模糊工具和测试脚本,并将其应用于Linux、FreeBSD和MacOS上大量Unix实用程序。与之前一样,我们的失败标准是程序是否崩溃或挂起。我们发现,Linux上74个实用程序中有9个崩溃或挂起,FreeBSD上78个中有15个,MacOS上76个中有12个。三个平台上一共有24个不同的实用程序失败。我们注意到,这些失败率略高于我们此前在1995年、2000年和2006年对命令行实用程序可靠性的研究。按照基础模糊测试的传统,我们对每个失败的实用程序进行了调试,并对失败原因进行了分类。诸如指针和数组错误以及未检查返回码等经典失败类别在当前结果中仍然广泛存在。此外,我们发现了几个新出现的失败类别。我们给出了这些失败的示例,以说明导致其发生的编程实践。作为附带说明,我们测试了以现代编程语言(Rust)编写的有限数量的实用程序,发现其可靠性并不比标准实用程序更好。
引用
@article{arxiv.2008.06537,
title = {The Relevance of Classic Fuzz Testing: Have We Solved This One?},
author = {Barton P. Miller and Mengxiao Zhang and Elisa R. Heymann},
journal= {arXiv preprint arXiv:2008.06537},
year = {2021}
}