张 昊,张小雨,张振友,李 伟
华北理工大学 人工智能学院,河北 唐山 063210
随着科学技术的发展,网络几乎成为了人们生活和工作中不可或缺的重要工具。但是,在当今愈加复杂的网络环境下,各种网络攻击手段接踵而来,攻击频率不断增加,影响范围不断扩大,全球因网络安全引发的泄露事故呈日趋频繁。尤其是零日攻击[1-3],让人防不胜防。因此对于入侵检测(intrusion detection,ID)的研究已成为当前网络安全领域的重要研究方向之一,研究人员都在追求高效、稳定的入侵检测。入侵检测的任务是发现可疑攻击,采取相应的措施,使网络避免被攻击,从而有效减少经济损失。入侵检测系统(intrusion detection system,IDS)最早研究于1980年,到目前为止,入侵检测系统经过了几十年的发展取得了一定的成果,通过不断引入新想法、新技术(区块链技术[4]等),使其充满活力,但是对于入侵检测系统的研究还有较大的提升空间。
入侵检测系统根据所检测数据来源的不同,可以分为基于主机的入侵检测系统和基于网络的入侵检测系统。由于互联网的应用越发广泛,研究人员对网络入侵检测系统的研究也越来越重视,为此研究人员将深度学习算法应用于网络入侵检测,以进一步提高其性能,因此本文主要针对网络入侵检测进行研究调查。另外,根据其检测能力,入侵检测方法又分为特征检测方法和异常检测方法。其中特征检测方法通过将事件和流量与已知攻击标志数据库相匹配,从而判断是否存在攻击行为,但是这种方法无法检测未知的攻击。另一方面,异常检测方法试图学习正常行为规律并将其他一切识别为异常或入侵。但这种方法还存在着较高的误报率,因此研究人员将深度学习技术应用于异常入侵检测的研究中,从而降低入侵检测误报率。
虽然目前研究人员针对不同类型的网络攻击提出了各种入侵检测模型,并将机器学习算法应用到入侵检测模型中,但是这些模型还存在着一系列的问题[5]。首先,基于机器学习的入侵检测模型在准确率上取得的效果并不是很理想,并且这种入侵检测模型还有着较高的误报率。其次,随着互联网技术的不断发展,如今的网络流量越来越大,入侵检测模型在运行过程中需要对大量的网络流量进行分析和处理,而机器学习在分析和处理大量数据上并不能表现出良好的性能。
近年来,深度学习模型在大数据分析中取得了很好的成效,许多研究人员开始将深度学习技术应用在入侵检测模型上,基于深度学习的入侵检测模型被广泛研究和应用[6]。本文主要调查近年来深度学习技术在入侵检测上的应用成果,对其自身的优点和不足进行阐述,并对入侵检测模型未来的挑战进行分析。
数据预处理是指在对数据进行主要的操作之前的一系列处理操作,既保证数据的完整性和准确性,也为后面对数据进行操作提供方便。下面将介绍几种常用于入侵检测模型的数据预处理方法。
数据标准化是通过对原始数据进行等比例缩放,经过处理之后的数据处于同一数量级,从而使模型在训练过程中使用的数据都具有相同的标度。使用数据标准化处理后的数据对深度学习模型进行训练时,可以在一定程度上提高深度学习模型精度。并且对于使用梯度下降优化的模型,可以有效地提高模型的收敛速度。下面介绍两种常用的标准化方法,分别为Min-Max标准化和Z-score标准化。
Min-Max标准化是通过对原始数据进行线性变换,将原始数据映射到[0,1]之间[7]。该方法计算公式如下:
其中,x为原始数据,xnorm为标准化后的数据,xmax和xmin分别为原始数据中的最大值和最小值。
Z-score标准化是通过计算原始数据的均值和标准差来对其进行标准化[8]。对于要使用Z-score标准化进行处理的数据,需要保证原始数据近似高斯分布,否则经过处理后的数据反而会影响后续模型的训练。该方法计算公式如下:
其中,μ和σ分别为原始数据的均值和方差。
数据标准化在深度学习方法中非常有用,并且被用于大多数神经网络计算工作中,这与神经元的激活特征和权重的更新有关。例如,Liu等人使用Min-Max标准化对KDD999数据集以及UNSW-NB15数据集进行预处理,为后续模型的训练与测试做准备[9]。
由于训练入侵检测模型所使用的数据集中可能会带有一些非数字的特征符号,但是对于深度学习模型而言,特殊符号并不能用作模型的训练,因为只有数字类型的数据才能进行计算。所以,对于数据集中这些特殊的特征值,通常会采用两种编码方式进行解决,分别是标签编码和One-Hot编码[10]。而对于深度学习算法而言,采用One-Hot编码方式更为适合。下面将对One-Hot编码进行详细介绍。
One-Hot编码也被称为一位有效编码,其基本原理是通过多位状态寄存器来对多个状态进行编码。例如,Xiao等人在对KDD99数据集进行预处理时,使用One-Hot编码方法将数据集中的符号特征数值化[11]。通过One-Hot编码处理后便可以将KDD99数据集中的三个符号特征映射成一个84维向量,从而使数据集符合深度学习所需的输入类型。
特征选择也被称为特征子集选择,该方法是在给定的特征集合中选择出对于模型训练比较重要的特征组成特征子集[12-13]。通过特征选择可以有效地降低数据集的维数,缓解维数灾难问题,并且通过删除不重要特征来降低后续模型学习的难度[14-15]。特征选择包括三种选择方式,分别是过滤式、包裹式以及嵌入式。过滤式特征选择是先对数据集进行特征选择,然后再对分类器进行训练。过滤式特征选择算法复杂性低,可以快速去除大量不相关的特征,因此适用于大规模数据集。但是由于算法的评价标准独立于特定的学习算法,其所选的特征子集在分类准确率方面通常低于包裹式特征选择。而包裹式特征选择根据学习器的性能来对特征子集进行评价,因此包裹式特征选择具有更好的分类性能。但是包裹式特征选择选出的特征子集通用性不强,当改变学习算法时,需要针对该学习算法重新进行特征选择。由于每次对子集的评价都要进行分类器的训练和测试,所以算法计算复杂度很高,因此对于大规模数据集来说,算法的执行时间过长。嵌入式特征选择是指对原始数据的特征选择是在学习器训练过程中完成的。
入侵检测模型训练所使用的数据集通常存在着类别不平衡的问题。针对这个问题,可以使用采样技术将存在类不平衡问题的数据集转换为较平衡的数据集,以提高少数类别的预测精度。当前,根据数据集中类别样本数目的多少可以分为两种采样方法,分别是欠采样方法和过采样方法。
欠采样方法是对样本数量过多的类别进行“欠采样”,通过减少其样本数量从而使得正例、反例的样本数量接近,然后再进行学习。例如,Yang等人为避免数据集不平衡和数据冗余对检测精度的影响,通过欠采样方法对AWID数据集进行处理,减少多数类数据样本数量,使得攻击样本和正常样本的数量基本相等[16]。实验证明,通过这种方法,可以有效地检测潜在的攻击并提高模型精度。
过采样方法是使用“过采样”对样本数量过多的类别进行处理,通过增加其样本数量从而使得正例、反例的样本数量接近,然后再进行学习。例如,Sun等人为解决数据集中攻击样本数量的较少的问题,对数据集中攻击样本进行过采样[17]。实验结果证明,过采样方法在攻击样本数量较少的情况下,可以提高入侵检测的准确性。
近些年,深度学习从机器学习技术中脱颖而出,用于特征选择、感知和无监督学习。该算法使用多个后续层来实现其操作,通过开发多层人工神经网络,并且其中许多隐藏层彼此堆叠,可以从基准数据集中自主学习,无需人为手动标记,实现特征精简提取,进而提高准确性和实时性。研究人员逐渐将深度学习应用于多个领域:例如检测鉴别物体;文字、语音、图像的识别;网络入侵检测等。
在过去的研究中,部分学者对基于深度学习的入侵检测方法进行了梳理总结[18-23],但是还不够完善。本章首先对现有基于卷积神经网络、自编码器、长短期记忆网络、生成式对抗网络等深度学习算法的入侵检测模型进行分类介绍。这四种深度学习算法是在当前入侵检测模型的研究中,被研究人员使用的最为广泛几种深度学习算法。另外,对于使用其他深度学习算法的入侵检测模型将在本章最后进行总结补充。
卷积神经网络(convolutional neural network,CNN)是一种含有卷积操作的深度结构神经网络,由输入层、卷积层、池化层、完全连接层和输出层组成,其中卷积层和池化层是卷积神经网络的重要组成部分。卷积神经网络是深度学习中的代表算法之一[24-25],根据卷积层和池化层层数的不同可以构建不同结构的卷积神经网络。
卷积神经网络具有良好的泛化能力,能够适用于多种分类任务。通过卷积神经网络构建的入侵检测模型,能直接对灰度图像进行分析和识别。使用卷积神经网络构建入侵检测模型时,需要对数据集进行处理,将其转换为符合卷积神经网络输入的灰度图,然后将灰度图输入卷积神经网络中进行训练,以此将流量分类问题转换为图片分类问题。通过卷积神经网络来提取流量的特征,能够提取数据中具有影响力的特征,并且由于其权值共享的特性,可以有效地提高入侵检测模型对数据处理时的效率,从而进一步提高入侵检测模型的性能。
Xiao等人提出了一种基于特征降维和卷积神经网络的入侵检测模型[11],该模型通过主成分分析[26](principal component analysis,PCA)或自编码器(auto-encoder,AE)对处理后的数据集进行降维,然后将降维后的数据转换为灰度图像输入到卷积神经网络中,最后通过卷积神经网络提取和分析数据特征进行分类。实验结果表明,模型的预测准确率可达到94.00%。该方法在卷积神经网络的基础上,通过使用主成分分析和自编码器对数据集进行降维,减少了数据集的冗余,提高了入侵检测模型的性能,减少了分类时间[11]。Khan等人通过对卷积神经网络进行改进,提出了一种入侵检测模型。该模型所设置的卷积神经网络共有三个隐藏层,每个隐藏层都包含一个卷积层和一个池化层,并且卷积层的内核数量是逐步增加的,分别为32、64、128。通过实验表明,该模型预测准确率可达到99.23%[27]。该方法通过改变卷积神经网络中卷积层内核的数量,将输入的低维数据映射到高维空间,从而增强模型学习特征的能力,有效地提高模型的准确率。Wu等人提出了一种基于卷积神经网络的大规模网络入侵检测模型,该模型与使用机器学习构建的入侵检测模型相比提高了准确率,并且由于卷积神经网络具有权值共享的特性,能够有效地减少训练的参数数目和计算量,从而使入侵检测模型更快地从流量数据中识别攻击类型[28]。但由于该方法并未对卷积神经网络进行改进,因此并未取得较好的效果。Ho等人使用卷积神经网络构建了一种入侵检测模型,该模型选择CICIDS2017数据集用作训练和测试,针对该数据集中所存在的问题,研究人员提出了在CICIDS2017数据集的基础上创建一个适合训练的新数据集,以此解决CICIDS2017数据集中类不平衡和数据分散存储的问题。通过实验证明,该模型在CICIDS2017数据集上准确率可达99.78%[29]。Andresini等人基于卷积神经网络提出了一种新颖的入侵检测模型[30]。该模型首先采用自编码器提取输入数据的特征,然后对输出的特征执行最近邻搜索和聚类过程的组合来导出符合卷积神经网络输入的灰度图像,最后对卷积神经网络进行训练。实验证明,该模型在KDD99数据集上的准确率可达到93.58%。Andresini等人提出将生成式对抗网络(generative adversarial network,GAN)和卷积神经网络相结合的入侵检测模型[31]。该模型首先将输入数据的一维特征向量表示映射到二维图像表示,然后训练一个辅助分类器生成式对抗网络来生成表示不可预见的网络攻击的新图像,以此来得到类平衡的数据集。最后将数据集放入卷积神经网络中进行训练和测试。实验证明,该模型在KDD99数据集上的准确率达到93.29%。该方法通过将生成式对抗网络与卷积神经网络相结合,解决了数据集中的类不平衡问题,并且通过生成式对抗网络生成新的网络攻击,使得卷积神经网络得到更好的训练效果,有效地提高模型的准确率。
通过以上方法可以看出,基于卷积神经网络的入侵检测模型可以有效地检测攻击行为。卷积神经网络可以很好地提取数据的特征,并且由于其权值共享的特性,能够有效减少所要训练的参数,从而减少训练所需时间。
如图1基于卷积神经网络入侵检测模型结构所示。在基于卷积神经网络构建的入侵检测模型中,首先对原始流量数据进行预处理,将其转化为标准数据。然后,将标准数据进行图片化转化为灰度图像。最后,将获得的流量灰度图输入到卷积神经网络中,利用卷积神经网络提取流量数据中的相关特征,并利用所得到的特征进行分类,检测是否存在异常流量。
图1 基于卷积神经网络的入侵检测模型Fig.1 Intrusion detection model based on convolutional neural network
长短期记忆网络(long short-term memory,LSTM)[32]是一种具有反馈连接的神经网络,它是一种特殊的循环神经网络[33-34](recurrent neural network,RNN)。循环神经网络在处理序列数据上具有良好的效果,但其本身还存在着一些问题,其中最主要问题就是循环神经网络对梯度消失或爆炸的敏感性[35]。而长短期记忆网络[36]体系结构通过在其循环连接中提供存储块来解决此问题。每个存储块都包括存储单元,用来存储网络时间状态。此外,它还包含用于控制信息流的门控单元。因此长短期记忆网络通常用于处理图像、视频或语音等。
Althubiti等人使用长短期记忆网络建立入侵检测模型,并在CIDDS001数据集上评估了模型的性能,实验结果证明,该模型在CIDDS001数据集上的预测准确率可达到84.83%[37]。Hassan等人提出了一种高效入侵检测模型,该模型通过将卷积神经网络与长短期记忆网络相结合来构建入侵检测模型。实验结果证明,该模型预测准确率可达到97.17%,该方法又经10倍交叉验证测试,准确率达到96.975%[38]。该方法利用卷积神经网络提取数据的空间特征,并且通过长短期记忆网络保留所提取的特征之间的依赖关系,以此来提取数据的时空特征。通过这种结合的方式,可以更好地提取数据的时空特征,从而提高模型准确率。Yang等人提出了一种基于注意力机制的长短期记忆网络入侵检测模型,它通过长短期记忆网络来保留数据间长期依赖关系,从而更好地提取数据的时间特征。通过实验表明,该模型的预测准确率达到94.30%[39]。该方法在长短期记忆网络的基础上添加了注意力机制,通过注意力机制的优势解决了入侵检测模型无法关注关键特征的问题,从而提高了模型的准确率。Kim等人构建了一个基于梯度下降优化的长短期记忆网络入侵检测分类器,通过对长短期记忆递归神经网络模型的六种优化算法进行比较,选取最合适的优化算法构建入侵检测模型,该模型最终的预测准确率达到了97.54%[40]。Jiang等人提出了一种混合采样与深度分层网络相结合的网络入侵检测模型,首先通过单侧选择和过采样技术创建一个均衡的数据集,使模型充分学习少数样本的特征,大大减少模型的训练时间。其次,通过卷积神经网络来提取数据的空间特征,利用长短期记忆网络提取数据的时间特征,形成了一个深层的层次化网络模型。该模型在NSL-KDD数据集和UNSW-NB15数据集上得到的预测准确率分别达到83.58%和77.16%[41]。Imrana等人提出了一种基于双向长短期记忆网络(bidirectional long short-term memory,BiLSTM)的入侵检测模型[42]。该模型在输入数据上训练两个长短期记忆网络。第一个长短期记忆网络位于原始输入数据上,另一个位于输入数据的反向副本上。通过使用双向长短期记忆网络,可以有效地提高模型在分类问题上的性能。实验结果表明,该模型在NSLKDD数据集上进行二元分类的准确率可达到87.46%。Kanna等人提出了一种基于优化卷积神经网络和分层多尺度长短期记忆网络的入侵检测模型[43]。在该模型中,狮群优化算法(loin swarm optimization,LSO)用于调整卷积神经网络的超参数,帮助模型更好地学习数据的空间特征。并使用分层多尺度长短期记忆网络学习不同特征之间的层次关系并提取时间特征,这种分层多尺度长短期记忆网络可以减少参数数量,提高训练效率。经实验证明,该模型在NSL-KDD数据集上准确率可达到90.67%。
基于长短期记忆网络的入侵检测模型能够有效地提取数据的时序特征,保持数据间长期依赖关系。但通过以上方法可以发现,基于长短期记忆网络的入侵检测模型普遍存在着较高的误报率,可以使用长短期记忆网络与其他深度学习算法相结合,准确描绘数据的时空特征,从而降低模型误报率。
自编码器(auto-encode,AE)是一种无监督学习算法[44-45]。其作用是重新编码输入,让输出接近输入,使得隐藏层深层较低维度的神经元能够代替浅层高维度的输入层神经元,从而达到降维和特征提取的作用。自动编码器可以分成两部分:一个由函数h=f(x)表示的编码器和一个由函数x′=g(h)表示的重构解码器。第一个函数能将输入数据进行压缩并提取特征,第二个函数则是对压缩后的数据进行重构。
通过编码和解码,自编码器可以学习数据内在的特征分布。如果仅用正常流量进行训练,则能够得到一个简单的正常与异常流量分类器,分类器会根据重构误差(输入和预测之间的误差)是否在设定阈值范围内判定流量数据是正常流量还是异常流量。
基于自编码器的入侵检测模型架构如图2所示,研究人员在其基础上提出了各种各样的入侵检测模型。例如,Gurung等人提出了一种基于稀疏自编码器的入侵检测模型,通过其稀疏性减少特征向量之间的依赖关系。通过实验表明,该模型在NSL-KDD数据集上的准确率可以达到87.2%[46]。Farahnakian等人将四个自编码器进行连接建立了一个深度自编码器的入侵检测模型,将上一个自编码器的输出作为下一个自编码器的输入。实验结果表明,该模型在KDD99数据集上的二类分类和多类分类的预测准确率分别可达到96.53%和94.71%[47]。该方法通过将多个自编码器组合构建深度自编码器,实现了数据的降维以及解决不平衡分类的问题,从而使入侵检测模型性能得到有效提升。Shone等人采用非对称多隐层自编码器与随机森林分类器相结合搭建了一种入侵检测模型,其减少了计算成本和所需的训练数据量。实验结果表明,该模型在KDD99数据集上的预测准确率达到97.85%[48]。Zavrak等人提出了一种基于变分编码器的入侵检测模型,实验结果表明,该方法的检测率在大多数情况下要优于自编码器,但是由于方法的误报率比较高,因此要使用受监督的学习算法[49]。Wang等人提出了一种基于堆叠去噪自编码器(stacked denoising auto encoder,SDAE)和极限学习机(extreme learning machine,ELM)相结合的集成深度入侵检测模型[50]。该模型通过去噪自编码器学习数据集的特征,然后将学习到的特征输入到极限学习机中进行微调,最终得到训练好的模型。其中,极限学习机具有学习效率快、泛化性能好的优点,可以减少模型训练时间。通过多次实验证明,该模型对KDD99数据集进行二类分类的准确率可达到93%以上。Khan等人基于长短期记忆网络以及自编码器提出了一种混合智能入侵检测模型[51]。该模型通过长短期记忆网络来检测时间特征,利用自编码器更有效地检测全局特征。通过实验表明,该模型在ISCX-UNB数据集的准确率高达97.52%。该方法使用长短期记忆网络以及自编码器相结合,准确地刻画了数据的时空特征,使得模型在准确率上取得了较大的提升。Vaiyapuri等人提出了一种无监督的入侵检测模型[52]。该模型利用深度自动编码器的优点来学习鲁棒的特征表示,并使用一类支持向量机(one-class support vector machine,OCSVM)来寻找更紧凑的决策超平面来进行入侵检测。与现有方法不同的是,该模型结合重构误差和分类误差定义了统一的目标函数,以确保学习到的特征表示具有鲁棒性,从而最大限度地减少分类误差并实现更高的入侵检测精度。最终该模型在UNSW-NB15数据集上取得96.97%的准确率。
图2 基于自编码器的入侵检测模型Fig.2 Intrusion detection model based on auto-encoder
通过以上方法可以发现自编码器在入侵检测的研究中应用得较为广泛,研究人已经将多个版本的自编码器应用于入侵检测的研究,包括普通自编码器、堆叠自编码器、稀疏自编码器和堆叠稀疏自编码器。自编码器已成为入侵检测研究中降维和分类阶段最常见的架构,其既可以作为一种数据处理方法,对维度较大的数据进行降维,也可以作为分类器对网络流量进行检测。
生成式对抗网络[53-54]是由Goodfellow等人提出的一种新颖的深度学习生成模型,是当前最有研究价值的模型之一[55]。生成式对抗网络由生成器和鉴别器两个部分组成,其中生成器通过学习捕获真实数据样本的概率分布生成新的样本数据,然后通过鉴别器来判断输入样本是真实数据样本还是生成样本数据。
生成式对抗网络在多个领域得到了广泛的应用,实现了强大的图像、声音和文本生成能力,同时也有助于改善入侵检测模型的性能。生成式对抗网络作为一种深层生成模型,基于交互和对抗的思想,可以将未标记的数据转化为有标记的数据。因此,由生成器生成的样本可以被视为假样本,生成器将生成的样本与训练集中的真实样本进行混合,然后将其随机地输入到鉴别器中,从而判断样本是真实样本还是生成样本。因此生成式对抗网络能有效地解决数据集中标签数据样本较少的问题。
由于信息时代的到来,收集大量未标记样本很简单,但是想要采集大量标记样本就需要消耗大量的人力物力。生成式对抗网络有效地解决了这个问题,因此得以广泛应用。Liao等人将GAN的标准模型进一步转化为监督学习模型,提出了一种基于GAN的网络入侵检测方法。分别选用LSTM网络和人工神经网络作为信号生成器和鉴别器。在相同的测试集样本下,将GAN与其他方法的原始分类模型在多个性能指标上进行了比较。实验结果表明,该方法能有效地提高网络入侵检测性能,精度达到82.3%[56]。Singla等人基于生成式对抗网络提出了一种对抗域自适应的入侵检测模型,该模型通过将域自适应和生成式对抗网络相结合,降低了入侵检测模型训练所需要的数据量,使得可以通过少量的样本数据训练而达到更高的准确率和精度,同时降低了训练所需时间。通过实验表明,该模型在相同特征空间下对源数据集预测准确率可以稳定在91%~94%[57]。Li等人基于GAN提出了一种新的入侵检测模型,用于在正常流量和恶意流量不成比例的情况下提高攻击检测性能。通过信息增益和主成分分析进行特征提取,通过DBSCAN(density-based spatial clustering of applications with noise)进行数据聚类以及通过WGAN-DIV(wasserstein GAN divergence)进行数据生成,最后使用六个入侵检测分类器在三个数据集中分别进行实验,实验结果表明,该模型使用XGBoost分类器使得准确率在90%~98%,并且获得了最佳的F1得分(F1 Score)[58]。Liu等人针对入侵检测数据集的不平衡性和高维性的特点,提出使用生成式对抗网络对数据集进行处理[59]。一方面通过生成式对抗网络生成少数类样本数据,另一方面使用方差分析法进行特征选择,从而得到低维且平衡的数据集,最后将生成的类平衡数据集放入机器学习模型中进行训练。该方法通过生成式对抗网络的优点来解决数据集不平衡问题,为接下来的模型提供平衡的数据集,有效地提高了模型的准确性。
生成式对抗网络通过学习少量数据集从而产生新的不可预测的攻击样本,以此解决数据集不平衡问题。生成式对抗网络适合在数据集较少的情况下使用,并与其他深度学习方法相结合,可以更好地提高入侵检测模型性能。
表1中列出了以上四种基于深度学习的入侵检测模型的优点和适用情况。
表1 不同类型入侵检测模型分析比较Table 1 Analysis and comparison of different types of intrusion detection models
通过2.1~2.4节以及表1的介绍可以看出,现有的基于深度学习的入侵检测模型可以归为以下几类:(1)采用卷积神经网络构建的入侵检测模型可以更好地提取数据中的空间特征,提高模型的计算效率。并且由于其权值共享的特性,能够有效减少所要训练的参数,降低了模型的自由度,避免了在有限的数据集上花费大量时间进行拟合所造成的过拟合。(2)时序特征是数据的一个重要特征,长短期记忆网络可以通过其特有的细胞结构来保持数据间的长期依赖关系。可以使用长短期记忆网络和其他神经网络组合构建入侵检测模型,提取准确描绘数据的时空特征,提高模型的准确率。(3)自编码器可以实现对数据的降维,适用于数据集中数据特征较多的情况,并且自编码器还可以解决数据集中数据分类不平衡的问题,提高模型对少量分类数据的预测准确率。(4)目前用于入侵检测的数据集已经不能代表当前的网络状况,但在当前复杂的网络中获取大量的标记数据样本也并不容易,面对这种问题,可以采用生成式对抗网络构建入侵检测模型,只需要为模型提供少量的数据样本便可以完成模型的训练。
表2列出了多类入侵检测模型的性能对比,可以看出大部分模型在数据集上的测试都取得了很好的准确率,但这些模型还存在着一定的误报率,这是当前入侵检测模型研究中需要解决的问题。
表2 多类入侵检测模型性能对比Table 2 Performance comparison of multiple types of intrusion detection models
以上是对卷积神经网络、长短期记忆网络、自编码器和生成式对抗网络等当前流行的基于深度学习的入侵检测模型进行的分析和比较。除去以上四种主要用于入侵检测的深度学习方法,还有其他深度学习方法被应用于入侵检测中。例如,Duan等人提出了两种入侵检测模型进行分析比较,包括基于反向传播(back propagation,BP)神经网络和基于深度置信网络(deep belief networks,DBN)的入侵检测模型[26]。其中基于BP神经网络的入侵检测模型首先通过主成分分析对数据集进行处理,以消除冗余和无用信息,然后将获得的低维标记训练数据作为BP神经网络输入,从而对分类器进行训练。然而基于深度置信网络的入侵检测模型是在对大量未标记训练数据进行预处理,得到高维未标记训练数据后,直接将其作为初始深度置信网络的输入,从而对分类器进行训练。实验结果表明,深度置信网络在特征学习方面有着独特的优势和良好的效果,因此,可以将其应用于入侵检测研究中,通过从当前高维冗余的网络数据中提取有效特征,从而提高入侵检测模型的检测性能及其对当前复杂高维网络环境的适应性。Jia等人提出了一种基于深度置信网络的入侵检测模型[64]。该模型使用信息增益技术(information gain,IG)对高维数据特征进行降维并去除冗余特征,基于信息熵来确定深度置信网络中隐藏神经元的数量和网络深度。并且采用过采样技术对数据集进行处理来解决数据不平衡问题。实验结果表明,与其他方法比较,该模型的预测准确率可达到97.95%。Yang等人提出了一种用于入侵检测系统的并行集成学习方法[65]。该方法使用集成学习将梯度提升决策树(gradient boosting decision tree,GBDT)模型和门控循环单元(gate recurrent unit,GRU)模型结合为一个模型。其中GRU模型具有记忆结构,能够捕获数据间长期依赖关系,但是很难提取到数据的空间特征。所以通过加入GBDT模型来提取数据的空间特征。该方法使用集成学习来吸收两种模型优点,使得其能有效地提取和处理数据的时空特征。此外,由于GBDT和GRU的基本思想完全不同,该集成方法可以最大限度地发挥两种不同方法的优点并避免过度拟合。该模型在CIC-IDS-2017数据集上的预测准确率为99.90%。Singh等人提出了一种基于广泛和深度迁移学习(transfer learning,TL)的堆叠GRU框架,以处理网络入侵检测中的多维数据和多变量时间序列回归和分类问题[66]。经实验证明,该模型在KDD99数据集上的准确率可达到99.92%。
大量数据集的提出,是为了满足入侵检测模型的研究需求,如KDD99数据集[67]、NSL-KDD数据集[68]、UNSW-NB15数据集[9]、CIC-IDS-2017数据集[69]、CIDDS-001数据集[37]等。表3给出了数据集的详细介绍[70]。下面对基于深度学习的入侵检测模型研究中常用的数据集分别进行介绍。
表3 常用于入侵检测的数据集Table 3 Data sets commonly used in intrusion detection
KDD99数据集:该数据集包括有关TCP连接的属性,但其中并不包括IP地址。并且数据集格式既不是标准数据包格式,也不是基于流的格式。KDD99数据集中具有41个特性以及4类主要攻击,其中4类主要攻击分别是拒绝服务攻击(DOS)、端口扫描(Probe),来自远程主机的未授权访问(R2L),未授权的本地超级用户特权访问(U2R)。KDD99数据集是最早用于入侵检测模型训练与测试的公共数据集之一,也是目前在入侵检测模型训练与测试中使用最为广泛的数据集。尽管KDD99数据集被频繁使用,但是该数据集还是存在许多缺陷,如重复记录等,因此KDD99数据集不能准确反映现代网络流量和攻击。
NSL-KDD数据集:由于KDD99数据集中存在着一些问题,研究人员在其基础上研发出新的数据集,也就是NSL-KDD数据集[71]。NSL-KDD数据集通过删除KDD99数据集中的重复记录和一些难以进行分类的数据来进行改进,虽然这种改进消除了KDD99数据集的一些问题,但是该数据集仍然具有一定的局限性,因此它也不能够代表现有真实网络流量数据。但是在研究过程中仍然可以用它作为入侵检测模型的训练和测试数据集,以帮助研究人员与其他入侵检测模型进行对比。
UNSW-NB15数据集:该数据集包含基于数据包格式的正常和恶意网络流量,这些流量是使用IXIA Perfect Storm工具在小型仿真环境中历时31个小时创建的。其包含九种不同的攻击系列。该数据集还可以使用具有附加属性的基于流的格式。UNSW-NB15数据集带有预定义的拆分,用于训练和测试。该数据集包含45个不同的IP地址,并且是公开可用的。
CIC-IDS-2017数据集:研究人员通过建立一个模拟正常流量的小型网络环境,从中采集数据形成该数据集,历时5天,包含基于数据包和基于双向流格式的网络流量,其中数据更加接近真实世界数据。CIC-IDS-2017数据集中包括80多个网络流特征以及包含多种攻击类型,如SSH暴力攻击、心血漏洞、僵尸网络攻击、DOS攻击、DDos攻击、Web攻击和渗透攻击。
CIDDS-001数据集:该数据集是研究人员通过模拟小型企业环境获得的,其包括基于单向流的网络流量,并带有详细的技术报告和附加信息。该数据集是公开可用的,其中包括SSH暴力、DOS和端口扫描攻击以及从野外捕获的多个攻击。
以上便是对基于深度学习的入侵检测模型研究中常用数据集的介绍。然而随着攻击场景的不断增加,以及更复杂软件和网络结构的出现,要求数据集应包含最新的和真实的网络流量。一个完美的数据集应该是最新的、正确标记的、公开可用的,包含各种攻击和正常用户行为以及有效负载的真实网络流量。但是,这样的数据集并不存在。因此,每个数据集都有其适合的使用场景。其中KDD99和NSL-KDD数据集更适合研究人员在与其他模型对比时使用,虽然其已经不能代表当前网络流量,但其广泛的使用率可以使研究人员有更多的对比对象,更能确定新的模型是否在准确率等方面取得了更好的效果。CIC-IDS-2017、CIDDS-001和UNSW-NB15等数据集可能适用于一般评估场景,这些数据集更能够代表当前的网络流量。其中CIC-IDS-2017和UNSWNB15数据集包含多种攻击场景,CIDDS-001数据集包含用于深入调查的详细元数据。
近年来,基于深度学习的入侵检测模型取得了不错的性能。与机器学习相比,其在提高准确率、降低误报率上得到改进。但现有方法还有着如下不足:
(1)用于训练与测试的数据集已经不能代表当今时代的数据流量。现在的网络流量状况已不是当初可以想象的,已经进入大数据时代。所以早期的数据集已经不能满足当今的需求,比如,以往研究人员在训练与测试中使用的KDD99数据集,基于该数据集上所提出的模型往往可以得到很高的准确率和很低的误报率,但是这不能代表所提出的模型在当前网络状况中也能达到良好的效果。
(2)模型实时分析问题。实时分析对于在企业级别应用的任何模型都是必不可少的。本文中介绍的入侵检测模型通常是脱机的,并没有在真实的网络中进行实际应用。在恶意流量识别分类中,最大的挑战在于模型对合法流量和恶意攻击流量的区分。本文中的深度学习模型是在离线模式下完成测试的,也就是说入侵检测模型在静态数据集上进行工作,而对于实际应用,需要模型在网络中实时分析在线数据流。到目前为止,对网络流量的实时分析还没有太多探索。
(3)模型普适性问题。本文中的入侵检测模型通常是在一个数据集上完成整个训练和测试过程,并没有将训练好的模型使用其他数据集进行测试,这种方法所训练的模型并不能表明它在其他数据集上也能够普遍使用,并取得良好的效果,这是当前研究的不足。
(4)模型训练时间问题。目前大多数入侵检测模型的训练时间较长,这会严重影响模型的性能,有时需要对系统的整体性能进行折中,以减少训练时间。并且对于基于深度学习的入侵检测模型来说,由于涉及深层次的结构,且所需训练的参数较多,需要大量时间,这将成为入侵检测模型训练过程中的巨大挑战。
通过对基于深度学习的入侵检测模型当前研究现状的分析可知,深度学习技术为解决传统入侵检测模型的问题提供了更好的方法。本文从数据预处理、入侵检测模型分类及数据集等方面总结并分析了近年来基于深度学习的入侵检测模型的相关研究现状,虽然各种新颖有效的方法被提出并应用,但是其检测性能还需要进一步提升。因此,能够准确、高效、实时地对复杂的网络流量进行正确识别是未来基于深度学习入侵检测模型的目标。