APP下载

基于空时特征融合和注意力机制的网络入侵检测模型

2022-06-23饶海兵朱苏磊杨春夏

计算机与现代化 2022年6期
关键词:网络流量注意力分类

饶海兵,朱苏磊,杨春夏

(上海师范大学信息与机电工程学院,上海 200234)

0 引 言

在如今快节奏的环境下,网络安全变得尤为重要。由于网络技术快速提升和在各行各业中得到大量的实现,网络也慢慢成为人们在工作以及生活中必不可少的对象。不可避免的是它同时也存在双面性,在人们的工作生活中,会带来好处,也同时带来不安全性。所以,研究网络的可靠性和高效性和实现更加出色的网络安全技术都是非常有意义的。

入侵检测系统[1]是一种积极主动的网络安全防护技术,能够发现未知的网络攻击,近年来在网络安全领域受到越来越多的关注,是网络安全技术领域研究的热点之一。入侵检测的核心是实现网络流量正常和异常的分类[2],通过分类结果采取相应的安全应对措施。

迄今为止,国内外学者和研究人员已经提出了许多不同类型的分类方法应用于网络流量的异常检测。主要包括4个大类方法[3]:1)基于端口的方法;2)基于深度报文检测(Deep Packet Inspection,DPI)的方法;3)基于机器学习的方法;4)基于深度学习的方法。

其中,基于端口的方法检测的准确性不高,基于DPI的方法复杂度较高并且无法处理加密的流量检测,在当前的应用和研究中关注度不高。基于机器学习的方法包括基于行为和统计的方法,其主要思路为通过特征工程对网络流量进行特征提取,然后使用这些流量特征进行建模和训练,得到分类模型,对后续新的流量可以进行实时判别和分类,这种方法复杂度相对不高,性能良好,近年来受到众多学者和研究人员的关注度也很高,但是这种方法受到特征工程的限制,也就是如何选择能准确反映网络流量的特征集是一个重大难题。深度学习[4]是解决机器学习特征工程问题的有效途径,在过去的几年中,主要的深度学习研究工作集中在递归神经网络和卷积神经网络上,通常分别称为RNNs(LSTM是RNNs应用最广泛的一种结构)和CNNs,目前已广泛用于分类[5-6]和回归[7-8]问题。

最近几年,注意机制在基于深度学习的任务中逐渐发挥了越来越重要的作用[9],深度学习模型的解释和稳定性得到了不同程度的增强。

基于上述原因,本文提出一种基于空时特征融合和注意力机制的深度学习入侵检测模型,模型通过集成卷积神经网络(CNN)和长短时记忆网络(LSTM)获取空时融合特征,然后添加注意力模块(Attention)对输入的特征进行重要性加权计算,最后通过softmax函数进行分类。

1 背景知识

1.1 数据集预处理

本文使用NSL-KDD数据集,它是在KDD99数据集基础上处理了之前数据集存在的问题[10]。可以用作有效的基准数据集,用来做比较不同的入侵检测方法研究。NSL-KDD数据集共包含42个数据字段,其中前41个为网络数据特征属性字段,最后1个是对应网络数据的分类标签。

本文使用NSL-KDD数据集进行二分类,其中的训练集包含125973个样本,测试集包含22544个样本。

由于数据集的各个特征取值范围通常是不同的,而且在这些范围里存在的不同也很大,所以,在数据预处理阶段要对其进行标准化,同时兼顾到训练集的取值范围可能不能完全都有测试集的取值范围,本文使用0均值-规范化(z-score标准化)。转换公式如式(1)所示:

(1)

上式中μ和σ分别为输入数据集的均值和标准差。通过计算出训练集的μ和σ,再对测试集进行0均值-规范化,符合深度学习的在线分类。

1.2 卷积神经网络

目前的深度学习结构主要是应用在图像和自然处理方面,并没有一种在序列信号分类应用上得到公认的结构,因此,本文在参考LeNet-5基础上设计的CNN模型结构,如图1所示。其中与LeNet-5不同的是,本文的CNN模型输入层数据格式为1×41的序列,并且分别在2个最大池化层之后加入批归一化层(Batch Normalization)、激活层(Leaky ReLU)和丢弃层(Dropout)。

