一种模糊测试输入生成方法、装置、终端及介质与流程

文档序号:37635106发布日期:2024-04-18 17:50阅读:14来源:国知局
一种模糊测试输入生成方法、装置、终端及介质与流程

本发明涉及黑盒测试,尤其涉及一种模糊测试输入生成方法、装置、终端及介质。


背景技术:

1、在实践中,有时难以得到或者模拟电力信息终端固件。在缺乏固件内部执行信息的情况下,电力信息终端固件的黑盒模糊测试是一种关键技术。在对电力信息终端的固件模糊测试中,黑盒模糊测试的难点在于,缺乏代码执行情况的反馈,难以形成有效的生成和突变测试输入方案来进行其测试过程,所以生成有效的测试输入是电力信息终端的固件模糊测试中重要的一步。传统的随机生成测试输入的方法缺乏对生成的输入的质量的了解,会产生大量的无效输入,导致低质量输入上的资源浪费,固件漏洞挖掘效率很低。

2、因此,在电力信息终端固件模糊测试领域,根据电力信息终端的响应进行自动的语法推理,进而生成不同变异测试输入是非常有必要的。


技术实现思路

1、本发明提供一种模糊测试输入生成方法、装置、终端及介质,利用马尔科夫链学习样本输入,基于学习得到的模型生成新的测试输入集合,并对新生成的测试输入进行词块级的变异,扩大测试输入集合,避免随机生成输入可能会存在的语法或格式等不符合标准等问题,提高测试输入生成和变异的效率,从而提高模糊测试的效率。

2、为了实现上述目的,第一方面,本发明实施例提供了一种模糊测试输入生成方法,包括:

3、获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;

4、采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;

5、将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;

6、采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;

7、根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。

8、作为上述方案的改进,所述的模糊测试输入生成方法,还包括:

9、获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。

10、作为上述方案的改进,所述采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合,具体包括:

11、分析所述样本输入集合中的每一个输入,得到每一个输入中词块的顺序和概率;

12、利用马尔科夫链模型学习所述词块的顺序和概率,预测生成新的测试输入时每个词块和参数的概率,从而生成所述新的测试输入,得到新的测试输入集合。

13、作为上述方案的改进,所述将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合,具体包括:

14、按照输入序列顺序,将所述样本输入集合每一个输入中字符的一个字节进行删除或者替换为空格处理,生成变形输入,其中,一个所述输入对应的变形输入个数等于所述输入的字符串长度;

15、逐个将所述变形输入发送给所述电力信息终端,得到对应的响应,从而得到响应集合;

16、对所述变形输入所对应的响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行初步的语法分割得到词块集合。

17、作为上述方案的改进,所述采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合,具体包括:

18、s41,采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,对应的词块标签记为对应的聚类名称,提取所述聚类的特征向量;

19、s42,根据所述特征向量计算所有聚类之间的聚类距离,将所述聚类距离最相近的两个聚类合并为一个新的聚类,更新聚类中心和所述新的聚类对应的词块标签,若所述两个聚类对应的词块在所述样本输入集合的输入序列中连续,则被合并成为一个新的词块,加入到所述词块集合中;

20、s43,重复执行步骤s42,直至只剩下一个所述聚类,从而得到新的词块集合;

21、其中,所述特征向量,包括字符串的总长度,字符串中字母总个数,字符串中数字总个数,字符串中符号总个数,字符串中最长连续字母长度,字符串中最长连续数字长度,字符串中最长连续符号长度。

22、作为上述方案的改进,所述发送给电力信息终端固件的命令是利用网络监测器通过捕捉所述电力信息终端与外界的通信而获得的。

23、第二方面,本发明实施例提供了一种模糊测试输入生成装置,包括:

24、命令获取模块,用于获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;

25、测试输入模块,用于采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;

26、输入分割模块,用于将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;

27、聚类合并模块,用于采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;

28、词块变异模块,用于根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。

29、作为上述方案的改进,所述模糊测试输入生成装置,还包括:

30、测试工具模块,用于获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。

31、第三方面,本发明实施例对应提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述模糊测试输入生成方法。

32、此外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述模糊测试输入生成方法。

33、与现有技术相比,本发明实施例公开的一种模糊测试输入生成方法、装置、终端及介质,通过获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。因此,本发明实施例能够利用利用马尔科夫链学习样本输入,生成新的测试输入集合,并基于词块进行变异而扩大测试输入集合,避免随机生成输入可能会存在的语法不符合标准等问题,且可以针对不同格式进行自动的语法分割,提高了测试输入生成和变异的效率;在电力信息终端固件信息未知情况下,可以对电力信息终端的固件进行模糊测试,及时发现电力信息终端的漏洞,有助于提高电力信息终端的安全性,对于电力信息终端安全具有重要意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1