SDN下基于深度学习混合模型的DDoS攻击检测与防御

2018-08-03 01:09李传煌吴艳钱正哲孙正君王伟明
通信学报 2018年7期
关键词:流表特征向量分组

李传煌,吴艳,钱正哲,孙正君,王伟明



SDN下基于深度学习混合模型的DDoS攻击检测与防御

李传煌,吴艳,钱正哲,孙正君,王伟明

(浙江工商大学信息与电子工程学院,浙江 杭州 310018)

软件定义网络(SDN, software defined network)作为一种新兴的网络架构,其安全问题一直是SDN领域研究的热点,如SDN控制通道安全性、伪造服务部署及外部分布式拒绝服务(DDoS, distributed denial of service)攻击等。针对SDN安全中的外部DDoS攻击问题进行研究,提出了一种基于深度学习混合模型的DDoS攻击检测方法——DCNN-DSAE。该方法在构建深度学习模型时,输入特征除了从数据平面提取的21个不同类型的字段外,同时设计了能够区分流类型的5个额外流表特征。实验结果表明,该方法具有较高的精确度,优于传统的支持向量机和深度神经网络等机器学习方法,同时,该方法还可以缩短分类检测的处理时间。将该检测模型部署于控制器中,利用检测结果产生新的安全策略,下发到OpenFlow交换机中,以实现对特定DDoS攻击的防御。

分布式拒绝服务;软件定义网络;攻击检测;深度学习

1 引言

分布式拒绝服务(DDoS, distributed denial of service)[1]攻击是一种具有极强危害性的分布式、大范围协同作战的网络攻击方式,攻击者利用其控制的众多傀儡机,同时向被攻击目标发起拒绝服务(DoS, denial of service)攻击,最终导致被攻击目标的系统资源耗尽甚至崩溃,被攻击目标“拒绝”为正常用户提供所需服务。DDoS攻击主要针对被攻击目标的系统资源和网络带宽,攻击范围包括网络层到应用层。自1999年发生第一起DDoS攻击以来,DDoS已经成为广泛且致命的网络安全威胁之一。根据Radware公司的调查报告显示,DDoS攻击是目前Internet相关组织所面临的最大的网络安全威胁[2]。内容传送网络(CDN, content delivery network)服务提供商Akamai的互联网安全状况报告显示,2017年第四季度与2016年第四季度相比,DDoS攻击总数增加了14%,这也表明DDoS攻击长期处于总体上升趋势[3],DDoS攻击已经对系统和网络造成了严重的安全威胁。

软件定义网络[4]作为一种新型的网络架构,其核心思想是将网络设备的数据转发与决策控制功能进行分离,实现硬件的集中式控制。随着SDN应用的普及,SDN的安全性问题已经成为SDN领域关键的研究课题之一。在基于OpenFlow技术的SDN中,较常用的DDoS攻击防御架构使用OpenFlow交换机采集网络流量,并解析数据分组的特征值信息,然后与DDoS攻击规则库进行规则匹配[5],最终利用控制器完成入侵响应。其中,OpenFlow交换机除了需要完成流量转发任务外,还需要完成数据协议分析和DDoS攻击规则库匹配等额外任务,控制器则除了需要完成维护及控制转发等常规任务外,还需要进行DDoS攻击数据分组特征收集和入侵响应[6]等特殊任务。控制器和交换机所带来的大量额外任务均会使那些已经负担过重的网络设备雪上加霜。因此,针对SDN体系架构的特点,构建一种高效合理的DDoS防御机制,是在设计和部署整个SDN架构时必须慎重考虑的关键性问题。

DDoS检测是DDoS主要的防御机制之一,因为在大多数情况下,攻击流量与合法流量非常相似,攻击者会尝试模仿Flash群,导致DDoS攻击较难被自动检测,而流量不足的攻击行为甚至可以被视为一个早期的合法行为。许多研究人员尝试使用统计机器学习方法来检测DDoS攻击并丢弃攻击数据分组。传统机器学习方法对基于统计特征的DDoS攻击进行分类,性能优于统计方法。但该方法仍然有如下缺点:需要广泛的网络专业知识和DDoS的实验来选择合适的统计特征;仅限于一个或几个DDoS攻击向量;需要更新其模型和阈值来满足系统和攻击向量的变化;易受到低攻击速率影响。

深度学习为解决传统机器学习的局限性提供了可能。深度学习算法是一个对特征学习的过程,在学习过程中能够发现多层特征,并将高层特征表示成更抽象的数据特征。目前,深度学习已经被Google、Facebook、Microsoft[7]、百度[8]等公司在语音识别、计算机视觉、自然语言处理等领域广泛应用。

本文提出了一种SDN中基于深度学习混合模型的DDoS攻击检测方法——DCNN-DSAE,该方法将SDN与深度学习相结合,并利用深度卷积神经网络(DCNN, deep convolution neural network)和深度堆栈自编码(DSAE, deep stacked autoencoder)进行检测。DCNN-DSAE混合模型汲取了DCNN和DSAE算法的优点,不仅可以提高分类检测的精度,还可以缩短分类检测的处理时间,有效地缓解了SDN中的DDoS攻击效应,从而避免了网络资源的耗尽。

2 研究现状

DDoS攻击如今已经成为网络安全方面的严重威胁之一[9-10]。随着互联网技术及应用的发展,DDoS攻击出现的次数正在大幅增长,一个主要原因就是僵尸网络的出现和发展。这些僵尸网络是由恶意软件或机器组成的攻击网络,攻击者利用恶意流量不断地攻击受害者的服务器,使服务器不能为用户提供正常的服务,甚至导致网络瘫痪。

到目前为止,国内外针对DDoS攻击安全防御问题的主要解决方法是实时的网络监控,当DDoS攻击发生时,启动攻击流量清洗设备屏蔽DDoS攻击源,从而避免网络遭受DDoS攻击的侵害,达到安全防御的目的[11]。这个过程主要包括以下几点:在交换机、路由器等网络转发设备中进行源IP地址的合法性确认,建立黑/白名单;基于统计学方法,根据网络流密度变化情况,对网络流量进行实时监控;在路由转发设备中,建立源地址和转发设备对应的入端口的映射表,通过对比数据流源IP地址与相应入端口地址,确定当前网络是否有DDoS攻击行为,然后对DDoS攻击流量进行清洗。

Mousavi等[12]提出了一种在SDN控制器中通过计算熵值来检测DDoS攻击的入侵检测系统。该入侵检测系统的检测精度取决于熵的阈值,然而阈值的选择是通过调整参数大小的实验得到的,该方法具有一定的不可靠性。

Wang等[13]提出了一种SDN中基于熵的DDoS攻击检测系统,通过处理交换机中流表的统计信息,达到检测系统中防止DDoS攻击的目的。虽然该方法减少了控制器在收集流表统计信息时的开销,但该方法试图在交换机等设备中增强智能控制功能,与SDN转发和控制分离的核心思想矛盾。

Jadidi等[14]提出了一种基于流的异常检测系统,主要采用基于多层感知器和重力的搜索算法。该系统可以很好地区分正常类型的数据流和单一攻击类型的数据流,但其对组合攻击类型的数据流区分度较差。

Winter等[15]提出了一种基于支持向量机(SVM, support vector mechine)算法的网络入侵检测系统,该方法具有较低的误报率。然而该系统在训练模型时只采用了攻击类型的数据训练模型,没有涵盖正常网络流量数据集,存在一定的片面性。

Trung等[16]结合硬检测阈值和模糊推理系统(FIS),根据正常和攻击状态下的实际流量特征来检测DDoS攻击,但他们只考虑了分布时间、每个流的数据分组数量及分配到服务器的流量等几个特征,特征信息量不足。

此外,本文作者[17-18]曾将深度学习与DDoS检测相结合,使用深度学习方法直接对通过的流量本身进行检测,具有较高的精确度。由于该方法未对流量的统计特征进行检测,与轻量级的统计特征检测不同,它不能直接部署在SDN控制器中。

综上所述,现有的DDoS攻击检测方法较多,但它们仍存在着检测时延长、检测精度低、误报率较高、对新型DDoS攻击检测能力较弱等诸多问题。本文针对上述问题,并结合深度学习,提出了一种基于深度学习混合模型的DDoS攻击检测方法——DCNN-DSAE。与传统检测方法相比,该方法检测精度更高、误报率更低,且可以直接部署于SDN控制器中,具有很好的实用性。

3 特征提取及构建

在传统的机器学习分类方法中,输入特征是手动设计的,输入特征的好坏对模型的检测精度影响较大,好的特征的提取需要经过繁杂的运算和经验判决。而在深度学习中,模型可以自动地逐层提取多个不同层次的特征,并且将这些特征在不同层面组合起来产生输出。

由于深度学习模型可以自动地提取特征,因此直接提取交换机中流表的部分特征字段,作为模型第一层输入特征的一部分。自动获取的流表特征向量如表1所示。

表1 自动获取的流表特征向量

同时,为了提高模型检测精度、确保结果的可靠性,手动构建了最可能区分流类型的部分流表特征向量,并将其作为模型输入特征数据集的另一部分。表2是更详细的手动构建的流表特征向量。

表2 手动构建的流表特征向量

