定义
模糊测试是一种自动化软件测试方法,它向系统注入非法、畸形或非预期的输入,以揭示软件缺陷和漏洞。模糊测试工具将这些输入注入系统,然后对诸如崩溃或信息泄漏等异常情况进行监控。更简单地说,模糊测试将意外非预期的输入引入到系统中,以查看系统是否对这些输入产生任何指示安全性、性能或质量差距或问题的负面反应。
模糊测试是一种自动化软件测试方法,它向系统注入非法、畸形或非预期的输入,以揭示软件缺陷和漏洞。模糊测试工具将这些输入注入系统,然后对诸如崩溃或信息泄漏等异常情况进行监控。更简单地说,模糊测试将意外非预期的输入引入到系统中,以查看系统是否对这些输入产生任何指示安全性、性能或质量差距或问题的负面反应。
据 fuzzing.info 所述,Barton Miller 教授在 20 世纪 80 年代提出了“模糊”一词。在风暴期间,Miller 通过拨号网络登录 UNIX 系统,发现信号受到相当大的干扰。干扰最终导致了崩溃。后来,Miller 让他的学生用一个模糊发生器模拟他的经历,用噪音“轰炸” UNIX 系统,看看他们是否会崩溃。
模糊测试的基本前提是将特意构造的畸形输入引入到系统中,以识别故障。模糊测试工具有三个关键组件:“诗人” (poet) 会创建畸形输入或测试用例,“信使” (courier) 将测试用例传送给目标软件,以及“神使” (oracle) 检测目标软件是否存在故障。
该过程从诗人开始,该诗人创建测试用例以在目标软件上进行尝试。测试用例可以是随机的、基于模板演进的或基于模型的。随机模糊测试涉及插入到系统中的随机数据。基于模板演进的模糊测试将异常引入到有效输入中,然后对在初始测试期间系统的行为的反馈加以考虑、处理,以使后续测试有所变化且更有效。基于模型的测试用例则基于对需要测试的协议、文件格式或 API 的理解 — 即测试了解系统的规则。因此,基于模型的模糊测试能够系统地打破所有规则。
接下来,信使传递测试用例。传递方法因要执行的模糊测试类型而有很大差异,但最终目标始终相同:向目标传递测试。
最后,神使确定测试用例是否通过。神使检查目标系统,查看是否已发生任何形式的故障。了解故障至关重要 — 如果没有此信息,测试人员将无法重现故障、检查故障并确定故障修复方法。
模糊测试为安全和质量方案提供了各种优势。
通常,开源的模糊测试工具会带来各种挑战。
Synopsys 业界领先的 Defensics® 模糊测试工具是一款全面的自动化解决方案,可使组织智能地测试其软件,轻松发现并解决未知的漏洞和弱点,同时不影响其产品的安全和质量性能。Defensics 的强大之处在于对协议、文件格式以及网络和目标接口的深入理解,这点使 Defensics 能够应用真正的智能,从而将非功能性测试用例的数量缩减到关键且可管理的少数部分。借助 Defensics,您能够获得所需的模糊测试广度和深度。
Defenics 凭借关键功能引领市场。
基于模型的测试。Defensics 智能测试套件类型涵盖所有技术堆栈和行业以及组织规模。Defensics 采用了业界独有的先进算法,以增加测试覆盖范围并产生高精度的结果。利用 Defences 的基于模型的测试功能,您能够识别和解决传统的和开源的模糊测试工具无法找到的漏洞。Defenics 提供超过 250 个预置协议测试套件,因此您无需创建手工测试。Synopsys 不断为新的输入类型、规范和 RFC 更新可用的测试套件。此外,您还可以利用 Defensics SDK 来支持对私有自定义协议进行测试。它可以定制我们的任何测试套件,数据序列编辑器可以涵盖 Defenics 预定义范围之外的边缘用例。
协议检测覆盖面。Defensics 是为数不多的商用模糊测试工具,具有有效保护软件安全所需的广泛的协议测试范围。Synopsys 支持的协议、接口和 RFC 比市面上的任何工具都多(近 300 个)。作为第一款经过时间检验的商用模糊测试工具,Defensics 拥有丰富的、内置于 Defensics 引擎中的多年安全研究以及实际的安全经验。因此,您可以放心信赖该解决方案。
覆盖面广。物联网和 5G 正在彻底改变许多行业,但这个充满机遇的新世界也带来了适合新型攻击的环境。借助 Defenics,您可以测试使用 5G 和 4G LTE 网络的软件和设备,以识别不恰当的程序处理、无效的完整性保护和不充分的安全性。请参阅我们最近的白皮书,了解 Defensic 如何帮助保护这些新兴技术。