APP下载

基于GRU与特征嵌入的网络入侵检测

2022-01-19颜亮姬少培刘栋谢建武

应用科学学报 2021年4期
关键词:数据包向量神经网络

颜亮,姬少培,刘栋,谢建武

中国电子科技集团公司第三十研究所,四川成都610041

网络入侵检测系统(network intrusion detection system,NIDS)是确保网络边界安全的重要系统之一,它通过分析网络活动来实现网络入侵的预警[1]。

网络入侵活动的检测方法主要有两种:传统方法和基于机器学习的方法,它们都涉及到对于入侵活动特征的提取。在入侵检测的特征提取中,网络活动中的各个数据包被称为高级事件[2]。每个高级事件都具有一个由描述高级事件的特征值组成的摘要记录。在传统的网络入侵活动检测方法中,通常有安全专家识别攻击模式,为每个特征确定相应的阈值范围[3]。在基于机器学习的方法中,给定的识别模型会自动从给定的数据集中学习恶意入侵活动的特征。近年来,基于机器学习的方法在大规模数据集中具有更大的检测潜力,比传统方法受到了更多的关注[4-5]。

虽然研究者已经提出了众多的机器学习方法,但是并未对网络流量数据中的时间序列信息给予太多关注。考虑到网络活动是实时的,只要机器学习模型具有足够的挖掘计算能力,就可以对网络序列数据信息进行更全面的分析。循环神经网络(recurrent neural network,RNN)能够捕获数据的时间依赖性,为语音识别和机器翻译领域的发展带来了巨大的契机[6],其中比较流行的RNN有长短期记忆(long short-term memory,LSTM)[7]或门控循环单元(gated recurrent unit,GRU)[8]。

在基于神经网络的入侵检测方法中,数据之间的时间依赖性和数据的分类信息特征往往被忽略,比如网络流量数据中的非数字或符号特征proto、service、state等。这些特征是识别恶意入侵活动的关键,而传统的神经网络方法不能接收它们作为输入。分类信息特征在自然语言处理中非常常见,涉及到多种处理符号单词的特征嵌入技术[9-10]]。

本文提出基于GRU和特征嵌入技术的入侵检测模型,利用GRU获取网络流量数据的顺序信息,然后使用特征嵌入得到分类信息的词向量,使用最新的网络入侵检测数据集--NSW-NB15进行仿真实验。其中为了获取入侵检测数据的时间依赖性,本文假设数据是按照时间排序的。实验表明:GRU可以有效地实现网络入侵数据建模,而特征嵌入技术则使得类别信息在神经网络模型中得以有效利用。嵌入分类信息特征的GRU模型与其他机器学习技术相比,在检测性能方面有了显著提高。

1 基本原理

1.1 GRU神经网络

GRU属于LSTM神经网络的变种,由Chung等首次提出[11]。它较之LSTM[12],既升级了门控制结构,同时又把LSTM里的输入门、遗忘门整合成了zt门,此外还用rt门替换了LSTM的输出门。其中zt的主要作用是帮助模型归纳新输入信息的过往数据,而rt主要影响前一步骤中状态信息输入模型的概率。因为神经网络中门的数量从3个变成了2个,所以有效地减少了具体参数的数量,缩短了训练时间。

GRU神经网络的训练公式如下:

式中:⊙代表元素乘积公式;Wz和Wr分别为zt门和rt门的权重矩阵;Ws代表输出时的权重矩阵;xt代表t时刻的输入数据;˜st及st代表t时刻的候选状态及输出状态;bs、br、bz均为常数。σsig和φtanh为sigmoid和tanh激活函数,分别用来激活控制门和候选状态。sigmoid和tanh函数的表达式分别为

从式(1)~(4)中可以获知:如果rt恒等于1且zt等于0,那么GRU将直接演变成简洁的RNN模型[13]。

1.2 词嵌入

在自然语言处理中,如果要用神经网络执行分类任务,就需要将所谓分类信息的值嵌入一个连续的向量空间,这就是所谓的词嵌入。该方法可以捕获分类值之间的关系并将其表示在向量空间中[14]。如图1所示,单词被嵌入到连续向量空间中,表示为具有语义含义的向量。

图1 连续向量空间中的单词嵌入Figure 1 Word embedding in continuous vector space

给定一个分类变量x∈(1,2,···,T),其中T表示x可能取值的数量。假设f是一个从x到e的简单函数,其中e为T维空间中的一个one-hot向量,e的第x个元素为1,其他元素为0。X可以表示为w∗e,其中w为一个T行D列的权值矩阵,D为分类信息的嵌入维数。实际上,w∗e也可以用另一种方式实现,即选择w的第x列,这种方法更加有效。

