一种配电台区终端网络协议模糊测试方法、系统及计算机可读存储介质与流程

文档序号:37721421发布日期:2024-04-23 11:57阅读:9来源:国知局
一种配电台区终端网络协议模糊测试方法、系统及计算机可读存储介质与流程

本发明涉及一种配电台区终端网络协议模糊测试方法、系统及计算机可读存储介质,属于配电台区安全。


背景技术:

1、随着新型电力系统建设的不断推进,分布式光伏、充电桩、用户储能等电力负荷和储能设备逐渐通过开放的网络接入电网,引发了低压配电网业务形态的演变。配电台区在电力系统中扮演着至关重要的角色,其主要功能在于将高压输电网的电能有效分配至低压配电网,以满足广泛的用户用电需求。由于配电台区终端网络协议类型的多样性、协议交互过程的复杂性以及开发人员在协议开发方面的不足考虑等特点,导致配电台区终端网络协议存在一定的漏洞。不安全的通信机制可能导致在智能终端和云端或者终端之间进行信息通信传输的过程中,容易受到流量分析、窃取、嗅探、重放等网络攻击的影响。这些安全威胁可能进一步导致传输信息的泄露、劫持、篡改等风险。因此,为确保电力系统的可靠性和安全性,有必要对配电台区终端网络协议开展脆弱性分析和安全风险识别。

2、网络协议漏洞挖掘技术主要基于模糊测试技术。该方法通过引入随机、非预期的输入数据探索目标系统中潜在的安全漏洞。随着机器学习技术的发展,部分研究工作对模糊测试进行增强,以更好地发现网络协议中的潜在漏洞。因此对配电台区终端网络协议进行模糊测试方法的研究具有重要的现实意义。

3、然而传统的模糊测试方法存在如下问题:

4、(1)传统方法生成的测试用例的系统接收率往往较低,导致大量的测试用例被系统丢弃,从而浪费了大量的时间。

5、(2)缺乏有目的的变异,导致测试用例的生成缺乏针对性,效率低下。

6、(3)大多数传统方法不具有通过观察被测系统的反馈来调整测试用例生成的自调整功能,因此无法为特定的系统生成特定的测试用例。


技术实现思路

1、为了克服上述现有技术的不足,本发明专利提供了一种配电台区物联网络协议模糊测试方法、系统及计算机可读存储介质。

2、为解决上述技术问题,本发明所采用的技术方案如下:

3、一种配电台区终端网络协议模糊测试方法,包括以下步骤:

4、捕获收集并预处理数据集;

5、用rnn(循环神经网络)对数据集中响应正常的请求mqtt协议报文进行学习,生成模型,再由模型生成测试用例;

6、对测试用例的头部和数据单元进行变异,并将头部和数据单元的变异结果拼接在一起,形成变异后的测试用例;

7、对变异后的测试用例的字节重要性进行自适应调整,得到规范测试用例;

8、将规范测试用例发送至配电台区终端执行模糊测试,监控异常信息,分析记录漏洞,并反馈测试结果。

9、本发明专利针对传统网络协议模糊测试存在测试用例构造困难、代码覆盖率低,测试效率低,质量产生结果差的问题,提出了一种基于循环神经网络的测试用例生成和协议变异的自适应模糊检测方法。首先针对mqtt协议报文,利用rnn网络学习报文语义,输出每个字段的概率分布矩阵,在短时间内生成接收率高的测试例。其次,在测试用例生成阶段,根据设定的变异策略,进行变异,提高测试用例的多样性。其中,对于测试用例的报头部分,依据协议约规,根据变异算子库进行变异;对于测试用例的数据部分,通过比较新生成的字节与模型输入字段之间的语义相似度和随机值大小,决定是否对新生成的字节进行位翻转变异,降低测试用例的整体相似度。将变异的报头部分和数据部分拼接在一起,形成最终变异后的测试用例。最后,采用字节重要性自适应算法提高易触发漏洞的字节的变异概率。

