[剑指安全之巅]Fuzzing模糊测试理论

在这里插入图片描述

在这里插入图片描述

模糊测试的历史

—>BartonMiller时代

追溯到1989年,Barton Miller教授为了测试UNIX程序,他开发了一个模糊测试工具。
最早的测试比较粗糙,通过向目标应用程序抛出随机字符串。

–>PROTOS

1999年,Oulu大学开始开发PROTOS

–>Microsoft微软收购PROTOS

2002年Microsoft为PROTOS提供了资金支持,2003年,PROTOS团队开发了 Codenomicon,
他们是一个商业用模糊测试集的公司。
->重要里程碑:Dave Aitel开源模糊测试工具SPIKE
模糊测试开源框架SPIKE采用了比Miller模糊测试器更高级的方法,
SPIKE功能描述:
1.随机生成数据
2.预定义函数,函数可以产生常见的协议与数据格式。

–>Aitel开发的shareFuzz工具

shareFuzz通过使用共享库来挂起函数调用,通过函数返回长字符串寻找缓冲区溢出。

–>2004年,Michal Zalewski® 发布了mangleme® Web浏览器模糊测试工具

mangleme®通过CGI脚本产生在浏览器中不断刷新的HTML文件

–>顶级“黑客”H.D.Moore与Aviv Raff开发了动态HTML脚本

–>2004年文件模糊测试的兴起

Microsoft微软在2004年发布了公告MS04-28安全公告,详细描述了JPG文件引擎中的缓冲区溢出漏洞。
文件的安全同时影响着网络安全

–>2005年,Mu Security公司开发了一个硬件模糊测试工具,提供了商业模糊测试解决方案。

–>2006年,Active X 模糊测试

Active X插件在微软的Explor浏览器中经常使用,此类程序容易被人RCE(远程代码执行)操作。
同时David Zimmer发布了COMRaider , H.D.Moore发布了AxMan®在业界产生了巨大的影响。

模糊测试阶段

1.识别目标
识别目标需要关注该软件的开发周期,与漏洞历史。
选择该软件的目标文件或者库文件。
2.识别输入
任何输入到软件内的数据都可以被认为是输入向量(模糊测试向量)
3.生成数据
识别到输入向量,模糊测试器
4.执行数据
通过自动化的方式发送数据到目标应用程序、打开文件或者目标进程
5.监视异常
用于监视程序是否发生崩溃的功能
6.可利用性
人工判定该漏洞是否可以被利用

模糊测试缺陷

访问控制缺陷

模糊测试并不清楚程序逻辑,可能会因为随机性,能获得其他预料之外的测试结果。

后门

在测试密码登陆系统的时候,它只能发现输入异常,却不能通过随机发送数据的方式获得密码。

内存破坏

例如汇编指令:mov %ecx,(%eax)
模糊测试器会发送带有某种格式的字符,如果发送了%n字符,eax寄存器将包含一些来自栈的垃圾字。
该指令会触发SIGSEGV信号,从而杀死进程派生新进程。

阶段性漏洞

模糊测试只针对一个漏洞,对于多漏洞的软件,模糊测试作用有限。如何提高模糊测试的效率与范围是值得考究的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT鹅

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值