一种基于LSTM和注意力机制的网络入侵检测方法

未命名 08-02 阅读:122 评论:0

一种基于lstm和注意力机制的网络入侵检测方法
技术领域
1.本发明涉及网络信息安全领域,具体是一种基于lstm和注意力机制的网络入侵检测方法。


背景技术:

2.随着网络技术和大数据的快速发展,越来越复杂的攻击也随之而来。根据最新发布的《2022年数据泄露成本报告》显示,数据泄露事件的平均成本高达435美元,83%受访组织已经不是第一次发生数据泄露事件。近些年,在金融、医疗和军事等关键性基础设施组织,网络攻击和隐私泄露事件频繁发生,造成不可估量的损失,严重威胁到日常生活。网络入侵检测系统(ids)是通过检测危害计算机系统安全行为的一种有效手段,该系统可以很好的预防和阻止他人非法入侵。传统的入侵检测已经无法满足日益复杂的攻击方式。因此需要提出有效的模型来提高检测网络攻击的能力,提升准确率,降低误报率。


技术实现要素:

3.本发明的目的是针对现有技术的不足,而提供一种基于lstm和注意力机制的网络入侵检测方法。这种方法能提高检测准确率、少数类样本的检测率。
4.实现本发明目的的技术方案是:
5.一种基于lstm和注意力机制的网络入侵检测方法,包括如下步骤:
6.1)下载nsl-kdd网络入侵数据集并进行数据预处理、构建目标样本:所述数据预处理为即对数据进行整合、对其中字符型的属性进行数值化操作,然后进行归一化操作,包括:
7.1-1)对原始样本进行预处理:具体为:
8.1-1-1)对特征数据进行预处理即首先把数据集中值为空的数据删除,然后把非数值型数据转化为数值型数据;
9.1-1-2)采用归一化对数据集进行处理,提取数据集最后一列为分类标签,数据集按训练集:验证集的比例为8:2划分,其中,归一化的公式如公式(1)所示:
[0010][0011]
公式(1)x
_max
为特征值中的最大值,x
_min
为特征值中的最小值,x
_norm
为输出值,输出值在[0,1]之间;
[0012]
1-2)采用wgan对少数类样本进行过采样、采用随机欠采样技术对多数类样本进行欠采样平衡原始样本;
[0013]
2)建立wgan模型对步骤1-2)获取的数据进行数据增强,对正常流数据进行随机欠采样,合并成新的训练样本,具体为:
[0014]
2-1)首先定义生成器网络为g,判别器网络为d,输入为生成器随机噪声z和真实样本x,对于每个训练步骤,从真实数据集和生成器网络中生成的噪声z中随机抽取相同数量
的样本;
[0015]
2-2)将真实样本x和生成器生成的样本g(z)分别输入判别器网络,得到判别器对真实样本和生成样本的预测结果d(x)和d(g(z)),计算wasserstein距离即d(x)和d(g(z))之间的差异,如公式(2)所示:
[0016]
wasserstein=e[d(x)]-e[d(g(z))](2),
[0017]
其中e[]表示期望值即对样本进行平均计算;
[0018]
2-3)根据wasserstein距离的值来更新生成器和判别器的参数,为了最大化wasserstein距离,需要最小化判别器对生成图像的预测结果d(g(z)),并最大化判别器对真实图像的预测结果d(x),重复步骤直到模型收敛;
[0019]
2-4)在nsl-kdd数据集中,利用随机欠采样技术在原始67343条正常流数据中随机选取50000条正常流数据;
[0020]
2-5)合并正常流数据、增强的少数类数据和未挑选类型的攻击数据为训练样本;
[0021]
3)建立基于lstm和注意力机制的网络入侵检测模型:包括:
[0022]
3-1)采用长短期记忆网络lstm进行数据集中的特征提取,具体为:
[0023]
3-1-1)采用长短期记忆网络lstm中的输入门、遗忘门和输出门提取数据中的时序特征;
[0024]
3-1-2)对提取到的特征延深度方向堆叠;
[0025]
3-2)采用自注意力机制对特征进行更新:具体为:
[0026]
将每次的输入定义为其中在lstm中经过记忆单元计算得到每个时间步的输出oi=[o1,o2,......,o
t
]和最后时间步的隐藏状态h
t
,用函数g表示lstm模型内部的操作,如公式(3)所示:
[0027][0028]
然后,建立每个时间步oi对于h
t
的权重,在时间步t时,采用公式(4)计算权重矩阵key
t
,value
t
,query,得分e
t
和权重a
t

