一种网络协议模糊测试方法和装置制造方法及图纸

技术编号:10076810 阅读:172 留言:0更新日期:2014-05-24 11:02
本发明专利技术提供了一种网络协议模糊测试方法和装置,能够解决现有的对网络协议进行模糊测试方式中存在的测试用例集不够智能化,以及会产生大量冗余测试用例的缺陷。步骤一、获取待测试的网络协议对应的多个协议域,由所述多个协议域构成协议域序组;步骤二、获取每个协议域的属性和所述属性对应的属性值;步骤三、对于每个协议域,将该协议域中的各属性的属性值进行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合;步骤四、对每个测试数据集合中的每个变异值,分别利用该变异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例;步骤五、根据由所有测试数据集合得到的替换后的协议域序组实例,得到所述网络协议的测试用例。

【技术实现步骤摘要】

本专利技术属于软件安全
,涉及一种网络协议模糊测试方法和装置
技术介绍
网络协议模糊测试对安全研究者来说是最感兴趣的模糊测试类型,不仅因为所发现的漏洞通常具有较高级别的危险程度,而且还由于网络协议在互联网通信中被广泛应用,一旦被发现漏洞,受到威胁的范围将会很广。网络协议模糊测试用例生成方法是模糊测试过程中非常关键的环节,测试用例的生成和选择直接影响模糊测试的质量。在模糊测试方面,现有技术中通过将多个测试用例输入待测目标,根据响应信息对测试用例进行分类,再分别生成不同分类的新测试用例。或者,利用遗传算法对模糊测试过程中的第一代初始群体和下一代群体进行一系列的选择、变异、淘汰操作。在测试用例集缩减方面,现有技术中通过对测试用例集进行0-1编码,通过粒子群算法得到对测试需求集覆盖度大且冗余度小的测试用例集达到测试用例集缩减的目的。或者在获得程序源代码的情况下,利用程序的不变量对测试用例进行过滤,以降低生成的测试用例集的冗余率。现有的测试用例缩减技术更多的是针对有程序源代码的情况,这样的方法并不适用于网络协议模糊测试,比如利用程序的不变量对测试用例进行缩减,它的前提条件是要获得程序的源代码,这在网络协议模糊测试过程中是不可能达到的。成型的网络协议模糊器虽然能够进行网络协议模糊测试,但是在测试过程中由于采用硬编码方法,导致测试用例集不够智能化,不能针对不同的待测目标动态地生成测试用例,此外机械式地随机变异会产生大量冗余测试用例。综上所述,现有的对网络协议进行模糊测试的方式,存在测试用例集不够智能化,以及会产生大量冗余测试用例的缺陷。
技术实现思路
本专利技术提供了一种网络协议模糊测试方法和装置,能够解决现有的对网络协议进行模糊测试方式中存在的测试用例集不够智能化,以及会产生大量冗余测试用例的缺陷。一种网络协议模糊测试方法,包括以下步骤:步骤一、获取待测试的网络协议对应的多个协议域,由所述多个协议域构成协议域序组;步骤二、获取每个协议域的属性和所述属性对应的属性值;步骤三、对于每个协议域,将该协议域中的各属性的属性值进行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合;步骤四、对每个测试数据集合中的每个变异值,分别利用该变异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例;步骤五、根据由所有测试数据集合得到的替换后的协议域序组实例,得到所述网络协议的测试用例。在上述方法中,在获取待测试的网络协议对应的多个协议域之前,还包括以下步骤:为所述待测试的网络协议建立网络协议分类树,所述网络协议分类树包括作为根节点的待测试的网络协议,从属于根节点的协议域、从属于协议域的属性和从属于所述属性的属性值。在上述方法中,在将该协议域中的各属性的属性值进行组合运算之前,还进一步包括以下步骤:获取启发算子,并根据启发算子对每个属性的属性值进行过滤;所述将该协议域中的各属性的属性值进行组合运算包括:将该协议域中的各属性的过滤后的属性值进行组合运算,得到变异值。在上述方法中,所述获取启发算子包括:根据所述网络协议的协议规范得到所述启发算子;或是利用第三方工具计算得到所述启发算子。在上述方法中,所述对于每个协议域,将该协议域中的各属性的属性值进行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合包括:根据笛卡尔乘积公式:1≤i≤n计算面向所述协议域的测试数据集合;其中,Si为协议域fi的测试数据集合,Si中的元素为变异值;Vi1为协议域的第1个属性的属性值的集合,为协议域fi的第mi个属性的属性值的集合,n为网络协议P的协议域的个数。在上述方法中,所述对每个测试数据集合中的每个变异值,分别利用该变异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例包括:对第i协议域fi对应的测试数据集合Si中的第j变异值MVij,利用该第j变异值MVij替换协议域序组<f1,f2,…fi…fn>中的第i协议域fi,得到<f1,f2,…MVij…fn>作为替换后的协议域序组实例;1≤j≤qi,qi为Si中的变异值的总个数;1≤i≤n,n为网络协议P的协议域的总个数。一种网络协议模糊测试装置,包括获取模块、第一运算模块、第二运算模块、生成模块:获取模块,用于获取待测试的网络协议对应的多个协议域,由所述多个协议域构成协议域序组;获取每个协议域的属性和所述属性对应的属性值;第一运算模块,用于针对每个协议域,将该协议域中各属性的属性值进行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合;第二运算模块,用于针对每个测试数据集合中的每个变异值,分别利用该变异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例;生成模块,用于根据由所有测试数据集合得到的替换后的协议域序组实例,得到所述网络协议的测试用例。上述装置还进一步包括:分类树建立模块,用于为所述待测试的网络协议建立网络协议分类树,其中,所述网络协议分类树包括作为根节点的待测试的网络协议,从属于根节点的协议域、从属于协议域的属性和从属于所述属性的属性值。上述装置还进一步包括:过滤模块,用于获取启发算子,并根据启发算子对每个属性的属性值进行过滤。所述第一运算模块,进一步用于针对每个协议域,将该协议域中的各属性的过滤后的属性值进行组合运算,得到面向该协议域的变异值集合。在上述装置中,所述生成模块用于对第i协议域fi对应的测试数据集合Si中的第j变异值MVij,利用该第j变异值MVij替换协议域序组<f1,f2,…fi…fn>中的第i协议域fi,得到<f1,f2,…MVij…fn>作为替换后的协议域序组实例;1≤j≤qi,qi为Si中的变异值的总个数;1≤i≤n,n为网络协议P的协议域的总个数。综上所述,本专利技术所提供的技术方案,通过对目标网络协议进行划分,从划分后的协议域中获取相应属性的属性值的集合。通过对每个协议域,将该协议域中各属性的属性值进行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合,再分别利用该变异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例。本专利技术提供的网络协议模糊测试的方法,对模糊测试的测试用例的生成过程进行了优化,提高了自动化过程,减小测试用例生成空间的本文档来自技高网
...
一种网络协议模糊测试方法和装置