10、此外,当前配电台区终端网络协议的模糊测试全流程相对繁杂,缺乏整体模糊测试应用系统,设计与实现了一个模糊测试的系统,该系统包含了网络协议捕获与收集模块、协议数据预处理模块、测试用例生成模块、模糊测试交互模块、模型测试任务、漏洞分析等各个模块,实现了一个整体的模糊测试流程,实现网络协议模糊测试自动化。

11、mqtt是一种基于发布/订阅模式的“轻量级”通讯协议。mqtt运行在传输控制协议/互联网协议(tcp/ip)堆栈之上。mqtt控制报文由三部分组成。

12、循环神经网络(rnn)是一种深度学习模型,专门用于对序列数据进行建模。其特点在于每个时刻的信息传递和输出受到严密的上下文关系影响。利用rnn模型对mqtt协议进行深入分析,以强化理解其依赖与被依赖关系,并揭示数据值的规则。通过对协议的不同功能码下进行建模,rnn能够以概率分布的形式表示协议有效载荷部分的内在规律。因此,选择采用rnn模型作为测试用例生成的工具,以深入挖掘协议的复杂特性和潜在漏洞。

13、报文头部触法的漏洞一般会引发地址越界、格式化字符串、缓冲区溢出、整数溢出、逻辑错误以及拒绝服务等问题,这些漏洞通常是程序或设备未对报文中的关键字段做逻辑处理、边界值未经处理、长度过长以及存在特殊字符等原因造成的。例如:缓冲区溢出是因为未对传入数据帧长度边界值做检查,空指针漏同的存在是因为未做判断处理操作,地址越界的存在也是因为没有对数据帧内容做边界值检查等。

14、针对引发漏洞的异常数据帧集合、异常数据帧特征来设定变异方法,通过改变报文的长度特征、报文中涉及的特殊字符来设定变异方法。

15、配电台区终端网络协议的模糊测试主要是对终端网络协议的格式规范利用深度学习模型分析,并使生成模型生成出大量相同格式信息的模拟通讯数据,此模拟数据可通过协议服务端的格式校监,能够正常输入到服务器中并与其进行交互。但这些模拟数据存在不确定性与随机性,能够触发正常通信协议报文无法触发的异常情况,这些异常情况往往存在漏洞风险。将模拟数据通过连接数据端进行模糊测试,通过对协议数据端的异常情况进行监控,从而达到目标漏洞检测的效果。通过对终端网络协议的模糊测试能够发现协议接收端或服务端的安全漏洞风险,减少安全风险威胁。

16、上述预处理包含分析数据帧格式、进制转换、数据帧的扩增、数据帧对齐﹑数据聚类和数据归一化处理。

17、上述用rnn对数据集中响应正常的请求mqtt协议报文进行学习,用于对mqtt协议报文进行深度语义学习,确定rnn的权重等参数;生成rnn模型,包括mqtt协议报文语义分析部分和生成策略部分,mqtt协议报文语义分析部分负责当新字段输入时,rnn可以确定下一生成字段的概率分布;生成策略部分根据变异策略负责生成下一个协议字段。

18、上述生成策略部分根据mqtt协议报文语义分析部分输出的当前时刻的概率分布,进行变异生成测试用例,而mqtt协议报文语义分析部分将生成策略部分所生成的协议字段作为下一个时刻的输入字段,结合所学的语义输出下一个时刻协议字段的概率分布,以此循环往复直至生成一条完整的测试用例的所有字段。

19、上述对测试用例的头部进行变异为对字段间的相似性匹配以及报文段大小的边界值做变异,根据已知的协议字段特点定义的初始变异算子。

20、在生成阶段,由rnn模型直接生成的测试用例使用贪婪策略,softmax的最大概率选项被用作该位置的输出值。虽然这种策略可以最大限度地提高设备的接收速率,但它减少了生成的测试用例的可变性,因为它生成相对固定的结果。因此,这里提出了一个基于wrd的变异策略,以提高测试用例的变异概率。