[0029][0030]
在公式(4)中,每个时间步的输出o
t
经过线性变换后成为key和value,ωk,ωv和ωq是神经网络的参数,经过每次反向传播更新,然后采用公式(5)将权重a
t
和value
t
进行加权求和,得到向量z:
[0031]
[0032]
公式(5)循环更新h次,得到z1,z2,...,z
t
,将z1,z2,...,z
t
进行拼接然后做一次线性变换后输出,如公式(6)所示:
[0033]
multihead(q,k,v)=concat(z1,z2,...,z
t
)ωz(6);
[0034]
3-3)采用softmax对数据进行分类:经过全连接层得到分类任务的预测值,如公式(7)所示:
[0035]
y=softmax(wi·
multihead(q,k,v)+b)(7);
[0036]
4)将步骤2)合并的训练样本输入到步骤3)获得的网络入侵检测模型中进行训练:将训练集输入到网络入侵检测模型中进行训练时采用adam优化器、学习率为0.0001、批次为64,所有数据都训练结束为一次循环,循环100次;
[0037]
5)采用准确率acc和f-measure值对模型进行性能测评:
[0038]
进行性能测评的各个指标定义如公式(8)、公式(9)所示:
[0039][0040][0041]
与现有技术相比,本技术方案的有益效果是:
[0042]
本技术方案,采用生成对抗网络来应对数据集的不平衡问题、提升稀有攻击样本的检测,采用adam优化器对训练过程进行优化,避免局部最优同时又加快了训练收敛速度。
[0043]
这种方法能提高检测准确率、少数类样本的检测率。
附图说明
[0044]
图1为实施例中wgan的鉴别器网络示意图;
[0045]
图2为实施例中基于lstm和注意力机制的网络入侵检测模型结构示意图;
[0046]
图3为实施例中nsl-kdd数据集采用不同处理方法在lstm和注意力机制的网络入侵检测模型上的f1值示意图。
具体实施方式
[0047]
下面结合附图和实施例对本发明的内容做进一步的阐述,但不是对本发明的限定。
[0048]
实施例:
[0049]
一种基于lstm和注意力机制的网络入侵检测方法,包括如下步骤:
[0050]
1)下载nsl-kdd网络入侵数据集并进行数据预处理、构建目标样本:所述数据预处理为即对数据进行整合、对其中字符型的属性进行数值化操作,然后进行归一化操作,包括:
[0051]
1-1)对原始样本进行预处理:具体为:
[0052]
1-1-1)对特征数据进行预处理即首先把数据集中值为空的数据删除,然后把非数值型数据转化为数值型数据;
[0053]
1-1-2)采用归一化对数据集进行处理,提取数据集最后一列为分类标签,数据集按训练集:验证集的比例为8:2划分,其中,归一化的公式如公式(1)所示:
[0054][0055]
公式(1)x
_max
为特征值中的最大值,x
_min
为特征值中的最小值,x
_norm
为输出值,输出值在[0,1]之间;
[0056]
1-2)采用wgan对少数类样本进行过采样、采用随机欠采样技术对多数类样本进行欠采样平衡原始样本,本例中:
[0057]
数据集采用nsl-kdd数据集,由于深度学习的输入必须是数值型数据,所以首先把非数值型数据转化为数值型数据,然后使采用sklearn中的minmaxscaler归一化对合并后的数据集进行处理,并提取数据集的最后一列作为分类标签;nsl-kdd数据集类别之间存在严重的不平衡问题,有的攻击数据只有几十条即少数类样本,而有的攻击数据有几万条,这样就会导致少数类样本检测率很低,因此采用wgan生成少数类样本,wgan的鉴别器网络首先经过卷积神经网络和批归一化,然后经过全连接层,最后得到一个输出,生成器与鉴别器类似,如图1所示,生成前后样本对比如表1所示,采用随机欠采样技术删除正常流样本,删除前后样本对比如表2所示,在模型训练的时候,为了时刻了解模型的性能,并以8∶2的比例来划分训练集和验证集,
[0058]
表1数据增强前后样本对比
[0059]

