ComputerScienceandApplication计算机科学与应用,2019,9(4),721-730PublishedOnlineApril2019inHans.://doi.org/10.12677/csa.2019.94082文章引用:李冬,周启钊.SDN网络中DDoS攻击监测与防御方法研究[J].计算机科学与应用,2019,9(4):721-730.DOI:10.12677/csa.2019.94082ResearchonDDoSReal-TimeMonitoringandMitigatinginSDNNetworkDongLi,QizhaoZhouNetworkandComputationCenter,HuazhongUniversityofScienceandTechnology,WuhanHubeiReceived:Mar.30th,2019;accepted:Apr.12th,2019;published:Apr.19th,2019AbstractSDNisanovelnetworkarchitecturewhichprovidescentralizedcontrolofthewholenetworkwithglobalperspective.ThispaperestablishesamechanismtomonitorandmitigateDDoSattackinSDNnetwork.TodetectDDoSattackinrealtime,characteristicsofDDoSattackintraditionalnetworkandSDNnetworkaredevisedasavector.Basedonthedevisedvector,thedatacollectionmoduleofSDNcontrollerismodifiedandgradientdecisionclassificationalgorithm(GBDT)isusedtotrainmodelforanomalydataclassification.TomitigateDDoSattack,accordingtotheclas-sifiedabnormaldataofflowtable,thenetworksecuritypolicycanbeperformedbySDNcontroller.SimulatedexperimentsdemonstratethatthemechanismproposedbythispapercandetectandmitigatetheDDoSattackinSDNnetworkeffectively.KeywordsDDoS,SDN,FlowTable,GradientDecisionTreeSDN网络中DDoS攻击监测与防御方法研究李冬,周启钊华中科技大学网络与计算中心,湖北武汉收稿日期:2019年3月30日;录用日期:2019年4月12日;发布日期:2019年4月19日摘要软件定义网络(SDN)是一种新型的网络架构,具有全局视角,能够实现网络的集中管控。本文研究了SDN网络中DDoS攻击的特点和危害,设计实现了SDN网络中DDoS攻击实时监测和防御机制。在实时监测方李冬,周启钊DOI:10.12677/csa.2019.94082722计算机科学与应用面,本文综合分析了DDoS攻击的传统网络行为特征和SDN流表项数据特征后,提出了SDN网络中DDoS攻击检测特征,在进行特征去噪及降维优化后,利用梯度决策分类算法(GBDT)训练分类模型,对产生的SDN流表项数据进行异常分类。而攻击防御方面,针对SDN流表项数据的异常情况,利用SDN的全局视角配置相关参数,实时下发流表项,抑制DDoS攻击。模拟实验结果表明本文提出的DDoS攻击实时监测和防御机制能够有效地检测和缓解SDN网络中的DDoS攻击。关键词拒绝服务攻击,软件定义网络,流表,梯度决策分类Copyright©2019byauthor(s)andHansPublishersInc.ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).引言分布式拒绝服务(DDoS)是互联网面临的主要威胁之一,它通过伪造正常访问流量,对目标发动攻击,使得目标系统资源耗尽,无法提供正常的网络服务。现有的DDoS攻击检测方法主要针对传统网络架构,包括端系统的攻击流量检测与流量清洗,局部增加带宽、单点暂停服务等。这些方式在传统网络架构下曾起到过一些效果,但也具有单点视角的局限性和系统性能瓶颈等潜在问题。在服务器虚拟化和SDN部署的大环境下,由于SDN掌握完整的网络拓扑、能够实时监测全局网络流量的特性,基于软件定义网络(SDN)的思路设计中间件实时监测网络中的DDoS攻击,并用数据驱动安全,进行相应安全应急处理策略的更新,及时对网络中的受攻击状态作出响应,成为行之有效的一条思路。当SDN网络受到DDoS攻击时,攻击方会发送大量数据包,这些数据包含有不同源地址、目的地址等信息。为获取转发规则,交换机需要不断向控制器发送请求,以获得新的转发规则,控制器也需要不断响应交换机的请求,制定、下发相应规则,以至于控制器的存储资源、计算资源大量消耗,控制器与交换机的连接资源大量占用[1]。基于上述的网络受攻击状态,设计基于SDN的DDoS实时攻击监测与应急处理系统,其关键点主要包括:A、基于SDN控制器的数据收集与预处理。支持Openflow协议的控制器可以向交换机获取各类统计信息,其RestAPI提供可编程接口,针对SDN环境中DDoS攻击进行特征设计与优化,如何将数据收集粒度细化到SDN流表项级别,采用多线程向每个交换机发送请求,并行的将返回数据按照特征格式进行数据预处理,是数据收集模块需要解决的核心问题。B、DDoS攻击异常流表项数据分类模型训练。SDN交换机流表项包含基础数据特征丰富,针对DDoS攻击带来的数据异常,为了达到较高的分类准确率,可基于较广的范围多元化的设计特征,再根据特征贡献权值和特征关联系数进行降维。在这样的情况下,采用哪种类型的分类算法及分类模型设计方式,能够适应SDN流表项数据多维度的数据特征,对于实时监测SDN网络中的DDoS攻击带来直观的效率提升,将十分关键。C、基于SDN控制器的DDoS攻击应急处理的实现。由于DDoS攻击IP欺诈的特性,对于其来源的定位较为困难,本系统的应急处理策略将着眼于细粒度的定位受攻击的网络边缘交换机的端口、涉及传输层协议等信息,由此可实时制定精细的应急处理策略。如何根据异常流表项数据中的信息,进一步驱动SDN控制器进行安全策略下发,暂时闲置匹配相关端口、协议等的数据转发,达到初步缓解DDoS攻OpenAccess李冬,周启钊DOI:10.12677/csa.2019.94082723计算机科学与应用击的效果,是应急处理模块需要重点设计解决的问题。2.相关工作斯坦福大学等多家研究机构一直致力于SDN网络验证和调试与SDN控制层安全方面的研究[2],将原型系统在多个SDN控制器平台实现并应用于实际的校园网。一些国内外知名企业发布了云数据中心SDN安全解决方案[3],取得了一定安全防护效果,但缺少实际的应用场景。在SDN网络中,控制器集中管理网络设备,增大了网络安全风险[4]。文献[5]利用NOX控制器以及OpenFlow技术提出了一种轻量级的DDoS识别方法,通过提取OpenFlow流统计信息中与DDoS攻击相关的元组,采用人工神经网络方法进行降维处理,从而识别DDoS攻击。该方法与传统方法相比,利用SDN网络全局视图的特性,但其数据粒度较粗,缺少实际应用场景,也缺少有效的应急策略。针对网络大聚集流量的攻击识别,文献[6]利用OpenFlow交换机能够统计流数据的功能,设计了一种识别大规模聚集流量的功能。冲突检测是一种有效探测DDoS攻击的方法,文献[7]对冲突探测进行了说明。运用SDN的全局视角,文献[8]的模型很好的实现了精准实时流量的监控。而在实际应用场景方面,在数据中心的实用性无疑是DDoS攻击检测系统重要的测试场景,文献[9]设计了基于MAC地址进行溯源的数据中心标签系统用于实时的攻击定位。基于Lin等人的研究[10],在SDN架构下配置第三方入侵检测系统以丰富数据监测方式,是未来在数据中心环境搭建各类数据驱动安全系统行之有效的思路。3.系统描述3.1.系统架构图1是本文设计的SDN网络中DDoS攻击实时监测和防御系统框架,系统采用Floodlight作为SDN网络的控制器,利用RestAPI整合实现了DDoS实时监测与防御功能。在控制器内分别设计了数据检测和应急处理两个功能模块,同时基于机器学习建立了数据分析模块,各个模块通过文件系统进行的数据存储、读取和交互。Figure1.Architectureofglobalview图1.全局结构图3.2.SDN数据收集数据收集主要是利用在OpenFlow协议中控制器与交换机之间通过OFPT_STATS_REQUEST和李冬,周启钊DOI:10.12677/csa.2019.94082724计算机科学与应用OFPT_STATS_REPLY消息进行的数据交互(图2),控制器向交换机获取的各类统计信息,包括Flow、Port、Queue和Table的统计信息。本文模拟所用FloodLight控制器中的数据收集通过Read-State消息实现数据传输,可以针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护,同时获取相关信息以供其他模块调用。Figure2.Principleofdataqueries图2.数据交互原理图在具体实现方面,本文采用多线程的方式,将每个交换机的消息由一个线程获取,线程之间并发执行。首先开启Floodlight中的数据收集线程statisticsCollector,然后由SDN控制器向每个交换机发oftp_stats_request,当交换机返回oftp_stats_reply之后,开启数据预处理线程,加入线程池管理,最后处理结果写入文件。3.3.数据分析为了研究SDN网络中DDoS攻击的特征,本文数据分析主要基于以下三个方面进行特征设计:A、世界经典入侵检测数据集KDD99++(2013年重制)中的传统网络数据特征设计方式;B、SDN网络中DDoS攻击引起的流表及流表项数据变化;C、FloodLight流表数据收集模块基础数据格式。基于以上三种方式,DDoS的攻击特征维度超过30,然而,基于高维的数据特征,将为控制器带来巨大的数据收集和预处理的成本,此外在分类模型训练方面可也可能带来“维度灾难”以及过拟合的现象。Figure3.Rankingoffeatureweight图3.特征权值排序利用梯度决策算法以及特征关联分析,可对于特征对于分类结果的影响权值进行计算和排序(图3),最终,系统以两类粒度作为基本的特征维度标准,能够适用于不同的安全场景,在时延和精度方面各有优势,由此,本文设计了7元组快速检测模型和16元组精准检测模型。主要的特征设计结果如表1、表2。李冬,周启钊DOI:10.12677/csa.2019.94082725计算机科学与应用Table1.16indexesofDDoS表1.16元组特征No.FEATURENAMEILLUSTRATION1DURATIONDurationofflowentry2PROTOCOL_TYPEProtocoltypeoftraffic3BYTESBytesoftraffic4LANDSourceofflowentry5DROPActionofflowentry6SDIP_COUNTpkswithsam