图1 CNN模型结构图

上述中的批归一化技术是谷歌在2015年所提出,它也被深度神经网络训练所使用。可以解决一部分深层网络中“梯度弥散”的问题,也可以对其模型收敛速度进行加快[11],然后就可以将其模型变得更可靠。Leaky ReLU激活函数是为了解决ReLU的输入值为负的时候,输出始终为0,同时一阶导数也始终为0,从而导致神经元不更新参数,也就是神经元不学习的情况,在声学模型(2013)中首次提出,定义如式(2)所示:

(2)

这里的s为一个小于1的非负数,当s取0时,Leaky ReLU激活函数退化为ReLU函数。丢弃(Dropout)策略是一种正则化技术,为了避免或者减少CNN的过拟合现象,可以用复杂的自适应来处理训练数据,通常的丢弃策略实现方法包括:1)随机选择一部分该层的输出作为丢弃元素;2)将丢弃元素乘以0;3)非丢弃元素拉伸。本文使用第1种方法实现丢弃策略。

1.3 长短时记忆网络

由于网络流量可以看作是一种单元序列,而长短时记忆(Long Short Term Memory, LSTM)网络是一种强大的时序信号处理和预测方法[12],因此,本文将LSTM作为模型的处理单元引入。

单层的LSTM回归网络结构包括输入层、LSTM层、全连接层以及分类层,如图2所示。

图2 LSTM模型结构

图2中的单元状态(Cell)为输入的数据提供了时间依赖性,赋予了数据时间特征,LSTM通过单元状态实现长期控制。单元状态主要实现长期控制功能,主要通过3个门实现:遗忘门、输入门、输出门。状态单元的结构如图3所示,这3个门结构在图3中的位置分别对应f、i和o,另外候选值g将信息添加到单元状态。

图3 LSTM内部单元结构图

单元状态能很好地完成对输入时序信号的筛选更新,赋予它时间依赖性,有利于时序信号的分类预测。具体的工作原理如下:

对应图3中的结构,LSTM层的可学习权重是输入权重W(InputWeights),递归权重R(RecurrentWeights)和偏差b(Bias)。矩阵W、R和b分别是输入权重,递归权重和每个分量的偏差的串联。这些矩阵的连接如式(3)所示:

(3)

关于时间t的单元状态表达式如式(4)所示:

ct=ft⊗ci-1+it⊗gt

(4)

这里⊗表示Hadamard乘积(向量的元素乘积)。

关于时间t的隐藏状态表达式如式(5)所示:

ht=ot⊗σc(ct)

(5)

其中σc表示激活函数,通常情况下,LSTM层函数使用双曲正切函数(tanh)作为状态激活函数。

如图3,选择丢弃哪些输入信息是遗忘门的主要作用,其表达式为:

ft=σg(Wfxt+Rfht-1+bf)

(6)

其中ft表示遗忘门限,ht-1是上一个输出的信息,xt为输入数据信息。它们都经过激活函数σg保留一部分忘记一部分。

如图3中输入门的作用是负责处理当前序列位置的输入。其表达式为:

it=σg(Wixt+Riht-1+bi)

(7)

如图3中输出门的作用则是确定输出值。这个输出将是基于状态单元,但是也是一个过滤后的版本。其表达式为:

ot=σg(Woxt+Roht-1+bo)

(8)

如图3中之前时刻的信息直接在整个链上工作,只有一些少量的线性交互。其表达式为:

gt=σc(Wgxt+Rght-1+bg)

(9)

LSTM进行分类的过程大致如下:首先将转标准化后的网络流量序列转换成f输入到状态单元,然后经过状态单元对f进行筛选更新形成新的f′,并对输出的数据使用softmax进行分类,最后输出训练结果。

1.4 注意力机制