[0060]
表2随机欠采样后样本对比
[0061]
数据集正常流原始数据欠采样之后nsl-kdd6734350000;
[0062]
2)建立wgan模型对步骤1-2)获取的数据进行数据增强,对正常流数据进行随机欠采样,合并成新的训练样本,具体为:
[0063]
2-1)首先定义生成器网络为g,判别器网络为d,输入为生成器随机噪声z和真实样本x,对于每个训练步骤,从真实数据集和生成器网络中生成的噪声z中随机抽取相同数量的样本;
[0064]
2-2)将真实样本x和生成器生成的样本g(z)分别输入判别器网络,得到判别器对真实样本和生成样本的预测结果d(x)和d(g(z)),计算wasserstein距离即d(x)和d(g(z))之间的差异,如公式(2)所示:
[0065]
wasserstein=e[d(x)]-e[d(g(z))](2),
[0066]
其中e[]表示期望值即对样本进行平均计算;
[0067]
2-3)根据wasserstein距离的值来更新生成器和判别器的参数,为了最大化
wasserstein距离,需要最小化判别器对生成图像的预测结果d(g(z)),并最大化判别器对真实图像的预测结果d(x),重复步骤直到模型收敛;
[0068]
2-4)在nsl-kdd数据集中,利用随机欠采样技术在原始67343条正常流数据中随机选取50000条正常流数据;
[0069]
2-5)合并正常流数据、增强的少数类数据和未挑选类型的攻击数据为训练样本;
[0070]
3)建立基于lstm和注意力机制的网络入侵检测模型:包括:
[0071]
3-1)采用长短期记忆网络lstm进行数据集中的特征提取,具体为:
[0072]
3-1-1)采用长短期记忆网络lstm中的输入门、遗忘门和输出门提取数据中的时序特征;
[0073]
3-1-2)对提取到的特征延深度方向堆叠;
[0074]
3-2)采用自注意力机制对特征进行更新:具体为:
[0075]
将每次的输入定义为其中在lstm中经过记忆单元计算得到每个时间步的输出oi=[o1,o2,......,o
t
]和最后时间步的隐藏状态h
t
,用函数g表示lstm模型内部的操作,如公式(3)所示:
[0076][0077]
然后,建立每个时间步oi对于h
t
的权重,在时间步t时,采用公式(4)计算权重矩阵key
t
,value
t
,query,得分e
t
和权重a
t

