每周一书-《模糊测试-强制发掘安全漏洞的利器》

首先说明,本周活动有效时间为2016年9月26日到2016年10月9日。本周为大家送出的书是由电子工业出版社出版,段念,赵勇翻译的《模糊测试-强制发掘安全漏洞的利器》。

 

在介绍这本书之前,首先要感谢微信号为:631682315(FEIYU)同学赠送给玄魂工作室的内容读者的。

前言/序言

在图上可以看到,FEIYU同学正在招聘代码审计,感兴趣的读者可以直接加他的微信号,了解招聘需求。

下面我们来看看,这本书的简介。

 《模糊测试:强制发掘安全漏洞的利器》是一本系统性描述模糊测试的专著,介绍了主要操作系统和主流应用类型的模糊测试方法,系统地描述了方法和工具,并使用实际案例帮助读者建立直观的认识。随着软件安全性问题变得越来越关键,传统的仅由组织内的少数安全专家负责安全的模式正受到越来越多的挑战。模糊测试是一种能够降低安全性测试门槛的方法,它通过高度自动化的手段让组织的开发和测试团队都能参与到安全性测试中,并能够通过启发式等方法不断积累安全测试的经验,帮助组织建立更有效的面向安全性的开发流程。

作者简介

Micheal SuttonSPI Dynamics的安全性专业顾问(Security Evangelist)。作为安全性专业顾问,Michael负责识别、研究及提出Web应用安全性历史上出现的问题。他经常在主要的信息安全会议上演讲,写作了大量文章,并在多种信息安全主题中被引用。Michael同时也是Web 应用安全性协会(Web Application Security ConsortiumWASC)的会员,领导着Web应用安全性统计项目。
  在加入SPI Dynamics之前,MichaeliDefense/VeriSign的总监,领导iDefense Labs这个世界级的研究团队,该团队的目标是发现和研究安全性漏洞。Michael还在百慕大建立了为安永服务的信息系统保证和咨询服务(Information System Assurance and Advisory ServicesISAAS)。Michael拥有阿尔伯塔大学和乔治华盛顿大学的学位。
Michael是一个骄傲的加拿大人,在他看来,曲棍球是一种信仰而不只是一种运动。在工作之外,Micheal还是Fairfax志愿救火部门的一名士官。
Adam Greene是某大金融新闻公司的工程师,公司位于纽约。在加入这家公司之前,AdamiDefense的工程师,iDefense是位于弗吉尼亚州雷斯顿城的一家智能公司。Adam在计算机安全性方面的兴趣主要在于可信利用(reliable exploitation)方法、模糊测试,以及开发基于UNIX系统的利用漏洞的工具。
Pedram Amini目前领导着TippingPoint的安全研究和产品安全评估团队,在此之前,他是iDefense Labes的助理总监和创始人之一。顶着助理总监这个奇怪的头衔,Pedram在逆向工程的基础方面投入了相当多的时间——开发自动化工具、插件及脚本。他最近的项目(也叫“Babies”)包括PaiMei逆向工程框架和Sulley模糊测试框架。
  出于热情,Pedram创建了OpenRCE.org,一个专注于逆向工程的艺术和科学的社区网站。他在REConBlackHatDefConShmooConToorCon上都进行过演讲,并教授了多次逆向工程课程。Pedram拥有杜兰大学的计算机科学学位。

 

目录

