CN117827685B - 一种模糊测试输入生成方法、装置、终端及介质 - Google Patents
一种模糊测试输入生成方法、装置、终端及介质 Download PDFInfo
- Publication number
- CN117827685B CN117827685B CN202410246301.6A CN202410246301A CN117827685B CN 117827685 B CN117827685 B CN 117827685B CN 202410246301 A CN202410246301 A CN 202410246301A CN 117827685 B CN117827685 B CN 117827685B
- Authority
- CN
- China
- Prior art keywords
- input
- word block
- new
- word
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 140
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 73
- 230000011218 segmentation Effects 0.000 claims abstract description 23
- 230000035772 mutation Effects 0.000 claims abstract description 11
- 238000013100 final test Methods 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种模糊测试输入生成方法、装置、终端及介质,所述方法包括获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合,利用马尔科夫链学习,生成新的测试输入集合;将样本输入集合中的每一个输入逐一字节变形并分别发送到终端获得对应响应,进行响应分类,并基于分类结果进行词块分割;利用聚类方法再次进行词块分割,获得最终的词块集合,对测试输入进行词块级的变异,得到最终的测试输入集合。因此,本发明实施例能够避免随机生成输入可能会存在的语法或格式等不符合标准等问题,提高测试输入生成和变异的效率,从而提高模糊测试的效率。
Description
技术领域
本发明涉及黑盒测试技术领域,尤其涉及一种模糊测试输入生成方法、装置、终端及介质。
背景技术
在实践中,有时难以得到或者模拟电力信息终端固件。在缺乏固件内部执行信息的情况下,电力信息终端固件的黑盒模糊测试是一种关键技术。在对电力信息终端的固件模糊测试中,黑盒模糊测试的难点在于,缺乏代码执行情况的反馈,难以形成有效的生成和突变测试输入方案来进行其测试过程,所以生成有效的测试输入是电力信息终端的固件模糊测试中重要的一步。传统的随机生成测试输入的方法缺乏对生成的输入的质量的了解,会产生大量的无效输入,导致低质量输入上的资源浪费,固件漏洞挖掘效率很低。
因此,在电力信息终端固件模糊测试领域,根据电力信息终端的响应进行自动的语法推理,进而生成不同变异测试输入是非常有必要的。
发明内容
本发明提供一种模糊测试输入生成方法、装置、终端及介质,利用马尔科夫链学习样本输入,基于学习得到的模型生成新的测试输入集合,并对新生成的测试输入进行词块级的变异,扩大测试输入集合,避免随机生成输入可能会存在的语法或格式等不符合标准等问题,提高测试输入生成和变异的效率,从而提高模糊测试的效率。
为了实现上述目的,第一方面,本发明实施例提供了一种模糊测试输入生成方法,包括:
获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;
采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;
将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;
采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;
根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。
作为上述方案的改进,所述的模糊测试输入生成方法,还包括:
获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。
作为上述方案的改进,所述采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合,具体包括:
分析所述样本输入集合中的每一个输入,得到每一个输入中词块的顺序和概率;
利用马尔科夫链模型学习所述词块的顺序和概率,预测生成新的测试输入时每个词块和参数的概率,从而生成所述新的测试输入,得到新的测试输入集合。
作为上述方案的改进,所述将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合,具体包括:
按照输入序列顺序,将所述样本输入集合每一个输入中字符的一个字节进行删除或者替换为空格处理,生成变形输入,其中,一个所述输入对应的变形输入个数等于所述输入的字符串长度;
逐个将所述变形输入发送给所述电力信息终端,得到对应的响应,从而得到响应集合;
对所述变形输入所对应的响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行初步的语法分割得到词块集合。
作为上述方案的改进,所述采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合,具体包括:
S41,采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,对应的词块标签记为对应的聚类名称,提取所述聚类的特征向量;
S42,根据所述特征向量计算所有聚类之间的聚类距离,将所述聚类距离最相近的两个聚类合并为一个新的聚类,更新聚类中心和所述新的聚类对应的词块标签,若所述两个聚类对应的词块在所述样本输入集合的输入序列中连续,则被合并成为一个新的词块,加入到所述词块集合中;
S43,重复执行步骤S42,直至只剩下一个所述聚类,从而得到新的词块集合;
其中,所述特征向量,包括字符串的总长度,字符串中字母总个数,字符串中数字总个数,字符串中符号总个数,字符串中最长连续字母长度,字符串中最长连续数字长度,字符串中最长连续符号长度。
作为上述方案的改进,所述发送给电力信息终端固件的命令是利用网络监测器通过捕捉所述电力信息终端与外界的通信而获得的。
第二方面,本发明实施例提供了一种模糊测试输入生成装置,包括:
命令获取模块,用于获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;
测试输入模块,用于采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;
输入分割模块,用于将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;
聚类合并模块,用于采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;
词块变异模块,用于根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。
作为上述方案的改进,所述模糊测试输入生成装置,还包括:
测试工具模块,用于获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。
第三方面,本发明实施例对应提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述模糊测试输入生成方法。
此外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述模糊测试输入生成方法。
与现有技术相比,本发明实施例公开的一种模糊测试输入生成方法、装置、终端及介质,通过获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。因此,本发明实施例能够利用利用马尔科夫链学习样本输入,生成新的测试输入集合,并基于词块进行变异而扩大测试输入集合,避免随机生成输入可能会存在的语法不符合标准等问题,且可以针对不同格式进行自动的语法分割,提高了测试输入生成和变异的效率;在电力信息终端固件信息未知情况下,可以对电力信息终端的固件进行模糊测试,及时发现电力信息终端的漏洞,有助于提高电力信息终端的安全性,对于电力信息终端安全具有重要意义。
附图说明
图1是本发明实施例提供的一种模糊测试输入生成方法的流程示意图;
图2是本发明实施例提供的一种模糊测试输入生成装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的术语“包括”和“具体”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明实施例提供的一种模糊测试输入生成方法的流程示意图,该模糊测试输入生成方法,包括步骤S1至S5:
S1,获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;
S2,采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;
S3,将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;
需要说明的是,样本输入进行分割,使得分割后的每一个连续词块,能使电力信息终端件执行特定的代码,目的是为后续的变异做准备。
S4,采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;
需要说明的是,结合聚类方法进行二次语法分割,扩充词块集合,确保分割的全面性,避免可能会存在将两个本应属于一类的输入分类分成两类的误分类情况。
S5,根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。
需要说明的是,在词块级变异过程中,每个词块是被视为一个整体的,即对整个词块进行变异,而不是单个的字符的变异。变异的方式包括:删除词块、反转词块、替换词块、重复词块,对于数据变量,还包括将数据增大的变异;以上变异可以单一进行,也可多个组合进行。
进一步的,所述模糊测试输入生成方法,还包括:
获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。
需要说明的是,所述测试工具用于向电力信息终端发送命令,所述测试工具可以为第三方API或者其它的测试工具,所述测试程序,例如IP地址,登录信息,以及信息格式等。
具体的,所述步骤S2,具体包括:
分析所述样本输入集合中的每一个输入,得到每一个输入中词块的顺序和概率;
利用马尔科夫链模型学习所述词块的顺序和概率,预测生成新的测试输入时每个词块和参数的概率,从而生成所述新的测试输入,得到新的测试输入集合。
具体的,所述步骤S3,具体包括:
按照输入序列顺序,将所述样本输入集合每一个输入中字符的一个字节进行删除或者替换为空格处理,生成变形输入,其中,一个所述输入对应的变形输入个数等于所述输入的字符串长度;
逐个将所述变形输入发送给所述电力信息终端,得到对应的响应,从而得到响应集合;
对所述变形输入所对应的响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行初步的语法分割得到词块集合。
示例的,按照输入序列顺序,通过从头至尾逐一删除样本输入集合中的第i个输入/>中的一个字节/>或将字节/>替换为空格,生成输入/>的变形输入/>,一个输入/>对应的变形输入个数等于其字符串长度;例如对于输入“turnonthedevice”,其长度为15,则其对应的测试序列有15个,包括“urnonthedevice”,“trnonthedevice”,“tunonthedevice”,“turonthedevice”,“turnnthedevice”,“turnothedevice”,“turnonhedevice”,“turnontedevice”,“turnonthdevice”,“turnontheevice”,“turnonthedvice”,“turnonthedeice”,“turnonthedevce”,“turnonthedevie”,“turnonthedevic”。
逐个将变形输入发送给电力信息终端,得到对应的响应/>;对每一个变形输入返回的响应/>进行分类,为避免响应/>中的一些随机性,分类的标准并不采用直接将各个/>进行字符串比对,而是利用两个字符串/>和/>之间的余弦相似度/>:
,
式中的和/>分别是各个字符在两个字符串中出现的频次,/>越接近1,说明两个字符串越相似,通过与阈值/>对比,判定是否分为一类;阈值的设置方法可以根据经验进行人为设定。重复以上操作/>(集合/>的元素个数)次,直至所有输入的变形输入对应的响应都分类完成。以字符串“iloveyou”和“ihateyou”为例:总集合:{i l o v e y u ha t}、字符串1:(1,1,2,1,1,1,1,0,0,0)、字符串1:(1,0,1,0,1,1,1,1,1,1),
则。
当时,可以认为是同一个类别,反之亦然。考虑分为一类的响应,以两个为例/>和/>,若其对应字节/>和/>在原输入/>中为连续的,则合并为一个词块,否则不能合并,以此实现词块分割。合并完成后,所有的词块组成词块集合/>。
又一示例的,按照输入序列顺序,通过从头至尾逐一增加样本输入集合中的第i个输入/>中的一个字节/>或将字节/>替换为空格,生成输入/>的变形输入/>,一个输入对应的变形输入个数等于其字符串长度;
逐个将变形输入发送给电力信息终端,得到对应的响应/>;对每一个变形输入返回的响应/>进行分类,利用两个字符串/>和/>之间的欧几里得距离、曼哈顿距离等,说明两个字符串越相似,通过与阈值/>对比,判定是否分为一类;阈值的设置方法可以根据经验进行人为设定。重复以上操作/>(集合/>的元素个数)次,直至所有输入的变形输入对应的响应都分类完成。
当时,可以认为是同一个类别,反之亦然。考虑分为一类的响应,以两个为例/>和/>,若其对应字节/>和/>在原输入/>中为连续的,则合并为一个词块,否则不能合并,以此实现词块分割。合并完成后,所有的词块组成词块集合/>。
具体的,所述步骤S4,具体包括:
S41,采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,对应的词块标签记为对应的聚类名称,提取所述聚类的特征向量;
S42,根据所述特征向量计算所有聚类之间的聚类距离,将所述聚类距离最相近的两个聚类合并为一个新的聚类,更新聚类中心和所述新的聚类对应的词块标签,若所述两个聚类对应的词块在所述样本输入集合的输入序列中连续,则被合并成为一个新的词块,加入到所述词块集合中;
S43,重复执行步骤S42,直至只剩下一个所述聚类,从而得到新的词块集合;
其中,所述特征向量,包括字符串的总长度,字符串中字母总个数,字符串中数字总个数,字符串中符号总个数,字符串中最长连续字母长度,字符串中最长连续数字长度,字符串中最长连续符号长度。
示例的,采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,对应的词块标签记为对应的聚类名称,并提取其特征向量v,特征向量v,包括字符串的总长度,字符串中字母总个数,字符串中数字总个数,字符串中符号总个数,字符串中最长连续字母长度,字符串中最长连续数字长度,字符串中最长连续符号长度;对于三个字符串,例如字符串“‘error1:’”,字符串“‘error2:’”和字符串“‘successful’”,其特征向量分别为(9,5,1,3,5,1,2),(9,5,1,3,5,1,2)和(12,10,0,2,10,0,1);
根据特征向量计算所有聚类之间的聚类距离,字符串“‘error1:’”,字符串“‘error2:’”和字符串“‘successful’”其聚类距离为:
,两个最相近的聚类将被合并为一个,聚类中心相应地进行更新,其对应的词块标签也相应更新,若两聚类对应的词块在输入/>中连续,则被合并成为一个新的词块,并将其加入到词块集合/>中。重复进行上述步骤,直至只有一个聚类,此时,词块也被合并为该输入/>。
假设字符串“‘error1:’”,字符串“‘error2:’”和字符串“‘successful’”分别对应的是“urnonthedevice”,“trnonthedevice”和“tunonthedevice”,显然前两个响应字符串聚类之间的距离最小,则字符串“‘error1:’”聚类对应的“urnonthedevice”中删除的“t”和字符串“‘error2:’” 聚类对应的“trnonthedevice”中删除的“u”将被合并,成为词块“tu”(在原字符串中是连续的),并记入词块集合中。
具体的,所述发送给电力信息终端固件的命令是利用网络监测器通过捕捉所述电力信息终端与外界的通信而获得的。
需要说明的是,模糊测试的样本输入不是随机产生的,利用网络监测器通过捕捉所述电力信息终端与外界的通信而获得的命令,作为模糊测试的样本输入集合,能够避免不符合语法的输入,网络流量监测器,比如Tshark、Wireshark、tcpdump等。
图2是本发明实施例提供的一种模糊测试输入生成装置的结构示意图,该模糊测试输入生成装置,包括:
命令获取模块11,用于获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;
测试输入模块12,用于采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;
输入分割模块13,用于将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;
聚类合并模块14,用于采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;
词块变异模块15,用于根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。
进一步的,所述模糊测试输入生成装置,还包括:
测试工具模块,用于获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。
具体的,所述测试输入模块12,具体包括:
分析单元,用于分析所述样本输入集合中的每一个输入,得到每一个输入中词块的顺序和概率;
学习单元,用于利用马尔科夫链模型学习所述词块的顺序和概率,预测生成新的测试输入时每个词块和参数的概率,从而生成所述新的测试输入,得到新的测试输入集合。
具体的,所述输入分割模块13,具体包括:
变形单元,用于按照输入序列顺序,将所述样本输入集合每一个输入中字符的一个字节进行删除或者替换为空格处理,生成变形输入,其中,一个所述输入对应的变形输入个数等于所述输入的字符串长度;
响应单元,用于逐个将所述变形输入发送给所述电力信息终端,得到对应的响应,从而得到响应集合;
分类单元,用于对所述变形输入所对应的响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行初步的语法分割得到词块集合。
具体的,所述聚类合并模块14,具体包括:
聚类单元,用于采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,对应的词块标签记为对应的聚类名称,提取所述聚类的特征向量;
合并单元,用于根据所述特征向量计算所有聚类之间的聚类距离,将所述聚类距离最相近的两个聚类合并为一个新的聚类,更新聚类中心和所述新的聚类对应的词块标签,若所述两个聚类对应的词块在所述样本输入集合的输入序列中连续,则被合并成为一个新的词块,加入到所述词块集合中;
迭代单元,用于重复执行所述合并单元,直至只剩下一个所述聚类,从而得到新的词块集合;
其中,所述特征向量,包括字符串的总长度,字符串中字母总个数,字符串中数字总个数,字符串中符号总个数,字符串中最长连续字母长度,字符串中最长连续数字长度,字符串中最长连续符号长度。
本发明实施例所提供的一种模糊测试输入生成装置能够实现上述实施例的模糊测试输入生成方法的所有流程,装置中的各个模块的作用以及实现的技术效果分别与上述实施例的模糊测试输入生成方法的作用以及实现的技术效果对应相同,这里不再赘述。
本发明实施例对应提供的一种终端设备,所述终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述模糊测试输入生成方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述模糊测试输入生成装置实施例中各模块的功能。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元,还可以是其他通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述实施例的模糊测试输入生成方法。
综上所述,本发明实施例公开的一种模糊测试输入生成方法、装置、终端及介质,通过获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。因此,本发明实施例能够利用利用马尔科夫链学习样本输入,生成新的测试输入集合,并基于词块进行变异而扩大测试输入集合,避免随机生成输入可能会存在的语法不符合标准等问题,且可以针对不同格式进行自动的语法分割,提高了测试输入生成和变异的效率;在电力信息终端固件信息未知情况下,可以对电力信息终端的固件进行模糊测试,及时发现电力信息终端的漏洞,有助于提高电力信息终端的安全性,对于电力信息终端安全具有重要意义。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种模糊测试输入生成方法,其特征在于,包括:
获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;
采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;
将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;
采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;
根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。
2.如权利要求1所述的模糊测试输入生成方法,其特征在于,还包括:
获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。
3.如权利要求1所述的模糊测试输入生成方法,其特征在于,所述采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合,具体包括:
分析所述样本输入集合中的每一个输入,得到每一个输入中词块的顺序和概率;
利用马尔科夫链模型学习所述词块的顺序和概率,预测生成新的测试输入时每个词块和参数的概率,从而生成所述新的测试输入,得到新的测试输入集合。
4.如权利要求3所述的模糊测试输入生成方法,其特征在于,所述将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合,具体包括:
按照输入序列顺序,将所述样本输入集合每一个输入中字符的一个字节进行删除或者替换为空格处理,生成变形输入,其中,一个所述输入对应的变形输入个数等于所述输入的字符串长度;
逐个将所述变形输入发送给所述电力信息终端,得到对应的响应,从而得到响应集合;
对所述变形输入所对应的响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行初步的语法分割得到词块集合。
5.如权利要求3所述的模糊测试输入生成方法,其特征在于,所述采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合,具体包括:
S41,采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,对应的词块标签记为对应的聚类名称,提取所述聚类的特征向量;
S42,根据所述特征向量计算所有聚类之间的聚类距离,将所述聚类距离最相近的两个聚类合并为一个新的聚类,更新聚类中心和所述新的聚类对应的词块标签,若所述两个聚类对应的词块在所述样本输入集合的输入序列中连续,则被合并成为一个新的词块,加入到所述词块集合中;
S43,重复执行步骤S42,直至只剩下一个所述聚类,从而得到新的词块集合;
其中,所述特征向量,包括字符串的总长度,字符串中字母总个数,字符串中数字总个数,字符串中符号总个数,字符串中最长连续字母长度,字符串中最长连续数字长度,字符串中最长连续符号长度。
6.如权利要求1所述的模糊测试输入生成方法,其特征在于,所述发送给电力信息终端固件的命令是利用网络监测器通过捕捉所述电力信息终端与外界的通信而获得的。
7.一种模糊测试输入生成装置,其特征在于,包括:
命令获取模块,用于获取发送给电力信息终端固件的命令,作为模糊测试的样本输入集合;
测试输入模块,用于采用马尔科夫链学习所述样本输入集合,生成新的测试输入集合;
输入分割模块,用于将所述样本输入集合每一个输入的字符逐个变形后,发送给所述电力信息终端获得对应的响应集合,对所述响应集合中各个响应进行分类,基于分类结果对所述样本输入集合中的每个输入进行语法分割得到词块集合;
聚类合并模块,用于采用聚类方法,将所述词块集合中每一类响应所对应的词块作为一个聚类,提取所述聚类的特征向量,进行两两聚类合并,以获取新的词块,加入到所述词块集合中,直至只剩下一个所述聚类,从而得到新的词块集合;
词块变异模块,用于根据所述新的词块集合,对所述样本输入集合和所述新的测试输入集合中每个输入进行词块级变异,产生新的测试输入,得到最终的测试输入集合。
8.如权利要求7所述的模糊测试输入生成装置,其特征在于,所述模糊测试输入生成装置,还包括:
测试工具模块,用于获取所述电力信息终端固件的测试工具,并配置所述测试工具的测试程序。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6中任意一项所述的模糊测试输入生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1-6中任意一项所述的模糊测试输入生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410246301.6A CN117827685B (zh) | 2024-03-05 | 2024-03-05 | 一种模糊测试输入生成方法、装置、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410246301.6A CN117827685B (zh) | 2024-03-05 | 2024-03-05 | 一种模糊测试输入生成方法、装置、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117827685A CN117827685A (zh) | 2024-04-05 |
CN117827685B true CN117827685B (zh) | 2024-04-30 |
Family
ID=90519447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410246301.6A Active CN117827685B (zh) | 2024-03-05 | 2024-03-05 | 一种模糊测试输入生成方法、装置、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827685B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019210562A1 (de) * | 2019-07-17 | 2021-01-21 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Prüfen von Software |
DE202022104771U1 (de) * | 2022-08-23 | 2022-09-02 | Abhishek Bajpai | Ein evolutionäres Neuro-Fuzzy-System unter Verwendung von evolutionärem Fuzzy-Clustering und syndizierten neuronalen Netzen |
CN115828260A (zh) * | 2022-11-18 | 2023-03-21 | 上海交通大学 | 基于脆弱点聚类与距离空间划分的多机协同漏洞检测系统 |
CN116108449A (zh) * | 2023-01-12 | 2023-05-12 | 清华大学 | 软件模糊测试方法、装置、设备及存储介质 |
CN116257455A (zh) * | 2023-05-10 | 2023-06-13 | 长江三峡集团实业发展(北京)有限公司 | 一种模糊测试用例的生成方法、装置、设备及存储介质 |
CN116303082A (zh) * | 2023-04-04 | 2023-06-23 | 中南大学 | 一种操作系统内核模糊测试种子调度与评估方法 |
WO2023185559A1 (zh) * | 2022-03-28 | 2023-10-05 | 深圳吉因加医学检验实验室 | 一种用于结构变异检测的方法、装置和存储介质 |
CN117321602A (zh) * | 2021-05-28 | 2023-12-29 | 谷歌有限责任公司 | 字符级注意力神经网络 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200371902A1 (en) * | 2019-05-21 | 2020-11-26 | Servicenow, Inc. | Systems and methods for software regression detection |
-
2024
- 2024-03-05 CN CN202410246301.6A patent/CN117827685B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019210562A1 (de) * | 2019-07-17 | 2021-01-21 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Prüfen von Software |
CN117321602A (zh) * | 2021-05-28 | 2023-12-29 | 谷歌有限责任公司 | 字符级注意力神经网络 |
WO2023185559A1 (zh) * | 2022-03-28 | 2023-10-05 | 深圳吉因加医学检验实验室 | 一种用于结构变异检测的方法、装置和存储介质 |
DE202022104771U1 (de) * | 2022-08-23 | 2022-09-02 | Abhishek Bajpai | Ein evolutionäres Neuro-Fuzzy-System unter Verwendung von evolutionärem Fuzzy-Clustering und syndizierten neuronalen Netzen |
CN115828260A (zh) * | 2022-11-18 | 2023-03-21 | 上海交通大学 | 基于脆弱点聚类与距离空间划分的多机协同漏洞检测系统 |
CN116108449A (zh) * | 2023-01-12 | 2023-05-12 | 清华大学 | 软件模糊测试方法、装置、设备及存储介质 |
CN116303082A (zh) * | 2023-04-04 | 2023-06-23 | 中南大学 | 一种操作系统内核模糊测试种子调度与评估方法 |
CN116257455A (zh) * | 2023-05-10 | 2023-06-13 | 长江三峡集团实业发展(北京)有限公司 | 一种模糊测试用例的生成方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于模糊测试技术的软件安全漏洞挖掘方法研究;胡贵恒;陈翠红;;黑龙江工业学院学报(综合版);20200720(第07期);全文 * |
模糊测试中基于神经网络的敏感区域预测算法研究;张羿辰;赵磊;金银山;;信息安全学报;20200115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117827685A (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112464641A (zh) | 基于bert的机器阅读理解方法、装置、设备及存储介质 | |
CN111325156B (zh) | 人脸识别方法、装置、设备和存储介质 | |
CN106850338B (zh) | 一种基于语义分析的r+1类应用层协议识别方法与装置 | |
CN111835763B (zh) | 一种dns隧道流量检测方法、装置及电子设备 | |
CN109783805B (zh) | 一种网络社区用户识别方法、装置和可读存储介质 | |
CN115953123A (zh) | 机器人自动化流程的生成方法、装置、设备及存储介质 | |
CN115687980A (zh) | 数据表的脱敏分类方法、分类模型训练方法及装置 | |
CN116032741A (zh) | 一种设备识别方法、装置、电子设备和计算机存储介质 | |
CN117827685B (zh) | 一种模糊测试输入生成方法、装置、终端及介质 | |
CN112446205A (zh) | 语句判别方法、装置、设备及存储介质 | |
CN114491010A (zh) | 信息抽取模型的训练方法及装置 | |
CN116956026A (zh) | 一种网络资产识别模型的训练方法及系统 | |
CN114842982B (zh) | 一种面向医疗信息系统的知识表达方法、装置及系统 | |
CN111354354B (zh) | 一种基于语义识别的训练方法、训练装置及终端设备 | |
CN111859933A (zh) | 马来语识别模型的训练方法、识别方法、装置、设备 | |
CN116578700A (zh) | 日志分类方法、日志分类装置、设备及介质 | |
CN114741697B (zh) | 恶意代码分类方法、装置、电子设备和介质 | |
CN110852082A (zh) | 同义词的确定方法及装置 | |
CN115795466A (zh) | 一种恶意软件组织识别方法及设备 | |
CN115357720A (zh) | 基于bert的多任务新闻分类方法及装置 | |
CN113869398A (zh) | 一种不平衡文本分类方法、装置、设备及存储介质 | |
CN112015895A (zh) | 一种专利文本分类方法及装置 | |
CN115758211B (zh) | 文本信息分类方法、装置、电子设备和存储介质 | |
CN113722465B (zh) | 一种意图识别方法及装置 | |
CN116029492B (zh) | 派单方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |