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

文档序号:9375463阅读:333来源:国知局
基于有限状态机网络协议半合法化模糊测试用例生成方法
【技术领域】
[0001] 本发明属于网络协议模糊测试技术领域,具体涉及一种基于有限状态机的网络协 议半合法化模糊测试用例生成方法。
【背景技术】
[0002] 网络协议模糊测试对安全研究者来说是最感兴趣的模糊测试类型,不仅因为所发 现的漏洞通常具有较高级别的危险程度,而且还由于网络协议在互联网通信中被广泛应 用,一旦被发现漏洞,受到威胁的范围将会很广。网络协议模糊测试用例生成方法是模糊测 试过程中非常关键的环节,测试用例的生成和选择直接影响模糊测试的质量。
[0003] 在模糊测试方面,申请号为CN201110391886. 3的发明专利"模糊测试的方法、装 置和系统"提出了通过将多个测试用例输入待测目标,根据响应信息对测试用例进行分类, 再分别生成不同分类的新测试用例的方案。
[0004] 申请号为200910131169. X的发明专利"一种产生测试用例的方法及装置"首先根 据预先设置的测试用例生成规则进行穷举,得到大量测试用例,然后根据测试用例之间的 近似程度删除多余的测试用例,从而得到既符合测试要求,又不包含冗余的测试用例。
[0005] 申请号为CN201110085863. X的专利"不变量指导的随机测试用例自动化生成方 法",在获得程序源代码的情况下,利用程序的不变量对测试用例进行过滤,以降低生成的 测试用例集的冗余率。
[0006] 在测试用例生成方面,申请号为200710177534. 1的发明专利"软件测试用例自动 生成方法及系统",对待测软件源程序进行词法分析及语义分析,生成待测软件的抽象语法 树和流程图,通过遍历抽象语法树和流程图识别输入、输出变量,从而生成测试用例。
[0007] 申请号为201110306942. 9的发明专利"一种基于扩展有限状态机可行路径分析 的测试用例自动生成方法";基于扩展有限状态机可行路径分析,结合静态分析和动态分 析技术来找到一个较小的可行路径集合达到指定的路径覆盖准则,提高了测试用生成的效 率。
[0008] 现有的测试用例缩减技术更多的是针对程序的源代码,这样的方法并不适用于网 络协议模糊测试,比如利用程序的不变量对测试用例进行缩进,它的前提条件是要获得程 序的源代码,这在网络协议模糊测试过程中是不可能达到的;在提高生成的测试用例集质 量和效率方面,成型的网络协议模糊器虽然能够进行网络协议模糊测试,但是在测试过程 中由于采用硬编码方法,如Peach、ProtoFuzz等,导致测试用例集不够智能化。此外,机械 式地随机变异会产生大量冗余测试用例,造成测试用例集的效率不高,并且存在着测试用 例集的空间有可能发生"爆炸式"增长的问题。

【发明内容】