21、上述基于wrd的协议相似性对测试用例的数据单元进行变异,wrd算法通常用于评估两个文本之间的相似程度和语法重叠。测试用例的字节之间的相似度和语法重叠程度越高,测试用例的混淆程度就越低,导致测试系统出现异常的概率就越低。因此,每当生成一个测试用例时,按照如下方法对对测试用例的数据单元进行变异:

22、每当模型生成一个新的字节时,用wrd算法计算模型的输入部分与生成的新字节之间的相似度s;

23、将相似度s缩放在0到1之间,以便后续跟会更好的比较生成的测试用例;

24、每当模型生成一个新的字节时,利用公式(4)生成一个范围在0到1之间的随机值fuzz,

25、fuzz=random(0,1)   (4);

26、每当模型生成一个新的字节时,为了确定新生成的字节是否发生突变,需要计算相似度s与该位置处的字节重要性p(m,k)的乘积,并比较乘积结果与随机值fuzz之间的大小,如公式(5)所示:

27、

28、当生成一个新的字节时,如果新生成的字节的相似度s与该位置处的字节重要性p(m,k)之间的乘积大于或等于随机值fuzz,则认为新生成的字节与测试用例的其它字节太相似,发生字节突变。虽然高相似度更有利于测试用例被测试系统接收,但该字节的突变更有利于这里发现测试系统中的异常;相反,如果新生成的字节的相似性s与该位置处的字节重要性p(m,k)之间的乘积小于随机值fuzz,则这里认为新生成的字节与测试用例的其他字节的相似性较低,并且可以在没有突变的情况下生成异常测试用例;其中,字节重要性p(m,k)表示在不同函数代码中,在data字段的不同位置产生字节突变的概率。

29、设是一个数组,其中m表示第m类函数码,k表示该类函数码的data字段的第k个位置,该类函数码的data字段的最大长度位n,对于不同的类函数码,n的值不同;p(m,k)的初始值为1,表示第m类函数代码的第k个位置的字节重要性为1;第m类函数代码的第k个位置的字节是否发生突变,仅与该位置新生成的字节的相似度和随机值的大小有关,即,仅比较s和随机数的大小。当p(m,k)不等于1时,这里需要计算p(m,k)和s的乘积,并将其与fuzz进行比较,以确定这里是否对新生成的字节进行了变异。

30、总之,在生成测试用例时,每当模型生成新的字节时,需要首先计算新生成的字节与模型的输入部分之间的相似度s。然后,通过缩放方法在0和1之间缩放该值,并且生成在0到1范围内的随机值fuzz。其次,这里需要计算s与该位置的字节重要性之间的乘积,并将乘积结果与随机值fuzz的大小进行比较。最后,如果前者大于或等于后者,则对新生成的字节执行位翻转突变,而相反的则不突变。

31、相似度s的计算方法如下:

32、利用公式(1)计算新生成的字节的范数长度与模型的输入部分的范数长度之和,

33、

34、其中,ωi表示输入部分中第i个字节的字嵌入,ωj表示新生成的字节的字嵌入,||ωi||表示输入部分的第i个字节的范数长度,||ωj||表示新生成的字节的第j个字节的范数长度,x表示输入部分的范数长度之和,y表示新生成的字节的范数长度;

35、通过计算输入部分的范数长度之和,根据词向量的模长正相关于这个词的重要程度重要原理,可以计算输入部分中每个字节的重要性,从而确定输入部分中每个字节所占权重的大小。

36、利用公式(2)计算从新生成的字节到输入部分的每个字节的余弦距离,

37、

38、其中,d(i,j)表示从新生成的字节到输入部分的第i个字节的距离,在wrd算法中,1减去从生成的字节到输入部分的每个字节的距离之和表示两者之间的相似性;

