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

基于报文变异的协议鲁棒性测试生成方法技术

技术编号:3544454 阅读:385 留言:0更新日期:2012-04-11 18:40
基于报文变异的协议鲁棒性测试生成方法属于网络协议测试技术领域,其特征在于所述方法依次含有以下步骤:把协议规范描述为一个不确定性参数化扩展有限状态机,建立鲁棒性要求并构造正常验证序列,利用多种变异策略生成单域异常报文,如果单域异常报文注入后导致确定性变迁,则生成单域变异复合异常测试例-1,如果单域异常报文注入后导致非确定性变迁,则生成单域变异复合异常测试例-2,然后使用“pairwise(两两组合)”方法对多域异常进行两两组合,如果多域异常报文注入后导致确定性变迁,则生成多域复合异常测试例-1,如果多域异常报文注入后导致非确定性变迁,则生成多域变异复合异常测试例-2。本发明专利技术适用于各种不同的网络协议,具有很好的通用性。

【技术实现步骤摘要】

本专利技术属于互联网
,尤其涉及网络协议测试

技术介绍
协议测试技术是保证网络通讯协议正确实现以及不同的网络设备之间正确互连的重要手段。一致性测试、性能测试和互操作性测试是最常用的测试技术。网络协议不可能描述的非常完备,包括输入、输出和状态变迁。如何处理未规定的输入取决于协议实现的设计。同时,协议经常使用“May(可能)”语句说明可选的要求。以上两种情况给协议实现带来很大的灵活性。由于一致性测试仅仅考察协议实现是否和协议规范一致,故错误发现能力有限。另外,随着网络的规模和复杂度越来越大,Intemet存在着越来越多的噪声、扰动、误配置和人为的攻击。网络设备可靠性、容错性和安全性的要求越来越高,协议鲁棒性变得越来越重要。IEEE(电气和电子工程师协会)把鲁棒性测试定义为,在无效注入或者大规模注入下测试协议实现能否正常工作。错误注入是一种有效的测试方法。Fuzz Testing(半随机测试,也称为模糊测试)是采用错误注入的黑盒测试方法。具体步骤是:确定鲁棒性要求,产生测试数据集合,注入测试数据,最后作出测试判决。关于鲁棒性测试已有不少研究和实践。尽管这些测试实践发现了不少协议实现的漏洞,但都存在着诸多不足:第一、异常测试例的生成缺乏理论指导;第二、测试判决机制需要改进;第三、异常测试例的结构不够优化。针对上述不足,本专利技术提出了一种基于报文变异的协议鲁棒性测试生成方法。该方法简要说明如下(可参看图1):建立形式化模型并构造合理的正常验证序列;采用多种变异策略生成测试数据集;采用复合测试例来简化测试序列;生成单域复合异常测试例并采用“pairwise(两两组合)”方法生成多域复合异常测试例。
技术实现思路
-->本专利技术的目的在于提供一种基于报文变异的协议鲁棒性测试生成的通用方法。本专利技术所提出的方法的思路(图1)在于:把协议规范描述为一个不确定性参数化扩展有限状态机,建立鲁棒性要求并构造正常验证序列,利用多种变异策略生成单域异常报文,如果单域异常报文注入后导致确定性变迁,则生成单域变异复合异常测试例-1,如果单域异常报文注入后导致非确定性变迁,则生成单域变异复合异常测试例-2,然后使用“pairwise(两两组合)”方法对多域异常进行两两组合,如果多域异常报文注入后导致确定性变迁,则生成多域复合异常测试例-1,如果多域异常报文注入后导致非确定性变迁,则生成多域变异复合异常测试例-2。本专利技术的特征在于:所述方法是在网络操作环境中对于一个被测试的网络设备依次按以下步骤实现的:步骤(1):用一个不确定性参数化扩展有限状态机NPEFSM描述一个被测协议实现:所述NPEFSM表示为<S,s0,I,O,X→,T>,]]>其中:●S:有限状态集合,S=Sspec,Sspec包含协议规范中定义的状态,定义S?={s?k|k=1,2,...本文档来自技高网
...

【技术保护点】
基于报文变异的协议鲁棒性测试生成方法,其特征在于,所述方法是在网络操作环境中对于一个被测试的网络设备依次按以下步骤实现的: 步骤(1):用一个不确定性参数化扩展有限状态机NPEFSM描述一个被测协议实现: 所述NPEFSM表示为<S,s↓[0],I,O,*,T>,其中: ●S:有限状态集合,S=S↓[spec],S↓[spec]包含协议规范中定义的状态,定义S?={s?↓[k]|k=1,2,…},任意一个s?↓[k]都是不确定状态,表示在异常报文注入下不确定变迁的末状态,根据协议规范中关于该变迁不确定或模糊的规定推断出s?↓[k]处在S的哪个子集中,所以,S=S↓[spec]=(S↓[spec]∪S?); ●s↓[0]:初始状态; ●I={i↓[1]*,i↓[2]*,…,i↓[k]*…,i↓[p]*},包含p个输入;每个输入i↓[k]*携带一个参数向量值*,1≤k≤p;所述p个输入中既包含协议规范中定义的输入,记为I↓[spec],由有效的报文和部分无效报文组成,也包含了协议规范中没有明确定义的大量输入,记为I↓[unspec],全部是无效报文; ●O={o↓[1]*,o↓[2]*,…,o↓[k]*,…,o↓[q]*},包含q个输出;每个输出o↓[k]*携带一个参数向量值*,1≤k≤q; ●*是为描述变迁定义的变量,用向量表示。这些变量和输入、输出携带的参数不同; ●T:变迁集合,T=T↓[spec]∪T↓[nondeter],其中: T↓[spec]表示在协议规范中给出明确规定的变迁, T↓[nondeter]包含下面两种变迁并都导致末状态s↑[*]∈S?,一种是:对于任意状态s↓[i],收到输入i↓[j]∈I↓[unspec],对应的变迁在协议规范里都没有明确规定;另外存在一种变迁,尽管i↓[j]∈I↓[spec],对应的变迁在协议规范里没有定义,或者仅给出模糊或不确定的说明, 详细定义如下: 对于t∈T↓[spec],t=s↓[j]***s↓[k],其中s↓[j]∈S↓[spec],s↓[k]∈S↓[spec];i↓[j]*∈I↓[spec];o↓[j]*∈O或者o↓[j]*为空,其中s和s↑[*]分别是该变迁的初始状态和末状态;i*、o*是携带参数的输入和输出;P(*,i*)是基于变量集合和输入的断言;动作A(*,i↓[j]*,o↓[j]*)是基于当前变量值、输入的操作,并作用于变量值和输出; 对于t∈...

【技术特征摘要】
1.基于报文变异的协议鲁棒性测试生成方法,其特征在于,所述方法是在网络操作环境中对于一个被测试的网络设备依次按以下步骤实现的:步骤(1):用一个不确定性参数化扩展有限状态机NPEFSM描述一个被测协议实现...

【专利技术属性】
技术研发人员:尹霞景传明王之梁施新刚
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

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

1