三基于模糊测试的方法_第1页
三基于模糊测试的方法_第2页
三基于模糊测试的方法_第3页
三基于模糊测试的方法_第4页
三基于模糊测试的方法_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三、基于模糊测试的三、基于模糊测试的方法方法主要内容主要内容n模糊(Fuzz、Fuzzing)测试概述n几种常见的Fuzz测试n基于白盒的Fuzz测试3.1模糊测试概述模糊测试概述n是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。n模糊测试(Fuzz testing)是一种发现安全漏洞的有效的测试方法,在安全性测试中越来越受到重视,模糊测试将随机的坏数据插入程序,观察程序是否能容忍杂乱输入,模糊测试是不合逻辑的,只是产生杂乱数据攻击程序,采用模糊测试攻击应用程序可发现其他采用逻辑思维来测试很难发现的安全漏洞。 n早期其实是一种基于黑盒的随机测试方法。nBaron Mil

2、ler等人1989年首先提出。在通过拨号接入远程的工作站时,雷电干扰了电话线传输,导致一些错误的数据,而这些数据使得Unix系统中的某个工具程序崩溃。于是他对各种Unix中的工具程序进行了系统的测试,发现在7个版本的Unix系统中的90个工具程序,24%的工具可以被攻击至崩溃。Baron Miller的步骤的步骤n创建一个产生随机字符的程序,以及一个程序来帮助在测试中与各种工具进行交互。n使用这些程序测试Unix工具是否会在输入随机字符串时崩溃。n发现这些导致Unix工具崩溃的字符串。n分析崩溃的原因,以及对导致崩溃的公共错误进行分类。nFuzzing测试的用例通常具备某种攻击性的畸形数据。n

3、具备较好的自动化测试能力。n“蛮力”攻击方法。n很少出现误报。n能够快速找到真正的漏洞,操作简单。n通常不是进行功能性测试,而是检查系统处理错误的能力,比如:“入侵”、 “破坏” 、 “崩溃”n不能保证系统中已经没有漏洞。模糊测试的特点模糊测试的特点n访问控制漏洞n设计逻辑不良n后门n内存破坏n多阶段安全漏洞模糊测试的局限性和期望模糊测试的局限性和期望n识别测试目标n识别用户输入n生成Fuzz测试数据n执行Fuzz测试数据n监视异常n确定可利用性模糊测试的常规步骤模糊测试的常规步骤Fuzz测试中的主要方法测试中的主要方法术语定义傻瓜(Dumb)Fuzz随机破坏数据包,不考虑数据结构智能(Sma

4、rt)Fuzz破坏数据包,但考虑数据结构,以及编码方法,如BASE-64编码,以及数据块间的关系,如校验值,某些数据域是否存在的标志位,数据位的长度黑盒Fuzz发送畸形的数据,没有验证代码路径是否满足白盒Fuzz发送畸形的数据,验证了目标代码路径已经满足生成(Generation)自动产生Fuzz测试数据,并不基于任何前面的输入变异(Mutation)根据缺陷模式,通过破坏有效地数据来产生Fuzz测试数据变异模板使用变异模板作为输入,产生Fuzz缓冲池并发送给测试软件微软的John Neystadt给出n预生成测试用例n随机生成输入n人工协议变异测试n变异或强制性测试n自动协议生成测试Fuzz

5、测试方法(用例生成)测试方法(用例生成)n本地模糊器命令行模糊测试器环境变量模糊测试器文件格式模糊测试器n远程模糊测试器网络协议模糊测试器(简单协议、复杂协议)Web应用模糊测试器n内存模糊测试器n模糊测试框架Fuzz测试器类型测试器类型n文件Fuzz测试n协议Fuzz测试n组件Fuzz测试nWeb Fuzz测试3.2几种常见的几种常见的Fuzz测试测试n文件作为程序的主要输入(IE、OFFICE)n按照事先约定好的数据结构对文件中不同的数据域进行解析n文件格式发生改变,攻击者进行修改并注入不安全代码。程序崩溃、缓冲区溢出。文件文件Fuzz测试测试n以一个正常的文件模板作为基础,按照一定规则产

6、生一批畸形文件n将畸形文件逐一送入软件进行解析,并监视软件是否会抛出异常n记录软件产生的错误信息,如寄存器状态、栈状态等。n用日志或其他UI形式向测试人员展示异常信息,以进一步鉴定这些错误是否能被利用。一般步骤一般步骤nBlind Fuzz(盲模糊)nSmart Fuzz(智能模糊)文件文件Fuzz测试漏洞挖掘类型测试漏洞挖掘类型n在随机位置插入随机的数据以生成畸形文件n而现代软件往往使用非常复杂的私有数据结构,数据结构越复杂,解析程序的逻辑就越复杂,越容易出错n对于采用复杂数据结构的复杂文件进行漏洞挖掘,该方法暴露出一些不足产生测试用例的策略缺少针对性大量测试用例无效难以发现复杂解析器深层逻