39、利用公式(3)计算相似度s,

40、

41、

42、其中,s是输入部分与新生成的字节之间的相似度,t(i,j)表示输入部分中每个字节所占的权重。由公式(3)计算得到的相似性范围为[-1,1],需要缩放在0到1之间,以便后续跟会更好的比较生成的测试用例。

43、字节突变使用位翻转突变方法,先将新生成的字节转换为二进制,然后逐位翻转二进制(将0转换为1,将1转换为0),将位翻转后的二进制重新转换为十六进制,作为字节的最终输出。

44、在配电台区终端网络协议协议的fuzzing过程中,如果终端网络协议协议的data字段中某个位置的字节突变导致测试软件异常,则意味着目标设备在该位置的字节处理存在缺陷。这里动态地增加这类函数代码中该位置的字节重要性,重要性越高,表示该位置产生字节突变的概率越高。为此,本文提出了一种动态调整算法。

45、利用公式(6)对变异后的测试用例的字节重要性进行自适应调整:

46、

47、其中,p(m,k)为字节重要性,m表示第m类函数码,k表示该类函数码的data字段的第k个位置,表示不同类函数码的权重;ck表示第k个位置的字节在生成时是否发生突变;re表示来自测试系统的反馈;ni表示是发送到测试系统的第i类功能代码的总数。

48、在生成测试用例时,这里需要标记这个测试用例对应的函数代码和发生突变的字节的位置,判断测试用例是否符合终端网络协议协议的格式。然后将测试用例发送到测试系统,观察测试系统返回的结果。字节重要性调整方法如公式(6)所示。其中,表示第m类函数码的权值大小。根据统计结果表明,mqtt包含有效载荷的四种消息类型分别为connect、subscribe、suback、unsubscribe。其中,connect,subscribe在mqtt通信中,重要性比较高。因为connect消息是建立mqtt连接的初始消息,包含了客户端的标识、身份验证信息以及其他关键参数。成功建立连接对于后续的消息传递至关重要。subscribe消息用于客户端订阅特定主题的消息。订阅的主题直接影响到客户端接收到的消息内容,因此subscribe对于消息传递和系统功能的正确性非常重要。而suback、subscribe在消息传递中并不直接涉及实际数据的传递,因此他们的重要性中等。因此,这里设置connect、subscribe的权重参数分别为0.3,suback、subscribe的权重参数为0.2。nm是发送到测试系统的第m类功能代码的总数,c=[c1,c2,...,cn]表示最新测试用例的data字段突变的位置,ck=1表示第k个位置的字节在生成时发生突变,ck=0表示没有发生突变。由于不同类型的函数代码data字段的长度是不同的,因此数组t在每次更新突变位置的同时更新其长度n。当记录来自测试系统的反馈时,这里将反馈分为三个部分。当测试系统成功接收到正确格式的测试用例时,re取1,当它成功接收到异常格式的测试用例时,re取3,当它接收到异常数据但返回异常代码时,re取-5。

49、字节重要性自适应算法的目的是调整不同功能代码的字节重要性,并将调整后的信息反馈给测试用例生成模块,及时改变测试用例生成的变异概率,从而提高测试用例的接受率和异常率,提高模糊化效率。

50、基于rnn生成模糊测试用例,设计并实现了一个配电台区终端网络协议的模糊测试系统。

51、一种配电台区终端网络协议模糊测试系统,包括以下模块:配电台区终端网络协议捕获收集模块、协议数据预处理模块、测试用例生成模块、模糊测试交互模块、监控模块、模型测试任务模块和漏洞分析模块;

52、配电台区终端网络协议捕获收集模块负责捕获收集数据集;

53、协议数据预处理模块负责预处理数据集;