[0078][0079]
在公式(4)中,每个时间步的输出o
t
经过线性变换后成为key和value,ωk,ωv和ωq是神经网络的参数,经过每次反向传播更新,然后采用公式(5)将权重a
t
和value
t
进行加权求和,得到向量z:
[0080][0081]
公式(5)循环更新h次,得到z1,z2,...,z
t
,将z1,z2,...,z
t
进行拼接然后做一次线性变换后输出,如公式(6)所示:
[0082]
multihead(q,k,v)=concat(z1,z2,...,z
t
)ωz(6);
[0083]
3-3)采用softmax对数据进行分类:经过全连接层得到分类任务的预测值,如公式(7)所示:
[0084]
y=softmax(wi·
multihead(q,k,v)+b)(7),本例中:
[0085]
经典的lstm模型是一种递归神经网络,用于处理序列数据,尤其是自然语言处理任务,lstm的主要目的是解决普通rnn在处理长序列数据时出现的梯度消失或梯度爆炸问题,lstm具有三个门控即输入门,输出门和遗忘门,它们可以控制信息流的量和方向,从而更好地捕捉长序列之间的依赖关系,注意力机制是一种可以根据输入和上下文动态地为不同部分赋予不同的重要性权重的机制,在自然语言处理中,注意力机制可用于对句子中的关键信息进行加权汇总,从而更好地理解句子的含义,在注意力机制中,先将输入序列映射为特征向量,然后计算每个输入向量与特定上下文向量之间的相似度,最后对输入向量进行加权汇总,这种加权汇总方式使得模型更加灵活,可以更好地捕捉输入序列中的重要信息,将两种技术结合使用,创建一个基于lstm和注意力机制模型,其中每个时间步采用注意力机制来加权输入序列中的每个向量,从而更好地捕捉输入序列中的重要信息,并生成更好的输出,如图2所示的模型结构,是经过多层lstm模型结构之后,得到数据时序特征值后再利用注意力机制对时序特征进行更深层次的融合,lstm用于处理网络流的时间维度,每条数据在一开始都经过一层lstm层,提取初步的特征;之后经过注意力机制模块,根据时间步设定的参数值决定根据当前的输入向量和前一个时间步的状态,计算出一个输出向量和当前时间步的状态,这个状态会被传递到下一个时间步,以便于下一个时间步可以使用前一个时间步的信息进行计算,一方面进一步提取特征,另一方面防止梯度消失,本技术方案为一个分类问题,采用准确率acc、召回率recall和f-measure值来度量分类效果的优劣,一般来说准确率越大,分类系统的整体分类性能越好;
[0086]
4)将步骤2)合并的训练样本输入到步骤3)获得的网络入侵检测模型中进行训练:将训练集输入到网络入侵检测模型中进行训练时采用adam优化器、学习率为0.0001、批次为64,所有数据都训练结束为一次循环,循环100次;
[0087]
5)采用准确率acc和f-measure值对模型进行性能测评:
[0088]
进行性能测评的各个指标定义如公式(8)、公式(9)所示:
[0089][0090]
本例中,通过对比常用的深度学习模型以及用smote算法进行数据增强,从f1值层面进行分析,根据不同算法得到的准确率有差异,并且在不同攻击类型上的准确率有所不同,以此验证本例的有效性,nsl-kdd数据平衡前后各模型f1值对比结果如表3所示,然后对比nsl-kdd数据集采用不同处理方法在lstm和注意力机制的网络入侵检测模型上的f1值,如图3所示,综合各项指标来判断,本例方法更优良,smote算法过程如下:
[0091]
步骤一:对于少数类中的每个样本xi,计算其与所有少数类样本之间的欧氏距离;
[0092]
步骤二:选取与当前样本距离最近的k个少数类样本,k是指定的一个参数,并从中随机选择一个样本;
[0093]
步骤三:对于每个随机选择的样本,根据公式(10)来构造新的样本:
[0094]
x
new
=xi+rand(0,1)*(x
j-xi)j=1,2,3,.....,m(10),
[0095]
表3nsl-kdd数据平衡前后f1值
[0096][0097]
,实验结果表明,与现有技术相比,本例方法能提高检测准确率和少数类样本的检测率。

