【技术实现步骤摘要】
一种基于生成对抗网络的工控网络协议模糊测试方法
[0001]本专利技术属于网络信息安全
,涉及深度学习技术及工控系统的漏洞挖掘技术,特别涉及一种基于生成对抗网络的测试用例生成方法及基于测试用例组合的工控网络协议模糊测试方法
。
技术介绍
[0002]伴随着信息社会的高速发展,计算机网络技术在人们的生活中快速普及,逐渐成为人们生活的必需品
。
在过去的十年里,工业控制系统因第四次工业革命的到来而迅速发展,在汽车制造
、
石油化工以及通信领域等众多行业得到了广泛应用
。
互联网的发展给新时代的工业控制系统带来了产能和效率的巨大提升,但同时也把互联网领域存在的安全问题带到在了工业控制系统面前
。
工业控制系统在设计之初缺乏安全性设计,多数都是采用明文传输,并且缺少相应的权限控制功能,因此在系统内部存在许多漏洞
。
这些漏洞一旦被黑客利用,将会对真实的物理设备与基础设施造成巨大的危害,从而带来难以估量的财产损失,甚至会对人员安全,社会稳定以及国家利益产生严重的威胁
。
[0003]面对日益加剧的网络安全问题,针对漏洞挖掘技术的研究语法变得重要
。
漏洞挖掘作为一种有效的发现系统中潜在漏洞的方法,在传统网络环境中得到了广泛的应用
。
然而工业控制网络相对封闭,大多数工控设备的源代码无法访问,且难以进行逆向分析,因此一些漏洞挖掘方法如静态分析和动态分析在工业控制系统中并不通用
。< ...
【技术保护点】
【技术特征摘要】
1.
一种基于生成对抗网络的工控网络协议模糊测试方法,其特征在于,包括:步骤1:使用训练数据集对
SeqGAN
模型进行训练;步骤2:使用经过训练的
SeqGAN
模型生成测试用例并根据
SeqGAN
模型输出概率的信息熵决定突变位置从而进行个性化突变;步骤3:使用组合的方式对测试用例进行分组发送,与此同时使用预期回复验证的方式实时监测被测目标的状态以及时定位触发的漏洞
。2.
根据权利要求1所述的基于生成对抗网络的工控网络协议模糊测试方法,其特征在于,所述步骤1中使用训练数据集对
SeqGAN
模型进行训练的过程具体包括:步骤
11
,提取原始工控网络数据流中载荷的部分:所有工控流量中请求报文的载荷部分将被提取出来作为初始的训练集;步骤
12
,将数据转换为统一的格式:将初始的训练集的格式进行统一以满足神经网络的输入需求;转换的规则是将协议报文按字符划分,并将十六进制的数据转化成十进制,其中每个协议字符的取值范围为
0x00
‑
0x0f
,对应十进制的取值为0‑
15
;为了便于训练,每条协议数据将被填充到协议允许的最大长度
n
;步骤
13
,为数据集生成词汇表,并添加开始
、
结束以及填充字符:训练数据生成词汇表,并添加
’
s
’
,
’
/s
’
以及
’
pad
’
字符,其中
’
s
’
以十进制
16
表示,代表起始字符,
’
/s
’
以十进制
17
表示,代表结束字符,
’
pad
’
以十进制
18
表示,表示填充字符;步骤
14
,训练
SeqGAN
模型:数据集用来训练
SeqGAN
模型,学会
Modbus TCP
的语法表达;步骤
15
,使用模型生成测试用例:使用经过步骤
14
训练的
SeqGAN
生成器模型生成测试用例,以获得接近真实协议消息的虚假数据
。3.
根据权利要求2所述的基于生成对抗网络的工控网络协议模糊测试方法,其特征在于,步骤
14
所述的训练
SeqGAN
模型的具体操作方法是:
SeqGAN
模型以起始字符
’
s
’
作为初始输入,以生成目标字符串序列
C
=
(
’
s
’
,c1,c2,...,c
t
,...,c
T
,'/s')
,
c
t
∈V
,其中
V
是包含所有可能字符的集合;模型在生成字符
c
t
时,生成器模型以之前生成的字符串
C'
=
(
’
s
’
,c1,c2,...,c
t
‑1)
为输入,输出
c
t
的多个备选项;如果
t
=
T
,即已经完成一条字符串的输出,则将完整的字符串输入到判别器中以获得奖励值;否则,
SeqGAN
模型使用蒙特卡洛树搜索算法对后续字符进行采样,以获取完整的字符串序列,最后判别器输出对完整字符串的奖励值以更新生成器模型
。4.
根据权利要求2所述的基于生成对抗网络的工控网络协议模糊测试方法,其特征在于,步骤
15
所述的使用模型生成测试用例的具体操作方法是:
SeqGAN
模型依旧以起始字符
’
s
’
作为初始输入,不同的是在生成
c_t
时,
SeqGAN
模型贪婪地选择概率最大的备选项最为最终的输出字符,直到当前输出的字符为结束字符
’
/s
’
;最后将所有生成的字符以字节为单位进行组合并转为十六进制,生成一条完整测试用例
。5.
根据权利要求1所述的基于生成对抗网络的工控网络协议模糊测试方法,其特征在于,所述步骤2中使用经过训练的模型生成测试用例并根据
SeqGAN
模型输出概率的信息熵决定突变位置从而进行个性化突变的过程具体包括:步骤
21
,计算
SeqGAN
模型输出的信息熵:将各字符的选取概率看作独立的事件,概率分布
P
=
(p(x1),p(x2),...,p(x
i
),...,p(x
n
))
,
x
i
∈V
,其中
p(x
i
)
表示下一个生成字符为
x
i
这一事件发生的概率,
n
为字符集合
V
的长度,用所有事件信息熵的和代表
SeqGAN
模型选取下
一个字符的不确定性;认为被
SeqGAN
模型以较高不确定性选择的字符为协议中的非关键字符,其他则为关键字符;步骤
22
,对信息熵进行归一化:为了方便信息熵的度量,对步骤
21
中模型输出的信息熵进行归一化处理,以使得信息熵取值空间处于固定范围,便于判断当前字符是否需要进行突变;步骤
23
,选择非关键字符突变:为了在选择最佳位置进行突变的同时增加测试的多样性,为每一个字符生成处...
【专利技术属性】
技术研发人员:赖英旭,完颜韩笑,刘静,陈昊,
申请(专利权)人:北京工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。