1) 单流增长速率(growth rate of single flow)

DDoS攻击发生时,流表中单流和对流的增长速率常常成为检测攻击的重要特征。给定任意流A和流B,当满足流A的源地址等于流B的目的地址、流A的目的地址等于流B的源地址、流A和流B具有相同的通信协议这3个条件时,流A和流B构成对流。

DDoS常以IP欺骗的方式发起攻击,该特征增加了单流进入网络的数量,因为它们使用假IP地址发送数据分组,如式(1)所示。

其中,flow_nums表示在时间周期内采集的流表数量,表示采集周期,表示每个周期内采集到的流表中单流的数量。

2) 不同端口增长速率(growth rate of different port)

类似地,与DDoS攻击产生的IP欺骗相同,攻击者也可通过随机生成端口进行端口扫描攻击,如式(2)所示。

其中,表示每个周期内采集到的流表中不同端口号的流表数量。

3) 流表平均数据分组量(average packets per flow)

DDoS攻击通过源IP欺骗,产生大量的、伪装不同IP的数据分组,且不同IP对应的数据分组数量较小。这种攻击方式使溯源任务非常困难,但是这也成为了区分正常分组和攻击分组的重要特征,因为正常分组中同一个IP对应的数据分组数量较大。鉴于这种特性,把流表平均数据分组量作为手动构建流表特征向量的重要特征之一,如式(3)所示。

其中,flow_nums表示采集的所有流表中第种流表的数量,pcount表示每条流表中的数据分组数量。

4) 流表平均比特数(average bytes per flow)

与定义流表平均数据分组量相似,DDoS攻击的另一个特点是不同IP对应的数据分组的比特数较小。例如,在TCP泛洪攻击中,攻击者会发送大量的120 B的数据分组攻击受害者,这种特征也为DDoS攻击检测提供了依据,如式(4)所示。

其中,bcount表示每条流表中的数据分组比特大小。

5) 流量平均持续时间(average durations per flow)

DDoS泛洪攻击发生时,不同IP对应的持续时间较短,如式(5)所示。

其中,durations表示每条流表的持续时间。

综上所述,将部分流表统计信息直接作为深度学习的部分输入特征{},{}包含表1中的全部特征向量,同时依据流表统计信息手动构建部分输入特征{},{}包含表2中的特征向量。将直接获取的输入特征{}和手动构建的输入特征{}进行合并及维度重构,构成新的深度学习输入特征{,}。

4 基于深度学习混合模型的DDoS检测

4.1 攻击检测及防御总体架构

DDoS攻击深度学习混合分类检测及防御总体架构如图1所示。本文提出的DCNN-DSAE混合模型通过分析流表特征来进行正确的分类。其中,DCNN-DSAE混合模型的第一级采用DCNN模型,第二级采用DSAE模型。在检测过程中,DCNN模型的输出端将流表特征分为攻击和正常2种类型。对于攻击类型,系统直接采用异常清洗的操作进行处理;而对于判断为正常类型的流表特征,由于模型判断可能会存在误差,为了确保系统的安全性,将这些判断为正常类型的流表特征再转送到DSAE模型中进行进一步检测,最后,使用softmax分类器将其分类为正常类型或攻击类型。在模型的总输出端,当检测到异常时,控制器可通过OpenFlow协议修改流表等操作来有效缓解网络异常,并将新的安全策略下发到OpenFlow交换机中。

图1 DDoS攻击深度学习混合分类检测及防御总体架构

实际情况下,DCNN模型在梯度下降计算时,可能会进入局部最优,或无限逼近全局最优,在模型的输出端不可能完全区分正常或DDoS攻击类型的流表特征,这意味着在DCNN模型的输出端,输出的正常类型的流表特征向量中可能会存在DDoS攻击类型的流表特征向量,即DCNN模型可能存在误判现象。

第一级DCNN模型采用监督学习方式。在训练DCNN模型的过程中,采用的数据集包括正常流量和DDoS攻击流量下的流表特征。正常流量下的流表特征标签为0,DDoS攻击流量下的流表特征标签为1,模型的训练在有标签的监督下完成。第二级DSAE模型采用非监督的学习方式。在训练过程中,也采用和DCNN模型相同的数据集进行训练,但与之不同的是,DSAE模型的训练不需要预先知道数据所对应的标签,在非监督的条件下完成流表特征的分类任务。相比于监督学习,非监督学习完全依赖于数据本身的特征,可以学习到更加抽象的特征。

