一种基于LSTM的恶意流量检测方法及装置制造方法及图纸

技术编号:39305073 阅读:9 留言:0更新日期:2023-11-12 15:54
一种基于LSTM的恶意流量检测方法及装置,属于异常流量检测技术领域,其特征在于:通过改进的PCA检测指标分析法对网络数据进行降维处理,减小计算复杂度,保留流量数据关键信息,从而提高检测效率;同时通过多个字节共同组成数据包,多个数据包共同组成网络流,利用LSTM神经网络分阶段对流量数据进行提取分析;在LSTM

【技术实现步骤摘要】
一种基于LSTM的恶意流量检测方法及装置


[0001]本专利技术属于异常流量检测
,尤其涉及一种基于LSTM的恶意流量检测方法及装置。

技术介绍

[0002]网络流量作为信息的重要载体,通过分析网络流量可以具体直观地了解通信双方的行为活动,对网络关键节点的流量进行采集汇聚,对系统进行整体感知,异常告警,实施动态实时可视化检测,重点分析异常登录行为、异常数据包传输、异常用户IP地址等信息,是构建异常流量检测算法必须重点考虑的问题。IDS(Intrusion Detection System,入侵检测系统)是常用的进行网络流量分析的技术,目前也出现了众多进行流量检测的算法,如深度学习、熵值计算等,但网络异常流量在时间和空间上都具有一定的相关性,传统的深度学习算法难以满足实时性的要求,不适用于真实的网络环境。
[0003]目前基于特征字段的方法在异常流量检测领域具有较为广泛的应用,通过分析已知流量数据,从中提取字符串作为特征字段,建立特征字段库对流量数据进行匹配检查。该方法可以较好的检测出已知病毒的攻击,但对于攻击变种检测效果不佳,而且特征字段库的建立、维护和更新较为困难,需要占据额外存储。
[0004]也有一些专家将卷积神经网络(CNN)与长短期卷积神经网络(LSTM)进行混合来检测异常流量,现有的基于LSTM的卷积神经网络异常流量检测方法,通过在CNN提取单个数据包空间特征的基础上,充分挖掘攻击流量的结构特点,利用LSTM提取数据流的时间特征,向LSTM部分输出一个高维数据包向量,LSTM部分将高维数据包向量处理成一个分类概率向量,最后输入至softmax层得到最终分类结果,具有较高的检测准确率和极低的误警率。但此技术仍存在以下缺陷:(1)将完整流量数据参与神经网络的运算,未能有效且准确地提取恶意流量特征;(2)未提出一种灵活的恶意用户频繁攻击惩罚机制,只是提出如何对网络流量进行检测,但检测完成后,如何对该恶意用户进行标记,以及何时恢复其访问权限,均未做说明。同时现有技术中的熔断机制的普适性较差,且其研究的网络流量数据是静态的,不适应动态变化的流量数据场景。

技术实现思路

[0005]本专利技术旨在解决上述问题,提供一种基于LSTM的恶意流量检测方法及装置。
[0006]第一方面,本专利技术提供一种基于LSTM的恶意流量检测方法,包括以下步骤:步骤1:获取原始网络流量;步骤2:根据网络实际情况及攻击模式,选取数据包数、字节数、流持续时间和每秒平均请求数作为检测指标;步骤3:利用PCA对前述检测指标进行线性变换,求解检测指标的特征值和特征向量,计算各检测指标的方差贡献率,选取累计贡献率大于设定值的前m个检测指标进入检测模型;
步骤4:将历史流量数据和经PCA处理后提取的前m个检测指标,及对应的网络状态放入LSTM网络;所述LSTM网络包括输入层、LSTM

1层、LSTM

2层、全连接层、softmax分类层和输出层;采用Adam算法对LSTM网络进行训练,包括:步骤4.1:根据损失函数对每个参数的梯度的一阶矩估计和二阶矩估计进行动态调整,得到每个参数的学习速率;可加速模型收敛,减小震荡;步骤4.2:对时间序列向量化,将网络流分成包,保留包的时间步长信息;步骤4.3:将每个数据包中的流量字节按照时间顺序依次输入至LSTM

1层网络中,为每个数据包生成一个数据包向量,将这些向量按照网络流内通信双方的交互顺序进行排列,形成数据包向量序列;故此阶段将每个数据包都进行了实时处理;步骤4.4:将步骤4.3得到的数据包向量放至LSTM

2层学习网络流特征,即学习每个数据包向量之间的序列关系,形成一个网络流向量;该网络流向量包含了网络流量的结构化信息,LSTM

2层则不要求对数据包向量进行实时处理,当数据包向量的数量达到规定要求时,即可进行判别和分类;步骤4.5:将LSTM

1层和LSTM

2层得到的多级特征向量进行融合连接,输入到全连接的神经网络中进行学习;其中,利用TimeDistributed包装器来将LSTM

1层生成的数据包向量的神经网络层包装为时间序列上的处理层,以将LSTM

1层生成的多个数据包向量序列转化为一个LSTM

2层所需要的序列数据;步骤4.6:对步骤4.5全连接层输出的向量进行维度转换,并进行softmax分类;步骤4.7:根据历史数据预测网络状态,如输出结果为正常,则返回到步骤4;如输出结果为异常,则将此流量信息放至异常流量库中,并执行步骤5;步骤5:对异常流量数据进行熔断处理;控制器检测该网络流量中是否存在攻击流的特征信息;若有,则暂停其对目标服务器的访问;若没有,则再次对该流量数据进行核实,核实结果属于“正常”流量,则返回步骤4;核实结果属于“异常”流量,则将此流量信息放至异常流量库中,并将熔断网络流的信息作为SDN交换机的流表进行下发,执行熔断处理。
[0007]进一步,本专利技术所述基于LSTM的恶意流量检测方法,所述LSTM

