[发明专利]一种模糊测试种子用例变长字段修剪方法在审
申请号: | 201710332227.X | 申请日: | 2017-05-12 |
公开(公告)号: | CN107025175A | 公开(公告)日: | 2017-08-08 |
发明(设计)人: | 罗森林;刘望桐;张笈;潘丽敏;曹伟 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 模糊 测试 种子 变长 字段 修剪 方法 | ||
技术领域
本发明涉及一种在糊测试过程中利用变长字段修剪种子测试用例的方法,属于信息安全中漏洞挖掘领域。
背景技术
随着信息网络技术在国民经济和国防建设中扮演着越来越重要的角色,作为信息网络载体的软件的安全性变得尤为重要。但是,由于软件编写语言自身的安全性问题,软件从业人员安全知识缺乏和软件系统日益复杂等原因,使软件不可避免地存在安全漏洞。这些安全漏洞严重影响了社会秩序和损害了国民经济。因此,在危害发生前挖掘软件安全漏洞并修补越来越成为安全研究人员保障信息网络安全的重要使命。
模糊测试技术是一项非常有效的漏洞挖掘技术,它通过向目标应用程序注入畸形或意外数据,使之发生崩溃或异常行为进而发现漏洞。由于其高效快捷、部署简单、应用广泛的优秀特点,被安全研究人员和黑客广泛研究与使用。模糊测试的有效性主要依赖于测试用例的生成,数量和质量决定了模糊测试的成本和有效性。
目前模糊测试用例的主要生成方法可分为基于生成和基于变异。基于生成的方法是指通过对软件输入数据格式语法进行解析,建立用于生成测试用例的数据模板,依据模板进行局部变异而生成测试用例。由于基于生成的方法在充分理解输入数据格式语法信息下进行数据变异,因此能够获得质量较高的测试用例,并且控制测试用例的数量。该方法的缺点是需要软件输入数据的格式语法信息,但由于信息网络的安全性和隐秘性的需求,通常无法获得输入数据的格式语法信息,因此应用范围较窄。基于变异的方法是指对软件合法输入文件进行字节或比特的随机变异进而生成模糊测试用例(其中软件合法输入文件在模糊测试领域中被称作种子文件)。基于变异的方法不依赖于输入数据的格式语法信息,因此具有更加广泛的应用范围。但是,在基于变异的方法中,模糊测试生成用例的数量和质量是一个非常棘手的问题。
在基于变异的模糊测试用例生成方法中,以种子文件中的比特、字节或字为变异单位,根据以往漏洞触发原理,制定若干变异因子,逐个作用于变异单位进而生成测试用例。但是随着种子文件的增大,生成的测试用例数成倍增长。巨大数量的测试用例从两个方面直接影响模糊测试效率,其一是测试时间代价高,增加了测试的成本;其二是测试用例中存在众多等价类测试用例,等价类测试用例具有相同的测试效果,造成了测试用例的冗余。因此,如何减少在基于变异的方法中所生成的等价类测试用例,进而提高模糊测试效率具有非常重要的意义。
通过研究发现,程序的输入规范中通常含有大量的变长字段格式,变长字段格式为长度+内容。变长字段被程序作两部分解析,即分别对长度字段和紧随其后的固定长度内容进行不同的处理。内容字段的长度由紧邻相接的长度字段决定,无论内容字段长度如何,都会被作相同的处理,即覆盖相同的代码模块。在模糊测试进行变异用例生成时,对内容字段进行变异时通常获得相同的测试效果,从而导致变长字段格式中的内容长度越大,则产生的等价类测试用例越多。因此,对变长字段进行修剪能够有效地减少等价类测试用例的生成,从而降低测试用例冗余。
发明内容
本发明的目的是:针对目前基于变异的模糊测试生成大量的等价类测试用例,造成了测试成本增加和测试用例冗余,提出模糊测试种子用例变长字段修剪方法,达到减少等价类测试用例的生成、降低测试用例冗余的目的,从而能够提高模糊测试的效率。
本发明的设计原理为:长度字段修剪的原理即是在不改变种子用例格式规范的前提下,减小变长字段格式中的内容长度,由此减少等价类测试用例的生成数量。其中,是否改变种子用例格式规范通过对修剪前后种子用例执行轨迹进行判断,如果修剪后的用例执行轨迹未发生改变,则判定修剪未造成该种子用例的格式发生改变。
本发明的技术方案是通过如下步骤实现的:
步骤1,对种子用例进行预修剪,利用变长字段修剪的方法修剪种子用例,具体实现方法为:
步骤1.1,读取种子用例文件,开辟内存存放种子用例二进制格式的数据内容,并记录内容长度大小。
步骤1.2,预判断,从用例内容的第一个字段开始(根据长度字段的可能取值范围,该字段长度值可以取一个字节或两个字节大小),判断该值的长度是否大于用例内容长度,如果大于或等于,则判断其不可能为长度字段,指向下一个字段继续预判断;如果小于,则判断其可能为长度字段,进行下一步处理。
步骤1.3,修剪变长字段内容,记录该字段值为L后将其置1,并删除紧随其后的L-1个字节。
步骤1.4,回写种子用例文件,将修剪后的用例二进制内存数据写入新的种子用例文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710332227.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于设备的用户界面异常测试的方法、装置和可读储介质
- 下一篇:共享虚拟存储器