注意力机制是为了研究人类视觉[13]。它可以表达为资源分配模型,在一些时刻,注意力会对目标中的某个焦点部分进行集中,从而会忽视其余部分,使用数学描述就是对目标数据进行加权变化。因为不一样的短子序列的特征重要程度在长时间序列中也会存在差异,而且拥有更多的信息量在这重要显著特征中,因此对目标序列引入注意力机制进行重要程度分析具有实际意义。

用[x0,x1,…,xn]表示n+1组输入信息,这里的xi,i=0,1,…,n表示一组输入信息。从考虑计算资源出发,不需要将所有的信息都输入到计算网络当中,只需要从[x0,x1,…,xn]中选择一些和任务相关性比较大的信息。其中注意力机制的计算过程可以表示为下面2个步骤:

1)在所有输入信息上计算注意力分布。

2)通过注意力分布,从而来计算得到输入信息的加权平均。

从输入信息中选择任务相关信息的方法可以将注意力机制分为硬注意力(Hard Attention)和软注意力(Soft Attention)。

硬注意力是指选择输入序列某一个位置上的信息,例如随机选择一个信息或者选择出现概率最大的信息。

软注意力是指在选择信息的时候,不是从n个信息中只选择1个,而是计算n个输入信息的加权平均,再输入到计算网络中进行计算。通常的软注意力在实际应用更为普遍。

本文使用输入信息对应的概率值作为权系数,计算n个输入信息的加权平均,其中计算输入信息对应的概率值使用softmax函数,其表达式如式(10)所示:

(10)

其中i=0,1,…,n-1。

2 CTA-net模型

针对网络流量数据本身的特征和现在模型所出现的问题,本文提出基于空时特征融合和注意力机制的深度学习模型,将之称为CTA-net,用于入侵检测,对应的结构如图4所示。CTA-net进行分类的过程大致如下:输入数据序列经过CNN模块进行空域的特征提取,得到的特征输入LSTM进行时序特征提取,再经过注意力模型根据各属性特征的重要性进行加权计算,最后通过softmax分类计算,输出分类结果。

图4 CTA-net结构图

图4中,CTA-net与第1章提出的CNN模型相比,具有相同的CNN模块,另外用LSTM层和注意力模块取代了CNN层中全连接层。

3 实验与结果分析

本章通过对CNN模型、CNN-LSTM模型和CTA-net设计相同条件下的对比仿真实验,最后给出实验结果分析。

3.1 参数配置

如表1所示,仿真实验中所有模型的初始化参数都使用相同配置,这样使得所有模型都在相对公平的条件进行对比,这样更有利于反映出CNN模型、CNN-LSTM模型和CTA-net的真实性能。

表1 仿真实验中CNN模型、CNN-LSTM模型和CTA-net的参数配置

其中,CNN层和全连接层的权系数初始化方法都使用何凯明提出的Kaiming法[14],该方法有利于加速模型的收敛速度,LSTM层的权系数初始化方法使用正交方法[15]。所有模型的优化器都使用Adam方法[16],该方法具有更快的收敛速度和稳定性,并且在模型训练过程中可以不使用验证集。

3.2 运行环境

本文中的所有模型均在配置为Core i7 8565U CPU,16 GB内存和GeForce MX250显卡的计算机上进行训练和测试。该计算机系统为Windows 10 Home版,并且所有模型是使用Matlab2020b Deep Learning Toolbox框架实现。

3.3 仿真结果

CNN模型、CNN-LSTM模型和CTA-net模型的准确率曲线如图5所示,从图中可以看出CTA-net具有最快的速度使得测试集分类准确率达到稳定状态,而CNN-LSTM的准确率达到稳定状态所需要的时间是最长的。同时这3个模型训练过程的损失函数值的对比曲线如图6所示。其中损失是用来估量模型的预测值与目标值的不一致程度。若损失函数很小,表明分类模型与数据真实值很接近,则模型性能良好;若损失函数很大,表明分类模型与数据真实值差别较大,则模型性能不佳。本文使用分类模型中常用的损失函数为交叉熵,在训练过程中的损失函数曲线描述了模型在训练集上收敛到逼近真实值的速度。

