本发明涉及协议测试领域,尤其涉及一种s5协议健壮性测试方法及装置。
背景技术:
1、近年来,互联网安全攻击事件屡发不止,其中,由于网络应用站点薄弱的安全防护,导致网络应用成为黑客攻击的主要目标。黑客通过对在线应用程序植入恶意程序,在用户执行操作的过程中,盗取用户的隐私数据,造成用户的损失。因此,必须加强对网络应用的安全测试,降低其遭受攻击以及威胁的可能性,保障通信安全。
2、健壮性测试对于测试人员非常有用,因为它能够尽早地发现错误,有时甚至在发布之前找到错误。当然健壮性测试也可以用作回归测试的工具,以查找重新引入的错误。对于安全研究人员来说,健壮性测试是查找错误的一个很好的工具,因为它能够发现人工审计或渗透测试找不到的错误,并且可以在处理其他事情时保持运行。
3、但是技术人员发现,对于s5协议的健壮性测试过程中,协议健壮性测试通常生成的输出文件具有盲目性,需要大量的时间来比较利用这些输出文件测试程序,协议的安全性、测试的效率较低。只能盲目地发送各种变异的报文到服务端。
技术实现思路
1、本发明的目的在于提供一种s5协议健壮性测试方法及装置,解决了现有技术中指出的上述技术问题。
2、本发明提供了一种s5协议健壮性测试装置,包括协议数据获取模块、协议强健性测试模块;
3、其中,所述协议数据获取模块,用于获取s5协议,将所述s5协议进行逆向分析,得到协议数据;
4、所述协议强健性测试模块,用于将所述协议数据通过模糊测试技术进行健壮性测试后进行分析,得到分析结果;
5、其中,所述协议强健性测试模块,包括第一测试用例生成模块、测试用例测试模块、测试用例分析模块;
6、所述第一测试用例生成模块,用于基于所述协议数据通过模糊测试技术生成多个第一测试用例;
7、所述测试用例测试模块,用于执行所述第一测试用例,得到测试结果;
8、所述测试用例分析模块,用于判断所述测试结果是否异常;若判断所述测试结果正常,则确定所述第一测试用例为通过测试用例;
9、若判断所述测试结果异常,则确定所述第一测试用例为未通过测试用例;对所述未通过测试用例进行分析,获取所述未通过测试用例的位置及所述未通过测试用例的原因;
10、根据所述未通过测试用例的位置及所述未通过测试用例的原因,对所述未通过测试用例进行优化,得到第二测试用例;将所述第二测试用例确定为第一测试用例,并重复上述测试用例测试操作,获取多个通过测试用例;
11、对所述通过测试用例进行分析,得到分析结果。
12、相应地,本发明还提出了一种s5协议健壮性测试方法,包括如下操作步骤:
13、获取s5协议,将所述s5协议进行逆向分析,得到协议数据;
14、将所述协议数据通过模糊测试技术进行健壮性测试后进行分析,得到分析结果。
15、较佳的,所述将所述协议数据通过模糊测试技术进行健壮性测试后进行分析,得到分析结果,包括如下操作步骤:
16、基于所述协议数据通过模糊测试技术生成多个第一测试用例;
17、测试用例测试:执行所述第一测试用例,得到测试结果;
18、判断所述测试结果是否异常;若判断所述测试结果正常,则确定所述第一测试用例为通过测试用例;
19、若判断所述测试结果异常,则确定所述第一测试用例为未通过测试用例;对所述未通过测试用例进行分析,获取所述未通过测试用例的位置及所述未通过测试用例的原因;
20、根据所述未通过测试用例的位置及所述未通过测试用例的原因,对所述未通过测试用例进行优化,得到第二测试用例;将所述第二测试用例确定为第一测试用例,并重复上述测试用例测试操作,获取多个通过测试用例;
21、对所述通过测试用例进行分析,得到分析结果。
22、较佳的,所述根据所述未通过测试用例的位置及所述未通过测试用例的原因,对所述未通过测试用例进行优化,得到第二测试用例,包括如下操作步骤:
23、优化初始化:获取协议数据覆盖位置及所述协议数据覆盖位置的属性信息;根据所述协议数据覆盖位置的属性信息,对所述协议数据覆盖位置进行排序,得到覆盖位置序列表;获取未通过测试用例的覆盖原因及所述未通过测试用例的覆盖原因的重要程度;根据所述未通过测试用例的原因的重要程度对所述未通过测试用例的覆盖原因进行排序,得到覆盖原因序列表;
24、所述协议数据覆盖位置的属性信息包括协议数据覆盖位置的重要程度;所述未通过测试用例的覆盖原因的属性信息包括覆盖原因的重要程度;
25、未通过测试用例初始化:基于所述覆盖位置序列表,计算获取所述未通过测试用例的位置的影响系数a;基于所述覆盖原因序列表,计算获取所述未通过测试用例的原因的影响系数b;
26、预设未通过测试用例的位置的影响系数权重值m及未通过测试用例的原因的影响系数权重值n;
27、根据所述影响系数a与所述影响系数b计算获取所述未通过测试用例的评估数值r;
28、对所述未通过测试用例根据所述评估数值r由大到小进行排序,获取未通过测试用例序列表;
29、所述评估数值r的计算方式为:
30、r=a×m+b×n;
31、式中,r为评估数值;
32、a为未通过测试用例的位置的影响系数;
33、b为未通过测试用例的原因的影响系数;
34、m为未通过测试用例的位置的影响系数权重值;
35、n为未通过测试用例的原因的影响系数权重值;
36、遍历所述未通过测试用例序列表,基于所述覆盖位置序列表及所述覆盖原因序列表,对所述未通过测试用例进行优化,得到多个第二测试用例。
37、较佳的,所述遍历所述未通过测试用例序列表,基于所述覆盖位置序列表及所述覆盖原因序列表,对所述未通过测试用例进行优化,得到多个第二测试用例,包括如下操作步骤:
38、未通过测试用例优化:选择所述未通过测试用例序列表中第一个未通过测试用例,确定为第一目标测试用例;遍历所述覆盖位置序列表,对所述第一目标测试用例进行位移操作,得到多个第一位置目标测试用例;
39、对所述第一位置目标测试用例进行测试,得到第一位置测试结果;
40、判断所述第一位置测试结果是否有误;
41、若判断所述第一位置测试结果无误,则进一步判断所述第一位置目标测试用例与所述第一测试用例是否有一致的测试用例;
42、若判断所述第一位置目标测试用例与所述第一测试用例有一致的测试用例,则将所述第一位置目标测试用例筛除;
43、若判断所述第一位置目标测试用例与所述第一测试用例无一致的测试用例,则确定所述第一位置目标测试用例为第二测试用例,并将所述第一位置目标测试用例对应的所述第一目标测试用例从所述未通过测试用例序列表中筛除,并重复上述未通过测试用例优化操作,得到多个第二测试用例;
44、若判断所述第一位置测试结果有误,则将所述第一位置目标测试用例基于所述覆盖原因序列表进行调整,得到多个第一原因目标测试用例;基于所述第一原因目标测试用例,对所述第一原因目标测试用例进行测试后,筛选获取多个第二测试用例。
45、较佳的,所述基于所述第一原因目标测试用例,对所述第一原因目标测试用例进行测试后,筛选获取多个第二测试用例,包括如下操作步骤:
46、对所述第一原因目标测试用例进行测试,得到第一原因测试结果;
47、判断所述第一原因测试结果是否有误;
48、若判断所述第一原因测试结果无误,则进一步判断所述第一原因目标测试用例与所述第一测试用例是否有一致的测试用例;
49、若判断所述第一原因目标测试用例与所述第一测试用例有一致的测试用例,则将所述第一原因目标测试用例筛除;
50、若判断所述第一原因目标测试用例与所述第一测试用例无一致的测试用例,则确定所述第一原因目标测试用例为第二测试用例,并将所述第一原因目标测试用例对应的所述第一目标测试用例从所述未通过测试用例序列表中筛除,并重复上述未通过测试用例优化操作,得到多个第二测试用例。
51、与现有技术相比,本发明实施例至少存在如下方面的技术优势:
52、分析本发明提供的上述一种s5协议健壮性测试方法及装置可知,在具体应用时,首先获取s5协议,然后对s5协议进行逆向分析,得到协议数据,针对协议数据,通过模糊测试技术生成多个第一测试用例后,对第一测试用例进行测试,得到多个通过测试用例及多个未通过测试用例(使用模糊测试技术生成的多个测试用例,可避免生成大量无用的测试用例,从生成的测试用例中“剪枝”得到多个第一测试用例,减小系统运行压力,提高测试效率,同时可保障测试的全面性);然后再对未通过测试用例进行未通过测试用例的位置及未通过测试用例的原因进行调整后得到多个第二测试用例(进一步地扩大测试覆盖面,进一步保障测试的全面性),进一步将第二测试用例作为第一测试用例进行测试,得到测试结果后进行分析,得到分析结果(分析结果为最终的协议健壮性测试的结果分析而来,可对协议的漏洞及不足进行展示,从而使技术人员进行调整协议,保障协议安全性);保障测试的效率的同时保障测试的全面性;进而对s5协议进行健壮性的测试更进一步地保障协议的安全性。