一种基于多路特征感知长短期记忆的异常流量检测方法

文档序号:24647697发布日期:2021-04-13 15:57阅读:101来源:国知局
一种基于多路特征感知长短期记忆的异常流量检测方法

1.本发明属于网络安全领域,特别涉及一种异常流量检测技术。


背景技术:

2.随着网络技术的迅速发展和网络应用的日益广泛,网络安全问题也日益突出,网络异常流量检测作为保护网络安全的重要手段,其检测方法也逐渐受到人们的重视。传统的网络流量检测方法主要分为四类:基于端口的方法、基于dpi(深度报文检测)的方法、基于统计的方法和基于行为的方法。其中基于端口的方法识别准确率很低;基于dpi的方法则计算复杂度高,需要消耗大量计算机资源;基于统计的方法和基于行为的方法均属于传统机器学习领域,诸如朴素贝叶斯算法、svm、随机森林算法等,其检测效果相较于前者更好,但是传统的机器学习无法很好地对输入的流量数据特性进行学习,需要人工设计反映流量特性的特征集,随着网络流量趋于多元化,其检测效果也并不理想。
3.深度学习解决了传统机器学习依赖特征设计的问题,是一种基于特征学习思想的机器学习技术。深度学习的深层神经网络结构使得其可以从杂乱的数据中自动学习流量数据的内在特征,从而有着更好的检测效果。在深度学习技术中,循环神经网络(recurrent neural network,rnn)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,rnn能够处理序列变化的数据,但其存在着长序列训练过程中的梯度消失和梯度爆炸问题。长短期记忆(long short

term memory,lstm)是一种特殊的rnn,解决了rnn存在的问题,相比于rnn,lstm在长序列中有着更好的表现,在异常流量检测中具有很好的应用前景。
4.但是,在当前基于lstm的异常流量检测方法中,网络流量中不同的特征(如源/目的地址、协议类型、端口号、报文长度等)被统一输入lstm模型进行训练,这种方式所训练出的模型,在一定程度上失去了对各个特征自身在前后时间关联上的敏锐性。针对网络流量及其特征的独有特点,以lstm为基础,设计更精准的异常流量检测方法,对于提高异常流量检测的效率,具有重要的意义。


技术实现要素:

