当前位置: 首页 > 专利查询>江苏大学专利>正文

一种动态化的分级多粒度模糊测试漏洞挖掘方法技术

技术编号:21892634 阅读:55 留言:0更新日期:2019-08-17 14:47
本发明专利技术涉及信息安全领域,具体为一种动态化的分级多粒度模糊测试漏洞挖掘方法,包括以下步骤:1)建立本发明专利技术运行环境;2)运用网络爬虫和畸形数据库构建启发式初始测试用例集;3)使用动态递减式二进制插桩处理目标程序;4)监测测试用例的执行,构建分级多粒度测试用例集;5)动态选择不同粒度的测试用例集,执行模糊测试进行漏洞挖掘。本发明专利技术基于模糊测试漏洞挖掘技术,启发式初始测试用例集结合递减式二进制插桩技术,减少覆盖跟踪时间消耗,使用动态选择分级多粒度测试用例集进行漏洞挖掘,整体粗粒度和局部细粒度动态结合,使漏洞挖掘更具针对性,深入挖掘程序漏洞,为高效和准确地进行模糊测试漏洞挖掘提供可行方法。

A Dynamic Hierarchical Multi-granularity Fuzzy Test Vulnerability Mining Method

【技术实现步骤摘要】
一种动态化的分级多粒度模糊测试漏洞挖掘方法
本专利技术属于软件测试,信息安全领域,尤其涉及一种动态化的分级多粒度模糊测试漏洞挖掘方法。
技术介绍
伴随互联网的发展,日趋严重的信息安全事件不断影响着社会发展。软件漏洞作为发生黑客攻击的根本原因之一,给信息安全带来了巨大的威胁。由于它的强危害性、广覆盖性和类别多样性,在当前全球信息安全的博弈中,作为一种资源被各方密切关注。软件在开发完成后,虽然软件公司都会投入大量的资源进行软件测试,但是软件安全质量很大程度上依赖于软件测试人员的工作经验,不能保证软件的安全性。由于软件的安全性和经济利益的考虑,安全人员基本上无法获取程序的源代码,所以面向二进制程序的软件漏洞挖掘技术的研究成为信息安全领域的一个重要研究分支。并且诞生了诸如基于补丁对比、基于代码特征和基于模糊测试等一系列的漏洞挖掘方法。模糊测试作为一种主动的高自动化漏洞挖掘方法被人们广泛使用。目前模糊测试漏洞挖掘技术存在的初始测试用例多样性差,对目标程序的重点基本块没有针对性,异常漏报等不足,建立一个高效、准确的模糊测试漏洞挖掘方法对信息安全的发展具有现实意义。
技术实现思路
为了解决上述问题,本专利技术提出一种动态化的分级多粒度模糊测试漏洞挖掘方法,提高模糊测试漏洞挖掘方法的效率和准确性。为了实现上述目的,本专利技术的技术方案为:一种动态化的分级多粒度模糊测试漏洞挖掘方法,包括以下步骤:1)建立一个模糊测试漏洞挖掘系统运行环境,包括客户端PC、服务端服务器以及远程RPC通信网络;2)通过网络爬虫爬取测试用例,与畸形数据多点交叉结合构建启发式初始测试用例集;3)使用动态递减式二进制插桩对目标程序进行插桩处理;4)监测测试用例的执行,构建分级多粒度测试用例集,一级测试用例集对应目标程序的粗粒度测试,二级测试用例集对应目标程序的细粒度模糊测试;5)使用随机数方法动态选择不同测试用例集,同时进行粗粒度和细粒度模糊测试,进行漏洞挖掘。进一步地,上述步骤2)中网络爬虫爬取不重复测试用例的具体步骤如下:步骤2.1:爬取提供代理服务的网页信息,形成IP代理池;步骤2.2:获取IP代理池中的代理IP,爬取所需格式的测试用例;步骤2.3:使用SHA1算法获取测试用例的摘要,在数据库里进行对比,实现测试用例过滤筛选;步骤2.4:将下载的测试用例和畸形数据库中的畸形数据进行配置,构建启发式初始测试用例集。进一步地,上述步骤2)中测试用例与畸形数据库中的畸形数据结合的具体步骤如下:步骤2.a:获取测试用例大小和畸形数据库中畸形数据数量;步骤2.b:计算初始测试用例集包含的测试用例数量和畸形数据种类数的比值大小,将畸形数据库中的畸形数据均匀配置到初始测试用例集中;步骤2.c:将配置畸形数据后的测试用例重新保存到初始测试用例集。进一步地,上述步骤(3)的具体步骤如下:步骤3.1:使用PIN二进制分析工具获取目标程序的基本块地址表;步骤3.2:依照基本块地址表对初始目标程序进行插桩;步骤3.3:在执行过程中实时监测目标程序的执行;步骤3.4:根据监控获取的基本块覆盖信息,循环更新目标程序插桩,删除新覆盖的基本块的插桩;步骤3.5:保存产生新覆盖的测试用例,执行完全跟踪覆盖,计算其覆盖率。进一步地,上述步骤(4)的具体步骤如下:步骤4.1:选择默认方式或者用户设置方式确定目标基本块的地址;步骤4.2:建立HashMap数据结构,初始化为目标程序基本块地址表;步骤4.3:执行过程中,对目标程序进行监控,识别目标基本块;步骤4.4:若测试用例覆盖新的基本块,则跟新HashMap,删除HashMap中新覆盖的基本块地址,并将测试用例保存到一级测试用例集中;步骤4.5:若覆盖的是目标基本块,则不更新HashMap,只将测试用例保存到二级测试用例集中。进一步地,上述步骤5)的具体步骤如下:步骤5.1:用户设置测试的粒度系数P,即选择进行细粒度测试的概率,选择不同测试用例集的概率;步骤5.2:测试过程中,生成随机数R;步骤5.3:对比随机数R和粒度系数P,选择P>R时选择一级测试用例集,否则选择二级测试用例集;即调用一级测试用例集进行整体的粗粒度测试和调用二级测试用例集中的测试用例进行目标基本块的局部细粒度测试。与现有技术相比,本专利技术的有益效果:1.使用网络爬虫和畸形数据库,构建启发式初始测试用例集,在测试开始时保证了测试用例的多样性,同时,畸形数据库的使用提高了触发特定漏洞的机率。2.递减式插桩方法,在测试执行的过程中,动态减少插桩数量,使得执行速度越来越接近原始目标程序,提高了模糊测试过程中执行监控所消耗的时间。3.分级多粒度测试用例集的构建,使得一级测试用例集满足目标程序整体的粗粒度测试,二级测试用例集满足目标程序的局部细粒度测试,挖掘深层次漏洞,减少漏报。附图说明图1为本专利技术的总体设计图;图2位本专利技术中网络爬虫流程图;图3为本专利技术中测试用例配置畸形数据图;图4为本专利技术中动态递减式插桩过程图;图5为本专利技术中形成目标基本块的过程图;图6为本专利技术中分级多粒度测试用例集测试过程;图7为本专利技术的运行过程图。具体实施方式为了能够更清楚地理解本专利技术的
技术实现思路
,下面结合附图和具体实施案例对本专利技术进一步说明,须指出的是,所描述出的实施案例旨在便于对本专利技术的理解,而对其没有任何先定要求。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。如图1所示为本专利技术的总体设计图,本专利技术为一种动态化的分级多粒度模糊测试漏洞挖掘方法,包括以下步骤:1)建立一个本模糊测试漏洞挖掘系统运行环境,包括客户端PC、服务端服务器以及远程RPC通信网络;2)通过网络爬虫爬取测试用例,与畸形数据多点交叉结合构建启发式初始测试用例集;3)使用动态递减式二进制插桩对目标程序进行插桩处理;4)监测测试用例的执行,构建分级多粒度测试用例集,一级测试用例集对应目标程序的粗粒度测试,二级测试用例集对应目标程序的细粒度模糊测试;5)使用随机数方法动态选择不同测试用例集,同时进行粗粒度和细粒度模糊测试,进行漏洞挖掘。本专利技术步骤2)启发式初始测试用例集的构建主要包括两个部分,第一部分是网络爬虫爬取测试用例,第二部分是对测试用例配置畸形数据。图2所示为网络爬虫执行的流程,其步骤如下:第一步:爬取提供代理服务的网页信息,形成IP代理池。第二步:获取IP代理池中的代理IP,爬取所需格式测试用例。第三步:使用SHA1算法获取测试用例的摘要,在数据库里进行对比,实现用例过滤筛选。存储测试用例。图3为测试用例配置畸形数据图,为了在不断的交叉、变异生成新的测试用例的过程中,能够长时间的保留这些固定的畸形数据到子代种群中,根据测试用例的文件大小比例,将畸形数据S在测试用例的前部和后部进行两次畸形数据的插入,使得畸形插入的畸形数据在测试用例中保持足够的距离。第一步:获取测试用例大小和畸形数据库中畸形数据数量。第二步:计算初始测试用例集包含的测试用例数量和畸形数据种类数的比值大小,将畸形数据库中的畸形数据均匀的配置到初始测试用例集中。当比值为1:1时,形成了测试用例I;当为1:n,n>1时,则采用组合的方式进行配置形成了图中测试用例J。第三步:将配置畸形数据后的测试用例重新保存到初始测试用例集本文档来自技高网
...

