三基于模糊测试的方法

上传人:n**** 文档编号:50744979 上传时间:2018-08-10 格式:PPT 页数:33 大小:1.03MB
返回 下载 相关 举报
三基于模糊测试的方法_第1页
第1页 / 共33页
三基于模糊测试的方法_第2页
第2页 / 共33页
三基于模糊测试的方法_第3页
第3页 / 共33页
三基于模糊测试的方法_第4页
第4页 / 共33页
三基于模糊测试的方法_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《三基于模糊测试的方法》由会员分享,可在线阅读,更多相关《三基于模糊测试的方法(33页珍藏版)》请在金锄头文库上搜索。

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

2、提出。在通过 拨号接入远程的工作站时,雷电干扰了电 话线传输,导致一些错误的数据,而这些 数据使得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随机破坏数据包,不考虑数据结构智能(Smart)Fuzz破坏数据包,但考虑数据结构,以及编码方法,如BASE-64

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

5、件格式模糊测试器n远程模糊测试器网络协议模糊测试器(简单协议、复杂协议)Web应用模糊测试器n内存模糊测试器n模糊测试框架Fuzz测试器类型n文件Fuzz测试n协议Fuzz测试n组件Fuzz测试nWeb Fuzz测试3.2几种常见的Fuzz测试n文件作为程序的主要输入(IE、OFFICE)n按照事先约定好的数据结构对文件中不同 的数据域进行解析n文件格式发生改变,攻击者进行修改并注 入不安全代码。程序崩溃、缓冲区溢出。 。文件Fuzz测试n以一个正常的文件模板作为基础,按照一定规则 产生一批畸形文件n将畸形文件逐一送入软件进行解析,并监视软件 是否会抛出异常n记录软件产生的错误信息,如寄存器状

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

7、据关系(size of,point to,reference of,CRC)n有意义的数据被编码或压缩,甚至用另一种文件 格式来存储,这些格式的文件被挖掘出来越来越 多的漏洞复杂数据结构特征n面向逻辑(Logic Oriented Fuzzing)n面向数据类型(Data Type Oriented Fuzzing)n基于样本(Sample Based Fuzzing)Smart Fuzzn测试前首先明确要测试的目标是解析文件的程序逻 辑,而不是文件本身n复杂的文件格式往往要经过多“层”解析,因此还需要 明确测试用例正在试探的是哪一层的解析逻辑,即 明确测试“深度”以及畸形数据的测试“粒度”n

8、明确了测试的逻辑目标后,在生成畸形数据时可以 具有针对性的仅仅改动样本文件的特定位置,尽量 不破坏其他数据依赖关系,这样使得改动的数据能 够传递到测试的解析深度,而不会在上层的解析器 中被破坏面向逻辑n算术型:包括以HEX、ASCII、Unicode、 Raw格式存在的各种数值n指针型:包括Null指针、合法/非法的内存指 针等n字符串型:包括超长字符串、缺少终止符 (0x00)的字符串等n特殊字符:包括#,,/,/等等面向数据类型n面向数据类型测试是指能够识别不同的数据 类型,并且能够针对目标数据的类型按照不 同规则来生成畸形数据n跟Blind Fuzz相比,这种方法产生的畸形数据 通常都是

9、有效的,能够大大减少无效的畸形 文件面向数据类型n测试前首先构造一个合法的样本文件(也叫模版文 件),这时样本文件里所有数据结构和逻辑必然都 是合法的。然后以这个文件为模板,每次只改动一 小部分数据和逻辑来生成畸形文件,这种方法也叫 做“变异”(Mutation)n对于复杂文件来说,以现成的样本文件为基础进行 畸形数据变异来生成畸形文件的方法要比上面两种 的难度要小很多,也更容易实现基于样本n但是这种方法不能测试样本文件里没有包含的数据 结构,比如一个文件格式包含18种数据区块 (Chunk),而给定的样本文件中只用到了其中的10 种,那么基于样本测试的方法只会修改这10种区块 的数据来产生畸

10、形文件,测试不到其他8种数据对 应的解析逻辑n为了提高测试质量,就要求在测试前构造一个能够 包含几乎所有数据结构的文件(比如文字、图像、 视频、声音、版权信息等数据)来作为样本基于样本n网络协议的重要性n多数网络协议细节未公开,如SMB、TNSn拒绝服务、缓冲区溢出、格式化字符串n协议解析自动进行n协议解析的软件通常较复杂,需要反复进行数 据的读取和处理nSPIKE(Immunity公司)协议Fuzz测试nNetwork Trace。利用网络流量来推测网络协 议nTainted Data。对实现网络协议的服务器程序 进行二进制的动态跟踪分析,通过跟踪二进制 文件对报文的处理流程对报文进行解析。

11、以动 态污点分析技术为基础协议逆向工程nFile Transfer Protocol,基于TCP,其工作模 式采用客户端/服务器的模式,也就是C/S模式n客户连接FTP服务过程:建立连接、传送数据 和释放连接n基本原理就是通过对FTP协议中的命令及命令 参数进行脏数据替换,构造畸形的FTP命令并 发送给被测试FTP服务程序FTP协议Fuzz测试n组件提取n组件接口分析n构造测试用例n测试驱动、异常跟踪n结果分析组件Fuzz测试n特殊形式的网络协议模糊测试n测试方法设置目标环境输入GET、POST、HEAD 、PUT 、DELETE 、 TRACE 、CONNECT 、 OPTIONS请求URL

12、异常检测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远程代码注入(Remote code injection) n带有漏洞的库(Vulnerable libraries) nHTTP响应分割(HTTP response splitting) n跨站请求伪造(Cross Site Requset Forgery,CSRF) 主要Web漏洞nHTTP 状态码nWeb服务器错误消息n中断连接n日志文件n时间日志n调试器Web Fezz异常检测

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号