5.为解决上述技术问题,本发明提出一种基于多路特征感知长短期记忆的异常流量检测方法,在传统的长短期记忆网络模型的基础上对其进行了改良,以多路形式将流量数据输入模型;有效利用网络流量特征信息及流量数据的序列化特点,引导模型学习输入的各特征对输出结果的影响程度以及各路特征自身的前后时间关联性,从而提高异常流量检测的准确率。
6.本发明采用的技术方案为:一种基于多路特征感知长短期记忆的异常流量检测方法,包括:
7.s1、分别从正常网络环境和异常网络环境中获取一串时间序列的流量数据,整理为时间序列的流量数据集,提取所获取时间序列的流量数据的特征,并对时间序列的流量数据进行是否异常的标记;
8.s2、根据步骤s1提取的时间序列的流量数据的特征维度数量将时间序列的流量数据集均分成多维数据;
9.s3、构造多路特征感知长短期记忆模型,具体的:所述多路特征感知长短期记忆模型包括n个时间步长下的多路特征感知长短期记忆单元模型,单个多路特征感知长短期记忆单元模型中的lstm单元的个数根据步骤s1提取的时间序列的流量数据的特征维度数量确定;
10.s4、将步骤s2的多维数据分别作为单个多路特征感知长短期记忆单元模型中的多个lstm单元的输入,进行多路特征感知长短期记忆模型训练;具体的第一个多路特征感知长短期记忆单元模型的输入为初始时刻的流量数据,后续的多路特征感知长短期记忆单元模型的输入对应时刻的流量数据与前一个多路特征感知长短期记忆单元模型的输出;
11.s5、将训练得到的多路特征感知长短期记忆模型最后一个多路特征感知长短期记忆单元模型的输出作为多路特征感知长短期记忆模型的最终输出。
12.步骤s3所述lstm单元的结构包括:遗忘门、输入门、输出门、候选细胞信息、第一与门、第二与门、第三与门以及或门;
13.第一与门的输入为:该lstm单元上一时刻的输出与当前时刻的输入经遗忘门后的输出、上一时刻的细胞状态;
14.第二与门的输入为:该lstm单元上一时刻的输出与当前时刻的输入经输入门后的输出、该lstm单元上一时刻的输出与当前时刻的输入经候选细胞信息后的输出;
15.第三与门的输入为:该lstm单元上一时刻的输出与当前时刻的输入经输出门后的输出、或门输出的tanh函数值;
16.或门的输入为:第一与门的输出、第二与门的输出;
17.或门的输出为当前时刻的细胞状态;第三与门的输出为该lstm单元的当前时刻的输出。
18.步骤s4所述多路特征感知长短期记忆单元模型的输出结果为加权融合的结果,具体为:该多路特征感知长短期记忆单元模型中各lstm单元对应一个影响因子系数,通过将各lstm单元的输出与各自对应影响因子的乘积结果相加,得到多路特征感知长短期记忆单元模型的输出。
19.所述模型参数包括:lstm单元中遗忘门、输入门、输出门、候选细胞信息各自的权重与对应的偏置,以及各lstm单元对应的影响因子系数。
20.所述模型参数基于多路特征感知长短期记忆模型的最终输出进行反向传播更新。
21.本发明的有益效果:本发明通过构造多路特征感知长短期记忆,所述多路特征感知长短期记忆路数对应所提取流量数据的特征维度数;本发明以多路形式将流量数据输入所构建的网络模型,有效利用网络流量特征信息及流量数据的序列化特点,引导模型学习输入的各路特征对输出结果的影响程度以及各路特征自身的前后时间关联性,从而提高异常流量检测的准确率;本发明的方法具备以下优点:
22.1、本发明通过改良lstm模型,将输入的流量数据按其特征转化为多路学习训练,能引导模型在训练过程中更多地学习各种输入特征对检测结果的影响程度以及各路特征自身的前后时间关联性,使模型可以从时间和特征空间两个维度提取网络流量数据,从而提高了模型的准确率及泛化能力;
23.2、本发明涉及的领域属于网络安全异常流量检测,网络流量以数据包的形式存在,具有序列化的特点,长短期记忆网络模型可以很好地处理序列化问题,模型通过信息循环操作,能够保证流量信息的持续存在,能够结合之前的流量数据对当前网络流量进行检测,并且不存在长期依赖问题。
附图说明
24.图1为本发明的方案流程图;
25.图2为本发明采用的lstm特征单元内部结构图;
26.图3为本发明的多路特征感知长短期记忆单元模型图;
27.图4为本发明的多路特征感知长短期记忆模型图。
具体实施方式
28.为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
29.如图1所示,本发明的一种基于多路特征感知长短期记忆的异常流量检测方法,包括以下步骤:
30.步骤1,构造多路特征感知lstm网络:
31.根据输入的流量数据特征维度n,在多路特征感知长短期网络内部构造n个lstm单元,作为特征单元。各个特征单元接受一类特征的输入,对该类特征的数据进行学习训练。各个特征单元的结构如附图2所示,包含输入门、遗忘门和输出门,其中遗忘门控制上一时刻特征单元细胞状态的保存情况;输入门控制当前时刻的输入有多少保存到细胞状态;输出门控制细胞状态的输出情况。设输入的时间序列数据x={x0,x1,...,x
t
},则各门的控制计算如下:
[0032][0033]
其中,j表示第j个特征单元,且0≤j≤n,t表示时间步长,表示遗忘门控制信号输出,表示输入门控制信号输出,表示输出门控制信号输出,z
j
表示候选细胞信息,表示当前细胞状态,表示第j个特征单元的输出;w
j
、和分别对应表示第j个特征单元中候选细胞信息、输入门、遗忘门和输出门的权重;b
j
、和分别对应表示第j个特征单元中候选细胞信息、输入门、遗忘门和输出门的偏置;为第j个特征单元的输入数据,将与该前一时间步长的特征单元输出共同作为当前特征单元的输入;公式中*表
示矩阵乘法,
·
表示矩阵对应元素相乘,σ表示sigmoid函数,tanh表示tanh激活函数。
[0034]
通过反向传播的方式构造影响因子系数{k0,k1,

,k
n
},影响因子系数与对应的特征单元输出{h0,h1,

,h
n
}按照以下算法结合得到多路特征感知长短期网络输出h
out

[0035][0036]
多路特征感知长短期记忆基本单元模型如附图3所示,其中各lstm单元即为特征单元,各自学习一类特征,通过影响因子学习各路特征对模型检测结果的影响程度。附图4为多路特征感知长短期记忆模型在多时间步长下的整体框图,由t

