介绍模糊测试(Fuzz Testing,Fuzzing)

article/2025/10/6 0:45:41

介绍模糊测试(Fuzz Testing,Fuzzing)

一、什么是模糊测试?

模糊测试是一种自动或半自动的测试技术,常被用来发现软件/操作系统/网络的代码中的错误和安全性问题,其中用于输入随机的数据和不合法的数据被称为“FUZZ”。之后,系统将被监视各种异常,如系统崩溃或内置代码失败等。

模糊测试最初是由威斯康辛大学的巴顿·米勒于1989年开发的。模糊测试是一种软件测试技术,是安全测试的一种。

在这里插入图片描述

二、为什么要做模糊测试?

  • 通常,模糊测试会发现最严重的的安全错误或缺陷
  • 当与黑箱测试、Beta测试和其他调试方法一起使用时,Fuzz测试会产生更有效的结果。
  • 模糊测试用于检测软件的脆弱性。这是一种非常经济有效的测试技术。
  • 模糊测试是黑盒测试技术之一。模糊是黑客发现系统漏洞最常用的方法之一。

三、如何做模糊测试

模糊测试的步骤包括以下基本的测试步骤:

步骤一:识别目标系统

步骤二:确定输入

步骤三:生成模糊数据

步骤四:使用模糊数据执行测试

步骤五:监控系统的行为

步骤六:记录缺陷

四、模糊工具(Fuzzers)举例

  • Mutation-Based Fuzzers alter existing data samples to create new test data. This is the very simple and straightforward approach, this starts with valid samples of protocol and keeps mangling every byte or file.

  • Generation-Based Fuzzers define new data based on the input of the model. It starts generating input from the scratch based on the specification.

  • PROTOCOL-BASED-fuzzer, 最成功的fuzzer是对正在测试的协议格式有详细的了解。理解取决于规范。它包括在工具中编写一个规范数组,然后使用基于模型的测试生成技术遍历规范并在数据内容、序列等中添加不规则性。这也称为语法测试、语法测试、健壮性测试等。Fuzzer可以从现有的测试用例生成测试用例,也可以使用有效或无效的输入。

主要包含3中不同类型的fuzzer,基于交叉、生成和协议的。

由于部分翻译起来比较生硬,还是英文对比起来比较直观,所以就不翻译了。

protocol-based fuzzing的两个限制:

  • 在规范成熟之前不能进行测试。
  • 许多有用的协议都是已发布协议的扩展。如果fuzz测试基于已发布的规范,则新协议的测试覆盖率将受到限制。

模糊技术最简单的形式是将随机输入作为协议包或事件发送给软件。这种传递随机输入的技术对于发现许多应用程序和服务中的错误非常有用。其他技术也是可用的,并且很容易实现。要实现这些技术,我们只需要更改现有的输入。我们可以通过交换输入的位来改变输入。

五、通过模糊测试检测到的bug类型

  • Assertion failures and memory leaks this methodology is widely used for large applications where bugs are affecting the safety of memory, which is a severe vulnerability.
  • Invalid input In fuzz testing, fuzzers are used to generate an invalid input which is used for testing error-handling routines, and this is important for the software which does not control its input. Simple fuzzing can be known as a way to automate negative testing.
  • Correctness bugs Fuzzing can also be used to detect some types of “correctness” bugs. Such as a corrupted database, poor search results, etc.

总的来说包括了以上3种类型的bug:内存泄漏、非法输入和部分“正确的”bug。

Advantages of Fuzz Testing

  • 提升了软件安全性的测试
  • 模糊测试发现的通常是严重的错误,而且是容易被黑客攻击的错误
  • 模糊测试可以发现那些由于时间和资源限制而无法被测试人员发现的错误

Disadvantages of Fuzz Testing

  • 仅靠模糊测试无法全面了解整个安全威胁或bug。
  • 在处理不会导致程序崩溃的安全威胁时,例如某些病毒、蠕虫、木马等,模糊测试的效率较低。
  • 模糊测试只能检测简单的错误或威胁。
  • 为了有效地执行,这将需要大量的时间。
  • 设置带有随机输入的边值条件是非常有问题的,但是现在使用基于用户输入的确定性算法,大多数测试人员解决了这个问题。

小结

在软件工程中,Fuzz测试显示应用程序中存在bug。模糊不能保证在应用程序中完全检测出bug。但是通过使用Fuzz技术,它确保了应用程序的健壮性和安全性,因为这种技术有助于暴露大多数常见的漏洞。

参考链接:

https://www.guru99.com/fuzz-testing.html


http://chatgpt.dhexx.cn/article/v7TFaZpq.shtml

相关文章

#学习笔记4#软件测试基础——测试阶段划分、黑盒测试的一些知识

今天主要看了以下几个方面的知识点,基本都是纯理论,本文只做知识点总结,具体内容要看转载 1.软件测试阶段划分,分为4个阶段:单元测试、集成测试、系统测试、验收测试 单元测试是方法类的覆盖,主要是由开…

辅助程序实现黑盒自动化测试的常见问题

背景 辅助程序(Accessibility)在大多数机型上具有重启设备后被激活的特性,可以完成Android测试框架(Uiautomator1.0、Uiautomator2.0)无法实现的功能。本文介绍如何搭建辅助程序和如何利用辅助程序进行黑盒测试。并总…

Android 13 Camera ITS 环境搭建(从Python安装到环境配置详解)

Python 版本 根据CameraITS.pdf 以及报错信息提示需要python版本在3.7.9及以上,本次使用的是3.8.10。 Python 安装 1.官方网站下载Python源码 wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz 2.进入到下载路径,解压Python文件 …

黑盒测试常见错误类型说明及解决方法有哪些?