54、测试用例生成模块负责用rnn(循环神经网络)对数据集中响应正常的请求mqtt协议报文进行学习,生成模型,再由模型生成测试用例,对测试用例的头部和数据单元进行变异,并将头部和数据单元的变异结果拼接在一起,形成变异后的测试用例,然后对变异后的测试用例的字节重要性进行自适应调整,得到规范测试用例;

55、模糊测试交互模块负责将规范测试用例发送至配电台区终端、并接受反馈测试结果;

56、监控模块负责监控异常信息,并将异常传输给漏洞分析模块进行记录;

57、模型测试任务模块负责利用规范测试用例对配电台区终端执行模糊测试,;

58、漏洞分析模块负责分析记录漏洞。

59、上述系统实现了一个整体的模糊测试流程,降低了终端网络协议的模糊测试的门槛,实现终端网络协议与工业软件模糊测试自动化。

60、配电台区终端网络协议捕获收集模块主要是负责网络的通信数据采用于分析。协议捕获收集模块模块能够收集当前运行环境下的工业传输协议信息及数据报文信息。通过对当前工业环境的流量进行实时捕捉,收集传输数据报文格式,并对端口信息进行保存,以便后期模糊测试交互模块的使用。其次特定配电台区终端网络协议信息,用户自动上传对于的配电台区终端网络协议数据。最后,协议捕获收集模块根据配电台区终端网络协议的传输信息提出协议命令数据,并为每一次的交互传输的报文存储为文本文件并保存。除了对配电台区终端网络协议的数据包的捕获,并且协议捕获收集模块可以基于本地文件进行读取数据,并将其发送给配电台区终端网络协议数据预处理模块。

61、协议数据预处理模块主要负责提供良好的训练数据。此模块的任务是根据配电台区终端网络协议数据格式规范对配电台区终端网络协议进行预处理。

62、测试用例生成模块的功能是两种基于rnn构建的测试用例生成。通过对报文头部和报文数据进行变异,提升测试用例的多样性。

63、模型测试交互模块主要是向工业控制网络进行发送通信协议信息与接受反馈信息。交互模块主要通过连接测试目标的地址与端口信息,将上一个测试用例生成模块生成的数据输入到此ip地址与端口中,另一方面,此模块发送与接受的通信数据将存储在日志模块中。

64、监控模块主要是通过监控工业控制系统的异常情况,主要是通过监测与分析交互数据实现的。监控模块寻找测试交互模块发送通信协议报文后是否存在任何异常行为与异常情况,此外,对于模糊测试结果来说,为了得到更好的测试结果,需要对模糊测试的结果进行人工分析,由于一些异常情况并不会被系统察觉,也不会反馈出异常信息,因此对模糊测试的人工分析同样是必不可少的。通过对模糊测试的数据进行监控,将异常情况与异常中断的通信协议传输给漏洞列表。

65、该模块包含了对执行模糊测试时设置执行模糊测试的基础选项,包含对模糊测试运行的最大时间以及使用的模糊测试协议信息等。当对模糊测试目标端口发送数据时,对测试目标系统的返回的协议消息进行捕捉,通过异常返回或出现异常返回消息等对固定协议进行反馈,在执行模糊测试同时对测试目标软件进行全方面的控制。

66、漏洞分析模块的主要功能是对上述模糊测试执行时使用的测试用例分析与测试结果记录。主要有两个部分,第一个部分是将系统运行时所以测试案例的运行过程及情况进行记录与分析,另一部分是对模糊测试过程中产生的异常响应与异常反馈进行单独记录。对于协议的漏洞而言,分析通讯过程中的报文能够有效的找到通信协议异常情况。例如有个漏洞会造成工业软件的崩溃,例如运行停止等。漏洞分析模块是为了测试人员对模糊测试结果进一步的分析,从而全面的检测配电台区终端网络协议的漏洞威胁。

67、上述预处理包含分析数据帧格式、进制转换、数据帧的扩增、数据帧对齐﹑数据聚类和数据归一化处理。

