本发明属于物联网,尤其涉及一种工业物联网协议测试用例智能生成方法及系统。
背景技术:
1、物联网协议是一组规范和标准,用于实现物联网环境中设备之间的通信和数据交换。大多数针对工业物联网系统的攻击都是由物联网协议中的安全漏洞引起的。一旦黑客利用这些协议中的漏洞传播病毒,他们甚至可以在不访问物理主机的情况下发起远程攻击,从而对数千台物联网设备造成灾难性的威胁。模糊测试是一种自动化软件测试技术,已成为检测现实软件漏洞的最有效技术之一。虽然传统的协议模糊器已被广泛采用并检测到许多漏洞,也仍存在许多问题。通过上述分析,现有技术存在的问题及缺陷为:(1)传统模糊器需要先验知识参与,需要消耗大量人力和时间;(2)传统模糊器会产生大量不符合协议语法的消息,浪费大量计算资源;(3)传统模糊器需要为不同协议测试重新调整参数和突变策略,移植性差。
技术实现思路
1、针对现有技术存在的问题,本发明提供了一种工业物联网协议测试用例智能生成方法及系统。
2、本发明是这样实现的,一种工业物联网协议测试用例智能生成方法,首先利用wireshark实时捕获网络通信流量,并提取设备地址以及存储消息序列,然后对消息序列进行特殊字符填充,并使用关键字聚类方法对协议消息进行聚类获取训练数据集,随后进行模型训练;在训练过程中,将消息序列转换为0~16的数字表示,并与转换为独热编码的标签拼接输入到模型中;训练完成后,加载模型参数并生成序列,并将消息发送至工业设备并处理异常情况,记录测试用例和异常信息;最后,将异常的测试用例迭代训练模型,以进一步进行模糊测试。
3、进一步,所述工业物联网协议测试用例智能生成方法具体包括:
4、s1,消息预处理:在捕获真实协议消息后对其进行预处理作为模型的训练数据;
5、s2,消息聚类:利用基于关键字的聚类方法对预处理好的消息序列进行聚类;
6、s3,生成模型:采用带有条件变分自编码器(cvae)的生成对抗网络(gan)作为生成模型来学习协议语法,并生成测试用例,称为gc。
7、进一步,s1具体包括:首先使用wireshark捕获主机和工业设备之间的真实流量,协议消息从实际流量中导出为十六进制c数组文件;然后使用正则表达式从c数组文件中提取消息序列,并删除不必要的字符和字段,包括标点符号、注释;最后去除不必要的消息头和利用“-”填充序列使它们对齐。
8、进一步,s2具体包括:
9、s201,首先将对齐的消息序列中的每对字符划分为一个字段,即一个字节,关键字是这些字段之一,从这些字段中选择出候选关键字以便确定最终关键字;由于最需要选择的关键字应该是消息中的操作码,所以关键字必须是动态字段,而且是不包含“-”的字段,最后确定出k1,k2,k6,k8为候选关键字;
10、s202,利用jaccard相似性和编辑距离计算候选关键字成为最终关键字的概率,即基于某个候选关键字聚类后每个类别的jaccard相似性和编辑距离的均值;
11、jaccard相似性的计算公式为:其中,|mi∩mj|表示集合mi和集合mj的交集的元素数量,mi∪mj表示集合mi和集合mj的并集的元素数量。jij表示每两个元素的jaccard相似性。p1表示整个类别的平均jaccard相似度。
12、编辑距离的计算公式为:其中,edit_distance(mi,mj)表示mi转变为mj所需要的最少增加、删除或者替换操作的次数。max_len(mi,mj)表示mi和mj中最长的报文序列长度。eij表示每两个元素的编辑距离。p2表示整个类别的平均编辑距离。
13、候选关键词成为最终关键词的概率是上述两个指标的平均值,得分最高的候选关键词就是要选择的最终关键词;
14、s203,利用最终关键字进行聚类,将最终关键字为相同值的序列划分为一个类别,并添加上对应的标签作为训练数据集。
15、进一步,s3中gc的具体组成如下:
16、(1)编码器:通过全连接层接收输入数据和条件信息,该层将它们映射到潜在空间中的潜在表示,并使用relu作为激活函数,再使用两个全连接层分别得到潜在空间的均值和对数方差;
17、(2)解码器:通过一个全连接层接收从潜在空间中采样的潜在表示和条件信息,将其解码为重构数据,并使用relu作为激活函数;再使用一个全连接层作为输出层,生成与条件信息相关的数据样本,并使用sigmoid作为激活函数;
18、(3)判别器:接收真实样本和生成样本(包括条件信息),并尝试将它们区分开来,判别器使用三层全连接层组成,前两层使用relu作为激活函数,最后一层输出层使用sigmoid作为激活函数;
19、(4)损失函数:gc的损失函数通常包括两部分,一部分是cvae的重构损失,用于确保生成数据与输入数据相似;另一部分是gan的对抗损失,用于鼓励生成数据与真实数据分布相匹配。
20、进一步,s3中,在训练阶段,通过将相关条件信息和输入数据一起输入到gc中的cvae和判别器中,进行对抗训练,条件信息是不同类别消息的标签,这些标签被转换为独热编码并与消息序列拼接在一起,一旦训练了模型,就通过生成随机噪声并将其与标签一起输入解码器来生成与给定条件相关的新样本。
21、本发明的另一目的在于提供一种实现所述工业物联网协议测试用例智能生成方法的工业物联网协议测试用例智能生成系统,包括:
22、消息预处理模块:在捕获真实协议消息后对其进行预处理作为模型的训练数据;
23、消息聚类模块:利用基于关键字的聚类方法对预处理好的消息序列进行聚类;
24、模型生成模块:采用带有条件变分自编码器(cvae)的生成对抗网络(gan)作为生成模型来学习协议语法,并生成测试用例,称为gc。
25、本发明的另一目的在于提供一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述的工业物联网协议测试用例智能生成方法的步骤。
26、本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述的工业物联网协议测试用例智能生成方法的步骤。
27、本发明的另一目的在于提供一种信息数据处理终端,信息数据处理终端用于实现所述的工业物联网协议测试用例智能生成系统。
28、结合上述的技术方案和解决的技术问题,本发明所要保护的技术方案所具备的优点及积极效果为:
29、第一,针对上述现有技术存在的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
30、(1)本发明不需要先验知识的参与即可对工业物联网协议进行模糊测试,节省了大量的人力和时间。
31、(2)本发明避免了生成不符合协议语法的测试用例,节省了大量用于处理无效测试用例的计算资源。
32、(3)本发明具有良好的可移植性,针对不同的协议只需为其提供相应的真实协议消息即可实现测试。
33、(4)本发明在modbus-tcp协议实现上评估了其有效性,实验结果表明,与传统的协议模糊器peach、boofuzz和sulley相比,本发明方法生成的测试用例更有针对性且冗余度更低,同时本方法具有更高的精准模糊测试效率。
34、第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
35、1.基于关键字的聚类方法
36、与传统的模糊方法不同,在使用本发明进行模糊测试之前,需要对真实的协议消息进行聚类。目的是让模型准确地学习协议语法。将具有相似结构的消息归类到同一类别中,以便模型可以针对类别进行学习。本发明提出了一种新颖的协议消息聚类方法,通过从协议消息中提取一个关键字进行聚类。该方法可以准确地对协议消息进行聚类,而不需要任何关于协议消息字段的信息。聚类后的协议消息表现出更大的相似性,这有助于模型更好地学习它们的语法。
37、2.带有cvae的gan模型
38、为了更好的学习不同类别消息的语法结构,本发明使用带有条件变分自编码器(cvae)的生成对抗网络(gan)模型来对它们进行学习。学习后的模型可以在没有协议先验知识的情况下,根据真实网络流量准确推断协议格式,并生成符合协议语法的测试用例。
39、第三,本发明的技术方案转化后的预期收益和商业价值为:本发明利用智能生成方法,能够大幅度提高工业物联网协议测试用例的生成效率和准确性。相比传统手动编写测试用例的方法,该技术能够自动化地捕获、处理和生成测试用例,从而节省时间和人力成本。并且,通过自动化生成测试用例并进行模糊测试,可以有效地发现工业物联网协议实现中的潜在缺陷和异常情况,避免工业物联网设备因协议缺陷而造成损失。
40、第四,在当前的工业物联网协议测试过程中,传统的手动生成测试用例方法效率低下,且难以覆盖到所有可能的通信场景和异常情况。这导致了测试的不完整性和潜在的风险,因为许多潜在的漏洞和错误可能未被及时发现。此外,随着物联网设备数量的激增和通信协议的复杂性增加,手动测试变得更加困难和不切实际。
41、本发明提出了一种工业物联网协议测试用例的智能生成方法,该方法能够自动捕获网络通信流量,提取关键信息,并通过机器学习技术生成高质量的测试用例。这种智能生成方法不仅提高了测试的效率,还确保了测试用例的全面性和多样性,从而显著提高了测试的质量和覆盖率。
42、首先,通过利用wireshark等工具实时捕获网络通信流量,并提取设备地址和消息序列,本发明为生成测试用例提供了真实且丰富的数据源。其次,通过特殊字符填充和关键字聚类方法,本发明对消息序列进行了预处理和聚类,从而得到了高质量的训练数据集。然后,采用带有条件变分自编码器(cvae)的生成对抗网络(gan)作为生成模型,该模型能够学习协议语法并生成符合协议规范的测试用例。最后,通过迭代训练模型并处理异常情况,本发明能够不断优化测试用例的生成过程,提高模糊测试的效率和效果。
43、本发明的工业物联网协议测试用例智能生成方法显著提高了测试的自动化水平和效率,降低了测试成本和风险。通过全面覆盖通信场景和异常情况,该方法能够发现更多的潜在漏洞和错误,从而提高了工业物联网系统的安全性和稳定性。此外,该方法还可以应用于其他领域的协议测试,具有广泛的应用前景和推广价值。
1.一种工业物联网协议测试用例智能生成方法,其特征在于,首先利用wireshark实时捕获网络通信流量,并提取设备地址以及存储消息序列,然后对消息序列进行特殊字符填充,并使用关键字聚类方法对协议消息进行聚类获取训练数据集,随后进行模型训练;在训练过程中,将消息序列转换为0~16的数字表示,并与转换为独热编码的标签拼接输入到模型中;训练完成后,加载模型参数并生成序列,并将消息发送至工业设备并处理异常情况,记录测试用例和异常信息;最后,将异常的测试用例迭代训练模型,进行模糊测试。
2.如权利要求1所述的工业物联网协议测试用例智能生成方法,其特征在于,所述工业物联网协议测试用例智能生成方法具体包括:
3.如权利要求2所述的工业物联网协议测试用例智能生成方法,其特征在于,s1具体包括:首先使用wireshark捕获主机和工业设备之间的真实流量,协议消息从实际流量中导出为十六进制c数组文件;然后使用正则表达式从c数组文件中提取消息序列,并删除不必要的字符和字段,包括标点符号、注释;最后去除不必要的消息头和利用“-”填充序列使它们对齐。
4.如权利要求2所述的工业物联网协议测试用例智能生成方法,其特征在于,s2具体包括:
5.如权利要求2所述的工业物联网协议测试用例智能生成方法,其特征在于,s3中gc的具体组成如下:
6.如权利要求2所述的工业物联网协议测试用例智能生成方法,其特征在于,s3中,在训练阶段,通过将相关条件信息和输入数据一起输入到gc中的cvae和判别器中,进行对抗训练,条件信息是不同类别消息的标签,这些标签被转换为独热编码并与消息序列拼接在一起,一旦训练了模型,就通过生成随机噪声并将其与标签一起输入解码器来生成与给定条件相关的新样本。
7.一种实现如权利要求1~6任意一项所述工业物联网协议测试用例智能生成方法的工业物联网协议测试用例智能生成系统,其特征在于,包括:
8.一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如权利要求1~6任意一项所述的工业物联网协议测试用例智能生成方法的步骤。
9.一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如权利要求1~6任意一项所述的工业物联网协议测试用例智能生成方法的步骤。
10.一种信息数据处理终端,信息数据处理终端用于实现如权利要求7所述的工业物联网协议测试用例智能生成系统。