权值矩阵w表示连接one-hot层和嵌入层的权值,可以使用随机值进行初始化,并像神经网络中的其他参数一样训练。一个分类变量一旦被投射到一个连续的空间向量中就会与其他连续的输入特征值连接在一起,组合后的特征值就会传送到更高层的神经网络中。

2 基于GRU与特征嵌入的网络入侵检测模型

网络入侵因攻击模式的不同而导致其具有不同的特征类型。这些特征模式通常不会单独表现在单个数据包中,而是分散到多个数据包中。然而,当前大多数的NIDS机器学习方法都无法解决这一问题,也无法捕获出现在多个数据包中的特征模式。例如:多层感知器(multi-layer perceptron,MLP)只使用一个数据包实现入侵检测,忽略了数据序列之间的时间依赖性。实际上,用MLP检测DoS攻击是非常困难的,这是因为DoS是一种通过发送许多数据包而导致服务器瘫痪的攻击,而每个数据包与正常的数据包没有太大区别。这个问题不仅仅存在于DoS攻击,也存在于其他类型的攻击。因此,为了更准确地实现入侵检测,有必要同时处理多个数据包。

本文在考虑之前数据包的情况下,使用GRU神经网络检测当前数据包是否正常。将当前数据包和以前的数据包放入GRU神经网络作为输入,如图2所示。

图2 基于多个数据包的入侵检测Figure 2 Intrusion detection based on multiple data packets

在网络入侵检测中,依据训练模式的不同,可将基于神经网络的入侵检测训练模式分为多对多训练模式(用当前和过去数据包对应的所有标签来训练神经网络)和多对一训练模式(用当前数据包对应的最终标签来训练神经网络)。依据训练任务的不同,可将基于神经网络的入侵检测分类任务分为二元(数据包标签为正常或攻击)分类任务型和多元(数据包标签为正常或多种攻击类型)分类任务型。对于二元分类任务,可以通过训练一个多元分类任务,然后将所有的攻击类型划分为一个单一的攻击类来实现。

2.1 多对多训练模式和多对一训练模式

在网络入侵检测中,针对给定的数据包,在执行多元分类任务时,需按照数据包顺序依次输入,如图3所示。如果仅对模型最后一步的输出误差进行训练,这就是多对一分类模式(many to one,M2O),如图3中的(a)所示;如果数据包的标签是可用的,由于先前数据包的标签具有一些分类信息,能够加速模型训练过程,那么就可以将所有的输入误差用于训练,这就是多对多(many to many,M2M)训练模式,如图3中的(b)所示。在M2M训练模式下,模型不仅学习了分类目标的攻击类型,还学习了先前分类目标的攻击类型。

图3 多元分类任务下的训练模式Figure 3 Training mode under multivariate classif ication task

2.2 二元分类任务

网络入侵有各种各样的类型,相应地分类任务也有多种。对于二元分类任务,在训练之前可以将各种攻击类型的数据包转换为攻击;然后训练模型并将数据包分类为二元分类结果(正常或攻击)。或者,在并没有将多种攻击类型转化为单一类攻击的情况下,对模型首先执行多元分类任务,然后将预测结果合并为二元分类结果,如图4所示。也就是说,在执行二元分类任务时,首先要执行多元分类任务。如果预测结果是攻击类型之一,则将其分类为攻击。

图4 多元分类任务到二元分类任务Figure 4 Multi-classif ication task to binary classif ication task

2.3 模型架构

网络数据包均含有名义特征,如proto、service、state等。每一个名义特征都表明了数据包所处的状态,都有一个可以区别于其他数据包的不同的名义特征值。纵然一个名义特征具有不同的特征值,也可以表示相似的行为。单纯地用one-hot编码向量可能不足以代替名义特征。本文应用特征嵌入技术,根据攻击类型将每个名义特征映射为连续向量空间中一个合适的向量。如在神经机器翻译(neural machine translation,NMT)[15]中,所有的名义特征都初始化为随机向量。通过训练,向量可以根据数据包的攻击类型收敛到合适的点。例如:传输控制协议(transmission control protocol,TCP)和用户数据包协议(user datagram protocol,UDP)经常出现在相同的攻击类型中,因此训练后它们在向量空间中的位置很近。在嵌入所有类别特征的情况下,本文提出的模型可以利用名义特征之间的关系来提高模型的检测性能。