68、上述用rnn对数据集中响应正常的请求mqtt协议报文进行学习,用于对mqtt协议报文进行深度语义学习,确定rnn的权重等参数;生成rnn模型,包括mqtt协议报文语义分析部分和生成策略部分,mqtt协议报文语义分析部分负责当新字段输入时,rnn可以确定下一生成字段的概率分布;生成策略部分根据变异策略负责生成下一个协议字段。

69、生成策略部分根据mqtt协议报文语义分析部分输出的当前时刻的概率分布,进行变异生成测试用例,而mqtt协议报文语义分析部分将生成策略部分所生成的协议字段作为下一个时刻的输入字段,结合所学的语义输出下一个时刻协议字段的概率分布,以此循环往复直至生成一条完整的测试用例的所有字段。

70、对测试用例的头部进行变异为对字段间的相似性匹配以及报文段大小的边界值做变异,根据已知的协议字段特点定义的初始变异算子。

71、在生成阶段,由rnn模型直接生成的测试用例使用贪婪策略,softmax的最大概率选项被用作该位置的输出值。虽然这种策略可以最大限度地提高设备的接收速率,但它减少了生成的测试用例的可变性,因为它生成相对固定的结果。因此,这里提出了一个基于wrd的变异策略,以提高测试用例的变异概率。

72、上述基于wrd的协议相似性对测试用例的数据单元进行变异,wrd算法通常用于评估两个文本之间的相似程度和语法重叠。测试用例的字节之间的相似度和语法重叠程度越高,测试用例的混淆程度就越低,导致测试系统出现异常的概率就越低。因此,每当生成一个测试用例时,按照如下方法对对测试用例的数据单元进行变异:

73、每当模型生成一个新的字节时,用wrd算法计算模型的输入部分与生成的新字节之间的相似度s;

74、将相似度s缩放在0到1之间,以便后续跟会更好的比较生成的测试用例;

75、每当模型生成一个新的字节时,利用公式(4)生成一个范围在0到1之间的随机值fuzz,

76、fuzz=random(0,1)   (4);

77、每当模型生成一个新的字节时,为了确定新生成的字节是否发生突变,需要计算相似度s与该位置处的字节重要性p(m,k)的乘积,并比较乘积结果与随机值fuzz之间的大小,如公式(5)所示:

78、

79、当生成一个新的字节时,如果新生成的字节的相似度s与该位置处的字节重要性p(m,k)之间的乘积大于或等于随机值fuzz,则认为新生成的字节与测试用例的其它字节太相似,发生字节突变。虽然高相似度更有利于测试用例被测试系统接收,但该字节的突变更有利于这里发现测试系统中的异常;相反,如果新生成的字节的相似性s与该位置处的字节重要性p(m,k)之间的乘积小于随机值fuzz,则这里认为新生成的字节与测试用例的其他字节的相似性较低,并且可以在没有突变的情况下生成异常测试用例;其中,字节重要性p(m,k)表示在不同函数代码中,在data字段的不同位置产生字节突变的概率。

80、设是一个数组,其中m表示第m类函数码,k表示该类函数码的data字段的第k个位置,该类函数码的data字段的最大长度位n,对于不同的类函数码,n的值不同;p(m,k)的初始值为1,表示第m类函数代码的第k个位置的字节重要性为1;第m类函数代码的第k个位置的字节是否发生突变,仅与该位置新生成的字节的相似度和随机值的大小有关,即,仅比较s和随机数的大小。当p(m,k)不等于1时,这里需要计算p(m,k)和s的乘积,并将其与fuzz进行比较,以确定这里是否对新生成的字节进行了变异。

81、总之,在生成测试用例时,每当模型生成新的字节时,需要首先计算新生成的字节与模型的输入部分之间的相似度s。然后,通过缩放方法在0和1之间缩放该值,并且生成在0到1范围内的随机值fuzz。其次,这里需要计算s与该位置的字节重要性之间的乘积,并将乘积结果与随机值fuzz的大小进行比较。最后,如果前者大于或等于后者,则对新生成的字节执行位翻转突变,而相反的则不突变。