目录 1、用户界面错误 2、遗漏信息 3、错误的、误导的或令人迷惑的信息 1、用户界面错误 功能性 易用性(用户学习使用程序的时间和记住怎样使用程序的时间) 执行速度(多数是启动速度,查询速度,刷新速度及响应速度…

浅析黑盒测试与白盒测试

这里写自定义目录标题 黑盒测试黑盒测试常见的测试:黑盒测试常用的方法:等价类划分:边界值分析:因果图分析法、错误推断法: 白盒测试白盒测试常见的方法: 黑盒测试与白盒测试的优缺点二者的优点二者的缺点 …

卸载symantec杀毒软件

(Get-WmiObject -Class Win32_Product -Filter “Name‘Symantec Endpoint Protection’” -ComputerName . ).Uninstall()

schrodinger 薛定谔安装与卸载

schrodinger 薛定谔安装 Windows 版 百度云 链接:https://pan.baidu.com/s/107a4KMHMvg1vrXTFHnGcWw 提取码:c6t4 安装步骤 download所有压缩包,解压任意一个压缩包即可(压缩包之间是相互关联的)。 进入解压的后的文…

从rookie到基佬~009:无密码卸载Symantec

今天是变直小技巧 今日份洗脑:无密码情况下卸载Symantec(赛门铁克) 结论:赛门铁克的服务一旦启动,怎么卸载都需要密码,反过来说,你不让他启动,他就是待宰的羔羊。 坐标国内某企业…

赛门铁克下载

Symantec(赛门铁克)杀毒软件,包括Symantec AntiVirus即SAV系列,Symantec Client Security即SCS系列,以及Symantec Endpoint Protection即SEP系列,都是专门为企业级用户定制的。这3套Symantec杀毒软件均包括…

Symantex Endpoint Protection赛门铁克杀毒软件安装

一、交付邮件 目前软件交付基本都是通过邮件进行。杀毒软件交付邮件中附件包含序列号以及购买产品信息。 二、官网软件下载 在右键中点击“Download Today”跳转下载页面(吐槽:交互很差劲) 登录网站:https://support.broadcom.…

如何卸载赛门铁克(Symantec)企业防病毒客户端软件SEP(Symantec Endpoint Protection)?

本文分三个部分介绍如何卸载赛门铁克(Symantec)企业防病毒客户端软件SEP的Windows版本,Linux版本和MacOS版本。 1 卸载SEP for Windows 版本 SEP for Windows版本卸载使用传统办法 -- 通过Windows控制面板卸载是比较容易出问题的&#xff0…

赛门铁克管理密码忘记卸载工具

链接: https://pan.baidu.com/s/1zoolODBkK_ytHh4gPvHFxw?pwd2eea 提取码: 2eea 复制这段内容后打开百度网盘手机App,操作更方便哦 卸载工具已附上 1、安装步骤简单,不多解释。 工具安装到此步骤就可以看到卸载的进度。

MAC卸载赛门铁克

使用 RemoveSymantecMacFiles 卸载适用于 Mac 操作系统的赛门铁克软件 TECH103489 Last Updated August 17, 2018 Situation 您需要卸载安装在 Mac OS X 中适用于 Macintosh 的赛门铁克产品。您已尝试过多种方法(包括手动卸载或运行 Symantec Uninstaller&#x…

赛门铁克symantec的安装与卸载-附下载地址(本人亲测)

赛门铁克symantec的安装与卸载 下载地址 1:英文版下载地址 https://www.jb51.net/softs/398259.html 2:中文版下载地址(包含卸载工具) 链接:https://pan.baidu.com/s/1Naes0tUtnJRwAhI5GZ_eYw 提取码:7r2h 一:安装 二:赛门铁克的卸载 1:window卸载…

赛门铁克symantec 卸载需要密码解决方法

1、赛门铁克卸载的时候需要密码,但是不知道密码是什么,试过网上提供的方式怎么尝试都卸载不了,而且提供的卸载器都不是最新的,版本不对就卸载不了 2、赛门铁克卸载需要一个下载工具,官方其实提供了一个卸载文件的下载地…

Symantec赛门铁克安全软件免密卸载方式

装了Symantec后,后面希望卸载他,结果发现卸载需要卸载口令,查了一堆资料,总结有如下几种: 1、卸载口令可能是symantec,反正没成本可以简单试试看。不过我是没有通过,这个口令不对我的Symantec。…

PhotoShop CS6 安装及破解

转载https://blog.csdn.net/danmeng8068/article/details/81407672 软件资源及安装教程参考此贴:http://tieba.baidu.com/p/2742847351?pn1 一、软件下载: http://pan.baidu.com/s/1nv2FaYH 二、安装步骤:

Photoshop2019 安装破解

PS2019安装破解 百度云地址:https://pan.baidu.com/s/1bYC2orWy9pC7XSsPHG5nVQ 提取码:jk1t 安装步骤: 1.解压并安装 2.注册 3.注册完,自动安装,等好长时间… 4.安装完成后会自动打开,关闭就行,关闭后去找程序安装位置 5.将破解文件覆盖过去(以管理员方式) 6.…

PhotoShopCS6安装及其破解【带资源免费】

单机版,断网操作 链接:https://pan.baidu.com/s/1X4OuxiAPvUJZYU2wP9SQvg 提取码:0rug 文后还有其他资源 安装说明: 先解压,Adobe CS6中,Set-up.exe;点击试用;若是忘记断网&am…

ps cs6安装教程

卸载原安装 假如原电脑已有了ps,但是出了问题的,首先要卸载原程序以及原文件 在计算机中点击"卸载或更改程序"(或者在控制面板进入程序与功能),在已安装的程序中找到原来的ps的残留文件 下载新的ps cs6版本 下载链接:链接:https://pan.baidu.com/s/…