DCNN-DSAE混合模型汲取了DCNN和DSAE算法的优点,与传统的只采用卷积神经网络(CNN, convolutional neural network)[19]、自编码网络、自组织映射、支持向量机等异常检测方法相比,不仅可以提高分类检测的精度,还可以缩短分类检测的处理时间,从而有效地缓解了SDN中的DDoS攻击效应,避免资源耗尽。DCNN-DSAE模型部署于SDN控制器中,采用流表特征作为模型的输入,输出为流表特征所对应的分类结果。

图2 DCNN模型结构

4.2 DCNN模型

卷积神经网络是一种前馈人工神经网络,通常由一个或多个卷积层组成,然后由标准的多层神经网络中的一个或多个全连接层连接组成。CNN的架构旨在利用输入数据的二维结构,这是通过本地连接和绑定权重实现的,然后通过池化,维持特征的平移、旋转、尺度的不变性。与具有相同层数的标准前馈神经网络相比,本文提出的DCNN模型具有更少的神经元和参数,更容易训练且检测精度更高。为了解决DCNN训练时间长的问题,本文的DCNN模型在训练过程中采用GPU加速和2D卷积高度优化,这样使模型的功能变得更加强大,能提取更高层次的流表特征,同时减少训练的时间,不会产生严重的过拟合问题。

通过实验对比,建立的DCNN网络模型如图2所示,其包含3个卷积层、2个最大池化层以及2个全连接层。

输入的流表特征向量经第一层卷积层以提取更加抽象的高维度特征,然后对这些特征进行批标准化(batch normalization)处理,让模型学习到数据的分布特征;再经过第二层最大池化层后,保持那些批标准化处理后的抽象高维特征的平移、旋转、尺度不变性,同时又能够减少模型的参数和计算量,防止出现过拟合现象,提高模型泛化能力;经过第三层卷积层,并将第三层卷积层抽象后的特征进行批标准化处理;再经过第四层最大池化层、第五层卷积层后,得到可准确表示流表特征的更高维度的特征向量;最后将这些高维特征向量输入全连接层,在输出端通过softmax分类器进行分类。

为防止模型训练时收敛速度较慢、出现梯度爆炸等现象,本文采用批标准化提升模型的容纳能力。如式(6)所示,每次按小批量训练模型,对每一批的数据做规范化处理,使输出的结果均值为0、方差为1。

其中,为常量,、为可学习的参数。

为进一步加快模型的训练速度,本文采用非饱和非线性激活函数修正线性单元ReLU(式(8))和Softplus(式(9))以代替传统的饱和非线性激活函数Tanh和Sigmoid。

在当前模型深度和神经元个数及输入为大批量流量特征下,使用传统的饱和非线性激活函数会出现过拟合现象,在DCNN模型中进行梯度下降训练实验时,采用ReLU或Softplus这些非饱和非线性激活函数比采用Sigmoid或Tanh这些饱和非线性激活函数快好几倍。

为进一步克服模型的过拟合问题及提高模型的训练速度,本文使用了“dropout”[20]技术,即在神经网络传递过程中,将概率为0.5的隐藏神经元的输出设置为0,因为这些神经元对前进传递没有贡献,所以将其丢弃,不再参与反向传播。因此,每次在批量数据送入模型训练时,神经网络都会随机地丢弃一定数量的神经元,使神经网络模型变得稀疏,且结构不同,但模型中所有这些体系结构共享权重。这种技术降低了模型对特定神经元结构的依赖性,因此,它迫使模型学习更多输入数据本身的特性。

4.3 DSAE模型

自编码(AE, autoencoder)是一种前馈神经网络,它具有一个或多个隐藏层。当模型具有一个隐藏层时,隐藏层是输入特征向量的抽象表示,相当于主成分分析;当模型具有多个隐藏层时,在前向传递训练过程中,每2层之间通过受限玻尔兹曼机进行预训练,正向训练完成后,再通过误差反向传递调整权重和偏置,最小化输入和输出之间的差异。图3为自编码模型结构。

图3 自编码模型结构

其中,1为连接输入层和隐藏层之间的权重,为输入的第个流表特征向量,1为隐藏层神经元的偏置。

编码完成后,基于隐藏层的输出结果,输出层根据式(11)进行解码重建,产生具有与输入层神经元相同尺寸的输出。

其中,为激活函数,2为连接隐藏层和输出层之间的权重,为通过隐藏层编码压缩后的流表特征向量,2为输出层神经元的偏置。

最后通过最小化损失函数(式(12))达到训练自编码模型的目的。

其中,为流表特征向量的个数,为输入的流表特征向量,经过自编码模型后输出的流表特征向量。

自编码模型的输入层和隐藏层神经元采用线性激活函数线性输出,输出层神经元采用Sigmoid函数(式(13))非线性输出。

