APP下载

基于多模态深度神经网络的应用层DDoS攻击检测模型

2022-04-18周奕涛刘自豪

电子学报 2022年2期
关键词:应用层神经网络流量

周奕涛,张 斌,刘自豪

(1. 战略支援部队信息工程大学,河南郑州 450001;2. 河南省信息安全重点实验室,河南郑州 450001;3.61660部队,北京 100080)

1 引言

应用层DDoS 攻击具有隐蔽性强、使用合法连接、与正常用户集中访问(Flash Crowd)事件相似等特点,近年来得到快速发展,已逐步成为主流的DDoS 攻击方式[1]. 近年来,研究者通过分析应用层DDoS 攻击与正常访问之间的流量特征或用户行为特征差异进行攻击检测,该方向已成为研究热点.

目前,应用层DDoS 攻击检测主要有三种方法. 第一种为基于人机测试的检测方法. 这种方法通过向服务请求者发送人机测试问题,根据服务请求者的回答判断身份,进而实现应用层DDoS 攻击检测. 例如CAPTCHA 方法[2],给予服务请求者人工容易解决而机器却难以识别的问题,进而识别攻击者;以及Speak-up方法[3],通过要求服务请求者提高访问速率以识别访问速率达到上限的攻击者. 这种方法简单有效,但是需要消耗额外的服务器资源,并且会降低服务质量[4]. 第二种为基于流量特征的检测方法. 这种方法基于应用层DDoS 攻击对网络流量的统计特征改变以实现攻击检测,通过提取区分度较高的流量特征,识别攻击流量与正常流量,如基于机器学习的检测方法[5],以及基于数学统计学的检测方法[6]. 这种方法检测速率快,支持实时检测,但是难以区分Flash Crowd 事件与HTTP Flood攻击[7]. 第三种为基于用户行为特征的检测方法,这种方法基于正常用户与攻击用户访问行为的差异性进行攻击检测,如基于访问顺序的检测方法[8]以及基于用户行为特征聚类的检测方法[9]. 这种方法检测准确率较高,对Flash Crowd 事件与HTTP Flood 攻击具有一定的区分能力,但是建模复杂,检测速率较慢,对用户访问记录较少的Slow DDoS攻击检测准确率较低[7].

为进一步提升应用层DDoS 攻击检测准确率,提出一种基于MDL(Multimodal Deep Learning)神经网络结合流量与用户行为特征的应用层DDoS 攻击检测模型.有效区分Flash Crowd 事件与HTTP Flood 攻击,同时对Slow DDoS 攻击同样具备良好的检测能力,实现更为全面的应用层DDoS 攻击检测. 同时,为减少MDL 神经网络在网络参数更新过程中的灾难性遗忘现象[10],实现检测模型参数的高效更新,针对MDL 神经网络提出一种基于EWC(Elastic Weight Consolidation)算法[11]的模型参数高效更新方法EWC-UD,无需存储原始数据集,即可在不丢失原有知识的前提下,获得对新数据的检测能力,提升检测模型的更新性能.

2 基于MDL 神经网络的应用层DDoS 攻击检测模型

2.1 应用层DDoS攻击检测流程

为获得流量与用户行为特征,分别从网络关键节点处部署嗅探器以收集网络数据包Pcap 文件,以及从网页服务器主机上收集服务器日志.Pcap 文件主要记录流经网络关键节点处的数据包信息,通过统计Pcap文件信息,可以得到反映网络数据流的流量大小、流量速率、数据包分片信息等流量特征,而网页服务器日志主要记录用户请求网页的内容、访问顺序、请求状态码等信息,通过统计网页服务器日志,可以得到用户访问请求成功率、阅读时间等用户行为特征.

流量与用户行为特征经过提取后输入多模态深度神经网络. 多模态深度神经网络由多个深度神经网络构成,流量特征向量与用户行为特征向量分别输入独立的流量深度神经网络(Traffic Deep Neural Network,TDNN)与用户行为深度神经网络(User-behavior Deep Neural Network,U-DNN),T-DNN 与U-DNN 通过全连接的多层神经元将流量与用户行为特征向量转换为深层抽象特征,以相同形式表示流量与用户行为特征,从而实现特征结合. 随后,通过一个汇聚神经网络(Merge Deep Neural Network,M-DNN)将流量与用户行为的深层抽象特征进行汇聚并输出最终结果.

