一种基于深度学习的网络入侵检测方法
作者李政
Abstract: 网络入侵检测是国家网络空间安全战略的一项重要技术,是近年来各种网络空间安全问题的研究热点。利用先进的深度学习算法开发有效的智能网络入侵检测方法,对于防御复杂网络环境下的各种网络入侵具有重要意义。然而,大多数现有检测方法不能充分利用原始网络流量中包含的信息,例如特征提取过程中的信息丢失和不完整的特征维度。针对上述问题,本文考虑了网络流量数据中时空特征的存在,提出一种分层的CNN,RNN,Gated TCN以及Self-Attention的新型入侵检测模型(CR-GTCN),该模型通过利用1D卷积神经网络(CNN) 提取空间特征,(1D卷积神经网络(CNN)主要用于提取空间特征。
1. 边缘特征:能够检测图像或数据中的边缘信息。
2. 纹理特征:比如图像中的重复模式、粗糙度等纹理特性。
3. 形状特征:识别和提取不同物体的形状信息。
4. 局部特征:关注局部区域的特定模式和特征。
5. 方向特征:例如线条或区域的方向信息。)Gated TCN和递归神经网络(RNN)提取时间特征(1. 顺序处理:按照时间顺序依次处理输入序列中的元素,对序列的顺序信息敏感。
2. 记忆能力:通过内部的隐藏状态来存储和传递之前的信息,从而捕捉时间特征的演变。
3. 擅长处理短期依赖:对于较短时间范围内的依赖关系能够较好地捕捉和建模。),将CNN,Gated TCN和RNN提取的特征“并联”得到融合特征。为了让有用的输入信息得到更好表达,引入了Self-Attention给融合后的特征分配不同的权重,从而可以有效地提取数据的空间和时间特征。为了验证模型的有效性,在UNSW-NB15数据集上进行了评估,实验结果表明,CR-GTCN方法可以有效的将特征选择与深度学习模型相融合,能够有效的检测不同类别的网络入侵,并且与基线网络入侵检测方法相比,具有较好的检测性能。。
Keywords: Intrusion Detection; Convolutional Neural Network; Gated TCN; Recurrent Neural Network; Self-Attention
1 Introduction
信息技术的广泛应用和网络空间的兴起与发展,在极大促进经济社会繁荣进步的同时,也带来了新的网络空间安全风险与挑战[1]。随着计算机网络和通信网络的日益完善,网络空间安全面临着网络入侵和攻击等复杂多样的安全威胁[2]。网络入侵检测是网络空间安全中重要的安全防御技术,用于监控和检测安全事件。通过分析网络流量数据的特征,发现和检测网络恶意行为,制定合理的防御策略,保障网络和数据安全[3]。根据网络空间安全防护的要求,不仅需要快速检测网络流量数据中的网络入侵,还需要准确识别网络入侵的具体类别,以便采取有针对性的防御策略和响应处置,确保网络安全。网络入侵检测是近年来网络空间安全领域的一个热门研究课题。随着网络流量的爆炸式增长,在大数据环境下设计高效、鲁棒的网络入侵检测系统变得至关重要,但也很困难[4]。因此,研究快速、准确的智能网络入侵检测方法,防御复杂网络环境下的各种网络入侵,具有重要意义。
传统的网络入侵检测系统可分为misuse detection and anomaly detection[5]。误用检测通过规则匹配或特征匹配判断数据是否为入侵,异常检测通过异常判断数据是否为异常。然而,这两种方法都有检测率低和误报率高的缺点。研究人员通过使用机器学习和深度神经模型来改善智能系统的网络入侵检测结果[6]。在网络入侵检测的早期,传统的机器学习通常用于研究如何进行单个模型的预测。然而,从单一模型获得的预测精度非常有限。k-nearest neighbor [7], naive bays [8], decision tree [9], random forest [10]和其他算法已在网络入侵检测中使用。尽管这些技术简单且不需要太多训练,但其准确性较低。与使用传统机器学习方法构建的网络入侵检测相比,使用深度学习构建的网络入侵检测具有更高的准确性。例如,使用多层感知器(MLP)[11]、卷积神经网络(CNN)、循环神经网络(RNN)[12]、长短期记忆(LSTM)和其他相关算法来进行网络入侵检测。尽管这些算法使网络入侵检测更加准确,但它们需要很长时间来进行训练。
基于机器学习和深度学习的网络入侵检测重点关注模型性能,而不是网络数据的语义分析。一般的网络入侵检测场景为网络入侵检测检查网络流量和主机以识别可能的入侵,系统链接到网络节点,例如集线器或交换机,以便可以跟踪网络活动。网络入侵检测监视点放置在网络的高流量区域,以检查数据包是否存在不良行为迹象。攻击者可能会使用多个恶意脚本来损坏目标设备。在行为分割方面,基于语义的特征分析可以揭示潜在的破坏性脚本。在将网络数据输入深度学习模型之前,可以对其进行语义分析以提取训练特征[13]。对于语义分析,每种攻击类型的详细信息可以与其他特征相结合,例如主机信息、攻击名称和攻击参考。总体而言,每个安全功能仅提供安全威胁的有限视图,并且通常只关注一种类型的攻击。此外,各种特征区分异常活动的能力差异很大。因此,大多数现有的网络入侵检测方法都是通过使用多种功能而不是仅使用一种类型来收集全貌。此外,攻击者利用现有的与功能相关的经验来创建入侵变体以避免检测,需要开发新的特征集来补充现有知识并扩展特征组合空间,这使得入侵者更难避免被发现。
针对上述问题,本文提出了一种新颖的基于深度学习的网络入侵检测方法(CR-GTCN),通过构建基于CNN, RNN,Gated TCN以及Self-Attention的新型入侵检测模型,该模型利用一维卷积神经网络(CNN)提取空间特征,Gated TCN和递归神经网络(RNN)提取时间特征,将二者提取的特征“并联”得到融合特征,引入Self-Attention以提取可变长度网络流量的特征,进一步进行特征提取以选择重要的特征信息。
本文的贡献如下:
1.本文提出了一种基于(CR-GTCN)的新型入侵检测模型,该模型考虑了原始网络流量各个组成部分的特征,可以分层学习网络流量的时空特征;
2.本文构建了一个基于CNN,RNN,Gated TCN网络的多模块,通过集成这些网络提取网络流量的特征,以避免特征信息的丢失。
3.本文构建了一个自注意力机制模块,用于融合后的特征分配不同的权重,进行二次特征提取以选择重要的特征信息;
4.本文在 UNSW-NB15数据集上进行了评估,实验结果表明,本文所提出的CR-GTCN模型具有最优的检测性能。
2 Related works
网络入侵检测可以看作是一个有监督的异常检测问题,也是一个分类问题。近年来,研究人员提出了许多研究,从传统的统计技术方法到基于深度学习的方法,从攻击入侵中获取独特的模式,并将攻击流量与正常流量进行分类。
2.1 Semantic-based methods
企业系统经常生成大量日志来跟踪运行时状态和活动网络流量数据。传统上的入侵检测方法需要通过分析PCAP文件来解析非结构化网络数据。此类数据可能包含有关特定攻击的有用信息,例如攻击名称、参考、主机信息等。语义工具可用于预处理网络数据,以提取有意义的信息并去除噪声数据,有助于减少网络入侵检测上的负载。Seyyar等人[13]提出了一种Web IDS模型,可以区分正常和异常URL。在URL分析阶段,该方法采用BERT Transformer模型和CNN对各种类型的攻击进行分类。为了解决语义差距,Li等人[15]使用word2vec模型实现了HTTP流量的TFIDF加权映射来生成低维特征向量。Huang等人[16]提出了HitAnomaly方法,该方法使用BERT构建日志模板段和属性值来进行异常检测。基于日志序列和参数设置的编码器旨在提取排序数据。Min等人[17]提出一种使用统计和有效负载特征的入侵检测系统,单词语义和文本CNN用于从有效负载中收集有用的特征。所提出的方法提供了最佳的检测精度。
2.2 Feature Selection-Based Methods
特征选择的方法可以用作机器学习中的预处理步骤,以降低计算成本,旨在删除不必要的功能,同时保持甚至提高网络入侵检测的性能。为了实现实时、轻量级的入侵检测,研究人员还提出了不同的特征选择方法来降低入侵检测模型的计算复杂度。Jia等人[18]利用信息增益来选择十个最相关的特征,根据选定的网络特征,使用LSTM和CNN来实现入侵检测。在该模型中,首先利用信息增益来实现特征选择,采用LSTM模型来识别网络流量,通过CNN对网络流量进行分类。Shafiq等人[19]通过wrapper技术精确过滤特征集,并利用曲线指标下的面积来选择网络特征集。基于选定的特征,利用决策树(Decision Tree,DT)、支持向量机(SVM)等机器学习算法实现入侵检测。Ding等人[20]提出一种混合模型来减少网络特征的数量,使用聚类分析方法来实现特征选择。该方法首先使用信息特征选择算法来选择网络信息的潜在重要特征。然后,利用实数编码的chemical reaction优化算法来寻找最佳聚类中心,并利用模糊均值方法来选择最佳特征集。最后,基于选定的特征集,使用SVM等多种机器学习方法进行入侵检测。Injadat等人[21]使用信息增益方法来实现特征选择,基于信息增益方法,将网络特征集规模缩小了近60%,使用随机森林(Random Forest,RF)来有效地检测网络数据。Aslahi-Shahri等人[22]结合使用SVM和遗传算法,将KDD CUP99数据集中的特征数量从41个减少到10个,实验表明,该方法误报率非常低。Alazzam等人[23]使用Pigeon Inspired Optimizer (PIO)方法将KDDCUP99、NSL-KDD和UNSW-NB15数据集中的特征数量分别从41个减少到7个、5个和5个,保持了较高的true positive rates和准确性,并减少了构建DT的时间。为了选择网络入侵检测的最佳子集,Khammassi等人[24]利用逻辑回归作为选择方法和训练模型,该方法具有很高的检测精度。
如上所述,尽管基于特征选择的技术可以最小化特征维数,但是它们的有效性严重依赖于具有语义细节的特征的质量。无法确保在每种数据情况下都能获得最佳结果,尤其是在数据不平衡的情况下。此外,当前的特征选择策略基于启发式规则和指标,限制了它们学习特征之间复杂关系的能力。
2.3 Machine Learning-Based Methods
机器学习在数据分析、检测、人工智能等方面取得了很多重要成果。因此,大量基于机器学习的方法被应用于网络入侵检测。例如,Gao等人[25]结合LSTM和前馈神经网络(FNN)进行入侵检测,首先通过LSTM和FNN对网络流量数据进行预处理。然后,组合预处理的数据,并通过FNN训练组合数据。最后,通过结合训练好的模型进行入侵检测。Marteau [26]利用二叉树森林来建立入侵检测模型,该模型可以检测逐点和集体异常。Li等人[27]利用CNN构建了双深度学习模型,该模型自适应地从正常数据中学习,通过比较预测结果与实际结果之间的差异来检测是否受到攻击。
然而,机器学习方法受到许多限制,并且随着时间的推移,网络攻击变得更加复杂和多样化。Zhou等人[28]引入了Siamese CNN的少样本学习模型,主要缓解了过拟合问题,构建了Siamese CNN模型作为预训练模型,最后,基于变换后的低维特征表示构建了Siamese CNN模型。Xu等人[29]提出了一种对数双曲余弦条件变分自动编码器(LCVAE)的入侵检测模型,LCVAE具有条件变分自动编码器的优点,能够有效地学习数据的复杂性。LCVAE模型使用log-cosh函数来减少损失,并使用CNN来提供检测精度。Li等人[30]利用了联合深度学习模型,该模型包含CNN和门控循环单元 (GRU) ,通过结合CNN、GRU和多层感知器来实现入侵检测。Teng等人[31]提出了一种使用SVM和DT的自适应协作网络入侵检测方法。在KDD CUP 1999数据集上的实验结果表明,该方法具有较好的检测性能。Gu等人[32]通过朴素贝叶斯方法对网络流量数据进行特征变换,进一步利用SVM构建了网络入侵检测模型,取得了较高的检测精度。Jing等人[33]提出了一种将SVM与非线性缩放方法相结合的网络入侵检测方法。Raman等人[34]提出了一种基于SVM的网络入侵检测方法,该方法利用超图方法对网络流量数据进行特征选择。Aburomman等人[35]提出了一种加权一对一SVM算法,用于识别网络入侵检测中的多种攻击类别。Ponmalar等人[36]提出了一种基于混沌博弈优化算法的集成SVM的入侵检测方法。Rashid等人[37]提出了一种基于树的堆叠集成入侵检测模型,该模型集成了DT、RF和极限梯度提升。总体而言,这些基于机器学习的网络入侵检测方法相对简单,计算效率高,使其在实时网络入侵检测应用中更加有效。
2.4 Deep learning methods
近年来,出现了许多高效的深度学习模型,例如深度信念网络(DBN)、深度CNN、RNN和深度生成网络,这些模型已用于网络入侵检测领域[38]。Shone等人[6]提出了一种使用堆叠非对称深度自动编码器构建的新型深度学习分类模型,可以正确检测网络入侵类别。 Hassan等人[40]提出了一种大数据环境下高效的网络入侵检测方法,通过结合深度CNN和权重下降的LSTM,从网络流量数据中提取有意义的特征,从而提高入侵检测精度。Khan等人[41]使用CNN和RNN分别捕获局部特征和时间特征,并提出了一种基于深度学习的混合入侵检测框架,用于预测和分类恶意网络攻击。Cao等人[42]提出了一种融合CNN和GRU的网络入侵检测模型,可以解决分类精度低和类别不平衡的问题。Kasongo[43]使用不同类型的RNN实现了入侵检测框架,包括LSTM、GRU和RNN。Vinayakumar等人[44]提出了一种使用分布式深度学习和深度神经网络(DNN)的混合网络入侵检测方法,采用五个隐藏层来实时处理和分析大量数据。Jiang等人[45]使用LSTM-RNN提出一种多通道网络入侵检测方法,通过挖掘特定攻击的信息,将攻击行为揭示为序列数据。Shone等人[6]使用RF和非对称深度自动编码器,该方法采用堆叠式自动编码器,自动编码器最终编码层的输出作为 softmax分类器的输入。虽然这些基于深度学习的网络入侵检测方法通常能达到较高的检测准确率,但算法设计较为复杂,网络训练通常需要大量迭代,需要较多的计算资源,训练过程一般比较耗时。
Khediri[47]提出了使用反向传播的DNN,并使用CSE-CICIDS2018训练了模型,该模型没有考虑可能影响进一步研究的可用性的训练和验证时间。Thakkar等人[48]提出了DNN来检测攻击,并分别使用NSL-KDD、UNSW-NB-15和CIC-IDS-2017数据集训练模型,该模型训练时间消耗太长。El-Ghamry等人[49]引入了VGG16-PSO模型,该模型是一种优化的 CNN模型,用于入侵检测。该模型没有提及训练和验证所消耗的时间。Wu等人[50]提出了一种DNN来检测网络攻击,该模型仅使用CSECICIDS2018进行验证,缺少训练和推理时间。Hnamte等人[51]提出一种LSTM-AE模型用于检测攻击,该模型使用两个公开数据集进行训练和验证,该模型训练时间较长,需要高端计算来应用更大的数据集。Dong等人[52]提出了一种半监督双深度Q-Network(SSDDQN),用于检测使用NSL-KDD和AWID数据集训练的攻击。由于数据集较旧且规模较小,因此所提出的模型可能不适用于现代攻击场景。Pelletier等人[53]使用RNN和时间卷积神经网络(TempCNN)来评估训练和测试持续时间。
目前的研究有一些局限性。例如,当使用更深的CNN时,没有L1或L2正则化来优化 CNN模型的超参数。然而,正则化并不是模型性能的主要决定因素。相反,模型的架构发挥着更重要的作用。之前的研究已经使用CNN和DNN来调整模型的架构,但搜索空间需要扩展,并且适应度函数必须考虑模型的运行时间。
3 Proposed CR-GTCN approach for intrusion detection
CNN以空间特征为目标,而 RNN以时间特征为目标。现有的研究工作HAST-IDS 简单地将CNN 和RNN串联起来,如图1所示。当学习沿着CNN层次结构的多个级别进行时,提取的信息变得更加面向空间。时间特征可能会被CNN层次结构丢失,这显着限制了后续 RNN (LSTM) 的学习效果。
图1. HAST-IDS模型图
针对上述问题,本文通过集成CNN,Gated TCN和RNN子网,并在其后加入Self-Attention,最后在多个步骤中同步学习,如图2所示。由于CNN能够从大量数据中提取高级特征,因此本文将CNN放在Gated TCN和RNN网络之前,CNN输出仍将保留时间信息,然后由Gated TCN和RNN网络捕获这些时间信息,最后,Self-Attention可以利用注意力机制来“动态”地生成不同连接的权重,因此可以用来处理变长的输入序列,随着数据处理的进行到下一步,学习粒度变得更细。通过这种方式集成学习,CNN,RNN,Gated TCN和Self-Attention可以充分学习且不会相互干扰。
图2. CR-GTCN模型图
3.1 Convolutional Neural Network (CNN)
CNN主要由两个操作组成:卷积和池化。卷积通过一组过滤器或内核将输入数据转换为突出输入数据特征的输出,因此输出通常称为特征图。卷积输出由激活函数进一步处理,然后通过池化进行下采样以去除不相关的数据。池化还有助于消除数据中的故障,以改进后续层的学习。CNN通过一轮又一轮的学习过程自动调整过滤器来学习输入数据,使其输出特征图可以有效地表示原始输入数据。由于网络数据包以一维形式存在,一维卷积表示如下:
|
(1) |
其中,
表示序列数据中不同值的位置,
表示大小为
的滤波器,g(j)表示函数g在变量j处的值,选择ReLU作为激活函数。
3.2 Batch Normalization
使用深度神经网络的一个问题是输入值范围在训练过程中逐层动态变化,这也称为协方差偏移。协方差偏移导致一层的学习效率依赖于其他层,使学习结果不稳定,此外,由于协方差偏移,学习率可能被限制在一个较低的值,以确保不同输入范围内的数据被有效地学习,这减慢了学习速度,因此通过Batch Normalization来解决这个问题。本文使用Batch Normalization来调整RNN模块中的CNN输出,如下所示:
|
(2) |
其中,
是输入batch中的值,
和
分别表示batch均值和方差,
是一个可忽略的值,只是为了保证公式中的分母不为零。
基于归一化产生的
,归一化得到公式(3)所示的输出
,其中
和
都在学习过程中训练,以获得更好的学习结果。
|
(3) |
3.3 Gated Temporal Convolutional Network (Gated TCN)
Gated TCN在递归神经网络中非常重要,它能够对时间卷积网络(Temporal Convolutional Network,TCN)中各层的信息进行控制,给定输入
,其形式为:
|
(3) |
其中
,
,
和
是模型参数,
is element-wise product,
是输出的激活函数,
是sigmoid函数,确定传递到下一层信息的比率。
本文使用dilated casual convolution 作为TCN来捕获特征。Dilated casual convolution network 通过增加层的深度来实现较大的receptive field(感受域),便于并行计算,并缓解了梯度消失问题。Dilated casual convolution通过将零填充到输入来保持temporal causal order,作为标准1D卷积的一种特殊情况,dilated casual convolution运算通过以特定步骤跳过值来滑动输入(每个输出仅依赖于之前的输入。而扩张因果卷积通过在卷积核元素之间插入空洞即跳过一些输入值,使得在不增加卷积核大小和计算量的情况下,能够有效地扩大感受域,从而捕捉更长范围的时间依赖关系),如图3所示。在数学上,给定一维序列输入
和filter
,将
与
在步骤
处的dilated casual convolution运算的表示如等式(5)所示:
|
(4) |
其中,(k表示长度),
是控制跳跃距离的dilation factor。
3.4 Long Short-Term Memory (LSTM)
与CNN以个体数据记录为基础学习信息不同,RNN可以通过将上一次学习的学习反馈到当前学习来建立数据记录之间的关系,从而可以捕获输入数据中的时间特征。然而,传统RNN中使用的simple feedback可能会在长期依赖中积累学习误差。累积的错误可能变得大到足以使最终的学习结果无效。LSTM是一种门控递归神经网络,可缓解此类问题。它通过一组门函数来控制反馈,这样短暂的错误最终会被剔除,只保留持久的特征。因此,本文将LSTM用于RNN。LSTM可以抽象为四个子网络、一组控制门和一个记忆组件的连接,图中的输入和输出值是由输入
确定的相同大小的向量,保存在内存中的状态
作为对当前学习的反馈,具体表示如下:
S(t)= |
(5) |
其中,
,
,
,
分别为当前输入,先前输出,偏置和权重矩阵。
使用子网
,通过两种类型(遗忘门(Forget Gate)和输入门(Input Gate))的控制门
来确定反馈
从之前的学习和当前的输出
,具体表示如下:
|
(6) |
|
|
(7) |
LSTM通过调整这些网络中的权重和
值来学习输入,以便可以在输出中有效地生成输入数据之间的时间特征。
3.5 Self-Attention(SA)
CNN,Gated TCN以及LSTM网络的结合能够使用CNN做特征提取的同时,使用LSTM做序列预测,而注意力机制的引入,能从大量的信息中选出更重要的部分,有利于提高入侵检测的准确率,因为自注意力能够减少外部信息的影响,如图所示,自注意力模型可以利用注意力机制来“动态”地生成不同连接的权重,因此可以用来处理变长的输入序列,可以作为神经网络中的一层来使用,表示如下:
|
(9) |
式中,
表示一组查询向量矩,
表示一组键向量矩阵,
表示向量矩阵。&#