什么是模糊测试(Fuzz Testing)?

admin 2022年3月31日00:14:32评论856 views字数 993阅读3分18秒阅读模式

Fuzz testing 或 Fuzzing 是一种黑盒软件测试技术,它基本上包括在自动化任务中使用格式错误/半格式错误的数据注入来查找实现错误。
什么是模糊测试(Fuzz Testing)?这种分析是一种软件测试技术,开发人员和渗透测试人员使用该技术来针对意外、无效和随机的数据输入集测试他们的应用程序。然后将根据应用程序抛出的异常或崩溃来注意到响应。此活动向我们展示了应用程序中的一些主要漏洞,否则无法发现这些漏洞。这些包括缓冲区溢出、格式字符串、代码注入、悬空指针、竞争条件、拒绝服务条件和许多其他类型的漏洞。
模糊分析是一种相对简单而有效的解决方案,可以纳入质量保证和安全测试过程。这就是为什么模糊分析有时也称为稳健性测试或否定测试的原因。

Fuzzing 的历史
1989 年,威斯康星大学麦迪逊分校的 Barton Miller 教授和学生们开发了经典的模糊测试。他们(继续)的工作可以在这里找到。它主要面向命令行和 UI 模糊测试,表明现代操作系统甚至容易受到简单模糊测试的影响。

Fuzzing 中的攻击类型
通常Fuzzer(用于模糊测试的程序)会尝试对以下攻击组合:

数字(有符号/无符号整数/浮点数等)。
字符(url,命令行输入)。
元数据:用户输入文本(id3 标签)。
纯二进制序列。



模糊测试的一种常见方法是为每种类型定义“已知危险值”(模糊向量)列表,并将它们注入或重新组合。

对于整数:零,可能是负数或非常大的数字。
对于字符:转义的、可解释的字符/指令(例如:对于 SQL 请求、引号/命令等)。
对于二进制:随机的。
对于字符:转义的、可解释的字符/指令(例如:对于 SQL 请求、引号/命令等)。



Kali Linux 中有不同类别的 fuzzer,可用于测试文件格式、网络协议、命令行输入、环境变量和 Web 应用程序。任何不可信的数据输入源都被认为是不安全和不一致的。例如,应用程序和 Internet 用户之间的信任边界是不可预测的。因此,所有数据输入都应该针对已知和未知的漏洞进行模糊测试和验证。

为什么 Fuzzing 在安全测试中很重要?
模糊测试的目的是基于每个程序中都有等待被发现的错误的假设。然后,系统的方法迟早会找到它们。
Fuzzing 可以为经典软件测试技术(手动代码审查、调试)增加另一个视角,因为它是非人类方法。由于实施该程序所需的工作有限,它不会取代它们,而是一个合理的补充。


原文始发于微信公众号(网安之道):什么是模糊测试(Fuzz Testing)?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月31日00:14:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   什么是模糊测试(Fuzz Testing)?https://cn-sec.com/archives/856924.html

发表评论

匿名网友 填写信息