t+1个多路特征感知长短期记忆单元模型(附图3)组成(本发明中为便于描述记t

t+1=n)。其中各个特征单元的内部参数及影响因子系数k
j
都是基于模型最终输出结果h
out
而非局部输出h
j
进行反向传播更新(具体参考后续步骤5的内容),这保证了模型在训练中不会因为输入数据的拆分而忽略各类特征间的内在联系。反向传播中各层网络的误差δ更新表达式如下:
[0037]
δ
l
=((ω
l+1
)
t

l+1
)

σ

(x
l
)
[0038]
其中,l表示第l层网络,ω
l+1
为后一层网络中的参数,σ

(x
l
)为第l层网络的输入x经过sigmoid激活函数后的导数,

为矩阵点乘运算符,t为矩阵转置。每一层网络具体指如图4中的每一个多路特征感知长短期记忆单元模型。
[0039]
步骤2,从网络环境中获取流量数据:源于正常网络环境的流量数据作为正例,源于异常网络环境的流量数据作为负例。提取诸如数据包长度、上下载流量比例、包发送时间间隔等流量数据特征,整理为流量数据集,并加以标记,保证正、异常流量数据足够多。
[0040]
步骤3,将收集到的流量数据集按4:1的比例交叉划分为训练集和测试集,对训练集和测试集进行数据预处理,归一化训练集和测试集,便于模型训练。其中预处理方法主要是数据清洗,即剔除原始数据中的缺失数据(空值)和错误数据,并删去了会明显反映分类信息的特征数据(如攻击类型等标签性特征),以便于能更准确地验证模型检测效果。
[0041]
在本实例中,获取了12万条流量数据,其中正常流量和异常流量比为1:1。12万条流量数据按4:1的比例交叉划分为训练集和测试集,则其中96000条流量数据用于模型训练,24000条流量数据用于测试模型的效果。
[0042]
步骤4,初始化多路特征感知长短期记忆的参数。设置多路特征感知长短期记忆初始输出h0和初始细胞状态c0设为0;网络隐藏层的各权重矩阵w
i
和偏置b
i
及影响因子k
i
初始化为0~1的随机数;设置隐藏层神经单元数、一次训练所选取的样本数batch_size及迭代轮次epoch,并将输入的数据转化为tensor张量。在本实例中,隐藏层神经单元为64,batch_size=64,epoch为3轮,学习率η为0.0001;通过将整个数据分成多轮训练,便于更新模型梯度,优化模型。
[0043]
步骤5,训练多路特征感知lstm模型,将训练集数据x
train
和对应标签y
train
输入模型训练,每经过batch_size次训练,便使用测试数据x
test
和对应标签y
test
检测模型的训练效果,输出当前模型的交叉熵函数损失值及检测准确率。
[0044][0045]
模型的准确率acc能直观的表现模型的分类效果,其中tp表示预测为正的正例,tn
表示正确预测为负的负例,fp表示预测为正的负例,fn表示预测为负的正例。
[0046][0047]
交叉熵函数loaa反映了模型输出与实际标签的偏差,其中为模型输出值,y为实际标签值。
[0048]
训练过程中通过计算模型分类结果y
output
与标签y
train
的交叉熵函数损失loss,反向传播,不断迭代调整模型参数;待模型收敛后(收敛即达到最优解,具体表现为模型输出的准确率不再变化。),提取并保存模型。
[0049]
模型参数为特征单元中的各项权重和偏置(即上述的w
j
、和b
j
、和)和每个特征单元对应的影响因子k
j
。这里的模型指多路特征感知长短期记忆单元模型。
[0050]
这些参数的调整通过模型在训练过程中不断迭代实现,具体来说,模型训练初始阶段参数随机初始化,测试数据x
train
经过模型后,模型的输出值会与测试标签y(y
train
)进行对比计算交叉熵loss。经过多轮次的训练,模型会选择loss下降的梯度方向调整,最后收敛,模型的参数按如下公式进行更新:
[0051][0052]
其中ω表示当前的模型参数,ω
+
表示更新后的模型参数,η为模型的学习率,当loss函数为0或准确率acc不再变化时,模型收敛。
[0053]
步骤6,对异常流量进行分类检测。
[0054]
本发明中长短期记忆网络中的输入门、遗忘门和输出门可以用于控制对输入信息的去留,对于序列化的输入,该网络中的每一个单元可以将上一个单元的隐藏层输出和细胞状态传递到下一个单元中,从而保证流量信息的持续存在。比如输入一串时间序列的流量数据,最初时刻的数据经过lstm单元后,得到的输出会与下一时刻的数据共同输入下一个lstm单元,直到最后一个时刻。因此,长短期记忆网络的最终输出是由整个时间序列的数据逐次输出得到的。
[0055]
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1