CN116094972B - 基于QRNN神经网络的Modbus TCP协议模糊测试方法 - Google Patents
基于QRNN神经网络的Modbus TCP协议模糊测试方法 Download PDFInfo
- Publication number
- CN116094972B CN116094972B CN202310076279.0A CN202310076279A CN116094972B CN 116094972 B CN116094972 B CN 116094972B CN 202310076279 A CN202310076279 A CN 202310076279A CN 116094972 B CN116094972 B CN 116094972B
- Authority
- CN
- China
- Prior art keywords
- field
- test
- mutation
- variation
- test case
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 30
- 238000010998 test method Methods 0.000 title claims abstract description 15
- 238000012360 testing method Methods 0.000 claims abstract description 281
- 230000035772 mutation Effects 0.000 claims abstract description 125
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 230000005856 abnormality Effects 0.000 claims abstract description 4
- 230000004044 response Effects 0.000 claims abstract description 4
- 239000013598 vector Substances 0.000 claims description 50
- 238000000034 method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 24
- 238000012549 training Methods 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000013101 initial test Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 230000001788 irregular Effects 0.000 claims description 3
- 238000013178 mathematical model Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 201000004569 Blindness Diseases 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于QRNN神经网络的Modbus TCP协议模糊测试方法,属于工业信息化领域,包括以下步骤:S1:对Modbus TCP协议进行模糊测试,监测响应状态,将触发异常的测试用例保存为有效测试用例集;S2:对Modbus TCP协议报文进行字段划分,随机变异,再次模糊测试,构建自定义变异字段决策表;S3:基于QRNN神经网络,将自定义变异字段决策表预处理之后作为输入,构建适用于预测有效变异字段的预测模型;S4:构建变异因子概率选择模型,概率选择变异因子,对测试用例进行变异,执行模糊测试,根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,构造更具针对性的测试用例。
Description
技术领域
本发明属于工业信息化领域,涉及一种基于QRNN神经网络的Modbus TCP协议模糊测试方法。
背景技术
随着信息化和工业化的深度融合,工业协议已经广泛应用于工业场景中,而工控安全是保障工业业务稳定运行的基石,工业协议作为工业控制系统中通信的桥梁,其中Modbus TCP是工控行业中使用最广泛的工业协议之一,在工控网络公有协议中具有代表意义。但是Modbus TCP协议在设计之初较少考虑安全性问题,协议仍存在较多安全漏洞问题,例如攻击者可以通过以太网直接与目标设备建立连接,向目标设备发送能够触发漏洞的Modbus TCP数据包,使工控设备工作异常。模糊测试技术能够通过一系列测试用例变异策略,生成大量的常规的输入数据,以期望发现网络协议、软件中的安全漏洞。其中测试用例变异策略作为模糊测试技术的关键步骤之一,模糊测试工具可通过真实网络流量作为初试测试用例,通过随机变异来生成大量的新测试用例,这种基于随机变异的测试用例生成方法虽然简单快捷,但是产生的测试用例绝大多数都是无效测试用例,这也是传统模糊测试技术效率低的主要原因之一。因此,为提高模糊测试效率,进行模糊测试测试用例生成方法的研究是十分必要的。
发明内容
有鉴于此,本发明的目的在于针对随机变异的测试用例接受率低和漏洞挖掘能力差的问题,提供一种基于QRNN神经网络的Modbus TCP协议模糊测试数据生成方法,研究基于QRNN神经网络的测试用例有效变异位置预测方法。
为达到上述目的,本发明提供如下技术方案:
一种基于QRNN神经网络的Modbus TCP协议模糊测试方法,包括以下步骤:
S1:对Modbus TCP协议进行模糊测试,监测响应状态,将触发异常的测试用例保存为有效测试用例集;
S2:对Modbus TCP协议报文进行字段划分,并按照字段进行随机变异,将随机变异之后的测试用例再次执行模糊测试,根据执行结果构建自定义变异字段决策表;
S3:基于QRNN神经网络,将自定义变异字段决策表预处理之后作为预测输入,构建适用于预测有效变异字段的预测模型;
S4:构建变异因子概率选择模型,按照概率选择所设计的变异因子,对测试用例进行变异,生成新的测试用例后执行模糊测试,根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,从而构造更具针对性的测试用例。
进一步,步骤S1具体包括:
S11:构建初始测试用例集:搭建Modbus TCP通信网络,通过模糊测试工具AFL对Modbus TCP协议执行模糊测试,监测模糊测试执行状态,对于触发漏洞的测试用例,保存为初始有效测试用例集,获得初始有效测试用例集;
S12:分析Modbus TCP工业协议格式,其由协议头部和数据域组成,协议头部包括事务标识符、协议标识符、长度域、单元标识符和功能码;数据域包括字节长度不固定的数据信息,表示控制指令的具体控制行为;
构造符合Modbus TCP协议格式的测试用例,对测试用例按照字段进行划分,划分为字段向量X,并将X按照定义的字段形式进行分割:
X=[x1…xi…xc] (1)
其中xi为测试用例字节流向量中第i个字段,c为测试用例向量的总字段个数;
S13:模糊测试过程中重复地对测试用例进行随机变异,生成尽可能多的测试用例,对待测试协议执行模糊测试;针对变异过程,构造一组无规则的字符串作为变异因子,对协议中的原始字段进行导向变异,字段按字节长度进行分割,构造为字节向量Forg,fi即为字段中第i个字节值:
Forg=[f1…fi…fl]
l为字段字节长度,变异因子对测试用例原始字段中某个或者某部分字节值进行变异,生成新的测试用例。
进一步,构造的变异因子包括:
特殊ASCII码变异:通过“\r”、“%”、“@”、“\\”、“/”、“u”、“\”、“\t”特殊ASCII码替换目标字段原始字符串;
字符串重复变异:重复目标字符值,构造类似AAAAAA……的超过协议字段规定长度的超长字符串;
字符串截断变异:随机截断目标字段的原始字符串;
数值边界值变异:协议字段数值范围的边界值及临近值:{-1、0、1、0xff(±1)、0xffff(±1)};
比特位变异:对字段中比特位进行按位翻转等变异操作:Mutate(Bits);
随机数字串:创建随机长度、随机内容的数字串CreateRandom(num)。
进一步,步骤S2具体包括以下步骤:
S21:依次将有效测试用例中一个、两个直到N个协议字段进行随机变异,通过插入畸形字节或者变换字节来修改协议字段值,随机变异之后,产生新的测试用例;
S22:对于有N个字段的协议,生成个新的测试用例,将新生成的测试用例发送给Modbus TCP从站设备,同时记录新生成的测试用例能否触发从站设备的漏洞;
S23:异常测试用例中每个字段的取值有两种:①“1”代表该字段值未发生随机变异;②“mutate”代表对该字段值发生随机变异;
对字段进行随机编译之后,每行数据组成一条测试用例,将新生成的测试用例发送给Modbus TCP从站设备,同时记录新生成的测试用例能否触发从站设备的漏洞;
S24:根据执行情况,对决策表中Result字段的值进行记录,包括abnormal和normal,其中abnormal代表随机变异之后新生成的测试用例能够触发漏洞;normal表示不能触发漏洞。
进一步,步骤S3具体包括以下步骤:
S31:数据集由有效测试用例集和无效测试用例集构成,其中对有效测试用例集中的测试用例构建随机变异决策表,决策表共生成个输入向量,每一个输入向量可看作一个样本,将其中结果属性值为1的样本定义为正样本,其余的则为负样本;根据8:2的比例划分为训练集和测试集;
S32:基于QRNN神经网络搭建有效变异字段预测模型,设置训练相关的参数,使其适用于有效变异字段预测;测试用例经过转换为输入向量后,设置输入向量大小为input_size,设置输出向量的大小为output_size,设置隐藏层层数、dropout数值、最大迭代次数、学习率;
S33:将训练集对神经网络预测模型进行多次训练,并对预测模型参数进行调节,以获取最佳模型参数;
S34:基于QRNN神经网络,将自定义变异字段决策表预处理之后作为输入,构建适用于预测有效变异字段的预测模型:
通过自定义变异决策,得到自定义变异决策表,将表中每次变异生成的新测试用例,并设为X′,具体形式与输入种子用例一致,如式(2):
X′=[x′1…x′i…x′c] (2)
在式(2)中,X′为自定义变异决策变异生成的新的测试用例,x′i为新的测试用例中第i个字段;
将种子用例与自定义变异决策表中的测试用例进行异或操作,得出变异位置的向量表示,表示形式如下式(3)所示:
根据对字段的自定义变异决策,ai=0表示种子用例的第i个字段没有发生变异,ai=1则表示种子用例的第i个字段发生了变异,即可得到向量A,将向量A加上对应的结果属性,即可构造预测模型输入向量;
S35:对于预测模型所得到的字段对应的输出值,使用softmax函数对输出值进行概率归一化计算处理,将其转换为取值范围为[0,1]的概率,并组成向量进行输出:
其中C为测试用例中字段数量,为预测模型得到的测试用例中第i个字段输出值,pi即为测试用例中第i个字段的预测有效概率;
所述变异字段向量A作为预测模型的输入,对应预测模型的输出即为变异位置A的有效性Y,设Y表示测试用例有效字段的有效概率向量,其中yi表示第i个字段的预测概率,则:
Y=[y1,…yi,…,yc] y∈(0,1);i∈(0,c) (5)
在对模型进行训练时,有效字段位置对应的输出为1,无效字段位置对应的输出为0;而在测试用例进行字段有效性测试的时候,对应的输出值y越接近1则表示该变异是有效的概率越大,越接近0则表示该变异是有效的概率越小;根据预测得到的概率向量,动态选取一个有效性阈值y0,则根据yi与y0的大小关系判定对应测试用例字节位置的有效性:
通过有效性判定,若判断结果为true,即对应字段为有效变异字段,反之则为无效变异字段。
进一步,步骤S4具体包括以下步骤:
S41:数学模型建立:首先设共有c个变异因子,将预测模型中预测得到的有效变异字段,通过选择变异因子进行导向变异,生成c个新的测试用例,将新生成的测试用例作为种子,执行模糊测试,通过监测执行结果,获得c个新的测试用例的触发漏洞情况;
S42:选择模型参数原始化:设定原始概率为εi,设共有c个变异因子,其中c为大于1的整数;f(εi,t)为第t轮变异过程中第i个变异因子的选择概率,当第一轮中进行确定变异因子选择概率确定时,各个变异因子对应的原始选择概率为:
其中t=1,则变异因子选择概率集合为:
Mt=1=[m1,…mi,…mc]t=1
在经过第一轮模糊测试之后,f(εi,t)将根据执行过程发现漏洞情况动态调整;
S43:变异器根据选择概率选择变异因子执行变异生成新的测试用例;设一轮变异过程中共有N次变异,即产生N个新的测试用例,则第i个变异因子变异次数为:
Ti=N×f(εi,t)
变异因子按照变异次数,对测试用例中有效变异字段进行导向变异,将新生成的测试用例作为种子输入队列,执行模糊测试;
S44:新产生的测试用例添加到输入队列执行测试;N个新的测试用例经过模糊测试之后,对于监测产生的协议漏洞进行分类保存,计算各个变异因子导向生成的测试用例所产生的协议漏洞的个数,分别为l1,…li,…lc;
S45:测试用例执行结果:设该轮N条测试用例执行模糊测试后,由第i个变异因子变异产生的测试用例,所发现漏洞的个数为li,对应的权重系数为δi,根据所触发漏洞的危险系数决定权重系数,则执行结果计算公式如下所示:
新一轮变异因子选择概率f(εi,t+1)计算公式如下式所示:
其中底数a为经验值,根据执行过程漏洞数量进行确定,从而计算得到第i个变异因子的选择概率,同理可计算其他变异因子的选择概率;
根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,从而构造更具针对性的测试用例。
本发明的有益效果在于:本发明通过构建神经网络预测测试用例中有效变异位置,提高生成的测试用例挖掘漏洞能力,以此来提高测试用例漏洞触发率;针对变异因子选择问题,构建概率选择模型,并根据测试结果对变异因子选择概率进行反馈优化,提出针对Modbus TCP协议的模糊测试方法。本方案对现有的模糊测试方法流程进行改进,能够生成被测设备接受率更高,漏洞检测率更高的测试用例,从而提高工业协议的模糊测试漏洞触发效率。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为Modbus TCP协议模糊测试总体架构图;
图2为概率选择模型流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
请参阅图1,本发明提供一种基于QRNN神经网络的Modbus TCP协议模糊测试方法,包括以下步骤:
S1、利用模糊测试工具AFL对Modbus TCP协议进行模糊测试,并监测响应状态,将触发异常的测试用例保存为有效测试用例集;
S11:构建初始测试用例集:搭建Modbus TCP通信网络,通过模糊测试工具AFL对Modbus TCP协议执行模糊测试,监测模糊测试执行状态,对于触发漏洞的测试用例,保存为初始有效测试用例集,即可获得初始有效测试用例集。
S12:分析Modbus TCP工业协议格式,通信协议通常由协议头部和数据域组成,协议头部主要包括事务标识符(Transaction ID)、协议标识符(Protocol ID)、长度域(Length)、单元标识符(Unit ID)和功能码;数据域(Data)包括字节长度不固定的数据信息,表示控制指令的具体控制行为。
本方案将构造符合Modbus TCP协议格式的测试用例,对测试用例按照字段进行划分,划分为字段向量X,并将其按照上文定义的字段形式进行分割,从而将X分割成字段,如式(1)所示:
X=[x1…xi…xc] (1)
其中xi为测试用例字节流向量中第i个字段,c为测试用例向量的总字段个数。
S13:模糊测试过程中重复地对测试用例进行随机变异,生成尽可能多的测试用例,对待测试协议执行模糊测试,以期望能触发更多的协议漏洞。其中针对变异过程,本方案设计一组无规则的字符串作为变异因子,变异因子可对协议中的原始字段进行导向变异,可有效避免模糊测试过程中随机变异的盲目性,提高Modbus TCP协议的模糊测试效率。其中字段可按字节长度进行分割,构造为字节向量,fi即为字段中第i个字节值。
Forg=[f1…fi…fl]
l为字段字节长度,变异因子对测试用例原始字段中某个或者某部分字节值进行变异,即可生成新的测试用例。
因此,结合Modbus TCP协议各变异字段特征,并从Modbus TCP协议漏洞类型进行考虑,本方案设计了一组变异因子作为变异模板,可有效避免随机变异的无规则性,提高Modbus TCP协议典型漏洞的模糊测试效率。本方案构造变异数据报文的变异因子设计方法如表1所示。
表1
S2、对Modbus TCP协议报文进行字段划分,并按照字段进行随机变异,随机变异之后的测试用例再次执行模糊测试,根据执行结果构建自定义变异字段决策表;
针对有效测试用例集中能对触发漏洞的有效测试用例,为了直观判断测试用例中某一个或多个字段对测试用例整体有效性的影响,本方案利用整体思维,判断测试用例中组成字段对整条测试用例有效性的影响。
构建步骤:
S21:依次将有效测试用例中一个、两个直到N个协议字段进行随机变异通过插入畸形字节或者变换字节来修改协议字段值,随机变异之后,即会产生新的测试用例。
S22:对于有N个字段的协议,即可生成个新的测试用例,将新生成的测试用例发送给Modbus TCP从站设备,同时记录新生成的测试用例能否触发从站设备的漏洞。
S23:异常测试用例中每个字段的取值有两种:“1”代表该字段值未发生随机变异;“mutate”代表对该字段值发生随机变异。
对字段进行随机编译之后,每行数据组成一条测试用例,将新生成的测试用例发送给Modbus TCP从站设备,同时记录新生成的测试用例能否触发从站设备的漏洞。
针对Modbus TCP协议漏洞构造的自定义随机变异测试用例的决策表如表2所示。
表2
根据执行情况,对决策表中Result字段的值进行记录:其中abnormal代表随机变异之后新生成的测试用例能够触发漏洞;normal则不能触发漏洞。
然而对测试用例字段进行随机变异的方式,并不能准确定位触发漏洞的关键字段,因为在随机变异过程中,测试用例中某个字段随机变异后,有可能产生新的触发漏洞的变量,就会导致决策表中出现不准确的情况。
所以本方案进一步设计基于QRNN的有效变异字段预测模型,进一步对测试用例中有效变异字段进行预测。
S3、基于QRNN神经网络,将自定义变异字段决策表预处理之后作为预测输入,构建适用于预测有效变异字段的预测模型;
S31:预测模型训练集测试集划分
数据集通过有效测试用例集和无效测试用例集构成,其中对有效测试用例集中的测试用例构建随机变异决策表,决策表共可生成个输入向量,每一个输入向量可看作一个样本,将其中结果属性值为1的样本定义为正样本,其余的则为负样本。根据8:2的比例划分为训练集和测试集。
S32:预测模型参数确定
基于QRNN神经网络搭建有效变异字段预测模型,需要设置训练相关的参数,使其适用于有效变异字段预测。测试用例经过转换为输入向量后,设置输入向量大小为input_size,测试用例字段的预测结果为各个字段的有效变异概率,因此设置输出向量的大小为output_size,此外,还需设置隐藏层层数、dropout数值、最大迭代次数、学习率等参数。
S33:将训练集对神经网络预测模型进行多次训练,并对预测模型参数进行调节,以获取最佳模型参数
S34:预测模型输入向量构造
基于QRNN神经网络,将自定义变异字段决策表预处理之后作为输入,构建适用于预测有效变异字段的预测模型:
本方案通过QRNN神经网络建立测试用例有效变异位置预测模型,通过设计神经网络并对原始测试用例集进行训练,这样当输入新的测试用例后,即可预测出该测试用例变异位置,即可得到有效变异位置。
为了使原始测试用例集对应的自定义变异报文决策表能够作为神经网络的数据训练集,输入进神经网络进行训练,从而预测测试用例中的有效变异字段。
通过自定义变异决策,得到自定义变异决策表,将表中每次变异生成的新测试用例,并设为X′,具体形式与输入种子用例一致,如式(2):
在式(2)中,X′为自定义变异决策变异生成的新的测试用例,x′i为新的测试用例中第i个字段。
此时,将种子用例与自定义变异决策表中的测试用例进行异或操作可以得出变异位置的向量表示,则表示形式如下式(3)所示:
根据对字段的自定义变异决策,ai=0表示种子用例的第i个字段没有发生变异,ai=1则表示种子用例的第i个字段发生了变异,即可得到向量A,将向量A加上对应的结果属性,即可构造预测模型输入向量。
S35:预测模型输出
对于预测模型所得到的字段对应的输出值,为便于数据处理,使用softmax函数对输出值进行概率归一化计算处理,将其转换为取值范围为[0,1]的概率,并组成向量进行输出。
其中C为测试用例中字段数量,为预测模型得到的测试用例中第i个字段输出值,pi即为测试用例中第i个字段的预测有效概率。
为了训练用于测试用例有效字段预测模型,上文中的变异字段向量A可以作为预测模型的输入,而对应预测模型的输出即为变异位置A的有效性Y。
设Y表示测试用例有效字段的有效概率向量,其中yi表示第i个字段的预测概率,则:
Y=[y1,…yi,…,yc] y∈(0,1);i∈(0,c) (5)
在对模型进行训练时,有效字段位置对应的输出为1,无效字段位置对应的输出为0;而在测试用例进行字段有效性测试的时候,对应的输出值y越接近1则表示该变异是有效的概率越大,越接近0则表示该变异是有效的概率越小。根据预测得到的概率向量,动态选取一个有效性阈值y0,则可以根据yi与y0的大小关系判定对应测试用例字节位置的有效性:
通过有效性判定,若判断结果为true,即对应字段为有效变异字段,反之则为无效变异字段。
预测模型伪代码如表3所示。
表3
S4、构建变异因子概率选择模型,计算所设计的变异因子按照概率选择,对测试用例进行变异,生成新的测试用例后执行模糊测试,根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,从而构造更具针对性的测试用例。
如图2所示,模糊测试工具的种子生成过程中,在选择变异因子的过程都是随机的,并且随机化进行变异算子的选择是不会考虑变异因子对被测协议的执行结果,因此,使用随机化选择变异因子会导致变异的盲目性,从而使变异过程花费更高的代价。并且,各个变异因子指导生成的新的测试用例集,在模糊测试执行过程中,所产生的结果都是随机的并且相互独立的。本方案针对预测模型得到的有效变异字段位置,结合所设计的多种变异因子,构建变异因子选择概率模型,并根据测试用例执行情况,对变异因子选择概率进行反馈优化。
S41:数学模型建立
首先,设共有c个变异因子,将预测模型中预测得到的有效变异字段,通过选择变异因子对有效变异字段进行导向变异,即可生成c个新的测试用例,将新生成的测试用例作为种子,执行模糊测试,通过监测执行结果,即可获得c个新的测试用例的触发漏洞情况。
S42:选择模型参数原始化:设定原始概率为εi,首先,设共有c个变异因子,其中c为大于1的整数。f(εi,t)为第t轮变异过程中第i个变异因子的选择概率,当第一轮中进行确定变异因子选择概率确定时,此时各个变异因子对应的原始选择概率为:
其中t=1,则变异因子选择概率集合为:
Mt=1=[m1,…mi,…mc]t=1
在经过第一轮模糊测试之后,f(εi,t)将根据执行过程发现漏洞情况动态调整。
S43:变异器根据选择概率选择变异因子执行变异生成新的测试用例;
为提高变异效率,设一轮变异过程中共有N次变异,即产生N个新的测试用例,则第i个变异因子变异次数为:
Ti=N×f(εi,t)
变异因子按照变异次数,对测试用例中有效变异字段进行导向变异,将新生成的测试用例作为种子输入队列,执行模糊测试。
S44:新产生的测试用例添加到输入队列执行测试;
N个新的测试用例经过模糊测试之后,对于监测产生的协议漏洞进行分类保存,计算各个变异因子导向生成的测试用例所产生的协议漏洞的个数,分别为l1,…li,…lc。
S45:测试用例执行结果:
例如该轮N条测试用例执行模糊测试后,由第i个变异因子变异产生的测试用例,所发现漏洞的个数为li,对应的权重系数为δi,权重系数可根据所触发漏洞的危险系数决定,则执行结果计算公式如下所示:
新一轮变异因子选择概率f(εi,t+1)计算公式如下式所示,为避免某种变异因子选择概率过大时,陷入局部探索的情况。通过对结果奖赏取对数进行处理计算,可以更好的反应结果奖赏对典型漏洞探索率的影响:
其中底数a为经验值,可根据执行过程漏洞数量进行确定,当漏洞数量较多的时候,a可取一个较大的值,此时典型漏洞探索率更符合情况,避免某种漏洞过多导致其他变异因子权重过小的情况。即可计算得到第i个变异因子的选择概率,同理可计算其他变异因子的选择概率。
根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,从而构造更具针对性的测试用例。
S5、模糊测试评价指标:本方案使用两个评估指标作为模糊测试性能指标。
1)接收率(RT):接收率指测试数据生成的效率,反映生成的测试用例与真实数据之间的相似性,如下所示:
2)漏洞触发效率(VTR):触发异常的测试用例总数在发送的测试用例总数中所占比例,计算公式如下:
其中VTR数值越大,则表示漏洞触发效率越高。
本方案能够有效降低模糊测试技术中测试用例生成的随机性,所生成的测试用例有效性更高,即可通过更少的模糊测试数据,能够触发更多的Modbus TCP工业协议漏洞。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (4)
1.一种基于QRNN神经网络的Modbus TCP协议模糊测试方法,其特征在于:包括以下步骤:
S1:对Modbus TCP协议进行模糊测试,监测响应状态,将触发异常的测试用例保存为有效测试用例集;
S2:对Modbus TCP协议报文进行字段划分,并按照字段进行随机变异,将随机变异之后的测试用例再次执行模糊测试,根据执行结果构建自定义变异字段决策表;
S3:基于QRNN神经网络,将自定义变异字段决策表预处理之后作为预测输入,构建适用于预测有效变异字段的预测模型;步骤S3具体包括以下步骤:
S31:数据集由有效测试用例集和无效测试用例集构成,其中对有效测试用例集中的测试用例构建随机变异决策表,决策表共生成个输入向量,每一个输入向量可看作一个样本,将其中结果属性值为1的样本定义为正样本,其余的则为负样本;根据8:2的比例划分为训练集和测试集;
S32:基于QRNN神经网络搭建有效变异字段预测模型,设置训练相关的参数,使其适用于有效变异字段预测;测试用例经过转换为输入向量后,设置输入向量大小为input_size,设置输出向量的大小为output_size,设置隐藏层层数、dropout数值、最大迭代次数、学习率;
S33:将训练集对神经网络预测模型进行多次训练,并对预测模型参数进行调节,以获取最佳模型参数;
S34:基于QRNN神经网络,将自定义变异字段决策表预处理之后作为输入,构建适用于预测有效变异字段的预测模型:
通过自定义变异决策,得到自定义变异决策表,将表中每次变异生成的新测试用例,并设为X′,具体形式与输入种子用例一致,如式(2):
X′=[x′1…x′i…x′C] (2)
在式(2)中,X′为自定义变异决策变异生成的新的测试用例,x′i为新的测试用例中第i个字段;
将种子用例与自定义变异决策表中的测试用例进行异或操作,得出变异位置的向量表示,表示形式如下式(3)所示:
根据对字段的自定义变异决策,ai=0表示种子用例的第i个字段没有发生变异,ai=1则表示种子用例的第i个字段发生了变异,即可得到向量A,将向量A加上对应的结果属性,即可构造预测模型输入向量;
S35:对于预测模型所得到的字段对应的输出值,使用softmax函数对输出值进行概率归一化计算处理,将其转换为取值范围为[0,1]的概率,并组成向量进行输出:
其中C为测试用例中字段数量,为预测模型得到的测试用例中第i个字段输出值,pi即为测试用例中第i个字段的预测有效概率;
所述变异字段向量A作为预测模型的输入,对应预测模型的输出即为变异位置A的有效性Y,设Y表示测试用例有效字段的有效概率向量,其中yi表示第i个字段的预测概率,则:
Y=[y1,…yi,…,yC] yi∈(0,1);i∈(0,C) (5)
在对模型进行训练时,有效字段位置对应的输出为1,无效字段位置对应的输出为0;而在测试用例进行字段有效性测试的时候,对应的输出值y越接近1则表示该变异是有效的概率越大,越接近0则表示该变异是有效的概率越小;根据预测得到的概率向量,动态选取一个有效性阈值y0,则根据yi与y0的大小关系判定对应测试用例字节位置的有效性:
通过有效性判定,若判断结果为true,即对应字段为有效变异字段,反之则为无效变异字段;
S4:构建变异因子概率选择模型,按照概率选择所设计的变异因子,对测试用例进行变异,生成新的测试用例后执行模糊测试,根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,从而构造更具针对性的测试用例;步骤S4具体包括以下步骤:
S41:数学模型建立:首先设共有c个变异因子,将预测模型中预测得到的有效变异字段,通过选择变异因子进行导向变异,生成c个新的测试用例,将新生成的测试用例作为种子,执行模糊测试,通过监测执行结果,获得c个新的测试用例的触发漏洞情况;
S42:选择模型参数原始化:设定原始概率为εi,设共有c个变异因子,其中c为大于1的整数;f(εi,t)为第T轮变异过程中第i个变异因子的选择概率,当第一轮中进行确定变异因子选择概率确定时,各个变异因子对应的原始选择概率为:
其中T=1,则变异因子选择概率集合为:
Mt=1=[m1,…mi,...mc]t=1
在经过第一轮模糊测试之后,f(εi,t)将根据执行过程发现漏洞情况动态调整;
S43:变异器根据选择概率选择变异因子执行变异生成新的测试用例;设一轮变异过程中共有N次变异,即产生N个新的测试用例,则第i个变异因子变异次数为:
Ti=N×f(εi,t)
变异因子按照变异次数,对测试用例中有效变异字段进行导向变异,将新生成的测试用例作为种子输入队列,执行模糊测试;
S44:新产生的测试用例添加到输入队列执行测试;N个新的测试用例经过模糊测试之后,对于监测产生的协议漏洞进行分类保存,计算各个变异因子导向生成的测试用例所产生的协议漏洞的个数,分别为l1,…li,…lc;
S45:测试用例执行结果:设该轮N条测试用例执行模糊测试后,由第i个变异因子变异产生的测试用例,所发现漏洞的个数为li,对应的权重系数为δi,根据所触发漏洞的危险系数决定权重系数,则执行结果计算公式如下所示:
新一轮变异因子选择概率f(εi,t+1)计算公式如下式所示:
其中底数a为经验值,根据执行过程漏洞数量进行确定,从而计算得到第i个变异因子的选择概率,同理可计算其他变异因子的选择概率;
根据变异之后漏洞触发情况动态反馈调整不同变异因子的概率,从而构造更具针对性的测试用例;
S5:使用两个评估指标作为模糊测试性能指标:
1)接收率:接收率指测试数据生成的效率,反映生成的测试用例与真实数据之间的相似性,如下所示:
2)漏洞触发效率:触发异常的测试用例总数在发送的测试用例总数中所占比例,计算公式如下:
其中VTR数值越大,则表示漏洞触发效率越高。
2.根据权利要求1所述的基于QRNN神经网络的Modbus TCP协议模糊测试方法,其特征在于:步骤S1具体包括:
S11:构建初始测试用例集:搭建Modbus TCP通信网络,通过模糊测试工具AFL对ModbusTCP协议执行模糊测试,监测模糊测试执行状态,对于触发漏洞的测试用例,保存为初始有效测试用例集,获得初始有效测试用例集;
S12:分析Modbus TCP工业协议格式,其由协议头部和数据域组成,协议头部包括事务标识符、协议标识符、长度域、单元标识符和功能码;数据域包括字节长度不固定的数据信息,表示控制指令的具体控制行为;
构造符合Modbus TCP协议格式的测试用例,对测试用例按照字段进行划分,划分为字段向量X,并将X按照定义的字段形式进行分割:
X=[x1…xi…xc] (1)
其中xi为测试用例字节流向量中第i个字段,C为测试用例向量的总字段个数;
S13:模糊测试过程中重复地对测试用例进行随机变异,生成尽可能多的测试用例,对待测试协议执行模糊测试;针对变异过程,构造一组无规则的字符串作为变异因子,对协议中的原始字段进行导向变异,字段按字节长度进行分割,构造为字节向量Forg,fi即为字段中第i个字节值:
Forg=[f1…fi…fl]
l为字段字节长度,变异因子对测试用例原始字段中某个或者某部分字节值进行变异,生成新的测试用例。
3.根据权利要求1所述的基于QRNN神经网络的Modbus TCP协议模糊测试方法,其特征在于:构造的变异因子包括:
特殊ASCII码变异:通过“\r”、“%”、“@”、“\\”、“/”、“u”、“\”、“\t”特殊ASCII码替换目标字段原始字符串;
字符串重复变异:重复目标字符值,构造超过协议字段规定长度的超长字符串;
字符串截断变异:随机截断目标字段的原始字符串;
数值边界值变异:协议字段数值范围的边界值及临近值:{-1、0、1、0xff(±1)、0xffff(±1)};
比特位变异:对字段中比特位进行按位翻转等变异操作:Mutate(Bits);
随机数字串:创建随机长度、随机内容的数字串CreateRandom(num)。
4.根据权利要求1所述的基于QRNN神经网络的Modbus TCP协议模糊测试方法,其特征在于:步骤S2具体包括以下步骤:
S21:依次将有效测试用例中一个、两个直到N个协议字段进行随机变异,通过插入畸形字节或者变换字节来修改协议字段值,随机变异之后,产生新的测试用例;
S22:对于有N个字段的协议,生成个新的测试用例,将新生成的测试用例发送给Modbus TCP从站设备,同时记录新生成的测试用例能否触发从站设备的漏洞;
S23:异常测试用例中每个字段的取值有两种:①“1”代表该字段值未发生随机变异;②“mutate”代表对该字段值发生随机变异;
对字段进行随机编译之后,每行数据组成一条测试用例,将新生成的测试用例发送给Modbus TCP从站设备,同时记录新生成的测试用例能否触发从站设备的漏洞;
S24:根据执行情况,对决策表中Result字段的值进行记录,包括abnormal和normal,其中abnormal代表随机变异之后新生成的测试用例能够触发漏洞;normal表示不能触发漏洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310076279.0A CN116094972B (zh) | 2023-01-18 | 2023-01-18 | 基于QRNN神经网络的Modbus TCP协议模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310076279.0A CN116094972B (zh) | 2023-01-18 | 2023-01-18 | 基于QRNN神经网络的Modbus TCP协议模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116094972A CN116094972A (zh) | 2023-05-09 |
CN116094972B true CN116094972B (zh) | 2024-05-07 |
Family
ID=86209988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310076279.0A Active CN116094972B (zh) | 2023-01-18 | 2023-01-18 | 基于QRNN神经网络的Modbus TCP协议模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116094972B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881058A (zh) * | 2023-07-19 | 2023-10-13 | 凯云联创(北京)科技有限公司 | 一种嵌入式设备的模糊测试方法 |
CN117156022A (zh) * | 2023-11-01 | 2023-12-01 | 中国电子科技集团公司第三十研究所 | 一种用于模糊测试的变异数据生成方法 |
CN117216772B (zh) * | 2023-11-09 | 2024-03-08 | 中兴通讯股份有限公司 | 模糊测试用例优化方法、装置、设备及可读介质 |
CN117667749B (zh) * | 2024-01-31 | 2024-06-07 | 中兴通讯股份有限公司 | 一种模糊测试用例优化方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924102A (zh) * | 2018-06-21 | 2018-11-30 | 电子科技大学 | 高效的工控协议模糊测试方法 |
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
CN110597734A (zh) * | 2019-09-23 | 2019-12-20 | 电子科技大学 | 一种适用于工控私有协议的模糊测试用例生成方法 |
CN112104525A (zh) * | 2020-09-18 | 2020-12-18 | 西安科技大学 | 基于序列生成对抗网络的dnp3协议模糊测试方法 |
CN112328505A (zh) * | 2021-01-04 | 2021-02-05 | 中国人民解放军国防科技大学 | 一种用于提升模糊测试的覆盖率的方法和系统 |
CN112769654A (zh) * | 2021-01-21 | 2021-05-07 | 国网河南省电力公司电力科学研究院 | 一种基于遗传算法的Modbus TCP协议模糊测试方法 |
CN113179274A (zh) * | 2021-04-29 | 2021-07-27 | 哈尔滨工程大学 | 一种基于动态污点分析的Modbus协议漏洞挖掘方法 |
CN114501458A (zh) * | 2022-01-27 | 2022-05-13 | 重庆邮电大学 | 基于扩展有限状态机的wia-pa协议模糊测试数据生成方法 |
CN114650163A (zh) * | 2022-01-21 | 2022-06-21 | 中国人民解放军战略支援部队信息工程大学 | 面向有状态网络协议的模糊测试方法及系统 |
-
2023
- 2023-01-18 CN CN202310076279.0A patent/CN116094972B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924102A (zh) * | 2018-06-21 | 2018-11-30 | 电子科技大学 | 高效的工控协议模糊测试方法 |
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
CN110597734A (zh) * | 2019-09-23 | 2019-12-20 | 电子科技大学 | 一种适用于工控私有协议的模糊测试用例生成方法 |
CN112104525A (zh) * | 2020-09-18 | 2020-12-18 | 西安科技大学 | 基于序列生成对抗网络的dnp3协议模糊测试方法 |
CN112328505A (zh) * | 2021-01-04 | 2021-02-05 | 中国人民解放军国防科技大学 | 一种用于提升模糊测试的覆盖率的方法和系统 |
CN112769654A (zh) * | 2021-01-21 | 2021-05-07 | 国网河南省电力公司电力科学研究院 | 一种基于遗传算法的Modbus TCP协议模糊测试方法 |
CN113179274A (zh) * | 2021-04-29 | 2021-07-27 | 哈尔滨工程大学 | 一种基于动态污点分析的Modbus协议漏洞挖掘方法 |
CN114650163A (zh) * | 2022-01-21 | 2022-06-21 | 中国人民解放军战略支援部队信息工程大学 | 面向有状态网络协议的模糊测试方法及系统 |
CN114501458A (zh) * | 2022-01-27 | 2022-05-13 | 重庆邮电大学 | 基于扩展有限状态机的wia-pa协议模糊测试数据生成方法 |
Non-Patent Citations (2)
Title |
---|
Vulnerability mining for Modbus TCP based on exception field positioning;Wenqian Feng 等;《simulation modelling practice and theory》;20200630;第102卷;全文 * |
工业控制系统漏洞挖掘技术研究;车欣;《中国知网硕士电子期刊网》;20210515(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116094972A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116094972B (zh) | 基于QRNN神经网络的Modbus TCP协议模糊测试方法 | |
Otoum et al. | Adaptively supervised and intrusion-aware data aggregation for wireless sensor clusters in critical infrastructures | |
US10154051B2 (en) | Automatic detection of network threats based on modeling sequential behavior in network traffic | |
Yu et al. | An automatically tuning intrusion detection system | |
CN109067586B (zh) | DDoS攻击检测方法及装置 | |
CN112769869B (zh) | 一种基于贝叶斯攻击图的sdn网络安全预测方法及对应系统 | |
Ghalehgolabi et al. | Intrusion detection system using genetic algorithm and data mining techniques based on the reduction | |
Kaushik et al. | Multi-class SVM based network intrusion detection with attribute selection using infinite feature selection technique | |
Almaslukh | Deep Learning and Entity Embedding-Based Intrusion Detection Model for Wireless Sensor Networks. | |
Abdullah et al. | An artificial deep neural network for the binary classification of network traffic | |
CN116703304A (zh) | 一种基于物联网的货物资产监管方法及系统 | |
Ravipati et al. | A survey on different machine learning algorithms and weak classifiers based on KDD and NSL-KDD datasets | |
CN117061236A (zh) | 一种网络协议的模糊测试方法 | |
Zhang et al. | A Step-Based Deep Learning Approach for Network Intrusion Detection. | |
Lai et al. | DoS attack detection using online learning techniques in wireless sensor networks | |
Mohi-Ud-Din et al. | Intrusion detection using hybrid enhanced CSA-PSO and multivariate WLS random-forest technique | |
Cerar et al. | Learning to fairly classify the quality of wireless links | |
Mahboob et al. | AOV-IDS: Arithmetic Optimizer with Voting classifier for Intrusion Detection System | |
CN114912482A (zh) | 辐射源的识别方法及装置 | |
Li et al. | An efficient network anomaly detection scheme based on TCM-KNN algorithm and data reduction mechanism | |
Shirazi et al. | An intelligent intrusion detection system using genetic algorithms and features selection | |
CN117640252B (zh) | 一种基于上下文分析的加密流威胁检测方法及系统 | |
Alshahrani et al. | A Transfer Learning Approach to Discover IDS Configurations Using Deep Neural Networks | |
Ashfaq et al. | Efficient rule generation for cost-sensitive misuse detection using genetic algorithms | |
Alkhamaiseh et al. | Unknown attack detection based on multistage one-class SVM |
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 |