【技术保护点】
一种网络协议模糊测试方法,其特征在于,包括以下步骤:步骤一、获取待测试的网络协议对应的多个协议域,由所述多个协议域构成协议域序组;步骤二、获取每个协议域的属性和所述属性对应的属性值;步骤三、对于每个协议域,将该协议域中的各属性的属性值进行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合;步骤四、对每个测试数据集合中的每个变异值,分别利用该变异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例;步骤五、根据由所有测试数据集合得到的替换后的协议域序组实例,得到所述网络协议的测试用例。

【技术特征摘要】
1.一种网络协议模糊测试方法,其特征在于,包括以下步骤:
步骤一、获取待测试的网络协议对应的多个协议域,由所述多个协议域构
成协议域序组;
步骤二、获取每个协议域的属性和所述属性对应的属性值;
步骤三、对于每个协议域,将该协议域中的各属性的属性值进行组合运算,
得到变异值,由该变异值构成面向所述协议域的测试数据集合;
步骤四、对每个测试数据集合中的每个变异值,分别利用该变异值替换协
议域序组中所述测试数据集合对应的协议域,得到替换后的协议域序组实例;
步骤五、根据由所有测试数据集合得到的替换后的协议域序组实例,得到
所述网络协议的测试用例。
2.如权利要求1所述的一种网络协议模糊测试方法,其特征在于,在上
述方法中,在获取待测试的网络协议对应的多个协议域之前,还包括以下步骤:
为所述待测试的网络协议建立网络协议分类树,所述网络协议分类树包括作为
根节点的待测试的网络协议,从属于根节点的协议域、从属于协议域的属性和
从属于所述属性的属性值。
3.如权利要求1或2所述的一种网络协议模糊测试方法,其特征在于,
在上述方法中,在将该协议域中的各属性的属性值进行组合运算之前,还进一
步包括以下步骤:获取启发算子,并根据启发算子对每个属性的属性值进行过
滤;所述将该协议域中的各属性的属性值进行组合运算包括:将该协议域中的
各属性的过滤后的属性值进行组合运算,得到变异值。
4.如权利要求3所述的一种网络协议模糊测试方法,其特征在于,在上
述方法中,所述获取启发算子包括:根据所述网络协议的协议规范得到所述启
发算子,或是利用第三方工具计算得到所述启发算子。
5.如权利要求1或2或4所述的一种网络协议模糊测试方法,其特征在
于,在上述方法中,所述对于每个协议域,将该协议域中的各属性的属性值进
行组合运算,得到变异值,由该变异值构成面向所述协议域的测试数据集合包
括:根据笛卡尔乘积公式:1≤i≤n计算面向所述协议域的测
试数据集合;
其中,Si为协议域fi的测试数据集合,Si中的元素为变异值;Vi1为协议域

\t的第1个属性的属性值的集合,为协议域fi的第mi个属性的属性值的集合,
n为网络协议P的协议域的个数。
6.如权利要求1或2或4所述的一种网络协议模糊测试方法,其特征在
于,在上述方法中,所述对每个测试数据集合中的每个变异值,分别利用该变
异值替换协议域序组中所述测试数据集合对应的协议域,得到替换后的协...

【专利技术属性】
技术研发人员:胡昌振马锐纪文东赵小林薛静锋
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1