【技术保护点】
1.一种动态化的分级多粒度模糊测试漏洞挖掘方法,其特征在于,包括以下步骤:1)建立一个模糊测试漏洞挖掘系统运行环境,包括客户端PC、服务端服务器以及远程RPC通信网络;2)通过网络爬虫爬取测试用例,与畸形数据多点交叉结合构建启发式初始测试用例集;3)使用动态递减式二进制插桩对目标程序进行插桩处理;4)监测测试用例的执行,构建分级多粒度测试用例集,一级测试用例集对应目标程序的粗粒度测试,二级测试用例集对应目标程序的细粒度模糊测试;5)使用随机数方法动态选择不同测试用例集,同时进行粗粒度和细粒度模糊测试,进行漏洞挖掘。

【技术特征摘要】
1.一种动态化的分级多粒度模糊测试漏洞挖掘方法,其特征在于,包括以下步骤:1)建立一个模糊测试漏洞挖掘系统运行环境,包括客户端PC、服务端服务器以及远程RPC通信网络;2)通过网络爬虫爬取测试用例,与畸形数据多点交叉结合构建启发式初始测试用例集;3)使用动态递减式二进制插桩对目标程序进行插桩处理;4)监测测试用例的执行,构建分级多粒度测试用例集,一级测试用例集对应目标程序的粗粒度测试,二级测试用例集对应目标程序的细粒度模糊测试;5)使用随机数方法动态选择不同测试用例集,同时进行粗粒度和细粒度模糊测试,进行漏洞挖掘。2.根据权利要求1所述的一种动态化的分级多粒度模糊测试漏洞挖掘方法,其特征在于,所述步骤2)中网络爬虫爬取不重复测试用例的具体步骤如下:步骤2.1:爬取提供代理服务的网页信息,形成IP代理池;步骤2.2:获取IP代理池中的代理IP,爬取所需格式的测试用例;步骤2.3:使用SHA1算法获取测试用例的摘要,在数据库里进行对比,实现测试用例过滤筛选;步骤2.4:将下载的测试用例和畸形数据库中的畸形数据进行配置,构建启发式初始测试用例集。3.根据权利要求1所述的一种动态化的分级多粒度模糊测试漏洞挖掘方法,其特征在于,所述步骤2)中测试用例与畸形数据库中的畸形数据结合的具体步骤如下:步骤2.a:获取测试用例大小和畸形数据库中畸形数据数量;步骤2.b:计算初始测试用例集包含的测试用例数量和畸形数据种类数的比值大小,将畸形数据库中的畸形数据均匀配置到初始测试用例集中;步骤2.c:将配置畸形数据后的测试用例重新保存到初始测试用例集。4.根据权利要求1所述的一种动...

【专利技术属性】
技术研发人员:赵跃华卞恭喜
申请(专利权)人:江苏大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1