2.2 基于EWC算法的模型参数更新方法

MDL 神经网络作为连接性神经网络,在参数更新过程中存在灾难性遗忘问题,即对新数据集的学习可能导致神经网络遗忘初始数据集知识,使得对初始数据集所反映攻击类型的检测效果下降. 因此,针对MDL神经网络,设计了一种基于EWC 算法的模型参数更新方法EWC-UD,无需存储全部原始数据,仅需原始数据的少量抽样以及现有的神经网络参数,即可实现模型更新.

设NSample为费雪信息矩阵计算样本数,θi(i∈{1,2,…,N})为MDL 神经网络参数,其中N为MDL神经网络参数数目,F为费雪信息矩阵,LB(θ)为仅训练新数据集训练过程的损失函数,LEWC-UD(θ)为EWC-UD方法训练过程中的损失函数,yp(x)为MDL 神经网络预测输出.

首先,利用原数据的少量样本,与现有的MDL神经网络参数计算MDL神经网络输出关于神经网络参数的一阶导数,以获得反映现有神经网络参数对初始数据集重要程度的费雪信息矩阵,如下式所示:

式(1)中,i,j分别为费雪信息矩阵的行标与列标.在之后的更新过程中,根据式(1)得到MDL神经网络参数对应的重要程度参数,即费雪信息矩阵的对角元素后,修改更新过程的损失函数,为重要的MDL神经网络参数增加惩罚项,使其在更新过程中难以改变,如下式所示:

2.3 基于K-Means算法的数据筛选方法

记初始数据集A、新数据集B 为DA、DB,θA、θB、θA,B分别为MLP 神经网络分别在DA、DB以及联合DA与DB下训练后的模型参数,设θEWC-UD为经过EWC-UD 更新后的模型参数.

