马明艳,陈 伟,吴礼发
南京邮电大学 计算机学院、软件学院、网络空间安全学院,南京 210023
随着互联网技术的高速发展和物联网设备的广泛使用,与网络攻击相关的安全内容逐渐成为人们关注的热点。新冠疫情期间,攻击者利用肺炎疫情相关题材的文档,对抗击疫情的医疗工作领域发起了高级持续性威胁(advanced persistent threat,APT)攻击,该攻击主要采用鱼叉式钓鱼攻击方式,对医疗机构、医疗工作领域造成了很大影响。2020年上半年国家互联网应急中心发布的网络安全数据分析报告指出,我国境内感染计算机恶意程序的主机数量约304万台,同比增加了25.7%。实时、准确地检测网络攻击对个人安全、国家安全显得十分重要。
入侵检测技术主要有基于签名的入侵检测和基于异常的入侵检测。基于签名的检测主要依靠人工经验进行模式匹配,检测效率高,但是无法检测出新型攻击并且需要经常更新模式库[1],基于异常的检测技术可以发现与正常通信行为有较大偏差的攻击流量,常用的有基于统计、小波、机器学习、数据挖掘等检测方法。
传统的机器学习方法已经广泛应用于网络入侵检测系统,如贝叶斯网络[2]、决策树[3]、支持向量机(support vector machine,SVM)[4]等,并且取得了较好的成绩。文献[5]提出了一种结合信息增益和主成分分析(principal component analysis,PCA)的降维技术,使用支持向量等多种方法来检测入侵,实验结果表明混合的降维方法比单一的降维效果要好。文献[6]针对Kmeans检测正确率低和KNN分类阶段耗时长的问题,对其进行了改进,不仅可以提高正确率和速度,还可以识别出新的攻击行为。文献[7]提出了基于KNN离群点检测和随机森林的多层入侵检测模型,该模型通过KNN删除了离群数据,得到了小规模高质量的训练集。刘新倩等人[8]提出了一种基于流量异常分析多维优化的入侵检测方法,在横向和纵向维度对数据进行了优化,横向优化过程是借助遗传算法对多数类样本进行随机抽样,纵向优化是通过采用递归特征添加算法来进行特征选择的过程,最后通过随机森林构建了入侵检测分类器。由于计算机通信协议本身的设计缺陷以及现有的攻击手段的复杂化,已有的浅层机器学习模型已经无法满足新型网络环境。
近年来,随着深度学习在自然语言处理、图像识别等领域取得了较大的成功,安全研究人员将深度学习技术引入入侵检测领域。深度学习通过组合低层特征形成更加抽象的非线性的高层表示,来发现数据的输入输出之间的关系,从而提高了入侵检测系统的实时性和准确率。比较常用的深度学习技术有自编码器[9]、深度信念网络[10]、卷积神经网络(convolutional neural network,CNN)[11-12]、循环神经网络(recurrent neural network,RNN)[13-14]。文献[15]提出了一种两阶段的网络流量检测方法,该方法将原始流量包作为模型的输入,第一阶段使用CNN来学习网络包的特征,第二阶段使用LSTM来学习网络流之间的输入,取得了较好的检测效果。文献[16]使用主成分分析(PCA)对数据降维,随后用LSTM(long short-term memory)来训练模型,取得了较好的分类效果。文献[17]提出了一种基于分层特征学习的入侵检测方法,该方法首先通过深度卷积神经网络学习网络流量字节级的特征,然后使用堆叠式降噪自动编码器学习会话级的特征,在CTU-UNB数据上实验表明该方法比单一使用CNN具有更好的正确率。文献[18]采用信息熵作为特征选择算法,之后引入深度学习模型做训练,信息熵不考虑指标与指标之间的横向关系,对样本有较大依赖。文献[19]提出一种结合深度学习与浅层学习来对恶意行为进行分类的方法,该方法利用PCA和自编码器来提取数据特征,通过人工蜂群算法寻找SVM的最佳参数取得了较好的分类效果。文献[20]提出了一种多卷积神经网络融合方法进行入侵检测的深度学习方法。文献[21]提出了一种结合CNN和LSTM的MSCNN-LSTM算法,该方法利用时空特征进行分类,根据人类视觉机制,使用多个不同大小的卷积核来提取特征,将这些特征组合成多组局部特征,弥补了CNN专注于提取局部特征的不足,有效提高了精度。
综上所述,目前的入侵检测技术研究点主要有特征选择[22-25]、优化训练算法等方面。目前关于入侵检测的研究取得了较大成功的同时存在如下问题:(1)数据不平衡,异常流量的数量远远多于正常流量,数据集样本数目相差太大会降低模型性能。(2)数据冗余以及每个特征相对于输出所做的贡献大小,这不仅增加了模型训练时间,也降低了模型的性能。如何从海量网络数据中筛选出关键信息提高检测效率至关重要。(3)模型单一,考虑信息不全面,如基于CNN的训练没有考虑网络流量的序列特性,基于LSTM的算法没有考虑数据的空间特性。(4)模型可解释性差,深度学习算法内部类似于“黑盒”。
针对数据集数据冗余问题,本文采用随机森林作为特征选择算法选取排名靠前的特征作为模型的输入,随机森林在高维数据集的选择上有较好的表现,该算法会根据特征重要性剔除相应比例的特征,用新特征再去做特征重要性评估。针对模型单一、检测率低的问题,本文将一维卷积神经网络(one-dimensional convolutional neural networks,1D CNN)模型和双向长短期记忆网络(bidirectional long short-term memory,BiLSTM)模型并联融合在一起,分别提取输入数据的空间特征和时间特征,通过将二者提取到的特征融合,使用自注意力机制对输入根据其重要性赋予不同的权重,再将带权重的数据经过门控循环单元(gated recurrent unit,GRU)进行训练。实验结果表明,本文方法对异常行为的检测有较高的准确率。
卷积神经网络和长短期记忆网络良好的学习能力使得其在图像识别、机器翻译、情感预测、自动驾驶、及时视觉翻译等领域得到了广泛应用,也有学者将其引入入侵检测方面并取得了较好的成果。
CNN一般由卷积层、汇聚层和全连接层组成。卷积层用来提取局部区域的特征,不同的卷积核相当于不同的特征提取器,汇聚层的作用主要是进行特征选择,降低特征数量,从而减少参数数量。
马尔科夫链和循环神经网络(RNN)只适合短期记忆,但是对于APT攻击、僵尸网络这种潜伏期较长的攻击检测效果并不理想。RNN在学习过程中的主要问题是梯度消失和梯度爆炸,很难对长时间间隔的状态之间的依赖关系进行建模。LSTM网络引入了新的内部状态专门进行线性的循环信息传递,同时非线性地输出信息给隐藏层的外部状态。另外,LSTM通过引入门控机制来控制信息传递的途径,有输入门、遗忘门和输出门,每个门的取值在(0,1)之间,表示以一定的比例允许信息通过。前向的LSTM与后向的LSTM结合成为BiLSTM。
机器学习模型的可解释性成为目前机器学习的难点之一,现有的解释方法有基于规则的解释、激活值最大化、隐层神经元分析、分离式表征、注意力机制。目前这些研究还处于初级阶段,没有得到很好的应用。
注意力机制源于计算机视觉,指的是大脑可以有意无意地从大量输入信息中选择小部分的有用信息来处理。注意力机制的本质在于让模型自己学习分配输入信号权值,即为输入的各个维度打分,然后按照得分对特征加权,以突出重要特征对下游模型或模块的影响。
RNN或LSTM需要根据时间序列计算输出,对于远距离的相互依赖的特征,要经过若干时间步的信息累积才能将两者联系起来,而距离越远,捕获有效信息的可能性越小。但是自注意力机制在计算过程中会直接将句子中任意两个单词的联系通过一个计算结果直接联系起来,缩短了远距离依赖特征之间的距离,有利于有效地利用这些特征。
自注意力模型可以利用注意力机制来“动态”地生成不同连接的权重,因此可以用来处理变长的输入序列,可以作为神经网络中的一层来使用。其计算过程如图1所示。
图1 自注意力机制内部结构Fig.1 Internal structure of self-attention mechanism
输入序列X=[x1,x2,…,x n]∈RF x×L,输出序列H=[h1,h2,…,h n]∈RF v×L,自注意力模型的计算过程如下:
(1)将每个输入x i映射到3个不同的空间,得到查询向量q i∈RF x×L,键向量k i∈RF x×L,值向量v i∈RF x×L。输入序列线性映射过程如下:
其中,W q∈RF k×F x,W k∈RF k×F x,W v∈RF v×F x为3个映射参数矩阵,Q=[q1,q2,…,q L],K=[k1,k2,…,k L],V=[v1,v2,…,v L]分别是由查询向量、键向量、值向量组成的矩阵。
(2)对每个查询向量,计算输出向量h l。其中l、j表示输出和输入向量序列的位置,αlj表示第l个输入关注到第j个输入的权重。
为了更快更好地入侵检测,本模型主要分为四部分,第一部分是数据预处理阶段,第二部分是特征选择阶段,第三部分是设计核心,包含分别用CNN和BiLSTM进行空间维度和时间维度的特征提取,将二者提取到的特征融合利用自注意力机制分配以不同的权重,第四部分是分类阶段。该模型的整体流程图如图2所示。本文采用随机森林算法选择了“重要”特征作为模型的输入,减少了数据冗余问题。通过将CNN和BiLSTM分别提取到的空间特征和时序特征结合,增加了自注意力机制进行特征“重要性”的权重分配,进一步提高检测率。该分类算法的基本流程如下所示。
图2 模型流程图Fig.2 Model flow chart
算法1基于CNN_BiLSTM网络的入侵检测算法
输入:原始数据集。
输出:正样本/恶意样本。
步骤1前向传播(模型提取特征进行分类)
(1)空间特征提取
①进行数据预处理,将结果输入卷积层;
②卷积层提取特征,权重共享减少参数;
③用激活函数对卷积层输出做非线性映射;
④将上一步输出作为池化层的输入,池化层进行数据降维;
⑤卷积层和池化层堆叠,堆叠层数根据实际情况决定(本文中只有一层卷积层和池化层);
⑥全连接层将提取到的高维特征整合输出。
(2)时间特征提取
①同空间特征提取,进行数据预处理,将结果送入
BiLSTM;
②BiLSTM模型通过更新门信息进行时间特征提取。
(3)特征融合(将前两步得到的信息融合成“并联特征”)
(4)自注意力机制
将第三步得到的结果送入自注意力模型中,进行二次特征提取,选择重要的信息。
(5)GRU
将二次特征提取结果送入GRU单元进行训练。
(6)分类
利用softmax函数进行分类。
步骤2反向传播
通过损失函数计算最后全连接层输出和真实值之间的误差,采用梯度下降的方法反向传播误差,逐层调整模型相关参数,减少真实值和模型输出值之间的误差。
算法重复步骤1和步骤2,当损失达到预定值时,停止训练。
1.3.1 预处理
数据只有经过清洗、贴标签、注释和准备后,才可以作为模型输入。数据清洗可确保数据干净、全面、无错误。数据清洗主要是对异常数据进行处理。对于样本数据大量缺失的情况,可以使用算法对缺失值进行拟合,样本数据缺失较少的情况下,可以使用众数等填充。对于异常点可以采用删除、平均值代替等方法处理。数据清洗结束需要进行数据转换,数据转换是对数据进行转换以使其均匀。数据转换有助于对此进行标准化和规范化。
本文采用Scikit-learn中LabelEncoder函数将非数值型数据转为数值型数据,对数据集中缺失值采用Scikitlearn中KNNImputer方法进行填充,该方法通过欧几里德距离矩阵寻找最近邻,帮助估算观测中出现的缺失值。以矩阵input=[[3,nan,7],[4,3,10],[2,4,8]]为例,当取“邻居”样本个数为1时,第一个样本的第一列特征3和第三列特征7与最后一个样本的第一列特征2和第三列特征8的欧式距离最近,故缺失值填充为4。为了消除不同量纲导致不同的特征之间具有较大的差异,本文对输入数据进行了归一化处理。
1.3.2 随机森林特征选择
特征工程是将机器学习模型分类为好模型还是坏模型的主要决定因素之一。虽然从理论分析角度而言,包含无意义的输入应该不会导致分类器性能下降,但是实际应用中,学习模型会自动忽略数据的底层分布,通常被迫近似NP优化问题来寻找解决方案,因此好的特征选择比分类算法更加重要,选择对区分正常、恶意流量有明显作用的特征至关重要。让算法将注意力集中在重要的输入数据。好的特征选择算法不仅可以加速模型训练速度,还可以改善分析性能,同时特征选择算法也可以作为机器学习可解释的一部分,帮助人们理解生成数据底层过程。特征选择的难点在于同一特征在不同场景下其重要性是不同的。在DoS攻击中,比较重要的特征包含目标主机的服务类型、源到目的主机的数据字节数、目的到源主机的数据字节数、连接正常或错误的状态等。在端口扫描中,协议类型、目的到源主机的字节数、登录成功标志等特征重要程度较高。目前没有标准的方法来评估某个特征在一数据集中的重要程度,对于一个特定的学习算法来说,哪一个特征是有效的也是未知答案。因此,需要从所有特征中选择出对于学习算法有益的相关特征,而且在实际应用中,经常会出现维度灾难问题。如果只选择所有特征中的部分特征构建模型,那么可以大大减少学习算法的运行时间,也可以增加模型的可解释性。
本文采用随机森林算法来评估特征的“重要性”。随机森林算法的本质是计算每个特征在随机森林中的每棵树上做了多大的贡献,然后取平均值,最后比较特征之间的贡献大小。通常可以用基尼指数(Giniindex)或者袋外数据(OOB)错误率作为评价指标来衡量贡献大小。本文采用OOB作为衡量贡献大小的指标。在随机森林中某个特征feature i的重要性的计算方法如下:
(1)对于随机森林中的每一棵决策树,使用相应的OOB数据计算它的袋外数据误差,记为errOOB1。
(2)随机地对袋外数据所有样本的特征feature i加入噪声干扰(就可以随机改变样本在特征X处的值),再次计算它的袋外数据误差,记为errOOB2。
(3)假设随机森林中有N棵树,那么对于特征X的重要性的计算公式是∑(errOOB2-errOOB1)/N,之所以可以用这个表达式来作为相应特征的重要性的度量值是因为:若给某个特征随机加入噪声之后,袋外的准确率大幅度下降,则说明这个特征对于样本的分类结果影响很大,重要程度较高。
本文使用UNSW_NB15[26]的数据集,该数据集中共有45维特征,这里去除id、攻击类别和标签,剩余42维特征,利用随机森林来评估这些特征的重要程度,随机森林中树的数量设置为100棵。每个特征“重要性”的评估结果如表1所示,重要性数值越大代表该特征对模型的分类结果影响越大。
表1 随机森林重要性评估Table 1 Random forest importance assessment
1.3.3 融合自注意力机制的CNN_BiLSTM模型
本文利用1D CNN提取输入数据的空间特征,利用BiLSTM提取序列特征,借助Keras[27]的Concatenate层将1D CNN和BiLSTM各自提取到的特征进行并联融合,通过使用自注意力机制对融合后的特征根据其重要性分配不同权重,再经过GRU单元训练。由于进行特征融合时用到了Concatenate层,因此不能用Keras序贯模型,本文采用的是Keras函数模型。函数式模型比序贯模型要复杂,但是可以同时/分阶段输入变量,分阶段输出想要的模型。函数式模型在预测阶段不能使用Sklearn中model.predict_classes()函数,只能用于序列模型来预测,不能用于函数式模型。本文使用model.predict()函数,model.predict()输出的是各类别的概率值,要经过argmax()函数转化为类别号,此时只能使用softmax分类函数。伪代码如下所示。
CNN的3个重要核心概念是局部感知、参数共享和池化。一般认为图像的空间联系中局部像素联系较为密切,每个神经元只要在局部感知,然后在更高层将局部信息结合起来得到全局信息。局部感知是利用卷积层实现的,从上一层通过局部卷积滤波器提取局部特征。同一张图像中可能出现相同的特征,例如在识别图像中是否有鸟时,去提取鸟嘴这一特征,需要检查图左右两边是否有鸟嘴,在权值共享的情况下查看整张图中是否有鸟嘴即可,因此通过共享卷积核可以减少参数数量。本文利用1D CNN来提取空间维度特征。二维卷积在计算机视觉领域表现出了卓越的性能,本文对于网络流量这种序列数据,采用一维卷积。CNN层使用了普通的结构,即卷积、池化、全连接,使用全连接层的目的是减少数据维度,没有全连接的情况下,一次迭代训练要花费3个多小时,而且性能并没有什么提升。
本文也借助BiLSTM从时间维度提取数据特征。研究表明,将空间特征和时间特征融合可以取得更好的实验结果。最后使用GRU单元的原因是GRU单元只有更新门和重置门两个门,参数相应减少,训练效率较高。
实验的硬件环境:Windows 10系统,Intel i7-8565U CPU,8 GB内存。软件环境:Python 3.7,Keras学习框架,Scikit-learn库。
为了评估模型的检测性能,本文采用精度(Accuracy)、精确率(Precision)、召回率(Recall)和假负率(FNR)作为模型的评价指标。精度表示所有分类正确的样本占全部样本的比例;精确率表示预测结果是正样本中实际标签也是正样本的比例;召回率表示所有正样本中被找出的比例;假负率表示表示分类错误的正样本个数与整个正样本个数的比例。这些指标计算都来自于对正负样本的分类结果,每项评估指标的计算过程如下:
其中,TP代表正确分类的正样本数量,FN代表错误分类的负样本数量,FP代表错误分类的正样本数量,TN代表正确分类的负样本数量。
入侵检测系统常用的KDD99和NSL-KDD数据集已时间久远,随着网络架构的复杂化以及攻击形式的隐蔽化,这些数据集已经不完全具备代表性。
本文选用的数据集是UNSW_NB15,该数据集是由澳大利亚网络安全中心(ACCS)实验室中的IXIA PerfectStorm工具于2015年创建,数据集中包含真实正常流量和恶意攻击流量。数据集中出现了正常流量和9种攻击流量,分别是后门、渗透分析、拒绝服务攻击、漏洞利用、模糊测试、泛型攻击、踩点、Shellcode和蠕虫。发布的数据集中提供了原始的pcap包,也提供了有标签经提取特征的csv文件。研究人员利用Zeek、Argus和12种算法,提取了流特征、基础特征、连接特征、时间特征、通用特征、一些额外的生成特征以及标签特征,共有45维特征。本文做的是二分类,正常流量用0表示,攻击数据用1表示。
模型的输入只接受数值型的数据,UNSW_NB15数据集中包含协议、状态、服务等非数值型的数据,需要先将其转为数值型的输入,然后通过最近邻填充空数据,最后为了让模型快速收敛,消除不同特征数量级的差距,对所有输入数据进行归一化处理。
模型的整体架构在上文已经详细介绍,在1D CNN网络中,将卷积层滤波器的大小设置为48,卷积核大小设置为3,激活函数选用Relu函数,池化层大小设置为2,全连接层大小设置为16,为了避免模型过拟合,加入了Dropout层。Dropout层会随机选择忽略隐层节点,这样每次训练的网络都是不一样的,最后用相同的权重进行融合。激活函数选用Relu函数的原因在于,该函数没有饱和区,不会出现梯度消失问题,没有涉及复杂的指数计算,运算效率高,收敛速度很快。其表达式如下:
在BiLSTM网络中,本文设置输出大小为60,利用Keras的Concatenate层将CNN和BiLSTM分别提取的特征进行并联融合,将融合后的特征加入自注意力层,给不同特征分配不同的权重大小。Keras框架中目前还没有注意力机制层,该层需要自己编写实现(https://github.com/Ritdrith/Self_Attention-Layer.git)。再 通 过GRU单元训练,GRU单元的输出大小设置为40,后接入全连接层,大小设置为32。最后利用softmax函数进行分类,模型训练过程中的损失函数使用交叉熵损失函数。由于要进行特征融合,只能使用函数式形式搭建整个训练模型,函数式形式中不支持全连接层设置为1,即最后输出0代表正常流量,1代表恶意流量,因此将标签进行独热编码,正常流量编码为10,恶意流量编码01,将最后的全连接层大小设置为2。
为了说明模型的有效性,本文进行了两组对比实验,包括随机森林特征选择前后的效果对比,使用自注意力机制前后的效果对比。
(1)随机森林特征选择前后对比
本文通过随机森林算法对特征的重要性进行了排序。为了选择出能表达最好性能的最优特征子集,根据重要性排序选择了不同数量的特征子集,将特征子集的数量设置为3、6、9、12、15、18、21、24、27、30、33、36、39、42,在不同数量的特征子集上训练集精度如图3所示。
图3 特征子集的数量与精度之间的关系Fig.3 Relationship between number of feature subsets and accuracy
从图3可以看到随着特征数量的增加,训练集精度在提升,当特征子集数量为30的时候,精度最高,当特征数量高于30的时候精度都有所下降,因此将30设置为最佳特征子集数量,后面模型输入特征为重要性排名前30的特征。
(2)有无自注意力机制前后对比
为了验证自注意力机制对模型性能的影响,本文做了有无自注意力机制的对比实验,实验结果如表2所示。
表2 自注意力机制对实验结果的影响Table 2 Influence of self-attention mechanism on experimental results
从表2可以看出,引入自注意力机制的模型的评价指标有了提升,说明了自注意力机制对整体模型有着较为重要的贡献。
为了说明本文模型的性能,将常用的机器学习方法如支持向量机、朴素贝叶斯、决策树、随机森林应用到该数据集,其性能如表3所示。
表3 不同模型的对比Table 3 Comparison of different models
从表3可以看到,传统的机器学习算法中支持向量机和朴素贝叶斯的效果较差,随机森林的表现效果最好,随机森林的集成学习思想使得其对噪声和异常值有较好的容忍性。本文模型比传统的机器学习算法性能提升0.05左右,和现有的一些工作相比,本文的检测结果优于目前的研究。
本文还将常用的深度学习方法CNN、LSTM、CNN_BiLSTM应用到该数据集之上,各模型的精度随迭代次数的变化如图4所示。
从图4中可以发现,混合模型的总体性能优于单一模型,串联CNN_BiLSTM模型的效果略微低于本文提出的模型,这再一次说明了本文模型的优越性。
图4 迭代次数对深度学习模型的影响Fig.4 Impact of number of iterations on deep learning model
最后将一些现有的入侵检测方法和本文模型在同一数据集UNSW_NB15上的性能进行了对比。文献[8]提出了一种基于流量异常分析多维优化的入侵检测方法,在横向和纵向维度对数据进行了优化,通过随机森林分类器在UNSW_NB15数据集上进行了验证。文献[19]提出了一种结合深度学习与浅层学习来对恶意行为进行分类的方法,该模型利用PCA和自编码器来提取数据特征,通过人工蜂群算法寻找SVM的最佳参数来分类,该研究也是基于UNSW_NB15数据集进行验证。文献[20]提出了一种多卷积神经网络融合方法进行入侵检测的深度学习方法,该方法先将特征聚类,凭借聚类后的数据训练多个CNN模型,将多个模型融合,文中基于NSL-KDD数据集进行评估,将该方法复现并应用到UNSW_NB15数据上评估其性能表现。文献[21]提出的MSCNN-LSTM模型,利用CNN和LSTM提取目标数据集的时空特征,MSCNN由3个不同尺度的卷积层(卷积核大小分别是1×1,2×2,3×3)、3个同尺度卷积层、1个池化层和3个全连接层组成,在2×2和3×3的卷积层之前应用了一种增量网络结构(1×1卷积)来减少特征尺寸,加快模型训练周期,该方法也是基于本文所用数据集进行评估。本文将现有的一些研究和本文方法的性能进行了对比,结果如表4所示。
表4 在UNSW_NB15数据集上不同研究的性能比较Table 4 Performance comparison of different studies on UNSW_NB15 dataset
从表4可以看到,本文模型在精度上表现优于其他方法,在假负率上表现不如文献[8]提出的方法。文献[8]中假负率最低的原因在于该模型利用遗传算法得到了每个类别的最佳抽样比例,完成了数据的均衡化,因此在假负率上有着更好的表现。文献[19]没有很好利用数据特征,其性能一般。文献[21]没有考虑数据冗余对于模型性能的影响,模型表现不是很好。总体上来说本文提出的入侵检测方法表现良好。
本文基于CNN和BiLSTM网络,引入注意力机制实现入侵检测,通过随机森林进行特征选择,然后利用CNN和BiLSTM网络分别提取特征,将二者提取到的特征进行融合,加入注意力机制分配权重,再经过GRU单元训练。本文模型相比于传统的机器学习方法效果有明显提升,比CNN和LSTM深度学习方法表现良好。
UNSW_NB15训练集中正常样本和恶意样本的比例为1∶2.1,本文没有对该不平衡数据集进行处理,可以考虑过采样、欠采样等技术扩充样本少的样本或者缩减样本数多的样本,以取得更好的检测结果。虽然深度学习在入侵检测领域取得了较大的成功,但是还面临着模型自适应性较差、特征处理困难、数据无标签、可解释性差、协作性模型易受到隐私窃取攻击、初始化权重对模型泛化究竟有什么影响等一系列的挑战。