图5 CNN、CNN-LSTM和CTA-net训练过程准确率对比曲线图

图6 CNN、CNN-LSTM和CTA-net训练过程损失函数值对比曲线

从图6可以看出CTA-net具有最快的速度使得测试集损失函数值达到接近0的稳定状态,CNN-LSTM模型和CNN模型分别次之。综合图5和图6可以看出在模型的收敛速度上性能依次降低的为CTA-net、CNN-LSTM模型和CNN模型,这也体现出了空时融合模型相对只进行空域特征提取的CNN模型具有更快的收敛速度[17]。

图7、图8和图9分别对应使用NSL-KDD数据集中划分为训练集训练好的CNN模型、CNN-LSTM模型和CTA-net对划为测试集的数据进行预测分类的混淆矩阵。

图7 CNN模型测试集分类的混淆矩阵

图8 CNN-LSTM模型测试集分类的混淆矩阵

图9 CTA-net模型测试集分类的混淆矩阵

其中本文生成的混淆矩阵的定义如下:分别为3行3列。底侧标签正常和入侵表示目标网络流量的分类行为,左侧标签正常和入侵表示网络流量的分类行为。最后一行格(右下角格除外)上面和下面的百分比分别表示模型对网络流量的分类做出正确或错误分类的准确率(即召回率,Recall)和错误率[18]。最后一列格(右下角格除外)上面和下面的百分比分别表示模型预测分类为网络流量的分类的准确率(即精确度,Precision)和错误率[19]。右下角格上面和下面的百分比分别代表模型对网络流量的分类做出正确分类或错误分类的平均分类准确率(Accuracy)和平均分类错误率[20]。其他格下面的百分比则表示该分类样本数占全部测试集样本数的比例[21]。

从3个混淆矩阵中可以看出,本文提出的CTA-net具有最高的准确率93.4%,相比较CNN模型和CNN-LSTM模型的81.6%和82.5%分别有11.8个百分点和10.9个百分点的提升。综合实验结果中的训练过程准确率曲线、训练过程损失函数值曲线和各模型预测分类的混淆矩阵[22],可以看出CTA-net较CNN模型、CNN-LSTM模型在入侵检测中具有更好的性能。

表2展示了文献[23]、文献[3]提出的模型与本文的中CNN模型、CNN-LSTM模型和CTA-net与常用机器学习结果比较,使用的都是NSL-KDD数据集并经过相同数据预处理步骤和样本集划分[24-25]。

表2 仿真实验中CNN模型、CNN-LSTM模型和CTA-net与常用机器学习结果对比

从对比结果看出,CTA-net的准确率、精确率、召回率和F1-SCORE性能要明显优于其他2种使用机器学习的模型以及本文中使用的CNN模型、CNN-LSTM模型,但是CTA-net由于在CNN-LSTM模型基础上融合了注意力机制,导致其运算量增加,通过对比模型训练过程的时间可以看出CTA-net需要的时间更长,但是差别不大,在可以接受的范围之内。实验结果说明了空时融合技术和注意力机制在入侵检测中的有效性。

4 结束语

针对网络入侵数据的特点,以及目前检测性能存在的问题,本文提出了基于空时融合技术和注意力机制的深度学习模型,并且使用NSL-KDD数据库对比具有相似结构的CNN模型和CNN-LSTM模型进行实验,通过比较3个模型参数量、训练过程的收敛速度和对测试集的预测分类性能,结果表明本文提出的模型CTA-net在入侵检测领域的高效性。

目前,在入侵检测方面的深度学习模型较少,未来可以使用深度学习模型作为入侵检测特征学习方面进行性能改善的方法,同时将构建的深度学习模型应用到实时入侵检测。

猜你喜欢

网络流量注意力分类
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
让注意力“飞”回来
分类算一算
如何培养一年级学生的注意力
大数据环境下的网络流量非线性预测建模
分类讨论求坐标
AVB网络流量整形帧模型端到端延迟计算
教你一招:数的分类
说说分类那些事