技术特征:
1.一种基于lstm和注意力机制的网络入侵检测方法,其特征在于,包括如下步骤:1)下载nsl-kdd网络入侵数据集并进行数据预处理、构建目标样本:所述数据预处理即对数据进行整合、对其中字符型的属性进行数值化操作,然后进行归一化操作,包括:1-1)对原始样本进行预处理:具体为:1-1-1)对特征数据进行预处理即首先把数据集中值为空的数据列删除,然后把非数值型数据采用one-hot编码方式转化为数值型数据;1-1-2)采用归一化对数据集进行处理、提取数据集最后一列为分类标签,数据集按训练集:验证集的比例为8:2划分,其中,归一化的公式如公式(1)所示:公式(1)x
_max
为特征值中的最大值,x
_min
为特征值中的最小值,x
_norm
为输出值,输出值在[0,1]之间;1-2)分离nsl-kdd数据集中数据量少于1000条数据为少数类数据,即u2r攻击类和r2l攻击类,采用wgan对少数类样本进行过采样、采用随机欠采样技术对多数类样本进行欠采样平衡原始样本;2)建立wgan模型对步骤1-2)获取的数据进行数据增强,对正常流数据进行随机欠采样,合并成新的训练样本,具体为:2-1)首先定义生成器网络为g,判别器网络为d,输入为生成器随机噪声z和真实样本x,对于每个训练步骤,从真实数据集和生成器网络中生成的噪声z中随机抽取相同数量的样本;2-2)将真实样本x和生成器生成的样本g(z)分别输入判别器网络,得到判别器对真实样本和生成样本的预测结果d(x)和d(g(z)),计算wasserstein距离即d(x)和d(g(z))之间的差异,如公式(2)所示:wasserstein=e[d(x)]-e[d(g(z))](2),其中e[]表示期望值即对样本进行平均计算;2-3)根据wasserstein距离的值来更新生成器和判别器的参数,为了最大化wasserstein距离,最小化判别器对生成图像的预测结果d(g(z)),并最大化判别器对真实图像的预测结果d(x),重复步骤直到模型收敛;2-4)在nsl-kdd数据集中,利用随机欠采样技术在原始67343条正常流数据中随机选取50000条正常流数据;2-5)合并正常流数据、增强的少数类数据和未挑选类型的攻击数据为训练样本;3)建立基于lstm和注意力机制的网络入侵检测模型:包括:3-1)采用长短期记忆网络lstm进行数据集中的特征提取,具体为:3-1-1)采用长短期记忆网络lstm中的输入门、遗忘门和输出门提取数据中的时序特征;3-1-2)对提取到的特征延深度方向堆叠;3-2)采用自注意力机制对特征进行更新:具体为:将每次的输入定义为其中在lstm中经过记忆单元计算得到每个时间
步的输出o
i
=[o1,o2,......,o
t
]和最后时间步的隐藏状态h
t
,用函数g表示lstm模型内部的操作,如公式(3)所示:然后,建立每个时间步o
i
对于h
t
的权重,在时间步t时,采用公式(4)计算权重矩阵key
t
,value
t
,query,得分e
t
和权重a
t
:在公式(4)中,每个时间步的输出o
t
经过线性变换后成为key和value,ω
k
,ωv和ω
q
是神经网络的参数,经过每次反向传播更新,然后采用公式(5)将权重a
t
和value
t
进行加权求和,得到向量z:公式(5)循环更新h次,得到z1,z2,...,z
t
,将z1,z2,...,z
t
进行拼接然后做一次线性变换后输出,如公式(6)所示:multihead(q,k,v)=concat(z1,z2,...,z
t

z
(6);3-3)采用softmax对数据进行分类:经过全连接层得到分类任务的预测值,如公式(7)所示:y=softmax(w
i
·
multihead(q,k,v)+b)(7);4)将步骤2)合并的训练样本输入到步骤3)获得的网络入侵检测模型中进行训练:将训练集输入到网络入侵检测模型中进行训练时采用adam优化器、学习率为0.0001、批次为64,所有数据都训练结束为一次循环,循环100次;5)采用准确率acc和f-measure值对模型进行性能测评:进行性能测评的各个指标定义如公式(8)、公式(9)所示:公式(9)所示:

技术总结
本发明公开了一种基于LSTM和注意力机制的网络入侵检测方法,包括如下步骤:1)进行数据预处理、构建目标样本;2)建立WGAN模型、合并新的训练样本;3)建立基于LSTM和注意力机制的网络入侵检测模型;4)获得的网络入侵检测模型中进行训练;5)对模型进行性能测评。这种方法能提高检测准确率、少数类样本的检测率。能提高检测准确率、少数类样本的检测率。能提高检测准确率、少数类样本的检测率。


技术研发人员:石凯文 钱俊彦 翟仲毅
受保护的技术使用者:广西师范大学
技术研发日:2023.05.05
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