Abstract
安全漏洞是网络安全威胁的根源之一。 为了发现漏洞并提前修复它们,研究人员提出了几种技术,其中模糊测试是最广泛使用的技术。 近年来,像AFL这样的模糊测试解决方案在漏洞发现方面取得了很大的进步。 本文概述了最近的进展,分析了它们如何改进模糊测试过程,并阐明了模糊测试的未来工作。 首先,我们通过比较不同的常用漏洞发现技术,讨论模糊测试流行的原因。 然后,我们概述了模糊测试解决方案,并详细讨论了一种最流行的模糊测试方法,即基于覆盖率的模糊测试。 然后,我们提出了其他技术,可以使模糊过程更智能,更高效。 最后,我们展示了一些模糊测试的应用,并讨论了模糊测试的新趋势和未来的潜在方向。
Introduction
Background
Static analysis
静态分析是对在没有实际执行程序的情况下执行的程序的分析。相反,静态分析通常在源代码上执行,有时也在目标代码上执行。通过对词汇,语法,语义特征和数据流分析的分析,模型检查,静态分析可以检测隐藏的错误。
静态分析的优点是检测速度快。
静态分析在实践中承受高错误率。由于缺乏易于使用的漏洞检测模型,静态分析工具容易出现大量误报。
Dynamic analysis
与静态分析相比,在程序的动态分析中,分析师需要在真实系统或仿真器中执行目标程序(Wikipedia 2017)。
动态分析的优点是精度高。