基于GRU与特征嵌入的网络入侵检测模型由词嵌入层、GRU层和全连接层组成,其模型架构如图5所示。词嵌入层只是针对输入的分类信息特征,3个名义特征proto、service、state分别被映射为5维、3维、2维的向量。经过词嵌入层映射的向量被构建成连续特征,并传到模型的下一层。GRU层由100个隐含节点组成,全连接层1由50个节点组成。ReLU作为激活函数用于非线性变换。虚线表示的全连接层2只在执行二元分类的情况下工作,全连接层2相对于全连接层1增加了10个节点。

图5 模型架构Figure 5 Model architecture

3 实验

3.1 实验数据

为了评估基于GRU与特征嵌入的网络入侵检测模型,本文采用了UNSW-NB15数据集作为实验数据[16]。UNSW-NB15是澳大利亚大学UNSW于2015年发布的用于网络入侵检测研究的开放数据集,由3个名义特征、2个二进制特征和37个数值特征组成,包括9种攻击类型和正常类型,如表1所示。该数据集分为训练组和测试组,其中训练组有175 341个数据包,测试组有82 332个数据包。从训练集中随机抽取20%的样本用于验证。此外,UNSW-NB15的记录是按照时间顺序排序记录的,能够充分代表数据之间的时序相关性。

表1 UNSW-NB15数据集Table 1 UNSW-NB15 dataset

3.2 性能评价指标

评价模型性能的指标有多个,本文使用准确率Acc和F1-score来比较模型的检测能力,因此需要用到表2所示的混淆矩阵。

表2 混淆矩阵Table 2 Confusion matrix

Acc表示正确分类的测试实例的数目占测试实例总数的比例,其计算公式为

F1-score是指查全率和查准率的调和平均,其计算公式为

式中:P和R分别代表精度和召回率,其计算公式分别为

作为准确率和召回率的谐波平均值,F1-score提供了比准确率更好的评估措施,特别是对于不平衡的数据。

3.3 检测结果对比分析

针对GRU模型,本文在实验中实现了多种分类模式的训练。在每种训练模式下,均使用特征嵌入EMB实现分类信息的特征嵌入。对于多元分类任务,通过M2M和M2O两种方式训练入侵检测模型;对于二元分类任务,在多元分类的基础上实现训练。

此外,为了更加充分地比较并分析模型的检测性能,使用ANN[17]、ELM[18]、SVM[19]、DBN[20]等模型同样针对UNSW-NB15数据集执行检测。表3和4分别统计了各种模型在二元分类任务和多元分类任务下的检测结果。

表3 二元分类任务下的各种模型检测结果Table 3 Various model detection results under binary classif ication tasks

表4 多元分类任务下各种模型的检测结果Table 4 Various model detection results under multivariate classif ication tasks

从表3和4中可以看出,ANN等其他模型和本文提出的模型在分类性能上有明显的差异。本文提出的模型在二元分类中的准确率和F1-score均超过97.5%,在多元分类中的准确率超过83.0%。本文提出的模型表现优异是因为可以捕获数据包序列中呈现的时间依赖性。

图6给出了执行多元分类任务时本文模型在不同序列长度下的检测准确率;图7给出了执行二元分类任务时本文模型在不同序列长度下的检测准确率。从图6和7中可以看出,在M2M训练模式下用EMB实现特征嵌入时都取得了最高的性能。这是因为分类特征中包含了分类信息,将特征嵌入技术与神经网络结合起来可以有效捕捉到这些信息。将采用EMB与未采用EMB的模型进行比较,采用EMB的模型性能更好,结果也更稳定。

图6 本文模型在多元分类任务下的Acc值变化曲线Figure 6 Change curve of Acc value of proposed model under multivariate classif ication task

图7 本文模型在二元分类任务下的Acc值变化曲线Figure 7 Acc value change curve of proposed model under binary classif ication task

另外,本文分析了不同序列长度下的模型的预测时间,结果如图8所示,可以看出检测时间与序列长度呈一定的线性关系。

图8 不同序列长度下的检测时间Figure 8 Detection time under different sequence lengths

4 结语

本文提出了基于GRU和特征嵌入的入侵检测模型,利用能够反映最新的网络流量模式的UNSW-NB15数据集进行模型评估。该模型在分类准确率及F1-score方面均优于ANN等其他模型,在使用特征嵌入技术时的分类性能是最好的,这是因为特征嵌入技术可以有效捕获分类信息。

猜你喜欢

数据包向量神经网络
向量的分解
聚焦“向量与三角”创新题
神经网络抑制无线通信干扰探究
SmartSniff
向量垂直在解析几何中的应用
基于神经网络的拉矫机控制模型建立
向量五种“变身” 玩转圆锥曲线
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
视觉注意的数据包优先级排序策略研究