"本文主要探讨了模糊测试技术的发展和一种基于校验和感知的模糊测试方法,该方法针对一维条形码检测,并在MATLAB环境下实现。文章介绍了模糊测试的起源,由B. P. Miller教授在1980年代提出,其简单而有效的随机数据测试方法揭示了大量软件漏洞。尽管初期受到质疑,模糊测试已成为动态软件安全漏洞挖掘的关键手段。然而,传统的模糊测试在面对包含校验和机制的数据格式时效率低下。为解决这个问题,本文首次提出校验和感知的模糊测试技术,旨在绕过校验和机制,扩大模糊测试的应用领域。文章详细阐述了这种方法的原理、实现和实验结果,同时讨论了其局限性和潜在的应用场景。"
模糊测试技术是一种动态的软件安全测试方法,通过输入随机或半随机的无效数据(通常称为“模糊输入”)来探测软件的异常行为,从而发现潜在的安全漏洞。这种方法起源于1988年,由B. P. Miller教授提出,他使用无结构化的数据测试Unix系统,成功引起了约三分之一应用程序的崩溃。模糊测试在后续对X-window、Windows和MacOS等系统进行的测试中也揭示了大量的安全漏洞。
然而,传统的模糊测试面临一个主要障碍,即数据完整性检查(如校验和)会阻止无效输入到达软件的深层逻辑,这限制了其查找深层漏洞的能力。为克服这一难题,本文提出的校验和感知的模糊测试技术,旨在理解和处理这些校验和机制,使得测试数据能够通过校验,进一步深入到软件的内部,提高漏洞发现的效率。
本文的贡献在于首次提出了校验和感知的概念,通过这种方式,模糊测试可以有效地应用于那些包含校验和检查的复杂数据格式,如一维条形码检测。这种方法的实现涉及对校验和计算的理解和逆向工程,以生成能够通过校验的模糊输入。实验结果显示,这种方法能够有效地发现和测试原本难以触及的软件部分,但同时也指出它可能存在局限性,比如对于某些特定的复杂格式可能效果有限。
此外,文章还对比了静态和动态漏洞挖掘技术,强调了动态模糊测试的低误报率和依赖于测试数据生成的特性,以及静态分析的高误报率和路径组合爆炸的问题。静态漏洞挖掘主要依赖于源代码,而动态模糊测试则直接作用于二进制程序,对于不提供源代码或编译引入漏洞的情况更为重要。
本文的校验和感知模糊测试技术为二进制程序的安全漏洞挖掘提供了一个新的思路,有助于提升安全测试的深度和广度,为软件安全领域带来了新的研究方向。尽管存在挑战,但这种方法的潜力在于能够更全面地检测和预防软件安全漏洞,对保障网络安全具有重要意义。