实验发现,当输出层神经元使用Sigmoid激活函数时,在检测精度上比使用ReLU或Softplus等激活函数效果更好,Sigmoid函数在线性瓶颈问题上解决得更好,所得到的模型更易训练,模型对参数的变化也更具顽健性。

本文在构建模型时为了达到降维和提取抽象特征的目的,使用基于AE的DSAE模型。DSAE模型通过逐层叠加自编码模型的输入层和隐藏层而构建,其中每个自编码模型采用一个隐藏层。DSAE模型结构如图4所示。流表特征向量经过第一个自编码模型的学习后,在其隐藏层中得到压缩后的抽象化特征,将第一个自编码模型的隐藏层作为第二个自编码模型的输入层;经过第二个自编码模型的学习后,在其隐藏层中得到进一步压缩后的更加抽象化的特征,再将第二个自编码模型的隐藏层作为第三个自编码模型的输入层;依次叠加,最后通过softmax分类器将流表特征向量分为正常类型或DDoS攻击类型。

图4 DSAE模型结构

5 实验与结果分析

5.1 实验环境及评估指标

本文实验基于Tensorflow框架构建深度学习混合模型,硬件环境为NVIDIA Tesla M40类型的GPU服务器,软件环境为Ubuntu16.04操作系统。

实验前收集流表特征数据集,分别在正常流和DDoS攻击流下收集到自动获取和手动构建的流表特征,数据集如表3所示。流表特征数据集的总数为15万条,其中,训练集为9万条,测试集为6万条。

表3 流表特征数据集

实验通过准确度(accuracy)、精确度(precision)、召回率(recall)、F1分数(F1score)和混淆矩阵(confusion matrix)5个评估指标来评估模型的检测性能。其中,TP(true positive)是实际类型为DDoS攻击的样本中被分类模型判断正确的样本数;TN(true negative)是实际类型为正常的样本中被分类模型判断正确的样本数;FN(false negative)是实际类型为DDoS攻击的样本被分类模型误判为正常类型的样本数;FP(false positive)是实际类型为正常的样本中被分类模型误判为DDoS攻击类型的样本数。

准确度()表示模型判断正确的数据分组的数量占数据分组总数量的百分比,即

精确度()表示模型判断为攻击类型的数据分组中,真正为攻击分组的数量所占的百分比,即

召回率()表示模型判断为攻击类型的数据分组占所有攻击类型数据分组数量的百分比,即

F1分数(1)表示精确度和召回率的调和平均值,能够更准确地评估模型性能。

混淆矩阵(confusion matrix)主要用于模型分类的结果和数据与实际标签相匹配的程度。

5.2 DCNN模型实验结果分析

在建立DCNN模型时,采用不同深度的卷积层都会对模型的检测精度产生较大影响,而且小批量训练的模型表现较好,模型训练时采用的batch_size大小默认为50。实验过程中建立了4种不同深度的DCNN模型。4种模型结构如表4所示。其中,C3P2F2表示模型包含3个卷积层、2个最大池化层和2个全连接层,1表示模型存在该结构,0表示模型不存在该结构。

本文对构建的表4中的DCNN模型进行实验,并通过定义的准确度、精确度、召回率、F1分数评估指标评估模型的性能。4种不同深度的DCNN模型评估指标如表5所示。

采用3层卷积层的神经网络模型(C3P2F2、C3P3F2)效果明显优于采用2层卷积层的神经网络模型(C2P2F2、C2P2F4)。其中,C3P2F2模型在精确度、召回率和F1分数上的指标均高于C3P3F2模型,但在准确度上略低于C3P3F3模型。

为比较C3P2F2模型和C3P3F2模型的检测效果,通过混淆矩阵分析4种模型。4种DCNN模型的混淆矩阵如图5所示。采用2层卷积层的神经网络的模型在判断正常分组和攻击分组的能力上均弱于采用3层卷积层的神经网络的模型。同时C3P2F2模型判断攻击分组的能力(0.98)强于C3P3F2模型(0.96)。考虑到DDoS攻击可能会危害到整个系统的安全性,采用的检测模型必须要对攻击有很强的敏感性,综合考虑,DCNN模型采用C3P2F2模型最佳。

表4 4种不同深度的DCNN模型的模型结构

表5 4种不同深度的DCNN模型的评估指标

图5 4种DCNN模型的混淆矩阵

综上所述,C3P2F2模型层数较深、神经元个数较多、训练模型采用的流表特征数据集较大,这些会导致模型在训练时收敛速度较慢。为加快训练的速度、提高模型的精度,对比进行批标准化处理和未标准化处理时模型的表现。实验结果如图6所示。

图6 是否采用批标准化处理对模型准确度的影响

