基于基于SDN构架的构架的DoS/DDoS攻击检测与防御体系
攻击检测与防御体系
针对DoS/DDoS的攻击检测算法大多应用于攻击的目的端,只能实现检测效果、并不能缓解攻击的问题,提出利
用SDN架构的集中控制等特点,在攻击的源头实现流量实时监控,使用源IP防伪、接入层异常检测、链路流量
异常检测形成多重防御体系,尽可能早地发现攻击,逐渐过滤异常流量,实现网络层DDoS攻击在源端的检测和
防御。提出防御体系概念,便于应用更先进的检测算法完善防御体系。
0 引言引言
[1]是一种控制平面和数据平面解耦的、可实现网络编程的创新网络体系架构。目前已有很多企业进行了SDN实践。但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
采用滑动窗口机制更新流量矩阵,正常时模型流量与残差流量大致不变,当出现异常时,残差流量会发生巨大的变化,残
差流量变化值如式(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