基于有限状态机网络协议半合法化模糊测试用例生成方法技术

技术编号:12398326 阅读:127 留言:0更新日期:2015-11-26 03:59
本发明专利技术公开了基于有限状态机网络协议半合法化模糊测试用例生成方法,包括如下步骤:基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过程,构建基于有限状态机的网络协议模型;然后建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态机中所有状态转移路径组成的集合;构造协议消息md变异后的畸形协议消息集合;从md的畸形协议消息集合中顺次选取其中的一个用于替代所述完整的测试序列中的md,获得一个关于md的模糊测试序列,则共获得p个关于md的模糊测试序列;最终获得关于m0~mn-1的所有模糊测试序列作为模糊测试用例。使用本发明专利技术能够获得更细粒度的网络协议模糊测试用例。

【技术实现步骤摘要】

本专利技术属于网络协议模糊测试
,具体涉及一种基于有限状态机的网络协 议半合法化模糊测试用例生成方法。
技术介绍
网络协议模糊测试对安全研究者来说是最感兴趣的模糊测试类型,不仅因为所发 现的漏洞通常具有较高级别的危险程度,而且还由于网络协议在互联网通信中被广泛应 用,一旦被发现漏洞,受到威胁的范围将会很广。网络协议模糊测试用例生成方法是模糊测 试过程中非常关键的环节,测试用例的生成和选择直接影响模糊测试的质量。 在模糊测试方面,申请号为CN201110391886. 3的专利技术专利"模糊测试的方法、装 置和系统"提出了通过将多个测试用例输入待测目标,根据响应信息对测试用例进行分类, 再分别生成不同分类的新测试用例的方案。 申请号为200910131169. X的专利技术专利"一种产生测试用例的方法及装置"首先根 据预先设置的测试用例生成规则进行穷举,得到大量测试用例,然后根据测试用例之间的 近似程度删除多余的测试用例,从而得到既符合测试要求,又不包含冗余的测试用例。 申请号为CN201110085863. X的专利"不变量指导的随机测试用例自动化生成方 法",在获得程序源代码的情况下,利用程序的不变量对测试用例进行过滤,以降低生成的 测试用例集的冗余率。 在测试用例生成方面,申请号为200710177534. 1的专利技术专利"软件测试用例自动 生成方法及系统",对待测软件源程序进行词法分析及语义分析,生成待测软件的抽象语法 树和流程图,通过遍历抽象语法树和流程图识别输入、输出变量,从而生成测试用例。 申请号为201110306942. 9的专利技术专利"一种基于扩展有限状态机可行路径分析 的测试用例自动生成方法";基于扩展有限状态机可行路径分析,结合静态分析和动态分 析技术来找到一个较小的可行路径集合达到指定的路径覆盖准则,提高了测试用生成的效 率。 现有的测试用例缩减技术更多的是针对程序的源代码,这样的方法并不适用于网 络协议模糊测试,比如利用程序的不变量对测试用例进行缩进,它的前提条件是要获得程 序的源代码,这在网络协议模糊测试过程中是不可能达到的;在提高生成的测试用例集质 量和效率方面,成型的网络协议模糊器虽然能够进行网络协议模糊测试,但是在测试过程 中由于采用硬编码方法,如Peach、ProtoFuzz等,导致测试用例集不够智能化。此外,机械 式地随机变异会产生大量冗余测试用例,造成测试用例集的效率不高,并且存在着测试用 例集的空间有可能发生"爆炸式"增长的问题。
技术实现思路
有鉴于此,本专利技术提供了基于有限状态机网络协议半合法化模糊测试用例生成方 法,能够获得更细粒度的网络协议模糊测试用例,生成的测试用例更能绕过数据验证层触 发漏洞,提高了生成的模糊测试用例的质量。 为了达到上述目的,本专利技术的技术方案为包括如下步骤: 步骤一:在基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过 程,构建基于有限状态机的网络协议模型: 基于有限状态机的网络协议模型为Pfsni=〈S。,S,M,F,L>,其中: S。表示有限状态机的状态集合的初始状态; S = {s。,S1, S2, ···,sn J,表示整个有限状态机的状态集合,其中s。~sn i表示η个 状态。 M = {m。,Hi1, m2,…,Hini J,表示促使有限状态机发生状态转移的协议消息集合,其中 m〇~m m i表示m个协议消息。 F为状态转移函数,表示状态转移路径(Sl,mj,sk); i ε ,j ε ,k ε 〇 L = {1。,I1, I2, ···,In J是状态转换路径的标记变量,表示是否已被进行过模糊测 试,默认值为false。 步骤二:建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态 机中所有状态转移路径组成的集合。 步骤三:构造协议消息叫变异后的畸形协议消息集合{~mdl,~md2,~m d3,…,~ mdp},其中p为m/变异后的畸形协议消息数量;其中d为正整数且取遍区间。 构造协议消息m/变异后的畸形协议消息集合时,将协议消息采用四层结构表示, 四层从上至下分别为:状态表示层、消息类型表示层、消息表示层、子协议域表示层;其中 状态表示层用于表示在该协议消息叫所促使的状态转移路径中的前后两个状态,消息类型 表示层用于表示该协议消息叫所属的消息类型,包括请求类消息request和应答类消息 response,消息表示层包括组成协议消息md的所有的数据类型,子协议域表示层表示按照 协议规约进行划分后得到的组成协议消息的各个子结构;对于协议消息m d,可能有P个约 束条件制约着,在生成协议消息md的半合法畸形协议消息时,仅仅改变P个约束条件中的 一个、其他约束条件不变,得到一个m/变异后的畸形协议消息,由此共获得关于个变 异后的畸形协议消息集合{~m dl,~md2,~md3,…,~mdp}。 步骤四:从叫的畸形协议消息集合中顺次选取~mdl至~mdp中的一个用于替代完 整的测试序列中的m d,获得一个关于^的模糊测试序列,则共获得P个关于m d的模糊测试 序列。 顺次取d = 0, 1,……,n-l,获得关于m。~mn i的所有模糊测试序列。 步骤五:将步骤四中所生成的所有的模糊测试序列作为模糊测试用例。 进一步地,在建立基于有限状态机的网络协议模型时,进一步增加 L = {1。,I1,12,…,In J作为状态转移路径的标记变量,与状态转移路径一一对应,表示是否已 经进行过该状态转移,初始值设定为false。 则在进行一个关于叫的模糊测试序列的生成过程中,判断当前序列中每条状态转 移路径对应的标记变量,若为false,则将该条状态转移路径生成至前序列中,并将其标记 变量置为true。 若为true,则在当前序列中不再生成该条状态转移路径,并保持其标记变量为 true不变。 有益效果: (1)本专利技术通过在网络协议状态机的基础上对网络协议依据协议规约进行细粒度 的结构划分,并由于网络协议的复杂性,以及为了更加完整地描述适用于模糊测试需求的 网络协议模型,达到从更细粒度的方面构造网络协议模糊测试用例,生成的测试用例更能 绕过数据验证层触发漏洞,提高了生成的模糊测试用例的质量。 (2)基于有限状态机的网络协议规则树,在生成具体的网络协议模糊测试用例时, 提出了状态转换路径"标记"算法,使得在生成测试用例时避免了冗余测试用例,在一定程 度上减小了测试用例集的大小。【附图说明】 图1为实施例中网络协议有限状态机示意图; 图2为网络协议状态规则树示意图。【具体实施方式】 下面结合附图并举实施例,对本专利技术进行详细描述。 实施例1、,包括如下步 骤: 步骤一:在基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过 程,构建基于有限状态机的网络协议模型: 基于有限状态机的网络协议模型为Pfsni=〈S。,S,M,F,L>,其中: S。表示有限状态机的状态集合的初始状态; S = {s。,S1, S2,…,sn J,表示整个有限状态机的状态集合,其中s。~sn i表示η个 状态; M = {m。,Hi1, m2,…,Hini J,表示促使有限状态机发生状态转移的协议消息集合,其中本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN105095075.html" title="基于有限状态机网络协议半合法化模糊测试用例生成方法原文来自X技术">基于有限状态机网络协议半合法化模糊测试用例生成方法</a>

【技术保护点】
基于有限状态机网络协议半合法化模糊测试用例生成方法,其特征在于,包括如下步骤:步骤一:在基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过程,构建基于有限状态机的网络协议模型:所述基于有限状态机的网络协议模型为Pfsm=<S0,S,M,F>,其中:S0表示有限状态机的状态集合的初始状态;S={s0,s1,s2,...,sn‑1},表示整个有限状态机的状态集合,其中s0~sn‑1表示n个状态;M={m0,m1,m2,…,mm‑1},表示促使有限状态机发生状态转移的协议消息集合,其中m0~mm‑1表示m个协议消息;F为状态转移函数,表示状态转移路径(si,mj,sk);i∈[0,n‑1],j∈[0,m‑1],k∈[0,n‑1];步骤二:建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态机中所有状态转移路径组成的集合;步骤三:构造协议消息md变异后的畸形协议消息集合{~md1,~md2,~md3,…,~mdp},其中p为md变异后的畸形协议消息数量;其中d为正整数且取遍区间[0,m‑1];所述构造协议消息md变异后的畸形协议消息集合时,将协议消息采用四层结构表示,四层从上至下分别为:状态表示层、消息类型表示层、消息表示层、子协议域表示层;其中所述状态表示层用于表示在该协议消息md所促使的状态转移路径中的前后两个状态,所述消息类型表示层用于表示该协议消息md所属的消息类型,包括请求类消息request和应答类消息response,所述消息表示层包括组成协议消息md的所有的数据类型,所述子协议域表示层表示按照协议规约进行划分后得到的组成协议消息的各个子结构;对于协议消息md,有p个约束条件制约着,在生成协议消息md的半合法畸形协议消息时,仅仅改变p个约束条件中的一个、其他约束条件不变,得到一个md变异后的畸形协议消息,由此共获得关于md的p个变异后的畸形协议消息集合{~md1,~md2,~md3,…,~mdp};步骤四:从md的畸形协议消息集合中顺次选取~md1至~mdp中的一个用于替代所述完整的测试序列中的md,获得一个关于md的模糊测试序列,则共获得p个关于md的模糊测试序列;顺次取d=0,1,……,n‑1,获得关于m0~mn‑1的所有模糊测试序列;步骤五:将步骤四中所生成的所有的模糊测试序列作为模糊测试用例。...

【技术特征摘要】

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

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

1