1.一种网络异常流量检测方法,其特征在于,所述方法包括:
获取网络流量数据;
获取预先训练的异常流量检测模型,所述异常流量模型基于注意力attention机制的双向长短期记忆bi-lstm模型建立,并使用训练数据集训练得到;所述训练数据集包括正常流量样本和异常流量样本,所述异常流量样本包括使用预先训练的异常流量生成模型生成得到的样本数据;所述异常流程生成模型用于根据已有的异常流量样本生成新的异常流量样本;
将所述网络流量数据输入所述异常流量检测模型中,得到检测结果,所述检测结果用于指示所述网络流量数据是否存在异常。
2.根据权利要求1所述的方法,其特征在于,所述异常流量检测模型从前之后依次包括:输入层、bi-lstm层、attention层和输出层;所述bi-lstm层包括前向lstm模型和后向lstm模型;
所述输入层将输入的数据分别输入所述前向lstm模型和所述后向lstm模型;
所述前向lstm模型和所述后向lstm模型分别对输入层输入的数据进行计算,得到输出结果;并将所述输出结果输出至所述attention层;
所述attention层用于对所述bi-lstm层输出的所有分量进行加权,并进行权重更新,得到输出结果;并将所述输出结果经过所述输出层处理后,得到所述检测结果。
3.根据权利要求1所述的方法,其特征在于,所述异常流程生成模型包括:自动编码器、生成器和判别器;
所述自动编码器的输入为标签为异常流量的异常数据,输出为与输入的数据相似的异常数据;
所述生成器的输入为加入噪声后的异常数据,所述加入噪声后的异常数据包括所述自编码器生成异常数据与噪声的结合、以及所述标签为异常流量的异常数据与噪声的结合;输出为与正常数据相似的异常数据;
所述判别器的输入为正常数据和异常数据,输出为对正常数据和异常数据的判别结果;其中,异常数据包括标签为异常流量的异常数据和所述生成器生成的异常数据,所述判别结果用于对所述生成器和所述判别器进行更新。
4.根据权利要求3所述的方法,其特征在于,所述自动编码器从前至后依次包括输入层、第一隐藏层、第二隐藏层、第三隐藏层和输出层;所述输入层、所述第一隐藏层和所述第二隐藏层构成编码器;所述第三隐藏层和所述输出层构成解码器;
所述编码器用于通过全连接变换的方式将输入数据的维度压缩降低,所述输入层与所述第一隐藏层之间、所述第二隐藏层与所述第三隐藏层之间的激活函数为relu函数,所述relu函数使得所述自动编码器中一部分神经元的输出为0;所述relu函数通过下式表示:
yrelu=max(0,x);
其中,所述x为所述relu函数的输入;
所述解码器的解码过程与所述编码器的编码过程相反,用于输出与所述输入数据的维度相同的异常数据;在解码过程中,所述第三隐藏层和所述输出层之间的激活函数为sigmoid函数,所述sigmoid函数用于将输入的连续实值变换为0至1之间的数值;所述sigmoid函数通过下式表示:
其中,所述x为所述sigmoid函数的输入。
5.根据权利要求3所述的方法,其特征在于,所述自动编码器在训练时使用的损失函数为均方误差mse,所述mse为预测值与目标值之间差值的平方和的均值,所述mse通过下式表示:
其中,自编码器的输出y={y1,y2,...,yn}是与原有异常流量p={p1,p2,...,pn}相似的异常数据,n与输入的维度相同。
6.根据权利要求3所述的方法,其特征在于,所述生成器包括三个全连接层,不同全连接层之间使用leakyrelu的激活函数;最后一个全连接层的输出使用tanh函数激活,以使输出数据的范围为从-1至1;
所述leakyrelu的激活函数通过下式表示:
y=max(αx,x);
其中,α设置为固定常数,x为leakyrelu的激活函数的输入;
所述tanh函数通过下式表示:
其中,x为tanh函数的输入。
7.根据权利要求3所述的方法,其特征在于,所述生成器在训练时使用的损失函数为交叉熵bceloss函数,所述交叉熵bceloss函数通过下式表示:
l(g)=-[ylogx+(1-y)log(1-x)]
其中,x表示所述生成器的输入数据,y表示所述生成器的预测值。
8.根据权利要求3所述的方法,其特征在于,所述判别器包括三个全连接层,不同全连接层之间使用leakyrelu的激活函数,且leakyrelu函数之后还添加有dropout网络,所述dropout网络用于通过忽略一部分的特征使两个神经元不必每次都在同一个dropout网络中出现;最后一个全连接层的输出使用sigmoid函数激活。
9.根据权利要求3所述的方法,其特征在于,所述判别器在训练时使用的损失函数为改进后的bceloss函数,所述改进后的bceloss函数在gan模型原有的损失函数的基础上增加了梯度范数,所述改进后的bceloss函数通过下式表示:
其中,ε∈[0,1]且为常数,d(x)表示所述判别器对真实的样本进行判别,z表示随机的输入,g(z)表示所述生成器生成的样本,λ为预设常数。
10.一种网络异常流量检测装置,其特征在于,所述装置包括:
数据获取模块,用于获取网络流量数据;
模型获取模块,用于获取预先训练的异常流量检测模型,所述异常流量模型基于注意力attention机制的双向长短期记忆bi-lstm模型建立,并使用训练数据集训练得到;所述训练数据集包括正常流量样本和异常流量样本,所述异常流量样本包括使用预先训练的异常流量生成模型生成得到的样本数据;所述异常流程生成模型用于根据已有的异常流量样本生成新的异常流量样本;
异常检测模块,用于将所述网络流量数据输入所述异常流量检测模型中,得到检测结果,所述检测结果用于指示所述网络流量数据是否存在异常。