由图6可知,模型中加入批标准化处理后,加快了模型的训练速度,在训练到180轮时,准确度就已经达到0.8,而没有进行规范化处理的模型,在600轮的训练后准确度才达到0.8,并且加入批标准化后模型的精度表现更好。

同时,本文采用非饱和非线性激活函数修正线性单元ReLU和Softplus代替传统的饱和非线性激活函数Tanh和Sigmoid。2种激活函数的检测精度对比情况如图7所示。DCNN模型在采用饱和非线性激活函数进行训练时,出现了较大的振荡,且检测精度低于采用非饱和非线性激活函数的训练结果。实验结果表明,DCNN模型采用非饱和非线性激活函数对提高模型的检测精度更有效。采用ReLU等非饱和非线性激活函数,DCNN模型的检测精度可以达到0.98;而采用Sigmoid等饱和非线性函数,DCNN模型出现了梯度消失的现象,甚至不能学习到有效的特征。

图7 2种激活函数的准确度对比情况

为克服训练过程中出现的过拟合问题,同时加快模型的训练速度,本文采取“dropout”技术有效地避免了模型训练过程中的过拟合问题[21],实验结果如图8所示。模型在进行1 200轮训练的过程中,采用“dropout”训练时,梯度没有出现消失,误差一直在下降;而没有采用“dropout”时,模型的训练在进行到600轮时,就已出现梯度消失的现象,训练和测试结果如图9所示。采用“dropout”技术的模型在训练集合测试集上表现较好。

图8 “dropout”技术对模型的影响对比

图9 采用“dropout”的模型在训练集和测试集上的表现

综合所有结果可知,DCNN模型采用C3P2F2模型为最佳,且模型中添加批标准化处理,激活函数采用非饱和非线性激活函数ReLU和Softplus,在全连接层添加“dropout”防止过拟合。

实验将C3P2F2模型与传统机器学习方法中的SVM和深度学习方法中的深度神经网络(DNN, deep neural network)进行对比,并使用相同的数据集。3种方法的精确度对比结果如图10所示。从图10可以看出,3种模型在进行到1 200轮训练时都趋于收敛,且采用C3P2F2模型的检测精度明显高于SVM和DNN的方法。

图10 采用不同机器学习方法的检测精度对比

5.3 DSAE模型实验结果分析

在构建DSAE模型时,采用自编码模型的个数会对模型的检测精度产生较大影响,实验过程中建立了3种不同深度的DSAE模型进行对比,为使模型表现得较好,采用小批量的训练方法,batch_size大小默认为50。具体所设计的3种不同深度的DSAE模型如表6所示。

SAE4模型表示模型包含4个自编码模型,每个自编码模型都默认包含一个输入层、一个隐藏层和一个输出层。例如,在第一个自编码(128-64)中,128表示输入、输出神经元个数为128个,隐藏层神经元为64个。表6中1表示模型存在该结构,0表示模型不存在该结构。

表6 3种不同深度的DSAE模型的模型结构

表7为3种不同深度的DSAE模型评估指标。实验结果表明,采用4层自编码的SAE4模型在准确度、精确度、召回率和F1分数上的指标均高于其他模型。

表7 3种不同深度的DSAE模型的评估指标

使用相同的数据集对DCNN的C3P2F2模型及DSAE的SAE4模型的实验结果进行对比。2种模型的对比结果如图11所示。从图11可以看出,总体而言,C3P2F2模型的综合评估指标略高于SAE4模型,这也是本文采用C3P2F2模型作为混合模型第一级的主要原因之一。

图12为2种模型的混淆矩阵对比。从实验数据可以看出,SAE4模型判断攻击流的能力(0.985)强于C3P2F2模型(0.980)。考虑到第二级模型的主要功能是解决由于DCNN模型可能进入局部最优而导致的误判现象,区分被DCNN模型误判为正常流的攻击流,所采用的检测模型必须具备对攻击有很强的敏感性,综合考虑,第二级模型采用SAE4模型。

图11 C3P2F2模型和SAE4模型表现对比

图12 C3P2F2模型和SAE4模型的混淆矩阵对比

5.4 DCNN-DSAE模型总精度分析

将本文构建的DCNN-DSAE混合模型和传统的机器学习方法中的SVM及DNN进行对比分析,均使用相同的流表特征数据集作为模型的输入。实验检测结果如表8所示。

表8 不同机器学习方法与DCNN-DSAE模型的评估指标

从表8可以看出,DCNN-DSAE模型在准确度、精确度、召回率和F1分数上的指标均高于SVM和DNN模型,且DCNN-DSAE模型的准确度最高能达到98.53%,高于只采用单级模型C3P2F2(97.73%)和SAE4(97.44%)的检测结果。从实验结果还可以看出,DCNN-DSAE混合模型更优于传统的机器学习方法及单个DCNN或DSAE方法。

