基于EWC算法的DDoS攻击检测模型参数更新方法
2021-10-31周奕涛
张 斌 周奕涛
(中国人民解放军战略支援部队信息工程大学 郑州 450001)
(河南省信息安全重点实验室 郑州 450001)
1 引言
DDoS攻击检测技术一直是网络安全领域的研究热点。MLP神经网络作为一类经典的机器学习算法,在DDoS攻击检测领域具有良好的检测效果[1,2]。但基于MLP神经网络的DDoS攻击检测模型经训练后,需适时对神经网络参数进行更新,否则神经网络参数将难以反映新型DDoS攻击特征,对新型DDoS攻击检测能力不足。
目前,基于MLP神经网络的DDoS攻击检测模型参数更新有3类方法:第1类为直接更新法,可分为仅训练新DDoS攻击数据集(简称新数据集)以及存储模型训练原参数所用的DDoS攻击数据集(简称原数据集)并与新数据集相结合一同重新训练检测模型两类更新方式,若仅对新数据集进行训练,检测模型对原数据集包含的DDoS攻击检测效果将明显下降,存在灾难性遗忘问题[3],而存储原数据集,与新数据集一同重新训练模型会造成较大的时间与空间开销,更新效率有待提升[4]。第2类为新增网络结构法,该类方法新增网络结构学习新数据集知识,保存原有网络结构存储原数据集知识。如采用集成学习思想,新增弱分类器学习新数据集,结合投票机制输出分类结果的方法[5],以及新增额外的神经元学习新数据知识的方法[6,7]。该类方法能有效解决灾难性遗忘问题,缺点是随着模型参数的更新,网络模型愈发复杂[8]。第3类为网络参数优化调整法,该类方法在训练新数据集时,对模型参数进行优化调整或合理分配,实现模型参数的更高效利用。如基于掩码思想,为不同的数据集分配不同的掩码组合[9],利用使用遗忘函数优化更新过程[10],以及通过抽取原数据集少量样本提炼原数据集知识的方法[11,12]。该类方法无需增加额外的网络结构,时间空间开销较小,但是更新性能较新增网络结构法较差[8]。
为有效解决灾难性遗忘问题并保持简单的神经网络结构,提升检测效率,针对第3类方法,本文提出一种基于EWC算法[11]的DDoS攻击检测模型参数更新方法(EWC-UD),仅需保存原数据集少量样本以及原MLP神经网络参数,即可对检测模型进行更新,在解决灾难性遗忘问题的同时,具有较低的时间与空间复杂度。
2 EWC算法[11]
MLP神经网络在模型参数更新过程中,损失函数L(θ)表示为
式中,θ为神经网络参数,yt(x)为数据x的真实标签,yp(x)为数据x输入神经网络后输出的预测标签,CrossEntropy为交叉熵函数。若采用式(1)作为参数更新过程中的损失函数,更新后模型参数将完全偏向新数据集,导致对原数据集的分类效果下降。而EWC算法通过在模型更新过程中的目标函数中增加惩罚项,为MLP神经网络中重要的神经元参数赋予较高弹性,使得其在更新过程中更难改变,以保持对原数据集较好的分类性能。EWC算法更新过程损失函数表示为
式中,LB(θ)为新数据集的损失函数,λ为表达原数据集重要程度的常数,为原模型参数,F为对角费雪信息矩阵,费雪信息矩阵对角线元素包含神经网络输出关于神经网络参数的1阶导数,反映MLP神经网络参数对原数据集的重要程度。
3 EWC-UD模型参数更新方法
3.1 模型参数更新流程
EWC-UD方法模型参数更新流程如图1所示。其中,NSample为费雪信息矩阵计算样本数,θi(i∈{1,2,...,N})为神经网络参数,N为神经网络参数数目,F为费雪信息矩阵,LB(θ)为新数据集的损失函数,LEWC-UD(θ)为EWC-UD方法训练过程中的损失函数,为原模型参数,yp(x)为神经网络预测输出。EWCUD方法无需存储原数据集与改变神经网络结构,仅需保存原数据集的少量样本与MLP神经网络原参数,即可完成DDoS攻击检测模型的参数更新。
图1 EWC-UD模型参数更新流程
首先使用K-Means算法获得原数据集聚类簇,并以聚类簇中心点作为原数据集样本,有效提升样本覆盖率,增加样本信息量;然后,利用原数据集样本与原MLP神经网络参数计算MLP神经网络输出关于神经网络参数的1次导数,并构成费雪信息矩阵,反映神经网络输出关于神经网络参数的变化率,体现神经网络参数对原数据集的重要程度;最后,根据不同参数对于原数据集的重要程度,为更新过程损失函数增加2次惩罚项,参数最优化过程表示为,对原数据集越重要的参数,更新过程中给予的惩罚值越高,越不易改变,从而保持MLP神经网络对原数据集内DDoS攻击的检测能力。
EWC-UD模型参数更新算法如表1所示。
表1 EWC-UD模型参数更新算法
3.2 EWC-UD方法正确性证明
记原数据集A、新数据集B为DA,DB,θA,θB,θA,B分别为MLP神经网络在DA,DB以及DA与DB下训练后的模型参数,设θEWC-UD为经过EWCUD更新后的模型参数。
因为θA,B是在原数据集与新数据集下的最优参数,EWC-UD方法的正确性证明可转化为证明θEWC-UD与θA,B近似相等。基于概率论,将模型参数更新表示为条件概率的寻优过程,θA,B可表示为
设DA,DB相互独立,利用条件概率公式、贝叶斯公式,对式(3)分解后,两边再同取 lg函数,得到
式(4)中,右式第1项可表示为训练过程损失函数的负数,即 lgP(DB|θ)=-LB(θ)。同时利用拉普拉斯对角近似,近似计算式(4)右式第2项,在1阶极值点处进行泰勒展开,忽略3次方及以上项,得到
最后由式(8)、式(9),得θA,B≈θEWC-UD,EWC-UD方法正确性得证。
3.3 时间复杂度分析
4 实验验证
实验环境如下:Window10 x64操作系统,CPU Intel Core i7-8850H 2.6 GHz,32 GB RAM,1TB SSD存储空间。使用数据集包括CIC DoS Dataset 2016[13],CIC IDS 2017[14],CESCIC-IDS2018-AWS[15]以及CIC DDoS 2019[16]。提取CIC IDS 2017,CES-CIC-IDS2018-AWS中的DDoS攻击部分,与CIC DoS Dataset 2016结合成为融合数据集(简称为Datasetold)。使用CIC DDoS 2019作为新数据集(简称为Datasetnew)。
4.1 评价标准
采用精准率(Precision)、准确率(Accuracy)、召回率(Recall)、F1分数4个评价指标作为实验结果的评价指标,分别从攻击检测的覆盖率、误报率以及正确率等方面全面评价检测性能,计算公式如下:
其中,TP表示正确归类的攻击样本,FP表示被错误归类的攻击样本,TN表示被正常分类的正常样本,FN表示被错误归类的正常样本。
4.2 实验数据预处理
由于使用多个实验数据集,并且各数据集之间在特征顺序、特征选取上存在一定差异。CIC IDS 2017,CES-CIC-IDS2018-AWS,CIC DoS Dataset 2016具有84类流量特征,而CIC DDoS 2019数据集则包括87类流量特征,并且特征顺序存在一定偏差,特征格式不统一,为模型训练造成一定困难。因此首先需要对数据集特征进行对齐、删减等预处理操作。
(1)特征删减:以CIC DDoS 2019数据集为基准,遍历所有特征,并在其他数据集中进行搜索,若特征在所有数据集中则进行保留,否则进行删除,之后再删除部分字符特征,最终剩下79类流量特征。
(2)特征对齐:通过特征删减后,所有数据集具有相同特征,以CIC DDoS 2019数据集为基准,重新排列其余3个数据集特征次序,确保所有数据集特征排列一致,使得数据特征以相同顺序输入学习模型。
(3)归一化:不同的流量特征通常具有不同的量纲与量纲单位,为了消除量纲对于训练过程的影响,需要对数据集进行标准化处理。归一化过程如下式所示:,其中xi为原始值,xmin,xmax分别为数据集中该类流量特征的最小值与最大值,通过该式,将流量特征转换成[0,1]区间的值,消除量纲影响。
(4)划分训练集与测试集:将数据集按照80%,20%划分成训练集与测试集,训练集用以模型训练,测试集用以验证模型检测效果。
4.3 K-Means样本选取法性能验证
本节验证K-Means样本选取法性能,并与随机抽样法进行对比。利用t分布随机邻近嵌入算法(t-distributed Stochastic Neighbor Embedding,t-SNE)进行数据降维,画出原数据集中部分数据分布散点图。如图2(a)所示,数据集分布呈聚类状,由于数据分布不均匀,随机采样可能导致聚类覆盖率不足,导致抽样样本难以涵盖原数据集信息,使得近似计算的费雪信息矩阵与真实值偏差较大,造成模型更新失败。
因此,为获得均匀样本点,有效覆盖原数据集聚类,使用K-Means算法获得原数据集聚类簇中心点作为采样样本,如图2(b)所示,每个样本位于聚类中心,能有效反映聚类内数据信息,解决随机抽样带来的样本分布不均匀,聚类覆盖率不高的问题,减少所需计算样本,提升模型更新效率。
图2 随机抽样法与K-Means样本选取法图示
为对比K-Means样本选取法与随机抽样法性能,抽样点选取范围为[3,200],每个抽样点分别使用K-Means样本选取法与随机抽样法进行10次模型参数更新,检验更新后检测模型对原数据集的检测性能。
图3给出检测准确率均值关于抽样点数的变化曲线,并进行标准差填充。
如图3所示,阴影部分为10次实验下检测准确率标准差情况,反映数据稳定性,实线表示检测准确率均值情况,阴影上界曲线为Standard_UP,阴影下界为Standard_Down,计算式如下:
图3 不同抽样点数的检测准确率均值标准差填充图
其中,Max,Min,Mean,Standard分别为10次实验中检测准确率最大值、最小值、均值以及标准差。
可以看出,当抽样点数大于20时,K-Means样本选取法的检测性能趋于稳定,且检测率均值较随机抽样法更高,随机抽样法只有在抽样点数大于200时,检测性能才趋于稳定。实验表明,相较于随机抽样法,K-Means样本选取法均匀选取样本,有效提高聚类覆盖率与样本信息量,提升检测准确率。
表2给出抽样样本分别在3,6,20,60,100,200个时,K-Means样本选取法与随机抽样法在10次试验下的检测平均准确率、最高准确率以及最低准确率。
表2 K-Means样本选取法与随机抽样法性能验证(%)
如表2所示,K-Means样本选取法仅需30个样本即可达到94.29%的平均检测准确率,仅占原数据集的0.0023‰,而随机抽样达到类似效果至少需要200个样本。实验表明,K-Means样本选取法可有效减少费雪信息矩阵的计算样本数,进一步提升更新效率。
4.4 更新性能验证
4.4.1 检测率验证
为验证EWC-UD方法的参数更新性能,针对MLP神经网络设置两组对照实验采用以下两种更新方式:
(1)MLP_New:对训练完成的模型进行保存,仅使用新数据集数据训练模型,更新参数。
(2)MLP_Whole:结合原数据集与新数据集对模型进行重新训练。
相较于EWC-UD方法,MLP_New方法除更新过程损失函数不同之外并无其他区别,而MLP_Whole除损失函数不同之外,还使用了原数据集。通过将所提EWC-UD方法与MLP_New,MLP_Whole方法对比,可较好地检验EWC-UD方法的针对于MLP神经网络模型参数更新过程的改进效果。除此之外,选用随机森林、决策树这两种具有一定增量更新能力的树状结构神经网络作为横向对照。
各类算法参数设置为:MLP采用4层网络结构,分为输入层、2个隐藏层以及输出层,输入层包括79个神经元节点,而隐藏层则分别包括16个、8个神经元节点,输出层包括2个输出节点,训练批次为500次,每批次采样数为2048个;随机森林算法训练批次为500次,每批次采样数为2048个,树的棵数为5棵,最大节点数为10个;决策树算法训练批次为500次,每批次采样数为2048个,最大节点数为50个。
同时,为了更加全面地反映现实网络环境,设计两种不同的模型参数更新场景:
(1)场景1:使用 Datasetold作为原训练数据集,使用 Datasetnew作为更新数据集。测试数据集为50%的原数据集与50%的新数据集。验证模型参数更新后,检测模型在测试数据集上的检测性能。该场景模拟正常的网络环境,在一定周期内进行正常更新的情况。
(2)场景2:利用 Datasetold作为原训练数据集,在 Datasetnew中选择单一的Portmap攻击数据作为新数据集。测试数据集为80%的原训练数据以及20%的更新数据集。该场景模拟出现新类型攻击,对于模型参数进行紧急更新的情况。
表3给出在场景1与场景2下,各类模型参数更新方法的模型参数更新性能:
如表3所示,场景1下,EWC-UD相较于MLP_New,RF-UD,DT-UD方法,在测试集上的准确率分别提升9.35%,9.56%,8.93%,F1分数分别提高0.15,0.18,0.17,在场景2下,在测试集上的准确率分别提升37.05%,23%,8.72%,F1分数分别提高0.33,0.25,0.11。实验表明,EWC-UD方法性能与MLP_Whole方法相近,但是MLP_Whole方法需保存原数据集,时间与空间开销高于EWCUD方法。
表3 各类模型参数更新方法性能验证
为更加全面地评价5类检测模型参数更新方法,采用ROC曲线分析5类模型参数更新方法的检测性能。
如图4所示EWC-UD方法与MLP_Whole方法的ROC曲线几乎重合,且曲线下方面积较其他3类方法更大,进一步证明EWC-UD方法具有良好的模型参数更新性能,优于其他3类方法。
图4 场景1与场景2下各类检测算法模型参数更新效果ROC曲线图
4.4.2 时间空间性能验证
表4中给出在场景1与场景2下,各类模型参数更新方法的时间与空间开销。
表4 各类参数更新方法更新成本
由表4可知,MLP_Whole方法在场景1下较EWC-UD方法更新时间增加416.8%,内存开销增大49.67%,在场景2下,时间开销增加151.23%,内存开销增大160.75%。
实验表明MLP-UD方法存在灾难性遗忘现象,特别是在场景2下,对原数据集的检测准确率下降更为显著。尽管MLP_Whole方法可以在原数据集和新数据集下同时保持较好的检测性能,减少遗忘现象,但是时间与空间开销显著高于EWC-UD方法。而现实网络环境中,网络流量数据量巨大,若使用MLP_Whole方法,不仅延缓模型更新部署进度,还存在额外的存储与计算开销。EWC-UD方法在进行模型参数更新后,检测性能与MLP_Whole方法相近的同时,大幅减少时间与空间开销,更新效率得到显著提升。
5 结束语
本文提出一种基于EWC算法的DDoS攻击检测模型参数更新方法EWC-UD。该类方法仅需新数据集与原数据集的少量抽样即可完成模型更新,并且使用K-Means算法改进费雪信息矩阵计算样本选取过程,进一步提升模型参数更新效率。实验表明,EWC-UD方法有效改善灾难性遗忘问题,并且具有较低的时间与空间效率。在下一步工作中,考虑将所提方法应用于更加复杂的神经网络,提升方法普适性。