基于深度学习的网络入侵检测研究综述
2021-07-23肖建平龙春赵静魏金侠胡安磊杜冠瑶
肖建平,龙春*,赵静,魏金侠,胡安磊,杜冠瑶
1.中国科学院计算机网络信息中心,北京 100190
2.中国科学院大学,计算机科学与技术学院,北京 101408
3.中国互联网络信息中心,北京 100190
引 言
随着信息技术的发展,互联网已在多个领域发挥着重要的作用。与此同时,网络空间面临的安全威胁也在急剧增加,根据CNCERT发布的《2020 年上半年我国互联网网络安全监测数据分析报告》:(1)在恶意程序方面,我国有超过300万台主机感染了计算机恶意程序,同比增长25.7%,这些恶意程序造成了僵尸网络的泛滥,此外,移动互联网恶意程序的数量也大幅增加。(2)在安全漏洞方面,2020年上半年国家信息安全漏洞共享平台(CNVD)共发现通用安全漏洞 11073个,同比增长89.0%。(3)在拒绝服务攻击方面,分布式拒绝服务攻击(DDoS)依然是最常见的网络安全威胁之一,大流量DDoS攻击事件对互联网用户造成了较大的影响。(4)在网站安全方面,主要存在网页仿冒、网站后门和网页篡改等问题,其中我国境内约3.59万个网站被植入后门,数量较2019年上半年增长 36.9%。(5)在云平台安全方面,云平台上网络安全威胁形势依然很严峻,我国主要云平台上发生了较多的各类网络安全事件。(6)在工业控制系统安全方面,暴露在互联网上的工业设备达 4630 台,这些系统一旦被攻击,将严重威胁生产系统的安全,我国有大量关键信息基础设施及其联网控制系统的网络资产信息被境外嗅探,这无疑会带来安全隐患[1]。随着互联网的发展,新型攻击层出不穷,互联网面临的安全形势不乐观,因此,网络安全正逐渐成为人们关注的焦点,必须采取有效的措施来防护这些攻击行为。
入侵检测系统(Intrusion Detection System, IDS)起源于Anderson等人[2]在1980年提出的用来处理用户审计数据的“计算机安全威胁监测和监视系统”。基于同样的原则,Denning[3]提出使用由审计数据生成的用户特征来识别入侵,即从审计记录中获取主体相对于客体的行为的知识和检测异常行为的规则。这些开创性的工作定义了入侵检测的相关概念,IDS作为一种网络安全防护技术,能充分利用软件和硬件,通过对网络或系统进行监控,以感知恶意活动并及时发出警报,为管理人员提供响应决策,从而确保网络资源的机密性、完整性和可用性。
入侵检测技术已在网络安全防护的任务中发挥了重要作用,随着机器学习的发展,已有很多研究工作将相关技术用于入侵检测。但是,随着攻击行为的不断升级和网络数据量的快速增长,再加上近年来内部威胁、零日漏洞、加密攻击等行为的出现,基于传统机器学习方法的IDS已经难以应对这些新挑战。深度学习是机器学习的一种,可以学习样本数据的内在规律,在特征提取和模型建立方面效率更高,非常适合用于当前的网络攻击检测。
本文通过对入侵检测的相关工作进行梳理,首先简要介绍了利用机器学习方法进行入侵检测的最新研究,然后详细论述了基于深度学习的入侵检测技术,最后对存在的问题和未来发展方向进行了探讨。
本文的内容安排如下:第1节给出入侵检测系统的分类;第2节介绍了入侵检测数据集和评估方法;第3节简要分析了基于传统机器学习的入侵检测方法;第4节总结基于深度学习的入侵检测技术;第5节对入侵检测系统未来的研究方向进行讨论;第6节总结全文。
1 入侵检测系统的分类
通常可根据数据来源和检测技术对入侵检测进行分类,具体分类框架如图1所示。
图1 入侵检测系统的分类框架Fig.1 Classification framework of intrusion detection system
1.1 基于数据来源的分类
根据所检测数据来源的不同,可以将入侵检测分为基于主机的入侵检测和基于网络的入侵检测。
基于主机(Host)的入侵检测(HIDS)[4]从其监视的主机收集输入数据,HIDS一般使用日志文件作为其主要信息来源,通过对日志文件进行解码、分析来有效识别各种入侵。HIDS的优点是性价比较高,误报率比较低,缺点是只能监视主机上的特定程序,且需要安装到每个主机上,检测范围有限。
基于网络(Network)的入侵检测(NIDS)[5]检测网络数据包,通过解析数据包的内容来判断网络中是否有攻击行为。随着互联网的广泛应用,IDS已将重点放在对网络本身的攻击上。NIDS的优点是可以通过一个系统对整个网络进行监视,不需要在每台主机上安装软件,缺点是其检测范围一般只限于传输中的非加密信息,很难实现需要较大计算量和较长分析时间的检测。
1.2 基于检测技术的分类
具体到所使用的检测方法,入侵检测领域主要有基于误用的入侵检测和基于异常的入侵检测。
基于误用(Misuse)的入侵检测(MIDS)通过将网络流量与已有的攻击特征库进行匹配,根据匹配情况判断入侵行为。其前提是存在表示攻击的方法,例如以模式或签名的形式来表示。
基于异常(Anomaly)的入侵检测(AIDS)通常情况下需要对系统中的正常活动进行记录,确定这些活动的特征,并进行定量描述,当用户行为偏离正常记录时,就将这些行为活动定义为攻击。基于异常的IDS可以检测未知攻击,因此目前是学者们研究的重点。
2 入侵检测系统的数据集和评估方法
2.1 数据集
需要通过数据集对入侵检测系统的性能进行评估,随着IDS的发展,出现了许多优秀的数据集。目前基于网络的入侵检测数据集主要有DARPA 98、KDD 99、NSL-KDD、UNB ISCX2012、UNSWNB15和CICIDS2017等。
DARPA 98[6]由林肯实验室(1998和1999)创建,用于网络安全分析。它通过人工注入攻击和正常流量,并因此受到了研究人员的广泛批评,这些攻击和正常流量造成了冗余,以及其他违规行为。
KDD 99[7]是在DARPA98数据集的基础上,通过一个模拟的美国空军局域网产生的,并加入了很多模拟的攻击,它是到目前为止使用最多的数据集。其中的流量分为五类:正常、Probe、R2L、U2R和DoS攻击,每条记录都是一个包含41维特征和1个标签的连接向量,NSL-KDD数据集[8]是KDD 99数据集的改进版本,是为了解决KDD 99数据集中存在的问题。NSL-KDD中删除了KDD 99中训练和测试集中的冗余记录,共有39种攻击类型,其中训练数据中有22种,测试数据包含另外17种。
UNB ISCX2012数据集[9]是通过配置文件动态生成的数据集,包含七天的原始网络数据流量,它不仅能反映当时的流量组成和入侵,还可以修改、扩展和重现。和KDD 99数据集相比,UNB ISCX2012数据集的攻击类型更接近于真实攻击。
为了解决KDD 99和NSL-KDD等数据集不能全面反映网络流量和现代低占用空间攻击的问题,Moustafa等人[10]创建了UNSW-NB15数据集。考虑到以往的数据集流量多样性不足,覆盖的攻击种类不全面,匿名的数据包信息和有效载荷不能反映当前的趋势或者缺乏特征集和元数据,加拿大网络安全研究所为入侵检测提供了许多相关的特定数据集,如CICIDS2017数据集[11]和CSE-CIC-IDS2018数据集,这两种数据集中包含良性网络流和七种常见攻击网络流,和真实网络数据很接近。
2.2 评估方法
当前,入侵检测系统的评估主要利用二分类算法的评估方法说明系统的性能,主要采用以下指标。
(1)TPR:真阳性率,在所有实际为恶意样本的数据中,被正确地判断为恶意样本的比率,该指标越高越好;
(2)FPR:假阳性率,在所有实际为良性样本的数据中,被错误地判断为恶意样本的比率,该指标越低越好;
(3)DR:检测率,表示该方法在检测恶意样本的能力方面的性能,该指标越高越好;
(4)Precision:原本为恶意样本的数据占预测为恶意样本数据的比率,该指标越高越好;
(5)ACC:将实例正确地分为良性样本和恶意样本的比率;
(6)AUC:ROC 曲线下的面积即为AUC指标的值,ROC 曲线由TPR 和FPR 计算得到,该指标越高越好。
3 基于传统机器学习的入侵检测技术
传统机器学习方法已经在基于异常的入侵检测中得到广泛应用。通常可以将机器学习分为监督学习、无监督学习和半监督学习,本节根据这个分类标准从三个方面进行介绍,最后进行了总结,并分析了基于传统机器学习方法的入侵检测存在的不足。
3.1 监督机器学习方法
(1)隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Models,HMM)是关于时序的概率模型,它可以被应用于入侵检测的序列相关问题。针对Web应用程序的安全,Ariu等人[12]将有效载荷表示为一个字节序列,并使用隐马尔可夫模型(HMM)进行分析,经实验评估,该方法对最常见的Web应用攻击(如XSS和SQL注入)特别有效,但该方法没有考虑有效载荷的长度,有进一步提高总体准确性的空间。Xiao等人[13]将HMM应用于基于异常流量的网络入侵检测,将基于主成分分析方法(PCA)提取到的流量特征作为HMM的输入值,根据输出的概率来判断流量的类型。针对车载自组网中的入侵检测系统检测开销大、检测时间长的问题,Liang等人[14]提出了一种基于HMM的过滤模型用于入侵检测系统,该方法将自组网中每辆车的状态模式建模为HMM,以实现快速过滤来自车辆的消息,实验表明,该入侵检测系统在检测率、检测时间和检测开销方面都有较好的性能。
(2)K近邻算法
K近邻算法(K-Nearest Neighbor, KNN)精度高、理论成熟,能够解决入侵检测中的多分类问题。随着网络数据特征维度的增加,K近邻算法的分类性能会显著降低,为解决这个问题,Chen等人[15]利用树种子算法(TSA)对原始数据进行处理,在提取到有效特征后,使用KNN进行分类,实验结果表明这种组合模型能够有效地去除冗余特征,提高网络入侵检测的准确性和效率。PKNN是经典KNN的改进版本,适合解决多标签分类问题,它优先考虑样本和待分类输入项更接近的类,Saleh等人[16]设计了一种能实时应用并适合于解决多分类问题的混合入侵检测系统,首先通过一种朴素的基特征选择(NBFS)技术降低样本数据的维度,然后通过优化后的支持向量机(OSVM)来剔除离群点,最后利用PKNN来检测攻击,在KDD 99、NSL-KDD和Kyoto2006+数据集上的实验结果表明,该系统能较快地检测攻击并能用于实时入侵检测。
(3)支持向量机
支持向量机(Support Vector Machine, SVM)通常用于解决小样本、非线性、高维度等问题,泛化能力强,在入侵检测领域被广泛应用。在数据采样阶段对数据进行降维,可以大大提高检测效率,Chen等人[17]提出了一种基于压缩采样的SVM入侵检测模型,利用压缩感知理论中的压缩采样方法对网络数据流进行特征压缩,然后利用SVM对压缩结果进行分类,所提方法大大减少了训练时间和检测时间。戚等人[18]提出一种基于主成分分析的SVM攻击检测方法,通过主成分分析法对原始数据集进行降维,得到能提升分类效果的主成分属性集,然后利用该属性集训练SVM分类器,在KDD 99数据集上的实验表明,该方法大大缩短了检测时间,提高了检测效率。Wang等人[19]为改善特征的质量,通过对数边际密度比(logarithms of the marginal density ratios, LMDRT)方法对原始特征进行处理,然后构建基于SVM的IDS,在NSL-KDD数据集上的实验结果表明该方法在准确率、检测率、误报率和训练速度等方面有更好的性能和更强的稳健性。
3.2 无监督机器学习方法
无监督学习主要处理先验知识缺乏、难以人工标注类别或通过人工标注成本太高这些场景下的问题,在入侵检测领域,无监督学习技术不需要对数据进行类别标注,能直接对网络数据进行分类,此外,用于降维的无监督方法可以有效解决数据集的冗余和不相关问题,降低计算开销。常用的无监督机器学习方法有:k-means、高斯混合模型和主成分分析法。
(1)k-means
k-means是经典的无监督聚类(Unsupervised Clustering)算法,被广泛应用于入侵检测领域。k-means可通过与其他方法结合进一步提升性能,也有不少研究对传统k-means进行改进。Aung等人[20]将k-means和分类回归树(CART)算法相结合来构建入侵检测模型,研究混合方法的性能。Al-Yaseen等人[21]为减小分类器的训练时间,提高分类器性能,提出了一种多层次的入侵检测模型,首先通过改进k-means算法对原始训练数据集进行优化,减少了分类器的训练时间,然后使用支持向量机和极限学习机进行多层次分类,在KDD 99数据集上进行评估,该模型的ACC指标达到了95.75%。
(2)高斯混合模型
高斯混合模型(Gaussian Mixture Model,GMM)对特征的概率分布进行建模,因此可以识别网络流量中的恶意数据样本。当攻击样本和正常样本的分布类似时,可以使用高斯混合模型在特征层面建模,对两类样本进行区分[22]。为了解决训练数据不平衡、误报率高以及无法检测到未知攻击等问题,Chapaneri等人[23]使用高斯混合模型方法来学习每个流量类别的统计特征,并使用基于四分位数间距的自适应阈值技术来识别异常值。在CICIDS2017数据集上的评估结果表明该方法能有效检测出未知攻击。
(3)主成分分析法
主成分分析(PCA)是一种常用的特征提取方法,可以对高维数据进行降维,缩短模型的训练时间,因此被广泛用在入侵检测中。文献[24]使用PCA和Fisher判别比(FDR)进行特征选择和去噪,然后用概率自组织映射(Probabilistic Self-Organizing Maps,PSOM)对特征空间进行建模,能有效区分正常和异常连接。
3.3 半监督机器学习方法
随着网络数据流量的增大,仅依赖专家知识进行人工标记很难得到大量准确标记的数据,造成训练数据集规模很有限,这使得模型无法准确检测出攻击。半监督机器学习方法将监督学习与无监督学习相结合,不过度依赖标签数据,同时也充分利用已有数据的类别信息,因此被广泛用于入侵检测中。
现有未知攻击检测方法选取的特征不具有代表性,导致检测精度较低,许等人[25]使用改进的k-means半监督学习算法,实现对历史数据的自动标记,并获得了大量准确标记的训练数据,引入信息增益的概念并用信息增益率来选取更具有代表性的特征,以提高模型对未知攻击的检测性能,实验结果表明,该方法对不同目标网络中未知攻击检测的准确率均达到90%以上。针对网络流量在不同类别间的严重不平衡,训练集和测试集在特征空间中的分布不一致这两个问题,Yao等人[26]提出了一种多层半监督入侵检测模型框架,使用一种层次化的半监督k-means聚类算法来缓解类不平衡问题,通过一种区分测试集中已知和未知模式样本的方法来解决分布不同的问题,实验结果表明,该模型在总体准确率、F1-Score、未知模式识别能力等方面均优于现有的入侵检测模型。
3.4 总结与讨论
传统机器学习方法在入侵检测领域得到了广泛应用,表1总结了利用传统机器学习方法进行入侵检测的部分工作,其中给出了所使用的技术、数据预处理方式、特征处理方法、评估数据集、任务类型和评价指标。
表1 基于传统机器学习的入侵检测Table 1 Intrusion detection based on traditional machine learning
通过对引用论文的分析,多数研究工作在解决目前入侵检测面临的问题时,会将多种机器学习算法混合使用,首先通过特征提取或特征选择算法对原始数据进行处理,然后构建基于分类器的检测模型。在分类器的选取方面,通常可以对基本模型进行改进,也可以利用集成学习的思想,集成不同的分类器来提升检测性能。然而随着攻击行为的进一步多样化和流量数据持续增加、维度进一步增大,正常样本和攻击样本的严重不平衡,利用传统机器学习方法进行入侵检测也存在很多不足,主要体现在过度依赖人工提取特征,难以深入挖掘样本数据的内在规律,特别是未能考虑网络流量的时间、空间等特征,没有分析数据在不同维度上的相关性,从而难以做到对潜在威胁的预测。因此,基于传统机器学习方法的入侵检测技术面临着巨大的挑战。
4 基于深度学习的入侵检测技术
传统机器学习方法是较为浅层的学习方法,随着网络中数据量的增加,数据维度的进一步增大,这类方法往往难以达到预期的效果。在这样的背景下,深度学习(Deep Learning)应运而生[27],深度学习的理论和相关技术在机器学习的应用领域得到了迅速的发展。近年来,深度学习促进了人工智能技术及相关产业的蓬勃发展。深度学习方法可分为生成式无监督学习、判别式有监督学习和混合深度学习三大类[28]。基于深度学习的网络入侵检测系统的结构如图2所示,深度学习模型主要用于特征处理和分类。根据深度学习的分类方法,本节将对基于深度学习的入侵检测技术进行详细介绍。
图2 基于深度学习的NIDS结构Fig.2 The NIDS structure based on deep learning
4.1 生成式无监督方法
生成式方法以及由此产生的生成模型使用无标记数据,可用于模式分析或合成,也可以描述数据的联合分布统计[28]。
(1)循环神经网络(Recurrent Neural Network,RNN)
循环神经网络[29]基于常规前馈神经网络,RNN之所以被称为递归,是因为它们对序列的每个元素执行相同的任务,其输出取决于先前的计算,RNN可以利用数据的序列信息,提取时序特征,非常适合应用于与序列相关的入侵检测问题。Suda等人[30]针对车载网络的入侵检测,提出了一种时间序列特征提取的入侵检测算法,利用RNN实现有效提取数据包的时间序列特征。燕昺昊等人[31]提出了一种基于深度循环神经网络(DRNN)和区域自适应合成过采样算法(RA-SMOTE)的组合式入侵检测模型,不仅提升了低频攻击的检测率,同时依靠RNN的时序循环结构充分挖掘并利用了样本之间的时序相关性,提升了模型刻画数据的能力和检测性能。
然而,在一些长时间依赖问题中,传统的RNN因为自身结构的特点在训练过程会出现问题,例如梯度消失、爆炸问题。为了解决这个问题,人们提出了长短期记忆(Long Short-Term Memory networks,LSTM)网络和门控循环单元(Gated Recurrent Unit,GRU)[29]。长短期记忆网络[32]对时间序列中间隔和延迟长的事件有较强的处理能力。由于使用单一的RNN层作为分类器难以在网络攻击检测中获得显著的性能提升,为了进一步提高性能,Hou等人[33]构建了一种基于分层LSTM的IDS,该系统可以在复杂的网络流量序列上跨越多个层次的时间层次进行学习,在NSL-KDD数据集上的实验结果表明,该方法对各种网络攻击,特别是低频网络攻击具有较好的检测性能。针对物联网网络中的攻击检测,Roy等人[34]提出了一种使用双向LSTM的入侵检测方法,双向LSTM能在训练阶段从数据集中学习更为详细的特征,主要研究了在二分类中的性能,能达到较高的攻击流量检测准确率。门控循环单元是LSTM的一种变体,在保证性能的同时进一步简化了结构,较少的参数也让训练更容易。Xu等人[35]针对时间相关入侵的特点,用GRU作为主要存储单元,并与多层感知器(MLP)结合以识别网络入侵,实验结果表明该方法对于时序特征明显的DOS和PROBING攻击有较高的检测率。
(2)自动编码器(Auto-Encoder, AE)
自动编码器[36]对高维数据进行特征提取,在训练过程中通过尽可能让输出接近于输入数据来确定最优的网络结构,它具有强大的非线性泛化能力。自动编码器主要用于数据的降维。
随着入侵检测系统需要处理的复杂数据的迅速增长,对大规模数据的处理成为入侵检测系统面临的挑战之一,自动编码器被广泛地用于入侵检测中的降维任务。Shone 等人[36]在自动编码器的基础上,在输出端也使用了和编码层类似的函数,并提出了堆叠非对称深度自动编码器(NDAE),之后使用NDAE进行特征提取,并选取了随机森林作为分类器,与之前的研究工作相比,NDAE显著提升了检测性能。Li等人[37]提出了一种基于随机森林算法的自动编码器入侵检测系统,使用浅层自动编码器神经网络,降低了计算复杂度,大大缩短了检测时间,有效提高了预测精度。为改善检测Web攻击的精度,Vartouni等人[38]提出了一种基于稀疏自动编码器的异常检测方法,主要利用稀疏自动编码器进行特征处理,与不进行特征提取的方法相比,该方法具有更高的精度。
深度自动编码器(DAE)有着更多的隐藏层,通过对每一层进行预训练可以增强模型的学习能力。Farahnakian等人[39]利用DAE构建了入侵检测系统,为避免过拟合和局部最优,对模型采取逐层贪婪的方式进行训练,在KDD 99上进行评估,该方法有较高的准确率、检测率。为了提高对未知攻击和低频攻击的检测能力,Yang等人[40]构建了一种基于正则化对抗式变分自动编码器的入侵检测模型,在基准数据集上的评估结果表明,该模型表现出了良好的检测性能。
(3)深度玻尔兹曼机(Deep Boltzmann Machine,DBM)
深度玻尔兹曼机是一种以受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)为基础的深度学习模型,由多层RBM叠加而成。RBM能从原始数据中学习特征的深层次信息,因此在入侵检测任务中被广泛应用。随着攻击技术和方式的变化,以前获得的有关如何区别正常流量的信息可能不再有效,因此需要一个自学习系统,以便可以动态地构造和发展有关异常行为的知识,Fiore等人[41]使用了判别受限玻尔兹曼机,该模型可以组合生成模型,捕获正常流量的固有属性并且分类准确性较高,通过将训练数据与测试网络场景分离,以评估神经网络的泛化能力,实验证实,当在与获取训练数据的网络截然不同的网络中测试分类器时,性能会受到影响。这表明需要对异常流量的性质以及与正常流量的内在差异做进一步调查。Aldwairi等人[42]尝试使用受限玻尔兹曼机来区分正常和异常的NetFlow流量,在信息安全中心(ISCX)数据集上进行评估,结果表明RBM可以对正常和异常的NetFlow流量进行分类,但存在的不足是只对两层RBM进行了研究。Elsaeidy等人[43]对多层RBM进行了研究,使用经过训练的深度玻尔兹曼机模型从网络流量中提取高层特征,然后结合前馈神经网络(Feed-Forward Neural Network, FFNN)、随机森林(Random Forest, RF)等模型利用提取到的特征来检测不同类型的DDoS攻击。
(4)深度信念网络(Deep Belief Network, DBN)
深度信念网络[44]是一种具有深层架构的神经网络,它通过无监督算法对每一层受限玻尔兹曼机进行训练,它是一个特征学习的过程,可以解决涉及高维数据的问题,已经被应用于入侵检测领域。Gao等人[44]证明了深度信念网络方法可以成功地应用于入侵检测领域,在KDD 99数据集上对DBN模型进行评估,实验结果DBN模型的性能优于SVM和人工神经网络(ANN)。为适应不同的攻击类型并降低神经网络结构的复杂度,Zhang等人[45]将改进的遗传算法与深度信念网络相结合,遗传算法进行多次迭代来产生最优的网络结构,然后构建最优的网络结构的DBN作为入侵检测模型对攻击进行分类。面对不同类型的攻击,该方法解决了在使用深度学习方法进行入侵检测时如何选择合适的神经网络结构的问题,从而提高了模型的分类精度和泛化能力,降低了网络结构的复杂性,在性能方面,针对具体攻击类型生成特定的网络结构,其分类精度高于其他网络结构,可以达到99%以上的检测率。
4.2 判别式有监督方法
判别式有监督方法以及由此产生的判别方法旨在通过表征以可见数据为条件的类的后验分布来直接提供用于模式分类的判别能力,可区分部分带标记数据的模式分类数据[28]。
卷积神经网络(Convolutional Neural Networks,CNN)是典型的判别式有监督方法[28],它由输入层、卷积层、池化层、完全连接层和输出层组成,具有准确且高效地提取特征的能力,不同结构的CNN具有不同数量的卷积层和池化层[46]。在入侵检测领域应用CNN时,主要是通过将流量分类问题转换为图片分类问题,即首先要将流量数据进行图片化,然后得到灰度图,利用CNN还可以提取网络流量的空间特征。
Xiao等人[46]应用数据预处理方法来消除网络流量数据中的冗余和不相关特征,然后将流量转换为二维矩阵形式,再使用CNN提取特征, 这种方法解决了传统机器学习模型无法确定数据特征之间关系的问题。Naseer等人[47]使用CNN、AE和RNN等深度神经网络,来构建入侵检测系统,在NSL-KDD上进行训练和测试,CNN和LSTM模型都表现出了优异性能。Wu等人[48]利用CNN从原始数据集中自动提取流量特征,并根据其个数设定每类的成本函数权重系数,来解决数据集不平衡的问题。Blanco等人[49]使用遗传算法(Genetic Algorithm,GA)优化CNN分类器,以找到输入特征的更好布局,能改善多分类器的性能。
4.3 混合式方法
混合式深度网络方法结合了生成式无监督方法和判别式有监督方法[28,50],主要有深度神经网络(Deep Neural Network,DNN)和生成对抗网络(Generative Adversarial Networks,GAN)[51]。DNN是一种具有多个隐含层的多层感知器,是一种混合结构,其权值是完全连通的。GAN是一种混合深层架构,包含两个神经网络,即生成器和判别器。根据提供的输入样本,生成器尝试根据理想的数据分布生成伪造的数据,这些数据会和原始数据一起输入到判别器中,判别器会学习区别原始数据和由生成器构造的样本,并反馈到生成器,这个学习过程被称为生成器和判别器之间的博弈。通常情况下,网络中的异常流量远少于正常流量,GAN能生成新数据,因此能用来解决入侵检测中数据类别不平衡的问题。Salem等人[52]首先将数据转换成图像,然后利用Cycle-GAN生成新的数据,最后将生成的数据融入原始数据集中,之后将这些数据用于训练模型,并检测异常,实验结果表明,分类结果得到了改善,AUC从0.55上升到0.71,异常检测率从17.07%上升到80.49%。与SMOTE方法相比,分类结果得到显著改善,展现了GAN强大的异常数据生成能力。
基于机器学习的IDS在面对对抗性攻击时健壮性容易受到影响,为了解决这一问题,Lin等人[53]提出了一种基于GAN的入侵检测框架(IDSGAN),IDSGAN利用生成器将原始恶意流量转换为对抗性恶意流量,然后判别器对流量样本进行分类,并模拟黑匣子检测系统。实验中仅对攻击流量的部分非功能性特征进行了修改,从而保证了入侵的有效性。Usama等人[54]提出了一种使用GAN的对抗式机器学习攻击,该攻击可以成功规避基于机器学习的IDS,实验结果表明,基于GAN的防御提高了IDS面对对抗性扰动的鲁棒性。
4.4 总结与讨论
随着深度学习技术的应用,入侵检测系统进入了一个新的发展阶段。深度学习可以用于入侵检测的特征处理过程和分类过程。面对海量高维度网络流量数据,和传统机器学习方法相比,深度学习方法具有更高的效率和检测准确率。表2对部分基于深度学习的入侵检测工作进行了总结,不涉及不同方法间的比较。
表2 基于深度学习的入侵检测Table 2 Intrusion detection based on deep learning
尽管深度学习方法相比于传统机器学习具有优势,但深度学习技术仍然没有在商用入侵检测系统中大规模应用。目前比较有代表性的应用产品有腾讯的T-Sec主机安全和东软NetEye入侵检测系统(IDS)。T-Sec主机安全(Cloud Workload Protection,CWP)基于腾讯安全积累的海量威胁数据,利用机器学习和深度学习为用户提供资产管理、木马文件查杀、黑客入侵检测、漏洞风险预警等安全防护服务,可以对网络数据进行多维度分析。基于深度学习的入侵检测系统仍面临一些挑战:(1)训练耗时较长。深度学习模型通常都具有很多隐藏层,为保证模型的效果需要逐层训练,这导致训练速度较慢,所要求的计算量大,通过需要GPU并行来完成大规模的计算任务;(2)模型网络结构的选择及优化。深度神经网络的结构对最终的分类结果有很大的影响,因此针对不同的检测任务,需要确定最优的网络结构;(3)实时检测问题。实时检测是IDS所追求的目标之一,然而网络中海量高维度数据的不断增加,给基于深度学习的入侵检测技术带来一定的挑战;(4)数据不平衡问题。网络中异常流量远少于正常流量,这导致训练出的模型具有明显的偏向性,在多数情况下会偏向于正常流量,从而严重影响检测准确率。
有学者尝试将新的深度学习方法应用于入侵检测。Javaid等人[55]基于自学习(Self-taught Learning)方法构建入侵检测系统,自学习是一种深度学习方法,分为两个阶段。首先,从大量的未标记数据中学习一个好的特征表示,称为无监督特征学习。在第二阶段,将学习到的表示应用于标记数据,并用于分类任务。可以将不同的方法用于无监督特征学习阶段。Cordero等人[56]使用复制神经网络(Replicator Neural Networks)检测大规模网络攻击,复制神经网络经过训练,可以将给定的输入复制为输出。在熵提取的过程中,首先将包聚合,然后将流分割成时间窗口,最后从流中选择特定的特征。未来深度学习理论的突破不仅会缓解当前方法面临的问题,还会在其他方面产生影响:(1)减少训练时长和计算量,以更低的开销将深度学习应用于工业界的产品和系统中;(2)模型参数的确定更便捷,可以学习不同任务的参数优化过程;(3)能高效处理海量高维度数据,实现实时检测;(4)在一些任务中,未标记数据和标记数据可能来自不同的分布,挖掘它们之间的相关性有助于了解数据的内在属性、特征之间的关系。
5 总结与展望
随着互联网的发展,网络攻击也会不断变化、不断增加。入侵检测作为一种保障网络安全的重要手段,将会发挥着关键作用。通过对所调研文献的分析总结,本文对入侵检测系统未来的研究方向进行如下讨论:
(1)入侵检测的数据。目前广泛使用的数据集主要是KDD 99、NSL-KDD等,但这些数据集的产生时间较为久远,很多数据与真实网络数据不符合,用这些数据集评估入侵检测模型得到的结果不具有代表性。因此,在未来的研究中,应随着网络环境的发展变化,生成较新的数据集,这样才能更好地评估入侵检测模型。
(2)未来入侵检测仍面临的问题也正如上一节中深度学习方法面临的挑战一样,主要是高维数据的处理、实时检测、数据不平衡等问题,这些是未来研究中面临的难点问题。
(3)在检测技术方面,相比传统机器学习方法,深度学习方法有着更好的效果,因此,未来在入侵检测领域,深度学习会有更广泛的应用。然而,深度学习方法通常依赖于各自领域的训练样本来建立该领域的分类模型,面对复杂多变的网络攻击,入侵检测系统也应该自主进化,不断提升自身的适应能力。近年来,迁移学习在多个领域得到了广泛应用。对于一个特定领域,迁移学习是基于对其他领域的训练样本的研究,并提取用于该领域学习的相关知识。深度迁移学习更像人类学习,它可以用自动化模块代替参数系统和模型生成方法[57]。迁移学习可以实现不同域或多个任务之间的学习,具体到入侵检测中,面对不同的网络攻击,根据知识迁移对象的不同,可以使用样本迁移算法、特征表示迁移算法、参数迁移算法和相关知识迁移算法。在实体与动态环境的交互过程中,强化学习通过对策略的学习,可以达到回报最大化。有研究利用分布式强化学习技术检测新的和复杂的分布式攻击,但精准率波动较大,有待提升[58]。因此,将深度迁移学习、强化学习用于入侵检测领域具有研究意义。
6 结束语
深度学习方法在入侵检测领域受到了广泛的关注,本文对最新的研究进展进行了总结,介绍了入侵检测的基本概念、数据集和评估方法,然后简要介绍了基于传统机器学习方法的入侵检测系统,最后重点阐述了基于深度学习的入侵检测技术。本文旨在对入侵检测相关研究提供框架和总结,分析深度学习方法相比传统机器学习方法在入侵检测中的优势,以及未来有待解决的问题,从而为以后开展研究工作带来帮助。
利益冲突声明
所有作者声明不存在利益冲突关系。