译者序
前言
原书序
致谢
关于作者
第一部分基础知识
1安全漏洞发现方法学
1.1 
白盒测试
1.1.1 
代码评审(Source Code Review
1.1.2 
工具与自动化
1.1.3 
优点和缺点
1.2 
黑盒测试
1.2.1 
手工测试
1.2.2 
自动化测试或模糊测试
1.2.3 
优点和缺点
1.3 
灰盒测试
1.3.1 
二进制审计
1.3.2 
自动化的二进制审计
1.3.3 
优点和缺点
1.4 
小结
2什么是模糊测试
2.1 
模糊测试的定义
2.2 
模糊测试的历史
2.3 
模糊测试各阶段
2.4 
模糊测试的局限性和期望
2.4.1 
访问控制漏洞
2.4.2 
糟糕的设计逻辑
2.4.3 
后门
2.4.4 
破坏
2.4.5 
多阶段安全漏洞(MuliStage Vulnerability
2.5 
小结
3模糊测试方法与模糊测试器类型
3.1 
模糊测试方法
3.1.1 
预生成测试用例
3.1.2 
随机生成输入
3.1.3 
手工协议变异测试
3.1.4 
变异或强制性测试
3.1.5 
自动协议生成测试
3.2 
模糊测试器类型
3.2.1 
本地模糊器
3.2.2 
远程模糊测试器
3.2.3 
内存模糊测试器
3.2.4 
模糊测试器框架
3.3 
小结
4数据表示和分析
4.1 
什么是协议
4.2 
协议中的域
4.3 
简单文本协议(Plain Text Protocols
4.4 
二进制协议
4.5 
网络协议
4.6 
文件格式
4.7 
常用协议元素
4.7.1 
名字-值对
4.7.2 
块识别符
4.7.3 
块大小
4.7.4 
校验和
4.8 
小结
5有效模糊测试的需求
5.1 
可重现性与文档
5.2 
可重用性
5.3 
过程状态和过程深度
5.4 
跟踪、代码覆盖和度量
5.5 
错误检测
5.6 
资源约束
5.7 
小结
第二部分目标与自动化
6自动化与数据生成
6.1 
自动化的价值
6.2 
有用的工具和库
6.2.1 ETHEREAL/WIRESHARK
6.2.2 LIBDASM
LIBDISASM
6.2.3 LIBNET/LIBNETNT
6.2.4 LIBPCAP
6.2.5 METRO PACKET LIBRARY
6.2.6 PTRACE
6.2.7 PYTHON
扩展
6.3 
编程语言的选择
6.4 
数据生成与启发式模糊测试(Fuzz Heuristics
6.4.1 
整数值
6.4.2 
字符串重复(String Repetitions
6.4.3 
字段分隔符
6.4.4 
格式化字符串
6.4.5 
字符翻译
6.4.6 
目录遍历
6.4.7 
命令注入
6.5 
小结
7环境变量与参数模糊测试
7.1 
本地模糊测试介绍
7.1.1 
命令行参数
7.1.2 
环境变量
7.2 
本地模糊测试原则
7.3 
寻找测试目标
7.3.1 UNIX
文件权限释义
7.4 
本地模糊测试方法
7.5 
枚举环境变量
7.5.1 GNU
调试器(GNU DebugGDB)法
7.6 
自动化的环境变量模糊测试
7.6.1 
库预加载(Library Preloading
7.7 
检测问题
7.8 
小结
8自动化的环境变量与参数模糊测试
8.1 iFUZZ
本地模糊测试器的功能
8.2 
开发iFUZZ工具
8.2.1 
开发方法
8.3 iFUZZ
使用的编程语言
8.4 
案例研究
8.5 
好处和改进的余地
8.6 
小结
9 Web应用与服务器模糊测试
9.1 
什么是Web应用模糊测试
9.2 
测试目标
9.3 
测试方法
9.3.1 
设置目标环境
9.3.2 
输入
9.4 
漏洞
9.5 
异常检测
9.6 
小结
10 Web应用和服务器的自动化模糊测试
10.1 Web
应用模糊测试器
10.2 
特性
10.2.1 
请求
10.2.2 
模糊变量
10.2.3 
响应
10.3 
必需的背景信息
10.3.1 
识别请求
10.3.2 
检测
10.4 
开发
10.4.1 
方法
10.4.2 
选择编程语言
10.4.3 
设计
10.5 
案例研究
10.5.1 
目录遍历(Directory Traversal
10.5.2 
溢出
10.5.3 SQL
注入
10.5.4 XSS
脚本
10.6 
优点和可改进的空间
10.7 
小结
11文件格式模糊测试
11.1 
目标
11.2 
方法
11.2.1 
强制或是基于变异的模糊测试
11.2.2 
智能强制或基于生成的模糊测试
11.3 
输入
11.4 
安全漏洞
11.4.1 
拒绝服务(Daniel of ServiceDoS
11.4.2 
整数处理问题
11.4.3 
简单的栈和堆溢出
11.4.4 
逻辑错误
11.4.5 
格式字符串
11.4.6 
竞争条件(Race Condition
11.5 
检测
11.6 
小结
12 UNIX平台上的文件格式自动化模糊测试
12.1 notSPIKEfile
SPIKEfile
12.1.1
 不包含的功能
12.2 
开发过程
12.2.1 
异常监测引擎
12.2.2 
异常报告(异常监测)
12.2.3 
核心模糊测试引擎
12.3 
有意义的代码片段
12.3.1 UNIX
中常见的我们可能感兴趣的信号
12.3.2 
不那么感兴趣的信号
12.4 
僵尸进程(Zombie Process
12.5 
使用注意事项
12.5.1 Adobe Acrobat
12.5.2 RealNetworks RealPlayer
12.6 
案例研究:RealPlayer RealPix格式字符串漏洞
12.7 
开发语言
12.8 
小结
13 Windows平台上的文件格式自动化模糊测试
13.1 Windows
文件格式漏洞
13.2 FileFuzz
工具的功能
13.2.1 
创建文件
13.2.2 
执行应用
13.2.3 
异常检测
13.2.4 
保存好的审计(audit
13.3 
必需的背景信息
13.3.1 
识别目标应用
13.4 FileFuzz
工具的开发
13.4.1 
开发方法
13.4.2 
开发语言选择
13.4.3 
设计
13.5 
案例研究
13.6 
收益和改进空间
13.7 
小结
14网络协议的模糊测试
14.1 
什么是网络协议的模糊测试
14.2 
测试目标应用
14.2.1 
第二层:数据链接层
14.2.2 
第三层:网络层
14.2.3 
第四层:传输层
14.2.4 
第五层:会话层
14.2.5 
第六层:表示层
14.2.6 
第七层:应用层
14.3 
测试方法
14.3.1 
强制(基于变异的)模糊测试
14.3.2 
智能强制(基于生成的)模糊测试
14.3.3 
通过修改客户端进行变异模糊测试
14.4 
错误检测
14.4.1 
手工方式(基于调试器)
14.4.2 
自动化方式(基于代理)
14.4.3 
其他来源
14.5 
小结
15 UNIX平台上的自动化网络协议模糊测试
15.1 
使用SPIKE进行模糊测试
15.1.1 
选择目标
15.1.2 
协议分析
15.2 SPIKE
必要知识
15.2.1 
模糊引擎
15.2.2 
基于行的通用TCP模糊测试器
15.3 
基于块的协议模型
15.4 
其他的SPIKE特性
15.4.1 
针对协议的模糊测试器
15.4.2 
针对协议的模糊测试脚本
15.4.3 
基于脚本的通用模糊测试器
15.5 
编写SPIKE NMAP模糊测试器脚本
15.6 
小结
16 Windows平台上

 

模糊测试是发现未知漏洞的艺术,是安全测试的进阶技术,是必知必会的知识。

下面关键来了,如果你心动了,如何得到本书呢?

1.在本篇文章下面留言,谈谈你对模糊测试的认识,理解,感悟或者有趣的故事和想法

2.让你的朋友帮助给你的留言点赞

3.如果你的感悟或者故事很精彩,可以投稿给我们。

评选标准:

1.点赞数最高的留言者,会获得本书

2.如果你有和本书内容相关的投稿,如果被采纳,在订阅号发布,本书优先奖励给你。

3.同时有多人投稿的话,回到第1条。

微信扫描下发二维码,关注订阅号,回复“每周一书”,了解最新的运行情况,最近的送书小活动,获取书籍的方法都在文章里面。

  每周一书,总有一本是你喜欢的。

玄魂工作室-只关注程序员

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 作者序 译者序 前 言 第一部分 第1章 安全漏洞发掘方法学 1.1 白盒测试 1.1.1 源代码评审 1.1.2 工具和自动化 1.1.3 优点和缺点 1.2 黑盒测试 1.2.1 人工测试 1.2.2 自动测试模糊测试 1.2.3 优点和缺点 1.3 灰盒测试 1.3.1 二进制审核 1.3.2 自动化的二进制审核 1.3.3 优点和缺点 1.4 小结 1.5 脚注 第2章 什么是模糊测试 2.1 模糊测试的定义 2.2 模糊测试的历史 2.3 模糊测试阶段 2.4 模糊测试的局限性和期望 2.4.1 访问控制缺陷 2.4.2 设计逻辑不良 2.4.3 后门 2.4.4 内存破坏 2.4.5 多阶段安全漏洞 2.5 小结 第3章 模糊测试方法和模糊器类型 3.1 模糊测试方法 3.1.1 预先生成测试用例 3.1.2 随机方法 3.1.3 协议变异人工测试 3.1.4 变异或强制测试 3.1.5 自动协议生成测试 3.2 模糊器类型 3.2.1 本地模糊器 3.2.2 远程模糊器 3.2.3 内存模糊器 3.2.4 模糊器框架 3.3 小结 第4章 数据表示和分析 4.1 什么是协议 4.2 协议域 4.3 简单文本协议 4.4 二进制协议 4.5 网络协议 4.6 文件格式 4.7 常见的协议元素 4.7.1 名字-值对 4.7.2 块标识符 4.7.3 块长度 4.7.4 校验和 4.8 小结 第5章 有效模糊测试的需求 5.1 可重现性和文档记录 5.2 可重用性 5.3 过程状态和过程深度 5.4 跟踪、代码覆盖和度量 5.5 错误检测 5.6 资源约束 5.7 小结 第二部分 第6章 自动化测试测试数据生成 6.1 自动化测试的价值 6.2 有用的工具和库 6.2.1ETHEREAL /WIRESHARK 6.2.2LIBDASM 和LIBDISASM 6.2.3LIBNET /LIBNETNT 6.2.4LIBPCAP 6.2.5METRO PACKET LIBRARY 6.2.6PTRACE 6.2.7PYTHON EXTENSIONS 6.3 编程语言的选择 6.4 测试数据生成和模糊启发式 6.4.1 整型值 6.4.2 字符串重复 6.4.3 字段分隔符 6.4.4 格式化字符串 6.4.5 字符翻译 6.4.6 目录遍历 6.5 小结 第7章 环境变量和参数的模糊测试 7.1 本地化模糊测试介绍 7.1.1 命令行参数 7.1.2 环境变量 7.2 本地化模糊测试准则 7.3 寻找目标程序 7.4 本地化模糊测试方法 7.5 枚举环境变量 7.6 自动化的环境变量测试 7.7 检测问题 7.8 小结 第8章 环境变量和参数的模糊测试:自动化 8.1 iFUZZ本地化模糊器的特性 8.2 iFUZZ的开发 8.3 iFUZZ的开发语言 8.4 实例研究 8.5 益处和改进的余地 8.6 小结 第9章 Web应用程序和服务器模糊测试 9.1 什么是Web应用程序模糊测试 9.2 目标应用 9.3 测试方法 9.3.1 建立目标环境 9.3.2 输入 9.4 漏洞 9.5 异常检测 9.6 小结 第10章 Web应用程序和服务器的模糊测试:自动化 10.1 Web应用模糊器 10.2 WebFuzz的特性 10.2.1 请求 10.2.2 模糊变量 10.2.3 响应 10.3 必要的背景知识 10.3.1 识别请求 10.3.2 漏洞检测 10.4 WebFuzz的开发 10.4.1 开发方法 10.4.2 开发语言的选择 10.4.3 设计 10.5 实例研究 10.5.1 目录遍历 10.5.2 溢出 10.5.3 SQL注入 10.5.4 XSS脚本 10.6 益处和改进的余地 10.7 小结 第11章 文件格式模糊测试 11.1 目标应用 11.2 方法 11.2.1 强制性或基于变异的模糊测试 11.2.2 智能强制性或基于生成的模糊测试 11.3 输入 11.4 漏洞 11.4.1 拒绝服务 11.4.2 整数处理问题 11.4.3 简单的栈和堆溢出 11.4.4 逻辑错误 11.4.5 格式化字符串 11.4.6 竞争条件 11.5 漏洞检测 11.6 小结 第12章 文件格式模糊测试:UNIX平台上的自动化测试 12.1 NOTSPIKEFILE和SPIKEFILE 12.2 开发方法 12.2.1 异常检测引擎 12.2.2 异常报告(异常检测) 12.2.3 核心模糊测试引擎 12.3 有意义的代码片段 12.3.1 通常感兴趣的UNIX信号 12.3.2 不太感兴趣的UNIX信号 12.4 僵死进程 12.5 使用的注意事项 12.5.1 ADOBE ACROBAT 12.5.2 REALNETWORKS REALPLAYRE 12.6 实例研究:REALPLAYER REALPIX格式化字符串漏洞 12.7 语言 12.8 小结 第13章 文件格式模糊测试:Windows平台上的自动化测试 13.1 Windows文件格式漏洞 13.2 FileFuzz的特性 13.2.1 创建文件 13.2.2 应用程序执行 13.2.3 异常检测 13.2.4 保存的审核 13.3 必要的背景知识 13.4 FileFuzz的开发 13.4.1 开发方法 13.4.2 开发语言的选择 13.4.3 设计 13.5 实例研究 13.6益处和改进的余地 13.7 小结 第14章 网络协议模糊测试 14.1 什么是网络协议模糊测试 14.2 目标应用 14.2.1APPLEGATE 14.2.2 网络层 14.2.3 传输层 14.2.4 会话层 14.2.5 表示层 14.2.6 应用层 14.3 测试方法 14.3.1强制性或基于变异的模糊测试 14.3.2 智能强制模糊测试和基于生成的模糊测试 14.3.3 修改的客户端变异模糊测试 14.4 错误检测 14.4.1 人工方法(基于调试器) 14.4.2 自动化方法(基于代理) 14.4.3 其它方法 14.5 小结 第15章 网络协议模糊测试:UNIX平台上的自动化测试 15.1 使用SPIKE进行模糊测试 15.1.1 选择测试目标 15.1.2 协议逆向工程 15.2 SPIKE 101 15.2.1 模糊测试引擎 15.2.2 通用的基于行的TCP模糊器 15.3 基于块的协议建模 15.4 SPIKE的额外特性 15.4.1 特定于协议的模糊器 15.4.2 特定于协议的模糊测试脚本 15.4.3 通用的基于脚本的模糊器 15.5 编写SPIKE NMAP模糊器脚本 15.6 小结 第16章 网络协议模糊测试:Windows平台上的自动化测试 16.1 ProtoFuzz的特性 16.1.1 包结构 16.1.2 捕获数据 16.1.3 解析数据 16.1.4 模糊变量 16.1.5 发送数据 16.2 必要的背景知识 16.2.1 错误检测 16.2.2 协议驱动程序 16.3 ProtoFuzz的开发 16.3.1 开发语言的选择 16.3.2 包捕获库 16.3.3 设计 16.4 实例研究 16.5 益处和改进的余地 16.6 小结 第17章 Web浏览器模糊测试 17.1 什么是Web浏览器模糊测试 17.2 目标 17.3 方法 17.3.1 测试方法 17.3.2 输入 17.4 漏洞 17.5 错误检测 17.6 小结 第18章 Web浏览器的模糊测试:自动化 18.1 组件对象模型的背景知识 18.1.1 在Nutshell中的发展历史 18.1.2 对象和接口 18.1.3 ActiveX 18.2 模糊器的开发 18.2.1 枚举可加载的ActiveX控件 18.2.2 属性,方法,参数和类型 18.2.3 模糊测试和监视 18.3 小结 第19章 内存数据的模糊测试 19.1 内存数据模糊测试的概念及实施该测试的原因 19.2 必需的背景知识 19.3 究竟什么是内存数据模糊测试 19.4 目标 19.5 方法:变异循环插入 19.6 方法:快照恢复变异 19.7 测试速度和处理深度 19.8 错误检测 19.9 小结 第20章 内存数据的模糊测试:自动化 20.1 所需要的特性集 20.2 开发语言的选择 20.3 Windows调试API 20.4 将其整合在一起 20.4.1如何实现在特定点将"钩子"植入目标进程的需求 20.4.2如何来处理进程快照和恢复 20.4.3如何来选择植入钩子的点 20.4.4如何对目标内存空间进行定位和变异 20.5你的新的最好的朋友PYDBG 20.6 一个构想的示例 20.7 小结 第三部分 第21章 模糊测试框架 21.1 模糊测试框架的概念 21.2 现有框架 21.2.1 ANTIPARSER 21.2.2 DFUZ 21.2.3 SPIKE 21.2.4 PEACH 21.2.5 通用模糊器(General Purpose Fuzzer) 21.2.6 AUTODAF? 21.3 定制模糊器的实例研究:SHOCKWAVE FLASH 21.3.1 SWF文件的建模 21.3.2 生成有效的数据 21.3.3 对环境进行模糊测试 21.3.4 测试方法 21.4模糊测试框架SULLEY 21.4.1 SULLEY目录结构 21.4.2 数据表示 21.4.3 会话 21.4.4 21.4.5 一个完整的实例分析 21.5 小结 第22章 自动化协议解析 22.1 模糊测试存在的问题是什么 22.2 启发式技术 22.2.1 代理模糊测试 22.2.2 改进的代理模糊测试 22.2.3 反汇编启发式规则 22.3 生物信息学 22.4 遗传算法 22.5 小结 第23章 模糊器跟踪 23.1 我们究竟想要跟踪什么 23.2 二进制代码可视化和基本块 23.2.1 CFG 23.2.2 CFG示例 23.3 构造一个模糊器跟踪器 23.3.1 刻画目标特征 23.3.2 跟踪 23.3.3 交叉引用 23.4 对一个代码覆盖工具的分析 23.4.1 PSTALKER设计概览 23.4.2 数据源 23.4.3 数据探查 23.4.4 数据捕获 23.4.5局限性 23.4.6 数据存储 23.5 实例研究 23.5.1 测试策略 23.5.2 测试方法 23.6 益处和改进的余地 23.7 小结 第24章 智能故障检测 24.1 基本的错误检测方法 24.2 我们所要搜索的内容 24.3 选择模糊值时的注意事项 24.4 自动化的调试器监视 24.4.1 一个基本的调试器监视器 24.4.2 一个更加高级的调试器监视器 24.5 24.6 动态二进制插装 24.7 小结 第四部分 第25章 汲取的教训 25.1 软件开发生命周期 25.1.1 分析 25.1.2 设计 25.1.3 编码 25.1.4 测试 25.1.5 维护 25.1.6 在SDLC中实现模糊测试 25.2 开发者 25.3 QA研究者 25.4 安全问题研究者 25.5 小结 第26章 展望 26.1 商业工具 26.1.1 安全性测试工具beSTORM 26.1.2 BREAKINGPOINT系统BPS-1000 26.1.3 CODENOMICON 26.1.4 GLEG PROTOVER PROFESSIONAL 26.1.5 安全性测试工具MU-4000 26.1.6 SECURITY INNOVATION HOLODECK 26.2 发现漏洞的混合方法 26.3 集成的测试平台 26.4 小结
作者:k0shl ####一些环境说明: 编译环境:Windows 10 x64 build 1607 项目IDE:VS2013 测试环境:Windows 7 x86、Windows 10 x86 build 1607 参数介绍: "-l" :开启日志记录模式(不会影响主日志记录模块) "-s" :驱动枚举模块 "-d" :打开设备驱动的名称 "-i" :待Fuzz的ioctl code,默认从0xnnnn0000-0xnnnnffff "-n" :在探测阶段采用null pointer模式,该模式下极易fuzz 到空指针引用漏洞,不加则常规探测模式 "-r" :指定明确的ioctl code范围 "-u" :只fuzz -i参数给定的ioctl code "-f" :在探测阶段采用0x00填充缓冲区 "-q" :在Fuzz阶段不显示填充input buffer的数据内容 "-e" :在探测和fuzz阶段打印错误信息(如getlasterror()) "-h" :帮助信息 ####常用Fuzz命令实例: kDriver Fuzz.exe -s 进行驱动枚举,将CreateFile成功的驱动设备名称,以及部分受限的驱动设备名称打印并写入Enum Driver.txt文件中 kDriver Fuzz.exe -d X -i 0xaabb0000 -f -l 对X驱动的ioctl code 0xaabb0000-0xaabbffff范围进行探测及对可用的ioctl code进行fuzz,探测时除了正常探测外增加0x00填充缓冲区探测,开启数据日志记录(如增加-u参数,则只对ioctl code 0xaabb0000探测,若是有效ioctl code则进入fuzz阶段) kDriver Fuzz.exe -d X -r 0xaabb1122-0xaabb3344 -n -l 对X驱动的ioctl code 0xaabb1122-0xaabb3344范围内进行探测,探测时采用null pointer模式,并数据日志记录
模糊测试是一种测试方法,通过输入非正常和不符合预期的数据来探测软件应用的安全漏洞。它是一种自动化的测试方法,广泛应用于软件开发、信息安全和网络安全领域。模糊测试的目标是发现软件中的潜在安全漏洞,以帮助开发者及时修复并改进软件的安全性。 模糊测试通过生成大量的随机、异常和非法输入数据,将其输入到被测软件中,然后监测软件的行为和反应。如果软件在处理这些异常输入时出现异常崩溃、内存溢出、拒绝服务等异常行为,那么就可能存在安全漏洞。通过分析异常行为,测试人员可以推断出可能存在的安全漏洞,并进行修复。 模糊测试的优势在于它可以自动化地生成大量的测试输入数据,大大提高了测试的覆盖率。它可以有效地发现软件中隐藏的安全漏洞,包括缓冲区溢出、代码注入、SQL注入、跨站脚本攻击等常见的安全问题。与传统的手工代码审查相比,模糊测试可以更全面、更高效地发现安全漏洞模糊测试是一把强力的武器,对于提高软件的安全性至关重要。它可以帮助开发者在软件发布之前,尽早发现并修复存在的安全漏洞,从而减少软件被黑客利用的风险。同时,模糊测试还可以帮助企业和组织提升对系统和应用的信心,保障信息安全。 总之,模糊测试是一种强制发掘安全漏洞利器。它通过生成大量的异常输入数据,并监测软件的行为,可以有效地发现软件中的潜在安全问题。作为软件开发和信息安全领域的重要工具,模糊测试在保障软件安全方面发挥了重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值