[发明专利]一种基于文件格式的Fuzz优化方法有效
申请号: | 201210161219.0 | 申请日: | 2012-05-22 |
公开(公告)号: | CN103425570A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 聂眉宁;王明华;杨轶;苏璞睿 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 文件格式 fuzz 优化 方法 | ||
技术领域
本发明属于软件漏洞挖掘技术领域,具体涉及一种基于文件格式的Fuzz优化方法。
背景技术
随着社会的不断发展和进步,计算机在社会各个领域的应用越来越广泛。与此同时,软件漏洞带来的危害也日益严重。无论是无意间触发软件漏洞带来的损失,还是有意利用软件漏洞进行的非法入侵、系统破坏、信息窃取等恶意行为,都对公共安全和信息保密造成了严重影响。因此,对软件中存在的漏洞进行有效的挖掘和修补显得十分必要。
目前最有效的软件漏洞挖掘方法是针对软件的输入数据进行Fuzz。Fuzz是指利用大量随机生成的数据对目标软件进行测试的软件测试方法。软件的输入数据包括文件输入、网络输入、用户终端输入等。本发明仅涉及文件输入,主要针对现有的文件Fuzz工具,例如FileFuzz,仅对样本文件进行随机Fuzz,使得Fuzz过程缺少导向性,使得时间复杂度和空间复杂度较高,漏洞挖掘的效率低下的问题。
当前的文件Fuzz技术,通常使用如下的几种方法:
1.选择一个特定的长度为N的字符序列,并用这个字符序列依次替换样本文件中偏移为i至i+N-1中的所有内容,其中0≤i≤(样本文件长度–N)。该方法选择的特定字符串中的内容无法根据不同的域类型进行灵活变换,并且该方法需要对样本文件中的所有偏移依次进行替换,本身是一种穷举的方法,时间和空间复杂度都很高。
2.指定样本文件中的某个偏移和长度,然后对该指定区域进行随机Fuzz。该方法只能进行随机Fuzz,无法针对不同的数据类型制定不同的Fuzz规则,并且待Fuzz的域也跟样本文件本身的格式无关,由用户随意选定,盲目性很大。
综上所诉,目前文件Fuzz的主要缺陷在于:无论是Fuzz的位置选取还是Fuzz数据的产生方法,都有很高的盲目性,缺少导向性,导致漏洞挖掘的时间复杂度和空间复杂度过高,效率低下。
发明内容
本发明提供一种基于文件格式的Fuzz优化方法。该方法首先对样本文件的文件结构进行解析,得到样本文件中各个域的数据长度与类型信息,然后针对各个域的偏移、长度、类型,进行有导向性的Fuzz,优先测试其边界值,最后将Fuzz得到的文件输入给目标可执行程序,并对目标可执行程序在运行过程中产生的异常进行监控和汇报,辅助漏洞挖掘。
一种基于文件格式的Fuzz优化方法,其步骤包括:
1)配置测试环境中的原始样本文件、待测试目标程序和Fuzz线程参数;
2)插入文件格式解析模块,所述解析模块用于原始样本文件的格式解析;
3)对解析得到的样本文件进行Fuzz操作并将结果保存至本地存储单元用于待测试目标程序的调用;
4)在设定的Fuzz线程下,根据所述存储单元中样本文件参数执行目标程序,分析并记录目标程序执行过程中产生的异常信息;
5)遍历所述存储单元中所有样本文件,直至所有样本文件都参与过测试,完成全部测试。
文件格式解析模块以扩展插件的形式存在,所述解析模块可根据不同文件格式设置不同插件,并可在测试过程任意时刻补充插件。
解析得到的样本文件中各个域以四元组(域名,偏移,长度,数据类型)来表示。
对解析得到的样本文件进行Fuzz操作时,针对各个域采用边界值优先的Fuzz操作。
分析目标程序执行过程中产生的异常信息,需要对所述异常的异常类型和产生异常的指令地址进行分析,若异常类型为调试异常,且产生异常的指令地址不位于系统模块中,则异常符合要求并停止进程;若异常类型为非调试异常或产生异常的指令地址位于系统模块中,则异常不符合要求。
目标程序运行结束、目标程序运行超时,程序运行过程中捕获到符合要求的异常都将结束本次测试,并选择下一个样本继续测试。
Fuzz线程可利用多个线程产生样本同时进行Fuzz操作。
原始样本文件是能够被待测试目标可执行程序正常解析的合法文件。
待测试目标程序的启动方式和启动参数可根据用户进行自定义。
触发异常进程的指令地址位于ntdll.dll、kernel32.dll系统函数中。
本发明的优点和积极效果如下:
1.本发明在解析样本文件格式的基础上,针对样本文件中各个域进行Fuzz,使得Fuzz位置的选取具有很强的针对性。
2.本发明根据样本文件中各个域的类型和边界值,进行不同规则的Fuzz,而非随机产生数据,因此在产生Fuzz数据上有很好的导向性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210161219.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种太阳能LED路灯
- 下一篇:一种系统克隆方法和装置