此外,输入的流表特征数量也是衡量DDoS攻击检测方法效果的重要参数,本文分别用5、10、15、21、26、30个流表特征对DCNN-DSAE模型进行测试。检测结果如表9所示。

表9 不同输入特征数量下DCNN-DSAE模型的评估指标

从表9可以看出,输入的流表特征数量对模型的检测结果存在重要的影响。当仅采用5个手动构建的流表特征(即流表特征数量为5)作为DCNN-DSAE模型的输入特征时,DCNN-DSAE模型的准确度只达到88.33%;当同时采用21个自动获取的流表特征(即流表特征数量为21)作为DCNN-DSAE模型的输入特征时,DCNN-DSAE模型的准确度只达到92.47%;当同时采用自动获取的流表特征和手动构建的流表特征作为DCNN-DSAE模型的输入特征时,DCNN-DSAE模型的准确度得到有效提高;当采用21个自动获取的流表特征和5个手动构建的流表特征(即流表特征数量为26)作为DCNN-DSAE模型的输入特征时,模型在准确度、精确度、召回率和F1分数上的指标达到最高。

6 结束语

本文提出了一种基于深度学习混合模型的DDoS攻击检测方法——DCNN-DSAE,并重点分析了混合模型中DCNN模型和DSAE模型的构建过程和方法。通过实验,使用含攻击流和正常流的数据集进行模型测试,精确度可达到98.53%,验证了此深度学习混合模型在实时网络环境中对DDoS攻击检测和防御的有效性。与传统的机器学习中的SVM方法和DNN方法相比,深度学习混合模型的方法检测精度更高、误报率更低,弥补了现有DDoS攻击检测方法的不足。由于该方法的检测输入特征为SDN交换机中的流表特征和自我构建的流表特征,属于轻量级的检测方法,可以直接部署于SDN控制器中。

[1] YAN Q, YU F R, GONG Q, et al. Software-defined networking (SDN) and distributed denial of service (DDoS) attacks in cloud computing environments: a survey, some research issues, and challenges[J]. IEEE Communications Surveys & Tutorials, 2016, 18(1): 602-622.

[2] RADWARE. 2017-2018 global application & network security report[R]. 2018.

[3] AKAMAI. [State of the Internet]/security Q4 2017 executive summary[R]. 2017.

[4] VOELLMY A, WANG J. Scalable software defined network controllers[J]. ACM SIGCOMM Computer Communication Review, 2012, 42(4): 289-290.

[5] PENG T, LECKIE C, RAMAMOHANARAO K. Survey of network-based defense mechanisms countering the DoS and DDoS problems[J]. ACM Computing Surveys, 2007, 39(1):3.

[6] MIRKOVIC J, MARTIN J, REIHER P. A taxonomy of DDoS attacks and DDoS defense mechanisms[J]. ACM SIGCOMM Computer Communication Review, 2001, 34(2): 39-53.

[7] LI D, LI J, HUANG J, et al. Recent advances in deep learning for speech research at Microsoft[C]//2013 IEEE International Conference on Acoustics, Speech and Signal Processing. 2013: 8604-8608.

[8] YU K. Large-scale deep learning at Baidu[C]//22nd ACM international conference on Information & Knowledge Management. 2013: 2211-2212.

[9] 杨余旺, 杨静宇, 孙亚民. 分布式拒绝服务攻击的实现机理及其防御研究[J]. 计算机工程与设计, 2004, 25(5): 657-660.

YANG Y W, YANG J Y, SUN Y M. Defense study and implementation mechanism of distributed denial of service attack[J]. Computer Engineering and Design, 2004, 25(5): 657-660.

[10] 孟江涛, 冯登国, 薛锐, 等. 分布式拒绝服务攻击的原理与防范[J]. 中国科学院大学学报, 2004, 21(1): 90-94.

MENG J T, FENG D G, XUE R, et al. Distributed denial of service attacks: principle and defense[J]. Journal of the Graduate School of the Chinese Academy of Sciences, 2004, 21(1): 90-94.

[11] GIL T M, POLETTO M. MULTOPS: a data-structure for bandwidth attack detection[C]//10th Usenix Security Symposium. 2001: 23-38.

[12] MOUSAVI S M, ST-HILAIRE M. Early detection of DDoS attacks against SDN controllers[C]//2015 International Conference on Computing, Networking and Communications (ICNC). 2015: 77-81.

[13] WANG R, JIA Z, JU L. An entropy-based distributed DDoS detection mechanism in software-defined networking[C]//2015 IEEE Trustcom/BigDataSE/ISPA. 2015: 310-317.