[0009] 有鉴于此,本发明提供了基于有限状态机网络协议半合法化模糊测试用例生成方 法,能够获得更细粒度的网络协议模糊测试用例,生成的测试用例更能绕过数据验证层触 发漏洞,提高了生成的模糊测试用例的质量。
[0010] 为了达到上述目的,本发明的技术方案为包括如下步骤:
[0011] 步骤一:在基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过 程,构建基于有限状态机的网络协议模型:
[0012] 基于有限状态机的网络协议模型为Pfsni=〈S。,S,M,F,L>,其中:
[0013] S。表示有限状态机的状态集合的初始状态;
[0014] S = {s。,S1, S2, ···,sn J,表示整个有限状态机的状态集合,其中s。~sn i表示η个 状态。
[0015] M = {m。,Hi1, m2,…,Hini J,表示促使有限状态机发生状态转移的协议消息集合,其中 m〇~m m i表示m个协议消息。
[0016] F为状态转移函数,表示状态转移路径(Sl,mj,sk); i ε [0, n_l],j ε [0, m_l],k ε [0, n_l] 〇
[0017] L = {1。,I1, I2, ···,In J是状态转换路径的标记变量,表示是否已被进行过模糊测 试,默认值为false。
[0018] 步骤二:建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态 机中所有状态转移路径组成的集合。
[0019] 步骤三:构造协议消息叫变异后的畸形协议消息集合{~mdl,~md2,~m d3,…,~ mdp},其中p为m/变异后的畸形协议消息数量;其中d为正整数且取遍区间[0, m-1]。
[0020] 构造协议消息m/变异后的畸形协议消息集合时,将协议消息采用四层结构表示, 四层从上至下分别为:状态表示层、消息类型表示层、消息表示层、子协议域表示层;其中 状态表示层用于表示在该协议消息叫所促使的状态转移路径中的前后两个状态,消息类型 表示层用于表示该协议消息叫所属的消息类型,包括请求类消息request和应答类消息 response,消息表示层包括组成协议消息md的所有的数据类型,子协议域表示层表示按照 协议规约进行划分后得到的组成协议消息的各个子结构;对于协议消息m d,可能有P个约 束条件制约着,在生成协议消息md的半合法畸形协议消息时,仅仅改变P个约束条件中的 一个、其他约束条件不变,得到一个m/变异后的畸形协议消息,由此共获得关于个变 异后的畸形协议消息集合{~m dl,~md2,~md3,…,~mdp}。
[0021] 步骤四:从叫的畸形协议消息集合中顺次选取~mdl至~mdp中的一个用于替代完 整的测试序列中的m d,获得一个关于^的模糊测试序列,则共获得P个关于m d的模糊测试 序列。
[0022] 顺次取d = 0, 1,……,n-l,获得关于m。~mn i的所有模糊测试序列。
[0023] 步骤五:将步骤四中所生成的所有的模糊测试序列作为模糊测试用例。
[0024] 进一步地,在建立基于有限状态机的网络协议模型时,进一步增加 L = {1。,I1,12,…,In J作为状态转移路径的标记变量,与状态转移路径一一对应,表示是否已 经进行过该状态转移,初始值设定为false。
[0025] 则在进行一个关于叫的模糊测试序列的生成过程中,判断当前序列中每条状态转 移路径对应的标记变量,若为false,则将该条状态转移路径生成至前序列中,并将其标记 变量置为true。
[0026] 若为true,则在当前序列中不再生成该条状态转移路径,并保持其标记变量为 true不变。
[0027] 有益效果:
[0028] (1)本发明通过在网络协议状态机的基础上对网络协议依据协议规约进行细粒度 的结构划分,并由于网络协议的复杂性,以及为了更加完整地描述适用于模糊测试需求的 网络协议模型,达到从更细粒度的方面构造网络协议模糊测试用例,生成的测试用例更能 绕过数据验证层触发漏洞,提高了生成的模糊测试用例的质量。
[0029] (2)基于有限状态机的网络协议规则树,在生成具体的网络协议模糊测试用例时, 提出了状态转换路径"标记"算法,使得在生成测试用例时避免了冗余测试用例,在一定程 度上减小了测试用例集的大小。
【附图说明】
[0030] 图1为实施例中网络协议有限状态机示意图;
[0031 ] 图2为网络协议状态规则树示意图。
【具体实施方式】
[0032] 下面结合附图并举实施例,对本发明进行详细描述。
[0033] 实施例1、基于有限状态机网络协议半合法化模糊测试用例生成方法,包括如下步 骤:
[0034] 步骤一:在基于有限状态机的网络协议中,根据网络协议规约,解析协议交互过 程,构建基于有限状态机的网络协议模型:
[0035] 基于有限状态机的网络协议模型为Pfsni=〈S。,S,M,F,L>,其中:
[0036] S。表示有限状态机的状态集合的初始状态;
[0037] S = {s。,S1, S2,…,sn J,表示整个有限状态机的状态集合,其中s。~sn i表示η个 状态;
[0038] M = {m。,Hi1, m2,…,Hini J,表示促使有限状态机发生状态转移的协议消息集合,其中 m〇~m m i表示m个协议消息;
[0039] F为状态转移函数,表示状态转移路径(SD1^sk); i e [0, n_l],j e [0, m_l],k e [0, n_l];
[0040] L = {1。,I1, 12, ···,In J是状态转换路径的标记变量,表示是否已被进行过模糊测 试,默认值为false ;
[0041] 例如本实施例中给出了一种网络协议有限状态机状态转移示意图,如图1所示。
[0042] 步骤二:建立针对有限状态机的完整的测试序列,该测试序列为一个由有限状态 机中所有状态转移路径组成的集合。
[0043] 例如,该序列为t = sk);其中i取遍[0,η-1]中的整数,j取遍[0,m-l] 中的整数,k取遍[0, n-1]中的整数}。
[0044] 步骤三:构造协议消息叫变异后的畸形协议消息集合{~mdl,~md2,~m d3,…,~ mdp},其中p为m/变异后的畸形协议消息数量;其中d为正整数且取遍区间[0, m-1]。
[0045] 构造协议消息m/变异后的畸形协议消息集合时,在基于有限状态机的网络协议的 基础上依据协议规约,对网络协议进行细粒度的结构划分,即从上至下分为四层:状态表示 层、消息类型表示层、消息表示层、子协议域表示层。
[0046]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1