文献标识码:A
DOI:10.16157/j.issn.0258-7998.2015.12.030
中文引用格式:张世轩,刘静, 赖英旭,等. 基于SDN构架的DoS/DDoS攻击检测与防御体系[J].电子技术应用,2015,41(12):113-115,119.
英文引用格式:Zhang Shixuan,Liu Jing,Lai Yingxu,et al. DoS/DDoS attack detection and defense system based on SDN architectures[J].Application of Electronic Technique,2015,41(12):113-115,119.
0 引言
软件定义网络(Software Defined Networking,SDN)[1]是一种控制平面和数据平面解耦的、可实现网络编程的创新网络体系架构。目前已有很多企业进行了SDN实践。但SDN 带来了网络架构方面革新的同时,也为安全防护体系带来了挑战,例如拒绝服务攻击、非法接入访问等。本文就SDN构架下DoS/DDoS攻击检测给出一组解决办法,综合运用信息安全中异常检测和误用检测两种思想,提出一种基于SDN的防御体系。
1 相关工作
肖佩瑶等[2]提出基于路由的检测算法,但当随机流发出时,控制器为每个流做出转发路径分析,下发流表项,影响了控制器的性能。
刘勇等[3]通过对攻击发生时网络流量变化特性进行分析,提出基于流量波动的检测算法。但在传统网络构架下,分散而封闭的控制平面并不能实时阻断异常流量。
左青云等[4]对文献[5]进行了改进,在主成分分析法(Principal Components Analysis,PCA)分析时加入了异常流量特征熵,大幅降低了误报率。但目前没有控制器提供IP对的查询API,所以要大量查询流表项,在检验算法中进行统计。IP数量非常多时,算法用时将不可容忍。
本文针对上述文献的不足提出了改进办法,在探索源地址验证方面,通过控制器与OpenFlow交换机的信息交互实现了源地址验证,总体设计更加简单。通过将DoS/DDoS检测算法与SDN技术相结合应用于网络接入层,增加了添加流表项功能,可实时地对异常端口进行转发限制。PCA是分析异常流量的一种重要方法,本文提出其针对链路流量异常的检测判断,算法用时大幅下降。
2 体系架构设计
面对形式越来越多的DoS/DDoS攻击,以往仅通过单一方法检测攻击的方式已经无法达到良好的检测效果,本文综合多项检测方法并形成防御体系,其架构如图1所示。伪造源IP地址是最常用的手段,所以第一道防线为源IP防伪,IP防伪模块通过接收到的数据报文为每个交换机端口设置动态的IP绑定,防止伪造IP包攻击。若傀儡机发送大量使用真实源IP的数据包,会被第二道防线——接入层异常检测所过滤,信息查询模块通过OpenFlow协议获取到交换机统计信息,接入层检测通过API获取到端口流量信息进行算法检验。若异常则通过静态流表插入模块对交换机特定端口施行转发限制。只有攻击流量以趋近于正常的速度发送数据包会通过检测。在第三道防线——链路流量异常检测中,用API获取到的整个网络信息进行算法检验,做出异常判断。
3 DoS/DDoS攻击检测与防御方法
3.1 源IP防伪
3.1.1 设计思想
在DDoS攻击中按攻击源地址分为真实源地址和伪造源地址,伪造源地址会使得多种放大攻击成为可能,并使攻击定位变得困难。在SDN构架下控制器对每台交换机统一管理,可以利用此优势,动态实现接口与IP的绑定。
3.1.2 设计描述
获取IP地址的途径有两种:使用DHCP服务或配置静态IP。首先在控制器启动时向交换机各端口插入将数据发往控制器的流表项,以保证对其监控,然后分别处理两种获取IP的方式。
(1)DHCP:客户端通过DHCP ACK获取到IP地址记为S,删除发往控制器的流表项,同时下发交换机目标端口仅允许S源地址通过的流表项。
(2)静态IP:控制器中设置了两个域,一个为端口控制域,存储已经被管控的端口;另一个是交换机连接域,存储交换机相连接的端口,不对这部分端口进行绑定。当数据包从某一接入端口发送到控制器进行解析时,分析源地址S,删除发往控制器流表项,并下发此端口仅允许S源地址通过的流表项。
当客户端发送DHCP Release或交换机端口失去连接时,删除上述防伪流表项。重新插入此端口发往控制器的流表项,恢复到初始状态。
3.2 接入层网络异常流量检测
3.2.1 设计思想
DoS/DDoS攻击时的流量特征是在一段时间内突然增大,且趋于平稳。因此采用差分方差变化率为测量在接入层检测异常流量。利用控制器提供的API下发异常端口的限制流表项,做到异常流量的防御。
3.2.2 差分方差优势与计算
流量波动性是衡量攻击的一个重要的指标,概率论中方差描述了数据整体的波动性,而所需要的是数据相对的、局部的波动情况,所以差分方差能更好地反映流量的波动情况。由于算法是动态检测的,所以各个统计量均依靠前一周期的计算结果。假设在t时刻,原始流量为C(t),流量的整体均值如式(1)所示:
3.2.3 攻击判断与流表下发
根据隶属函数u(t)的值,做出是否执行算法的判断。若u(t)=0,则认为攻击未发生,若u(t)=1,则认为发生攻击,以上两种情况不执行算法。当0
3.3 链路异常流量检测
3.3.1 设计思想
如果傀儡机采用接近正常的发包速率,就会让接入层检测模块陷入沉默,但攻击流量会在到达目标链路前逐渐汇集,因此采用了通过流量矩阵来统计网络流量的方法。使用主成分分析法对数据进行处理,并且计算动态阈值,判断是否存在异常。相比于IP流量对,物理链路相对稳定,数据统计简单,不会出现大量误报,且执行速度大幅增加。
3.3.2 主成分分析法异常检测
流量矩阵:每个OpenFlow交换机之间的链路流量称为SS对。流量矩阵X为t×p维的矩阵,常量t是样本数量,变量p为SS对数量,Xij表示第i个样本、第j个SS对的流量大小。
对于t×p维流量矩阵X应用主成分分析方法计算特征值与特征向量,使前k个主成分特征值和达到所有主成分特征值和的85%,前k个主成分特征向量构成正常子空间s,剩余的p-k个主成分特征向量则构成异常子空间s′。将流量矩阵X向这两个子空间进行投影。正常子空间s中的k个特征向量组成的矩阵记为P,矩阵各列的平均值组成向量记为x。设x在正常子空间的投影为模型流量x′,在异常子空间的投影为残差流量x″,如式(5)所示:
采用滑动窗口机制更新流量矩阵,正常时模型流量与残差流量大致不变,当出现异常时,残差流量会发生巨大的变化,残差流量变化值如式(9)所示:
4 实验及结果分析
4.1 实验环境说明
实验使用mininet[7]进行模拟,floodlight控制器进行网络信息的获取与流表项的下发,利用hping测试软件进行模拟攻击实验。图2为实验拓扑图,实验测试时长1 000 s,具体测试详见表1攻击说明。
4.2 测试结果说明
4.2.1 源IP防伪测试结果
源IP防伪属于功能检验,防伪率100%,图3为统计结果。在测试实验的200 s和800 s注入了伪造源IP的攻击流量,攻击结果被实时体现出来。
4.2.2 接入层异常检测测试结果
接入层检测当收到不失一般性的流量攻击时,会触发报警下发流表,结果如图4所示。图4(a)为该接入端口接收到的数据包数,图4(b)为此端口实际转发的数据包数。在流量正常时,接收即转发,所以图4(a)与图4(b)无差别。在第300 s与500 s时注入攻击流量,发生报警时,对端口进行限制,图4(b)中转发流量大幅下降,表明对攻击行为做出了防御动作,将异常流量封锁在网络外。
4.2.3 链路流量异常检测的测试结果
趋近正常速率发送数据包的主机会被接入层检测漏检,此时链路层流量检测就会起到作用,如图5所示,为保证不过分消耗控制器资源,每10 s执行一次算法。在400 s和650 s注入了DDoS攻击流量,流量残差值的变化突然增大超过依靠上一个检测周期计算出的阈值,发生报警。但攻击流量会造成流量矩阵的混乱,可能会发生可预知的误报,总误报率约5%。
5 总结
针对各式各样的DDoS攻击应该采用多种防御手段,本文利用SDN的优势获取网络状态,通过源IP地址的动态绑定,基于差分方差的接入层异常检测,基于多元统计分析的链路流量异常检测,构建了一个DoS/DDoS防御体系,并通过实验进行了验证。实验表明,此体系不仅能对各类DoS/DDoS攻击迅速做出响应,并且可以将攻击流量封锁在源头。未来研究者可以从本文的思路继续探索,提出更加先进的检测算法,完善此防御体系。
参考文献
[1] 左青云,陈鸣,赵广松,等.基于OpenFlow的SDN技术研究[J].软件学报,2013(5):1078-1097.
[2] 肖佩瑶,毕军.基于OpenFlow架构的域内源地址验证方法[J].小型微型计算机系统,2013,34(9):1999-2003.
[3] 刘勇,香丽芸.基于网络异常流量判断DoS/DDoS攻击的检测算法[J].吉林大学学报(信息科学版),2008(3):313-319.
[4] 左青云,陈鸣,王秀磊,等.一种基于SDN的在线流量异常检测方法[J].西安电子科技大学学报,2015(1):155-160.
[5] LAKHINA A,CROVELLA M,DIOT C.Diagnosing network-wide traffic anomalies[C].Proceedings of the ACMSIGCOMM.New York:ACM,2004:219-230.
[6] JACKSON J E,MUDHOLKAR G S.Control procedures for residuals associated with principal component analysis[J].Technometrics,1979,21(3):341-349.
[7] HANDIGOL N,HELLER B,JEYAKUMAR V,et al.Reproducible network experiments using container-based emulation[C].Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies.New York:ACM,2012:253-264