EWC-UD 方法正确性证明需要将神经网络训练过程看作条件概率的寻优过程,从而证明θA,B与θEWC-UD近似相等. 而在联合数据集DA、DB下训练神经网络的过程可表示为:θA,B=argmaxθ(log(P(θ|DA,DB))). 若数据集DA、DB具有较强独立性,根据条件概率公式与贝叶斯公式,log(P(θ|DA,DB)可以拆分为下式:

其中,logP(DB|θ)可看作为训练过程中的交叉熵函数LB(θ),logP(θ|DA)经过拉普拉斯对角近似后,忽略3 次方及以上项后可表示为

logP(DB)为常数. 综上对式(3)改写后,对参数θ进行寻优可得

综上,EWC-UD 更新方法的正确性前提是要求初始数据集与新数据集具有较强的独立性. 因此,设计一种基于K-Means 聚类方法的数据筛选方法,如图1所示.

图1 K-Means数据筛选方法图示

图1 中,空白节点表示初始数据集数据,黑色节点表示新数据. 假设聚类簇划分为(C1,C2,C3,…,Ck),每个类簇存在一个质心,K-Means 算法通过最小化平方误差,让类簇内的点尽可能密集,从而实现聚类效果. 采用该类方法,可以有效防止因初始数据集与新数据集相关性过高而导致的更新失败问题,同时过滤了重复数据,减少模型参数更新过程的计算量,进一步提升模型参数更新效率.

3 实验结果与分析

实验主要验证多模态深度神经网络的检测性能、EWC-UD 方法的更新性能、K-Means 数据筛选方法性能. 共使用3 个应用层DDoS 攻击数据集,包括CIC 2017 App-DDoS Dataset[12]、CES-CIC-IDS2018-AWS[13]以及CIC DDoS 2019[14]. 提取CES-CIC-IDS2018-AWS 中的DDoS 攻击部分,与CIC 2017 App-DDoS Dataset 结合成为融合数据集(简称为Datasetold). 使用CIC DDoS 2019作为新数据集(简称为Datasetnew).

3.1 基于MDL 神经网络的应用层DDoS 攻击检测性能验证

为验证流量与用户行为特征分别对于HTTP Flood攻击与Slow DDoS 攻击的检测能力,并验证结合流量与用户行为特征的检测性能,以检测准确率(Accuracy)、F1 分数(F1_Score)、以及ROC 曲线与X 轴所围面积AUC作为评价参数.

基于流量特征、用户行为特征以及结合流量与用户行为特征的应用层DDoS攻击检测结果如图2所示.

图2 流量与用户行为特征对各类应用层DDoS攻击检测性能比较

实验表明,基于流量特征与基于用户行为特征对HTTP Flood 与Slow DDoS 攻击具有不同的检测性能.HTTP Flood 攻击使用合法数据包,流量统计特征与Flash Crowd 事件较为相似,但是请求分布随机,规律性较差,与正常用户访问行为存在较大差异,因此使用用户行为特征可以取得较好的检测效果,而使用流量特征则检测效果欠佳. 而Slow DDoS攻击通常采用少量而持续时间长的请求消耗服务器资源,其数据包分段信息等流量统计特征会发生较大改变,但是导致用户日志记录较少,因此使用用户行为特征对这类攻击难以检测,而基于流量特征则取得比较好的检测效果. 而所提模型结合流量与用户行为特征,对HTTP Flood 攻击与Slow DDoS 攻击都取得了更好的检测效果,在整体检测中表现同样为最优.

3.2 EWC-UD模型参数更新方法性能验证

为验证所提EWC-UD 方法的模型参数更新性能,设置以下两类场景:

场景1:模型参数训练数据集为Datasetold,模型参数更新数据集为Datasetnew. 该场景模拟检测模型在一段时间内进行计划内更新的情况.

场景2:模型参数训练数据集为Datasetold,模型参数更新数据集为CIC DDoS 2019 中的Portmap 攻击数据,该场景模拟检测模型在发现新型应用层DDoS 攻击后进行紧急更新的场景.

设置以下两种MLP 神经网络更新方式作为EWCUD方法的对照组:

MLP_New:以Datasetold作为模型原参数训练数据集,以Datasetnew作为模型参数更新所用数据集.

MLP_Whole:以Datasetold作为模型原参数训练数据集,以Datasetold与Datasetnew的融合数据集作为模型参数更新所用数据集.

EWC-UD 模型参数更新方法更新性能验证实验结果如表1所示.

表1 各类检测模型参数更新方法性能

实验表明,EWC-UD 方法在场景1 与场景2 下都具备优秀的模型参数更新性能,相较于MLP_Whole 方法,检测性能几乎无差别,但时间与空间开销显著下降.

3.3 K-Means数据筛选方法性能验证

以Datasetold为模型参数训练数据集,以Datasetnew为更新数据集,分别随机抽样初始数据集的1%、2%、3%、4%、5%的数据样本,并与新数据集进行合并. 以初始数据集与新数据集的融合数据集作为测试数据集,进行5次重复实验,计算经过EWC-UD方法进行模型参数更新后,检测模型的检测准确率、F1分数、召回率、精确率的实验平均值,并与经过K-Means数据筛选后再经过EWC-UD 方法进行模型参数更新后的检测模型进行对比,实验结果如表2所示.

表2 K-Means数据筛选方法性能验证

实验表明,随着初始数据集与新数据集相关程度的增加,EWC-UD 方法的更新性能显著下降,而经过数据筛选,删除与聚类中心点过近的重复数据后,EWCUD 方法的更新性能始终保持在较高水平,表明KMeans 数据筛选方法可有效改善EWC-UD 方法难以处理相关性过高数据集的问题.

4 总结

提出了一种基于MDL 神经网络的应用层DDoS 攻击检测模型,结合流量与用户行为特征对应用层DDoS攻击进行检测. 同时设计了一类高效的模型更新方法EWC-UD,并针对EWC 算法对初始数据集与新数据集独立性要求较高的问题,提出一种K-Means数据筛选方法,实现了应用层DDoS 攻击模型的高效更新. 实验表明,所提模型具备良好的应用层DDoS 攻击检测性能,且具有较高的模型参数更新效率.

猜你喜欢

应用层神经网络流量
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
寻找书业新流量
神经网络抑制无线通信干扰探究
基于分级保护的OA系统应用层访问控制研究
新一代双向互动电力线通信技术的应用层协议研究
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
物联网技术在信息机房制冷系统中的应用
基于支持向量机回归和RBF神经网络的PID整定