[14] JADIDI Z, MUTHUKKUMARASAMY V, SITHIRASENAN E, et al. Flow-based anomaly detection using neural network optimized with GSA algorithm[C]//2013 IEEE 33rd International Conference on Distributed Computing Systems Workshops. 2013: 76-81.

[15] WINTER P, HERMANN E, ZEILINGER M. Inductive intrusion detection in flow-based network data using one-class support vector machines[C]//2011 4th IFIP International Conference on New Technologies, Mobility and Security. 2011: 1-5.

[16] TRUNG P V, HUONG T T, DANG V T, et al. A multi-criteria-based DDoS-attack prevention solution using software defined networking[C]//2015 International Conference on Advanced Technologies for Communications (ATC). 2015: 308-313.

[17] YUAN X Y, LI C H, LI X. DeepDefense: identifying DDoS attack via deep learning[C]//2017 IEEE International Conference on Smart Computing (SMARTCOMP). 2017: 1-8.

[18] 李传煌, 孙正君, 袁小雍, 等. 基于深度学习的实时DDoS攻击检测[J]. 电信科学, 2017, 33(7): 53-65.

LI C H, SUN Z J, YUAN X Y, et al. Real-time DDoS attack detection based on deep learning[J]. Telecommunications Science, 2017, 33(7): 53-65.

[19] LIU C, SUN W, CHAO W. Convolution neural network for relation extraction[C]//International Conference on Advanced Data Mining and Applications (ADMA 2013). 2013: 231-242.

[20] HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4): 212-223.

[21] SRIVASTAVA N, HINTON G, KRIZHEVSKY A, et al. Dropout: a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1): 1929-1958.

DDoS attack detection and defense based on hybrid deep learning model in SDN

LI Chuanhuang, WU Yan, QIAN Zhengzhe, SUN Zhengjun, WANG Weiming

School of Information and Electronic Engineering, Zhejiang Gongshang University, Hangzhou 310018, China

Software defined network (SDN) is a new kind of network technology, and the security problems are the hot topics in SDN field, such as SDN control channel security, forged service deployment and external distributed denial of service (DDoS) attacks. Aiming at DDoS attack problem of security in SDN, a DDoS attack detection method called DCNN-DSAE based on deep learning hybrid model in SDN was proposed. In this method, when a deep learning model was constructed, the input feature included 21 different types of fields extracted from the data plane and 5 extra self-designed features of distinguishing flow types. The experimental results show that the method has high accuracy, it’s better than the traditional support vector machine (SVM) and deep neural network (DNN) and other machine learning methods. At the same time, the proposed method can also shorten the processing time of classification detection. The detection model is deployed in SDN controller, and the new security policy is sent to the OpenFlow switch to achieve the defense against specific DDoS attack.

distributed denial of service, software defined network, attack detection, deep learning

TP393

A

10.11959/j.issn.1000−436x.2018128

2018−02−28;

2018−05−16

国家重点研发计划基金资助项目(No.2017YFB0803202);浙江省自然科学基金资助项目(No.LY18F010006);浙江省新型网络标准与应用技术重点实验室基金资助项目(No.2013E10012);浙江省重点研发计划基金资助项目(No.2017C03058)

The National Key Research and Development Program of China (No.2017YFB0803202), The Natural Science Foundation of Zhejiang Province (No.LY18F010006), The Key Laboratory of New Network Standards and Technologies of Zhejiang Province (No.2013E10012), The National Key Research and Development Program of Zhejiang Province (No.2017C03058)

李传煌(1980−),男,江西九江人,博士,浙江工商大学副教授、硕士生导师,主要研究方向为软件定义网络、深度学习、开放可编程网络、系统性能预测和分析模型。

吴艳(1995−),女,安徽宣城人,浙江工商大学硕士生,主要研究方向为软件定义网络、深度学习。

钱正哲(1994−),男,浙江杭州人,浙江工商大学硕士生,主要研究方向为软件定义网络、深度学习。

孙正君(1993−),男,安徽滁州人,浙江工商大学硕士生,主要研究方向为软件定义网络、深度学习。

王伟明(1964−),男,浙江遂昌人,博士,浙江工商大学教授、硕士生导师,主要研究方向为新一代网络架构、开放可编程网络。

猜你喜欢
流表特征向量分组
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
基于匹配动作表模型的可编程数据平面流表归并
克罗内克积的特征向量
基于时序与集合的SDN流表更新策略
软件定义网络中OpenFlow流表空间优化技术研究进展
一类三阶矩阵特征向量的特殊求法
分组搭配
怎么分组
一种高效的OpenFlow流表拆分压缩算法
分组