SDN环境下DDoS攻击检测研究进展
2019-03-12陈豪杰贾创辉邵维专
陈豪杰,贾创辉,邵维专
(四川大学计算机学院,成都 610065)
0 引言
当前网络用户不断增多,网络规模不断扩大,传统网络架构面临网络结构复杂,网络难以管理等诸多问题。传统网络的这些问题,主要是有其网络控制层和网络转发层相绑定造成[1]。针对当前传统网络的这些问题,软件定义网络作为新一代网络架构被提出[2]。
SDN网络实现了网络控制平面和网络转发平面的分离。SDN网络功能主要由SDN控制器和SDN交换机实现,SDN控制器决策网络流的路由,SDN交换机实现网络包的转发,实现了控制和转发的分离[3]。SDN控制器实现了网络管理的高度中心化,一旦SDN控制器受到网络攻击,其管理的网络将会失去控制而瘫痪,因此,SDN控制器的安全是SDN网络环境下的重要安全问题[4]。其中,针对SDN控制器的DDoS攻击可以造成SDN控制器节点的失效,SDN控制器与SDN交换机连接资源被DDoS攻击占用,SDN控制器无法对SDN交换机转发规则请求给以响应,严重威胁SDN网络的正常运转。
SDN技术发展以来,国内外学者针对SDN环境下的DDoS攻击检测进行了大量研究,本文首先简要介绍了SDN概念和DDoS攻击检测的相关技术,然后基于前人基础对现有的SDN环境下检测DDoS攻击方法研究成果进行了总结,归纳分析了几种典型检测方法的工作原理和技术特点以及优缺点,最后对SDN环境下的DDoS检测方法的发展趋势进行了探讨。
1 SDN基本概念
传统基于TCP/IP协议的网络经过多年来网络规模的快速发展,其僵化固定的网络体系越来越难以满足当前复杂的网络应用需求,为解决传统网络当前面临的诸多问题,SDN作为一种新型的网络架构理念被提出,其核心思想是网络的控制面和转发面的相分离,例如将传统网络设备的路由控制模块和数据转发模块分离出来,通过集中式的控制器对各种网络设备进行管理配置。
SDN的体系结构逻辑上可分为三层,图1为SDN结构图,由下到上分别为基础设施层,控制层以及转发层。基础设施层主要是转发网络设备,对SDN网络中的网络包进行转发;中间的控制层是SDN网络的核心,实现网络控制的中心化,向上提供北向接口,向下提供南向接口,通过南向接口控制基础设施层的网络转发,通过北向接口对应用层提供网络管理功能;应用层包括一些根据具体业务需求实现的网络应用程序。SDN网络控制集中化特点实现对整个网络流量信息的即时获取,可敏锐感知网络状态的变化,适合在此基础上部署相关安全应用。
图1 SDN网络体系架构
1 DDoS攻击检测
传统TCP/IP网络功能上是哑铃型结构,网络只负责数据包转发,网络攻击检测由客户端完成,造成分布式拒绝服务攻击成为当前互联网重要威胁[5]。针对传统TCP/IP网络下的DDoS攻击检测已有大量成熟的研究成果。从检测信息来源上看[6],有基于流量变化的检测方法、基于同协议不同类型数据包数比例的检测方法、基于源地址数量及分布变化的检测方法、基于数据包头统计信息变化的检测方法、基于链路拥塞和时延测量上的检测方法以及基于行为分析的检测方法。从检测算法上分类[7],传统TCP/IP网络下对DDoS的检测可分为基于误用的检测方法和基于异常的检测方法,基于误用的检测方法主要利用模式匹配和模型推理,基于异常的检测方法主要包括统计检测、模式检测、人工智能检测和机器学习检测,后者较前者优势在于可以检测出未知类型的DDoS攻击。正是由于传统网络的复杂型,造成了对DDoS攻击检测的复杂性,不同检测方法只有在一定的条件范围内才能有效发挥作用,传统网络下缺乏通用且高效的检测方法。
2 基于SDN的DDoS攻击检测技术分析
SDN网络中,控制器集中对网络进行控制,利用SDN控制器对网络状态感知的敏感性可以方便对网络环境中的分布式拒绝服务攻击进行检测感知。当前,在SDN网络中对DDoS攻击检测方法研究热点主要是利用统计分析和机器学习方法,基于异常探测技术部署在SDN控制器中对网内DDoS攻击进行检测。
2.1 基于熵的检测方法
熵作为统计学概念表征了特定数据集的随机性,熵越高,该数据集的数据发散性越强,熵越低,该数据集数据发散性越弱。基于熵异常的检测方法可根据熵值高低判断当前状态是否处于异常被攻击状态。
(1)检测原理和方法
K.Giotis等人提出了一种在SDN网络环境中防御DDoS攻击的体系[8]。图2为该方法防御体系,由三个模块组成,分别是收集模块实现对SDN流数据的收集统计,异常检测模块主要实现对流数据的分析检测,异常缓解模块实现对异常攻击的防御。
图2 基于熵防御体系
在异常检测模块中,该体系采用基于熵的基本的异常检测方法。在收集模块中,采用sFlow网络包采样技术对SDN网络中的网络流信息进行收集并转交给异常检测模块,异常检测模块负责基于熵的异常检测算法的执行。与SDN网络中流相关的网络特征主要是源地址、目的地址、源端口和目的端口,因此,在检测中,该方法定时对收集到的流信息这四个网络特征分别进行熵值计算,并将这四个网络特征计算的熵值范围标准化在(0,1)内,方便不同网络特征的比较。通过网络特征的熵值变化检测出DDoS攻击。
(2)优势与局限性
该体系是SDN网络下对DDoS攻击的整体防御体系,就检测DDoS攻击功能而言,检测方法采用sFlow采样收集信息,较传统OpenFlow中的流信息收集降低了SDN网络中转发层和控制层的负载,并将流信息统计收集功能和SDN控制层解耦,降低了对SDN网络性能的消耗,这是其检测DDoS攻击的优势所在。但同时,该检测方法需要定时对流信息进行熵值计算,这种阶段性计算任务提高了SDN控制器的负载,同时也提高了对攻击检测的反应时间,这是该检测方法的不足之处。
2.2 基于优化的KKNNNN的检测方法
KNN算法(K-Nearest Neighbor Algorithm)是一种传统的机器学习算法,通过对不同特征值的距离进行计算分类。其基本思想是,如果一个样本在特征空间中的k个最相似的样本中的大多数属于一个类别,则判定该样本属于这个类别,刻画“最相似”的尺度为该样本在所选取的多个特征值上与k个样本的欧氏距离。可将KNN分类器引入SDN网络对SDN网络流进行基于异常的DDoS攻击检测。
(1)检测原理和方法
肖甫等提出了一种SDN网络中利用优化的KNN算法检测DDoS攻击的方法[9]。该检测算法实现在OpenFlow协议的SDN网络中,由3个模块组成,分别为流表收集模块、流特征提取模块以及KNN分类器模块。流表收集模块通过OpenFlow协议收集SDN交换机回复SDN控制器的流表报文得到,该收集动作定时周期性执行。流表收集模块再将流表信息转发给流特征提取模块,该方法选取了五个典型的与SDN网络中DDoS攻击相关的流特征,将提取的五个流特征信息转发至KNN流量识别模块。KNN流量算法识别模块基于KNN算法对流量进行识别分类判断是否为DDoS攻击流量,普通的KNN算法存在计算时间过长,计算开销大的缺点,该算法对传统KNN算法进行优化,使用基于索引的KD-Tree数据结构存放学习样本。并在学习样本时,将样本的正常流和攻击流比率设置为1:1,防止了KNN算法学习样本时由于样本不平衡最后造成的分类误差。该检测方法部署在NOX控制器上进行实验,相较采用SVM的检测算法表现出较高的检出率和较低的误警率。
(2)优势与局限性
该检测方法基于优化的KNN算法,算法实现上更简单,同时,KNN算法支持增量学习,所以该检测方法可以实现边学习边检测,不需要像其他检测算法需要大量学习样本进行模型训练,更适合于不断有新的攻击数据产生的DDoS检测中。该检测方法不足之处主要在于,其对SDN流表收集模块部署在SDN控制器中,控制器需要定时对SDN交换机请求流表报文,相较于2.1小节的利用sFlow收集流信息,提高了SDN控制器的负载并占用了一定带宽。总体而言,该检测方法利用了机器学习中KNN的分类算法,实现简单,部署方便,具有较强的实用性。
2.3 基于GGHHSSOOMM的检测方法
GHSOM(Growing Hierarchical SOM)是一种改进的SOM算法,与传统SOM的两层固定的神经元网络结构不同,GHSOM的神经元可以纵向生长和横向扩展[10]。如图3所示,从第0层开始有一个神经元,首先扩展到第一层四个神经元,再完成第一次SOM映射,随后在满足相应条件下在重复进行SOM映射过程中,可以进行横向扩展或纵向增加新的神经网络层。GHSOM网络较SOM网络结构更加灵活,数据处理效率更高。
图3 GHSOM扩展示意图
(1)检测原理和方法
姚琳元等提出了一种基于GHSOM算法的SDN网络下DDoS攻击检测方法[11]。该方法同样在控制器中部署检测方法模块,模块主包括四部分,分别为流信息采集、7元组提取、数据训练与分析和命令下发。流信息采集负责向控制器获取网络流表信息。7元组模块是该方法亮点之一,该检测方法针对SDN网络下所受网络攻击主要是网络层和传输层的特点,选取了基于被攻击对象目的地址的7元组特征。在数据训练和分析部分,该部分采用GHSOM方法,对上一部分流信息采集获取的信息进行训练检测。其后的命令下发部分根据检测结果下发相应的安全指令。该检测方法在OpenDayLight仿真平台上进行了实验,三种由低到高的攻击速率下的加权检测率达到95.7%。
2.4 基于深度学习混合模型的检测方法
传统机器学习分类方法需要对输入特征进行手工提取,提取特征的好坏对模型分类效果有较大影响。深度学习方法通过深层网络对输入数据深层特征进行发现提取和自动学习,已在计算机视觉和自然语言处理领域已经得到广泛应用。可以将深度学习方法应用于SDN环境下DDoS检测提高检测效果。
(1)检测原理和方法
李传煌等提出了一种SDN环境下基于深度学习混合模型的DDoS检测方法[13]。其架构如图4,采取DCNN(Deep Convolution Neural Network)和 DSAE(Deep Stacked AutoEncoder)混合方式。该方法将SDN交换机流表中的部分特征字段作为自动获取的流表特征向量,同时提取了5项特征作为手动获取的流表特征向量,将两种流表特征向量组合为模型输入数据。经过实验调参,构建了3个卷积层,2个最大池化层和2个全连接层的最优DCNN网络模型,基于有标签的训练数据对模型进行训练;同时对DSAE模型进行训练获得各层权重,去除解码层采用Softmax分类器检测。实验显示,该混合检测模型在输入特征数量为26个的情况下达到了98.53%的高准确度。
(2)优势与局限性
与传统机器学习检测方法相比,该方法采用两层混合深度学习模型,检测中表现出了更高的检测准确度,更低的误报率,表现出更好的检测效果。同时,该检测模型输入特征主要为流表特征和自定义的特征,同时检测阶段采用训练好的深度学习模型,对计算资源需求不高,适合部署于SDN控制器中。但是,在
(2)优势与局限性
与 Braga等提出的基于 SOM(Self-organizing Maps)的检测算法相比[12],GHSOM检测算法更加灵活,占用更少的系统资源,更适合于SDN网络下的DDoS攻击检测;该检测方法采用的7元组特征较SOM检测算法选取的特征而言,更加准确地刻画了SDN网络下的网络攻击特征,实验中将该检测方法的7元组和SOM检测方法的6元组进行对比,表现出更高检测率。该GHSOM检测方法仍有一定局限性,其训练过程采用批量训练,如果一次得到所有训练样本学习后就不再进行知识更新,因此在检测的动态适应性和扩展性方面上存在局限。与前两类检测方法类似,该检测方法同样需要固定周期性的对流信息进行取样和检测,增加了控制器负载和反应时间。DCNN模型训练阶段,作为有监督训练,该方法需要大量有标记的训练数据,SDN当前网络下有标记DDoS攻击训练数据的获取是影响该方法检测效果的重要因素。
图4 基于深度学习混合模型的检测架构
3 结语
SDN技术将网络控制层面和转发层面解耦,网络由传统网络的结构僵硬管理复杂变为易扩展可编程,更进一步实现了网络的自动化。执行SDN网络中心化管理功能的控制器负责全网络管理,对网络状态信息实现了集中的监控和更细粒度的控制。面对传统网络主要安全威胁DDoS攻击,SDN网络控制器这一特性在检测防御DDoS攻击上有巨大优势。
本文简要介绍了当前SDN网络下DDoS攻击检测方面相关检测方法,并分别分析了其优势和局限性。当前,SDN网络下的DDoS攻击检测方法研究主要归类为机器学习方法和统计学习方法,由前文分析,两种方法各有优劣。在方法实现上,当前检测方法主要由部署在SDN控制器中的功能模块合作完成,采用循环周期的方式进行定时收集信息执行检测。虽然在之前研究中取得了不少成果,但还有一些需要研究的内容:第一,检测算法的改进,例如虽然基于GHSOM神经网络的学习算法无论在检测识别率和自学习能力方面都有较好的效果,但其采用的批量训练方式有其局限性,考虑对算法进行在线学习的改进;第二,在检测架构上,当前主要检测方法采用循环方式定时对SDN网络信息进行收集并检测,无论当前网络状态是否异常,都需要执行复杂的检测算法,对系统负载较高,考虑在进入更细粒度检测前对网络进行监控,网络出现异常再进入具体检测环节,降低负载;此外,网络信息收集是SDN网络下检测DDoS攻击准确性前提之一,相关通信协议的完善也是未来的研究方向。