82、上述相似度s的计算方法如下:

83、利用公式(1)计算新生成的字节的范数长度与模型的输入部分的范数长度之和,

84、

85、其中,ωi表示输入部分中第i个字节的字嵌入,ωj表示新生成的字节的字嵌入,||ωi||表示输入部分的第i个字节的范数长度,||ωj||表示新生成的字节的第j个字节的范数长度,x表示输入部分的范数长度之和,y表示新生成的字节的范数长度;

86、通过计算输入部分的范数长度之和,根据词向量的模长正相关于这个词的重要程度重要原理,可以计算输入部分中每个字节的重要性,从而确定输入部分中每个字节所占权重的大小。

87、利用公式(2)计算从新生成的字节到输入部分的每个字节的余弦距离,

88、

89、其中,d(i,j)表示从新生成的字节到输入部分的第i个字节的距离,在wrd算法中,1减去从生成的字节到输入部分的每个字节的距离之和表示两者之间的相似性;

90、利用公式(3)计算相似度s,

91、

92、

93、其中,s是输入部分与新生成的字节之间的相似度,t(i,j)表示输入部分中每个字节所占的权重。由公式(3)计算得到的相似性范围为[-1,1],需要缩放在0到1之间,以便后续跟会更好的比较生成的测试用例。

94、上述字节突变使用位翻转突变方法,先将新生成的字节转换为二进制,然后逐位翻转二进制(将0转换为1,将1转换为0),将位翻转后的二进制重新转换为十六进制,作为字节的最终输出。

95、在配电台区终端网络协议协议的fuzzing过程中,如果终端网络协议协议的data字段中某个位置的字节突变导致测试软件异常,则意味着目标设备在该位置的字节处理存在缺陷。这里动态地增加这类函数代码中该位置的字节重要性,重要性越高,表示该位置产生字节突变的概率越高。为此,本文提出了一种动态调整算法。

96、利用公式(6)对变异后的测试用例的字节重要性进行自适应调整:

97、

98、其中,p(m,k)为字节重要性,m表示第m类函数码,k表示该类函数码的data字段的第k个位置,表示不同类函数码的权重;ck表示第k个位置的字节在生成时是否发生突变;re表示来自测试系统的反馈;ni表示是发送到测试系统的第i类功能代码的总数。

99、本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述配电台区终端网络协议模糊测试方法的步骤。

100、本发明未提及的技术均参照现有技术。

101、本发明相比现有技术,具有以下有益效果:

102、1)提出一种新的测试用例生成方法,利用rnn网络学习网络协议的语义,生成测试用例。相比于传统的模糊测试用例生成方法,该方法生成的测试用例接受率高。

103、2)在生成测试例的过程中对生成的测试用例进行变异。对于测试用例的报头部分,根据协议约规,根据变异算子库进行变异。对于测试用例的数据部分,比较新生成的字节与模型输入字段之间语义的相似度,对相似度较高的字节进行位翻转变异。最后将两者拼在一起,形成变异后的测试用例,提高测试系统的异常率从而使新生成的测试例变得更多变,增加测试系统发现异常的概率,更好地触发漏洞。

104、3)提出了一种用于动态调整每个函数代码中data字段的每个字节的重要性的协议算法。通过标记测试用例的功能代码和突变字节,并根据测试系统的反馈结果,动态调整每个字节的重要性。使系统能够动态调整各类函数代码data字段中容易触发漏洞的字节的突变频率,降低其他无关字节的突变频率。

105、4)针对提出基于深度学习测试用例模型,设计了一个配电台区终端网络协议模糊测试系统,该系统为黑盒模糊测试检测漏洞的具体工具,扩展了模糊测试的方法,增加模糊测试的应用场景。

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