1层和LSTM

2层两阶段LSTM网络通过学习数据包和网络流两个层次上的特征,对网络流量数据特征进行全面提取,通过学习参数来遗忘之前时间点中不重要的信息,选择记忆重要信息,其结构包括三个乘法门构成的专门记忆单元,分别为遗忘门、输入门和输出门;所述遗忘门用来学习信息在记忆单元中存储的时间,并决定当前是否需要忘记之前时间点的某些信息,通过sigmoid函数对信息进行读取,0表示完全丢弃,1表示完全保留;具体表达式如下:f
t
=σ
a
(e
f
·
[h
t
‑1,x
l
]+d
f
)其中,f
t
表示LSTM网络的更新遗忘门,σ
a
(x)为遗忘门激活函数,e
f
为遗忘门权值矩阵,h
t
‑1为上一层的输出门,x
l
为源网络流,d
f
为偏置向量;所述输入门决定需要学习的信息,由sigmoid层对输入值进行更新,利用tanh层创建一个新的候选值向量并加入到状态中;
其中,e
i
为输入门权重矩阵,d
i
为偏置向量,σ
c
(x)为输入门激活函数,e
c
与d
c
分别代表tanh函数权重与系统偏置向量,w
t
为候选状态;由上式可得:c
t
=f
t
c
t
‑1+i
L
w
t
其中c
t
为状态信息。
[0008]所述输出门决定最终输出的值;首先通过sigmoid确定输出状态,再通过tanh函数将输出信息进行映射;输出本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于LSTM的恶意流量检测方法,其特征在于包括以下步骤:步骤1:获取原始网络流量;步骤2:根据网络实际情况及攻击模式,选取数据包数、字节数、流持续时间和每秒平均请求数作为检测指标;步骤3:利用PCA对前述检测指标进行线性变换,求解检测指标的特征值和特征向量,计算各检测指标的方差贡献率,选取累计贡献率大于设定值的前m个检测指标进入检测模型;步骤4:将历史流量数据和经PCA处理后提取的前m个检测指标,及对应的网络状态放入LSTM网络;所述LSTM网络包括输入层、LSTM

1层、LSTM

2层、全连接层、softmax分类层和输出层;采用Adam算法对LSTM网络进行训练,包括:步骤4.1:根据损失函数对每个参数的梯度的一阶矩估计和二阶矩估计进行动态调整,得到每个参数的学习速率;步骤4.2:对时间序列向量化,将网络流分成包,保留包的时间步长信息;步骤4.3:将每个数据包中的流量字节按照时间顺序依次输入至LSTM

1层网络中,为每个数据包生成一个数据包向量,将这些向量按照网络流内通信双方的交互顺序进行排列,形成数据包向量序列;步骤4.4:将步骤4.3得到的数据包向量放至LSTM

2层学习网络流特征,即学习每个数据包向量之间的序列关系,形成一个网络流向量;步骤4.5:将LSTM

1层和LSTM

2层得到的多级特征向量进行融合连接,输入到全连接的神经网络中进行学习;步骤4.6:对步骤4.5全连接层输出的向量进行维度转换,并进行softmax分类;步骤4.7:根据历史数据预测网络状态,如输出结果为正常,则返回到步骤4;如输出结果为异常,则将此流量信息放至异常流量库中,并执行步骤5;步骤5:对异常流量数据进行熔断处理;控制器检测该网络流量中是否存在攻击流的特征信息;若有,则暂停其对目标服务器的访问;若没有,则再次对该流量数据进行核实,核实结果属于“正常”流量,则返回步骤4;核实结果属于“异常”流量,则将此流量信息放至异常流量库中,并将熔断网络流的信息作为SDN交换机的流表进行下发,执行熔断处理。2.根据权利要求1所述基于LSTM的恶意流量检测方法,其特征在于:所述LSTM

1层和LSTM

2层两阶段LSTM网络,其结构包括三个乘法门构成的专门记忆单元,分别为遗忘门、输入门和输出门;所述遗忘门用来学习信息在记忆单元中存储的时间,并决定当前是否需要忘记之前时间点的某些信息,通过sigmoid函数对信息进行读取,0表示完全丢弃,1表示完全保留;具体表达式如下:f
t
=σ
a
(e
f
·
[h
t
‑1,x
l
]+d
f
)其中,f
t
表示LSTM网络的更新遗忘门,σ
a
(x)为遗忘门激活函数,e
f
为遗忘门权值矩阵,h
t
‑1为上一层的输出门,x
l
为源网络流,d
f
为偏置向量;所述输入门决定需要学习的信息,由sigmoid层对输入值进行更新,利用tanh层创建一个新的候选值向量并加入到状态中;
其中,e
i
为输入门权重矩阵,d
i
为偏置向量,σ
c
(x)为输入门激活函数,e
c
与d
c
分别代表tanh函数权重与系统偏置向量,w
t
为候选状态;由上式可得:c
t
=f
t
c
t
‑1+i
L
w
t
其中c
t
为状态信息;所述输出门决定最终输出的值;首先通过sigmoid确定输出状态,再通过tanh函数将输出信息进行映射;输出门h
t
如下:h
t
=σ
b
(e
o
·
[h
t
‑1,x
l
]+d
o
)tanh(c
t
)其中,e
o
为输出门权重矩阵...

【专利技术属性】
技术研发人员:李雪王忠刘延飞范青刚陈菁刘鑫
申请(专利权)人:中国人民解放军火箭军工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1