7、辑的漏洞Blind Fuzzn拥有一批预定义的静态数据n数据结构的内容是可以动态改变的n数据结构之间是嵌套的n数据中存在多种数据关系(size of,point to,reference of,CRC)n有意义的数据被编码或压缩,甚至用另一种文件格式来存储,这些格式的文件被挖掘出来越来越多的漏洞复杂数据结构特征复杂数据结构特征n面向逻辑(Logic Oriented Fuzzing)n面向数据类型(Data Type Oriented Fuzzing)n基于样本(Sample Based Fuzzing)Smart Fuzzn测试前首先明确要测试的目标是解析文件的程序逻辑,而不是文件本身n复杂

8、的文件格式往往要经过多“层”解析,因此还需要明确测试用例正在试探的是哪一层的解析逻辑,即明确测试“深度”以及畸形数据的测试“粒度”n明确了测试的逻辑目标后,在生成畸形数据时可以具有针对性的仅仅改动样本文件的特定位置,尽量不破坏其他数据依赖关系,这样使得改动的数据能够传递到测试的解析深度,而不会在上层的解析器中被破坏面向逻辑面向逻辑n算术型:包括以HEX、ASCII、Unicode、Raw格式存在的各种数值n指针型:包括Null指针、合法/非法的内存指针等n字符串型:包括超长字符串、缺少终止符(0 x00)的字符串等n特殊字符:包括#,,/,./等等面向数据类型面向数据类型n面向数据类型测试是指

9、能够识别不同的数据类型,并且能够针对目标数据的类型按照不同规则来生成畸形数据n跟Blind Fuzz相比,这种方法产生的畸形数据通常都是有效的,能够大大减少无效的畸形文件面向数据类型面向数据类型n测试前首先构造一个合法的样本文件(也叫模版文件),这时样本文件里所有数据结构和逻辑必然都是合法的。然后以这个文件为模板,每次只改动一小部分数据和逻辑来生成畸形文件,这种方法也叫做“变异”(Mutation)n对于复杂文件来说,以现成的样本文件为基础进行畸形数据变异来生成畸形文件的方法要比上面两种的难度要小很多,也更容易实现基于样本基于样本n但是这种方法不能测试样本文件里没有包含的数据结构,比如一个文件

10、格式包含18种数据区块(Chunk),而给定的样本文件中只用到了其中的10种,那么基于样本测试的方法只会修改这10种区块的数据来产生畸形文件,测试不到其他8种数据对应的解析逻辑n为了提高测试质量,就要求在测试前构造一个能够包含几乎所有数据结构的文件(比如文字、图像、视频、声音、版权信息等数据)来作为样本基于样本基于样本n网络协议的重要性n多数网络协议细节未公开,如SMB、TNSn拒绝服务、缓冲区溢出、格式化字符串n协议解析自动进行n协议解析的软件通常较复杂,需要反复进行数据的读取和处理nSPIKE(Immunity公司)协议协议Fuzz测试测试nNetwork Trace。利用网络流量来推测网

11、络协议nTainted Data。对实现网络协议的服务器程序进行二进制的动态跟踪分析,通过跟踪二进制文件对报文的处理流程对报文进行解析。以动态污点分析技术为基础协议逆向工程协议逆向工程nFile Transfer Protocol,基于TCP,其工作模式采用客户端/服务器的模式,也就是C/S模式n客户连接FTP服务过程:建立连接、传送数据和释放连接n基本原理就是通过对FTP协议中的命令及命令参数进行脏数据替换,构造畸形的FTP命令并发送给被测试FTP服务程序FTP协议协议Fuzz测试测试n组件提取n组件接口分析n构造测试用例n测试驱动、异常跟踪n结果分析组件组件Fuzz测试测试n特殊形式的网络

12、协议模糊测试n测试方法设置目标环境输入GET、POST、HEAD 、PUT 、DELETE 、TRACE 、CONNECT 、 OPTIONS请求URL异常检测Web Fuzz测试测试n拒绝服务(Denial-of-service,DoS) n跨站脚本(Cross-site scripting,XSS) nSQL注入(SQL injection) n目录遍历/弱访问控制(Directory traversal/Weak access control) n弱认证(Weak authentication) n弱回话管理(Weak session management) n缓冲区溢出(Buffer overflow) n未恰当支持的HTTP方法(Improperly supported HTTP method) n远程命令执行(Remote command exection) n远程代码注入(R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论