一种扩展Peach平台同时测试多个网络报文字段的方法

文档序号:6637882阅读:631来源:国知局
一种扩展Peach平台同时测试多个网络报文字段的方法
【专利摘要】本发明公开了一种扩展Peach平台同时测试多个网络报文字段的方法,该方法:取消了原有Peach最多只能同时测试5个字段的限制;提出递增式的字段组合测试方法,即同时对1个字段、2个字段…n-1个字段、n个字段进行测试;针对组合过程中产生的大量测试用例与有限测试时间的矛盾,即“组合爆炸”问题,允许测试人员在PitFile中<Strategy>标签里设置不同级别的测试用例生成条件,有效地限制其产生的数量,从而生成更具有针对性的测试用例,极大地提高了协议安全专家的测试效率。对于熟悉Peach平台的安全专家而言,本发明简单有效,便于实施操作。
【专利说明】一种扩展Peach平台同时测试多个网络报文字段的方法

【技术领域】
[0001] 本发明涉及计算机【技术领域】,特别是指网络安全领域中的协议测试方法。

【背景技术】
[0002] 网络安全问题目前已经引起人们的充分重视,协议健壮性测试是保证网络实体质 量的有效措施。如何以最小的开销发现隐藏在网络实体中潜在的缺陷是网络安全领域的一 个重要研宄方向。目前,大多数测试工具和方法的研宄重点在于向报文字段中注入攻击数 据的类型和内容,并且每次只能测试一个字段,而对同时测试多个网络报文字段方法的研 宄较少。
[0003] 在网络健壮性测试领域中,有多款测试工具或平台,例如Scapi、AppScan、Nessus、 Spike和Peach等,但各自的优势略有不同。其中,Scapi测试底层协议;AppScan扫描Web 服务;Nessus回归测试已知漏洞;Spike虽然具备发现〃Ο-day〃漏洞的能力,但是其代码逻 辑与测试数据紧耦合在一起,不容易扩展;Peach是目前协议测试领域中最活跃的社区,很 多研宄人员将其成果用于增强Peach的原有功能。
[0004] Peach的Random策略虽然支持对多个报文字段进行同时测试的功能,但是存在几 处不足:1)最多同时测试5个报文字段;2)随机选取测试字段、Mutator和Fault,带有很 强的盲目性;3)产生无限多的测试用例,并且测试用例之间可能重复,测试过程不但不够 系统化,而且必须人为终止。以上缺陷导致安全专家基于Peach进行多字段测试时,不仅具 有一定的局限性,而且具有很强的盲目性,测试效率比较低。
[0005] 本发明的出发点是扩展Peach多字段测试的功能,即在原有Random策略基础上, 增加 Combination策略。该策略不仅打破了原始Random策略最多只能测试5个报文字段的 局限,而且系统地对测试报文字段、Mutator与Fault进行组合,在某种程度上降低了原有 Peach的盲目性。此外,通过设置测试用例产生条件,限制其产生的数量级别,不仅有效地解 决了产生测试用例的"组合爆炸"问题,也给多字段测试带来一定的灵活性。由于Peach发 展较快,其2. 3. 7版是基于Python开发的,而3. 0. 202版则是基于C#开发的,PitFile的 功能与标签含义的改动也较大,本发明虽然是针对3. 0. 202版本,但是其扩展思路不局限 于该版本。


【发明内容】

[0006] 有鉴于此,本发明在于提供一种扩展Peach平台同时测试多个网络报文字段的方 法,即为Peach增加 Combination策略。该策略通过对报文字段、Mutator和Fault进行系 统组合的机制,在不改变原有Peach功能的基础上,提高了其在多字段测试方面的能力。此 夕卜,为了处理产生测试用例过程中带来的"组合爆炸"问题与有限测试时间的矛盾,本发明 通过设置测试用例生成条件的方式,不仅能够产生更有针对性的测试用例,而且有效地降 低了测试用例的数量级别。
[0007] 为解决上述问题,本发明提供一种扩展Peach平台同时测试多个网络报文字段的 方法,其特征在于,包括:提供用于扩展Peach策略的实现方法;详细论述产生组合测试用 例的实现机制;解析PitFile中〈Strategy〉里的各个参数,获得测试用例产生条件以及其 作用于测试用例产生的机制。
[0008] 安全专家根据测试内容以及测试时间等因素,灵活地选择测试用例生成规则,从 而系统地产生具有不同级别针对性的测试用例,减少了原有Peach进行多字段测试的局限 与盲目性,提高了测试效率。
[0009] 假设对网络报文中的η个字段进行测试,新增Combination策略的默认组合算法, 即〈Strategy〉中combination_policy变量值为default,的工作过程,如下所述(流程图 如图1所示):
[0010] (1)对每次测试字段的数目从1开始进行遍历,即每次测试1个字段、2个字段、··· n-1个字段、η个字段。
[0011] (2)在确定测试字段数目的情况下,通过组合算法选择具体的测试字段。具体地 说,假设当前正在对m(l < m < η)个字段进行测试,则需要对种情况进行遍历。
[0012] (3)当确定测试字段后,对每个字段的Mutator和Fault进行组合遍历,具体实现 如下所述:
[0013] (3. 1)对每个字段对应的多个Mutator中的Fault进行线性化处理,设第i个字 段选取的Fault依次是Fi,i、F i, 2、 ^i, size (i) ° 其中,size(i)表示第i个字段能够选取的 Fault数目。
[0014] (3. 2)如果〈Strategy〉中 combination_policy 变量值为 default,贝丨j对选定的测 试字段与Fault进行类似于计数器的默认的组合操作,即生成如下测试用例:
[0015]

【权利要求】
1. 一种扩展Peach平台同时测试多个网络报文字段的方法,其特征在于,包括:打破 Peach本身最多只能同时测试5个报文字段的限制;提出递增式的多字段组合测试策略,即 同时测试1个字段、2个字段……n-1个字段、n个字段;描述为Peach增加自定义策略的实 现方法;详细地描述了组合测试用例的生成规则及实现方法。 针对组合过程中产生大量测试用例与有限测试时间矛盾的问题,通过在PitFile文件 中的〈Strategy〉标签里设置测试用例生成条件的方式,不但能够产生更有针对性的测试 用例,而且也限制了测试用例的数量级别。
2. 根据权利要求1所述的方法,其特征在于,还包括:如果〈Strategy〉标签中的参数 设置不符合要求,则Combination策略会给出相应的错误提示以及错误原因。
3. 根据权利要求1所述的方法,其特征在于,还包括:扩展Peach测试策略的方法,即 在原有RandomDeterministic、Sequential和Random策略基础上,新增本发明自定义的 Combination 策略。
4. 根据权利要求1所述的方法,其特征在于,还包括:Combination策略的基本思路不 局限于Peach的3. 0. 202版本(C#语言实现),也适合于2. 3. 7版本(Python语言实现), 即该方法不依赖于实现Peach的语言。
5. 根据权利要求1所述的方法,其特征在于,还包括:〈Strategy〉标签中变量的命名与 表述方式不拘泥于本发明所描述的格式,只要能够表达本发明所描述的信息即可。
【文档编号】G06F21/57GK104517056SQ201410748856
【公开日】2015年4月15日 申请日期:2014年12月9日 优先权日:2014年12月9日
【发明者】张华 , 张钊, 赵凯, 温巧燕 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1