武泽慧 魏 强 任开磊 王清贤
基于OpenFlow交换机洗牌的DDoS攻击动态防御方法
武泽慧*魏 强 任开磊 王清贤
(解放军信息工程大学网络空间安全学院 郑州 450001) (数学工程与先进计算国家重点实验室 郑州 450001)
网络资源的有限性和网络管理的分散性是传统网络难以解决分布式拒绝服务攻击问题的重要原因。当前的防御方法存在静态性、滞后性的不足,并且难以定位攻击者。针对上述问题,该文提出一种动态防御的方法。利用软件定义网络(SDN)集中控制和动态管理的特性构建OpenFlow交换机洗牌模型,使用贪心算法实现用户-交换机连接的动态映射,通过多轮洗牌区分出用户群中的攻击者和合法用户,对合法用户提供低延迟不间断服务。在开源SDN控制器Ryu上实现原型系统,并在SDN环境下进行测试。性能测试结果表明采用该方法可以通过有限次的洗牌筛选出攻击者,降低DDoS攻击对合法访问的影响;能力测试结果则说明了在由一个控制器组成的环形拓扑结构下该方法的防御效果与攻击流的大小无关,而是仅与攻击者的数目有关。
网络安全;软件定义网络;分布式拒绝服务攻击;动态防御
分布式拒绝服务(Distributed Denial of Service, DDoS)攻击是一种由拒绝服务(Denial of Service, DoS)攻击衍生出的攻击技术[1]。攻击者借助大量受控主机向目标发起攻击,将拒绝服务攻击的一对一攻击方式扩展为多对一,因此危害更大且更难防范[2]。2015年第1季度,全球范围内发生的DDoS攻击比2014年同期增长了100%。游戏、软件等行业被攻击情况严重,平均每次攻击会造成约50万美元的损失,攻击者甚至会要求受害者支付赎金以停止攻击[3]。
传统网络中DDoS攻击难以消除的根源在其设计缺陷[1,4]。网络设计初衷是保证端到端的通信,关注的是通过发送端和接收端来实现QoS(Quality of Service)、稳定传输、安全保证等,导致网络两端很复杂,而网络本身相对简单,仅仅负责数据转发。因此,网络两端的任何一端出现恶意行为,都会给对方造成损害,网络本身不具备流量管理的任务和能力。
软件定义网络(SDN)的控制与转发分离,集中控制,动态可编程,细粒度流量审查,以及动态流规则更新的特征使其在分布式拒绝服务攻击的检测和防御上具备一定的优势。现有关于SDN拒绝服务攻击的研究多是将传统流量审查、分析方法应用到SDN中,或者利用SDN集中管理的特性提高流量审查的效率和准确度。Braga等人[5]于2010年率先在NOX控制器上实现检测分布式拒绝服务攻击的安全应用程序。控制器从网络流量中提取需要的信息,并从中提取DDoS特征。将提取到的特征输入到自组织图(Self-Organizing Map, SOM)中,使用SOM配合机器学习算法检测DDoS攻击的数据流。该方法具有较高的检测能力和较低的误报。但是受限于特征提取和机器学习算法的效率,在控制器上部署该系统后会降低控制器的处理效率。2012年Yeganeh等人[6]提出降低控制器负载的Kandoo框架,该框架不仅可以缓解DDoS攻击,也有助于增强网络的鲁棒性。Kandoo采用两层控制器结构,包括底层控制器平面和顶层控制器平面,其中底层控制器平面负责单一区域内高频度的事件处理,顶层控制器平面负责管控整个SDN,处理底层控制器无法处理的事件。采用上述方法可以在一定程度上缓解控制器DDoS的攻击流,但是该方法仅能降低负载,无法识别DDoS攻击流,不能从根本上解决DDoS攻击的问题。2013年11月, Shin等人[7]提出AVANT-GUARD技术。AVANT-GUARD通过包含Connection Migration和Actuating Triggers两项技术对数据平面以及数据到控制平面的安全性能进行了强化,Connection Migration用以防止数据平面的饱和攻击;Actuating Triggers通过给SDN交换机提供条件触发器提高了交换机的响应速度。AVANT-GUARD可以防御TCP-SYN洪泛攻击,但是其代价是牺牲了很大的系统系能,并且无法抵御应用程序层的DoS攻击,也无法防御应用层使用UDP或者ICMP协议的攻击。
针对DDoS利用僵尸网络进行攻击的问题,Lim等人[8]提出DBA(DDoS Blocking Application)的僵尸网络阻断方法。DBA作为SDN控制器应用软件安装在控制器之上,负责监控网络中的每个流量。当检测到DDoS攻击时,合法流量会被重定向到另一个备用服务器上,而攻击流则会被当前控制器阻断。由于该方法需要对每个数据流都进行监控,因此大规模应用受限;其次SDN中流规则是主动式安装,对控制器负载要求较高。
通过上述介绍可知,当前针利用SDN防御拒绝服务攻击主要集中在流量迁移中,利用SDN路由动态更新的策略实现攻击流的负载均衡,降低攻击对网络的影响。与当前研究不同,本文提出一种动态防御的方法,其核心是利用SDN的特性实现交换机洗牌,通过多轮洗牌区分出用户群中的攻击者和合法用户定位出攻击者,当攻击者被隔离后,攻击流也不会再对网络造成影响。
具体来说本文的贡献如下:
(1)提出一种OpenFlow交换机洗牌模型,可以实现DDoS攻击的防御和定位。
当前DDoS防御方法负载过高,灵活性较差。对此,本文通过交换机轮换的方式实现对攻击流的分向转发,通过交换机洗牌的方法实现攻击者的快速定位,灵活性高,负载增加有限。
(2)基于SDN集中控制和动态管理的特性提出一种服务不间断的DDoS防御方法。
本文方法利用SDN集中控制和动态管理的特性,使用控制器控制交换机轮换提供不间断服务,可以实现在DDoS攻击环境下对从攻击流中分离出的合法访问者继续提供服务。
(3)在开源SDN控制器Ryu上实现原型系统,并在具体SDN环境下进行测试。
论文组织结构:第2节概述本文DDoS攻击动态防御的原理和过程;第3节结合OpenFlow协议,提出交换机洗牌方法,并对该方法的复杂度、准确性进行分析介绍;第4节对方法进行仿真实验,通过多个对比结果阐述本文方法的可行性,并对性能进行测试评估;第5节对全文进行总结。
DDoS动态防御方法使用SDN实现动态防御,通过控制器动态管理配置OpenFlow[1]交换机(以下简称交换机),使用交换机洗牌方法完成攻击流的分离与攻击者的定位,下面对动态防御方法的体系结构进行概述。
图1所示为DDoS动态防御方法的框架图,用户的网络流量通过SDN转发至被保护的Web Server中。正常状态下,用户通过Web Server的DNS域名对其进行访问,SDN控制器通过安全通道对交换机进行配置,确定一条转发路由,由交换机负责数据包的转发。本文在交换机上部署流量吞吐率检测器,吞吐率的阈值由控制器设定。由于在用户群中潜藏攻击者,攻击者发动DDoS攻击会导致交换机的吞吐率剧增,交换机一旦检测到吞吐率大于阈值,即认为攻击者发动了DDoS攻击,SDN进入被攻击状态。SDN控制器启用交换机洗牌算法对交换机进行动态调度,该算法从所有用户中分离出合法用户,并调度交换机继续为其提供不间断服务,同时分离出攻击者并对其进行隔离定位。本文方法适用于使用SDN防御传统网络的DDoS攻击的场景,而针对SDN的DDoS攻击,除了传统的流量攻击,也存在如拓扑欺骗攻击等方式,本文方法如果应用在该场景中,则仅能防御基于流量的DDoS攻击,对于拓扑欺骗类型的攻击无效。
图1 DDoS动态防御方法框架图
2.1 交换机分层
DDoS动态防御方法使用交换机对DDoS流量进行分离,并通过交换机的洗牌算法实现攻击定位。为实现上述目标,并提高系统效率,首先需要对交换机进行分层处理。本文将交换机分为两层:代理层交换机(proxy switches)和隐藏层交换机(hidden switches),如图2所示。
图2 交换机分层模型图
其中代理层的交换机是直接面向用户端的,负责对来自用户的网络流量进行转发的第1层交换机。隐藏层交换机负责筛选后的流量转发。
2.2 交换机洗牌
本文利用SDN集中控制和动态管理的特性实现交换机洗牌算法。其实现原理如图3所示。图中7个用户(用户1至用户7,用户3和用户5是潜藏的攻击者)分别通过3个代理层交换机(S1, S2, S3)完成数据转发,其中,用户1, 2, 3由S1转发,用户4, 5由S2转发,用户6, 7由S3转发。
攻击产生时交换机S1和S2处于被攻击状态,控制器启用洗牌算法调度其它代理交换机为用户1, 2, 3, 4, 5提供服务,进入第1轮洗牌,用户1, 3, 5由S4转发,用户2, 4由S5负责转发。此时由于S5连接用户2, 4,并且S5未处于被攻击状态,因此可以判定用户2, 4不是攻击者,S4仍然处于被攻击状态,因此用户1, 3, 5均有可能是攻击者。经过下一轮的洗牌,用户2, 5即可被识别处理。从中可以看出在洗牌过程中,代理层交换机存在4种状态:Normal(N), Attacked(A), Suspected(Su), Saved (Sa)。正常状态下,当攻击产生时,状态迁移到Suspected,通过洗牌后,得到两种状态:Saved和Attacked,其中Saved状态经过路由重定向后进入Normal状态,Normal状态的交换机负责数据包的转发直至完成所有转发任务,Attacked状态的交换机将待转发的数据包丢弃,完成对DDoS攻击数据包的处理。
图3 交换机洗牌示例图
3.1 问题定义
为保证每轮洗牌中更快速地分离出攻击者和合法用户,需要实现一个高效的洗牌算法,本节对算法描述中需要的符号和问题进行定义,如表1所示。
表1 符号描述
易得
(2)
3.2 攻击者数目似然估计
(4)
3.3 交换机贪心洗牌算法
显然,当代理层每个交换机连接较少的用户时,代理层交换机被攻击的概率会降低,但是此时每轮洗牌后,被Saved的用户数目也会降低,因此需要选择一种提高每轮被Saved用户的算法,即满足
算法1描述了使用贪心算法实现的交换机洗牌过程。算法在以下3种情况下退出:(1)代理层交换机比用户多,每个用户可以分配一个代理层的交换机,二者之间可以实现一一对应,无需洗牌即可实现定位;(2)仅剩一个代理层交换机,剩下所有的用户均被分到该代理层交换机;(3)攻击者的值为0,此时无需进行洗牌。
表2的GreedyShuffle算法是一个递归算法,调用MS()函数得到满足式(5)的分配方案,表示一个代理层交换机连接的用户数目。表示按照值进行分配时需要的代理层交换机的数目。,,均表示剩余的代理层交换机数目。算法1是一个递归算法,并且容易得到其时间复杂度,当和较大时,复杂度太高,计算量太大。对此,本文使用Eger[10]提出的Stirling近似等式,化简后可得。因此算法1的MS函数中的循环可以省去,该函数复杂度将为1,算法1的时间复杂度降低为。
表2 GreedyShuffle算法
本节对上述基于OpenFlow交换机洗牌算法的性能以及使用该方法进行DDoS防御的能力进行测试。前者使用MATLAB对算法进行模拟,在算法中模拟了一定数目的用户、攻击者、代理层交换机,为方便比较,在模拟中将上述变量设置为固定值;后者在开源SDN控制器Ryu和开源OpenFlow交换机Open vSwitch上实现DDoS动态防御模块,作为Ryu控制器的一个模块加载启动。
4.1 算法性能测试
在模拟中用户和攻击者的选取根据Matsumoto[11]提出的Mersenne-Twiste模型随机产生。攻击者攻击所有与之相连接的代理层交换机,并且假设攻击者具有足够的带宽和资源来进行攻击。
图4描述了洗牌轮数、攻击者数目、代理交换机数目三者之间的关系。其中实线代表的是使用算法1隔离80%和95%的攻击者时,洗牌轮数、攻击者数目,以及代理交换机数目三者之间的变化关系;虚线代表的是隔离80%和95%的攻击者时的理论上界(根据式(5)计算得到)。与预期结果相似,当隔离攻击者的百分比恒定时,攻击者数目越多,需要洗牌的轮数也越多,代理交换机的数目也越多。图4(a)和图4(b)中,用户数目和代理交换机的值是固定的,攻击者的数目从10递增至500。图4(c)和图4(d)中用户数目与图4(a)和图4(b)相同,攻击者的数目固定为100,代理交换机的数据从40递增至500。每轮模拟执行10次,取其均值。根据图4可知,算法1的执行结果接近理论上界,可以认为是近似最优的。从图4(a)和图4(b)也可以看出当隔离攻击者的比例确定时,需要洗牌的轮数与攻击者数目之间呈现近似线性增长的关系。图4(c)和图4(d)则说明当代理层交换机数目增加时,需要洗牌的轮数会减少,并且当代理交换机数目小于攻击者数目时,变化极为明显,而当代理交换机数目大于攻击者数目时,变化趋向平缓。
4.2 DDoS动态防御能力测试
本文对基于交换机洗牌的DDoS动态防御方法进行了原型系统实现,使用Python语言开发,作为开源控制器Ryu v3.6的应用软件随Ryu控制器同时启动。使用的OpenFlow协议版本为1.1.0,代理交换机使用虚拟交换机Open vSwitch v2.3.1(拓扑图中简称OVS)完成。原型系统实现共计约3000行Python代码。
使用图5所示的拓扑结构进行测试,其中OVS- 1至OVS-5表示代理层交换机,其余表示转发层交换机;使用Ryu对交换机进行管理和配置,Ryu安装在Intel Xeon CPU、主频2.13 GHz和64 GB内存的物理主机上,并在Ryu上部署流量监测程序定时获取网络中的流量分布情况;使用5个Kali虚拟机模拟3种类型的流量,其中Agg1至Agg4表示合法流量,Agg5表示攻击流量,攻击流使用TCP SYN方式实现。
(1)抗DDoS攻击能力: 图6描述了不使用本文方法(图6(a))和使用本文方法(图6(b))时流量的带宽占用率和数据包丢失率的分布情况。数据流发送速率从时开始增加,到时开始下降。从图6(a1)可以看出,在不使用本文方法时,高带宽的数据流会耗尽几乎所有的网络带宽。图6(a2)代表了正常通信的数据包的丢失率,当Agg5的速率增大时,正常网络数据包的丢失率也开始增大。图6(b1)和图6(b2)展示了在使用本文方法后的模拟结果。当Agg5的速率开始增大时,丢包率也开始增大,但是当丢包率增大到设定的阈值10%时,本文方法检测到Agg5的异常,启动交换机洗牌方法对Agg5进行流量控制重定向,筛选攻击者,转发正常网络数据包。从图6(b1)和(b2)可以看出,部署本文方法后,攻击流量的持续时间显著变短,对带宽的占用率和丢包率均减小。
图4 攻击者、洗牌轮数和代理交换机之间的变化关系图
图5 能力测试拓扑结构图
图6 动态防御方法使用前、后的网络流量分布图
图7(a)所示是在上述测试拓扑结构下,攻击流大小与动态防御方法恢复网络正常所需时间的关系。测试中使用多个攻击者构造不同大小的攻击流对拓扑结构中的代理交换机进行攻击。从中可以看出二者近似呈现对数关系,当攻击者被隔离后,攻击者实施攻击时产生攻击流的大小对防御的影响不大,根据图7(a)可推断在1200 s时,攻击者几乎被全部隔离出,后续尽管攻击流继续增大,但对网络几乎不造成影响。
(2)与已有工具的对比测试: 与传统网络中DDoS防御工具Ice-Shield防火墙(试用版)、开源防御工具DDoS Deflate进行对比测试。其中防火墙和开源防御工具部署在Server中,采用图5所示拓扑进行测试。测试结果如图7(b)所示,横坐标是时间轴,纵坐标表示网络中总流量的变化,分别在20 s和200 s时启动攻击脚本。从图7(b)中可得到:(1)在80 s时,黑线即开始下降,表示本文方法的攻击流筛选能力相较其他两种工具较强;(2)在200~250 s之间,其余两条曲线的最低点比黑线低,并且低于0 s时刻的值,说明另外两种工具存在一定的误报,且比本文方法要高;(3)在200 s后,黑线基本保持不变,说明攻击者隔离后,再次启动攻击,对网络不会造成影响,而其它两个工具由于无法隔离攻击者,在攻击再次发生时,无法产生该防御效果。
(3)对网络负载的影响: 在控制器和交换机上实现该动态防御方法会增加数据包转发的时延,下面对其时延开销进行测试。通过测试数据包由用户发送到Web服务器的往返时间测试系统的负载开销。选择10个地理位置相距较远的用户节点组成5对测试对象。RTT根据5对节点的TCP消息往返时间确定,取100次结果的均值。吞吐率测试中的数据由10个Iperf会话组成。从表3和表4可以看出,引入采用本文方法后,节点之间的通信时延通常低于30%,而对吞吐率的影响较大。吞吐率的变化主要是由于控制器动态更新交换机流表所致,而不是算法本身的问题,建立控制器与代理层交换机之间的专用通道可提高吞吐率。
表3 代理交换机的引入对网络负载的影响
表4 代理交换机的引入对吞吐率的影响(MB/s)
图7 压力测试及对比测试的结果图
DDoS攻击始终是网络安全中悬而未决的难题,许多网站运行商选择内容分发网络(CDN),或者部署在云环境中来缓解DDoS攻击。但是这种防御方法是攻防双方资源的对抗,不能有效解决DDoS攻击问题。本文提出的DDoS动态防御方法利用SDN集中控制和动态管理的特性,通过交换机洗牌的方法,不仅可以有效防御DDoS攻击,同时能够对攻击者进行筛选定位。但是随着DDoS攻击技术的发展,动态防御的方法也要随之改进,未来可以考虑将利用SDN实现的动态防御方法与云环境配合使用,实现多维立体的攻击防护。
[1] PRAS A, SANTANNA J, and STEINBERGER J. DDoS 3.0-How Terrorists Bring Down the Internet[M]. New York: Springer, 2016: 1-4. doi: 10.1007/978-3-319-31559-1_1.
[2] YADAV V K, TRIVEDI C, and MEHTRE M. DDA: an approach to handle DDoS (Ping Flood) attack[C]. International Conference on ICT for Sustainable Development, Singapore, 2016: 11-23. doi: rg/10.1007/978- 981-10-0129-1_2.
[3] NAGPAL B, SHARMA P, and CHAUHAN N. DDoS tools: classification, analysis and comparison[C]. IEEE International Conference on Computing for Sustainable Global Development, New Delhi, India, 2015: 342-346.
[4] LIU Xia, YANG Xin, and XIA Yu. Netfence: preventing internet denial of service from inside out[C]. ACM Sigcomm Computer Communication Review, New York, NY, USA, 2010: 255-266. doi: 10.1145/1851182.1851214.
[5] BRAGA R, MOTA E, and PASSITO A. Lightweight DDoS flooding attack detection using NOX/OpenFlow[C]. International Conference on Local Computer Networks, Washington, DC, USA, 2010: 408-415.doi: 10.1109/lcn. 2010.5735752.
[6] YEGANEH S and CANJALI Y. Kandoo: a framework for efficient and scalable offloading of control applications[C]. ACM Workshop on Hot Topics in Software Defined Networks, Helsinki, Finland, 2012: 19-24.doi: 10.1145/ 2342441. 2342446.
[7] SHIN S and PORRAS P. AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks[C]. International Conference on Computer and Communications Security. Berlin, Germany, 2013: 413-424. doi: 10.1145 /2508859.2516684.
[8] LIM S, HA J, KIM H,. A SDN-oriented DDoS blocking scheme for botnet-based attacks[C]. International Conference on Ubiquitous and Future Networks, Shanghai, China, 2014: 63-68. doi: 10.1109/icufn.2014.6876752.
[9] JOHNSON N and KOTZ S. Urn models and their applications: an approach to modern discrete probability theory[J]., 1978, 20(4): 104-119. doi:10.2307/3617688.
[10] EGER S. Stirling’s approximation for central extended binomial coefficients[J]., 2014, 121(4): 344-349. doi: 10.4169/amer.math.monthly.121. 04.344.
[11] MATSUMOTO M and NISHIMURA T. Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator[J],, 1998, 8(1): 3-30. doi: 10.1145/272991.272995.
Dynamic Defense for DDoS Attack Using OpenFlow-based Switch Shuffling Approach
WU Zehui WEI Qiang REN Kailei WANG Qingxian
(,,450001,) (,450001,)
The limitations of network resource and the dispersion of network management are the two major difficulties for traditional networks to address the Distributed Denial of Service (DDoS) attacks. However, current defense methods are static and hysteresis, which are unable to locate the attackers accurately. Therefore, a dynamic defense using the two pivotal features, centralized control and dynamic management, of Software Defined Networks (SDN) is proposed. An OpenFlow-based switch shuffling model is built which employs greedy algorithm to remap user-switch link dynamically. After several shuffling, attacker could be differentiated from legitimate users and provide the latter with low latency uninterrupted services. The proposed approach is implemented in Ryu, the open source SDN controller, and the prototype is tested in a real SDN. The results of performance test show that with this approach attackers in limited times of shuffling can be isolated and the effects of DDoS attacks on legal flows can be reduced. The outcomes of defense ability test demonstrate that the efficiency of the proposed dynamic approach has nothing to do with the size of attack flow, but is only related to the number of attackers in the ring topology structure which is composed of a single controller.
Cyber security; Software Defined Networks (SDN); Distributed Denial of Service (DDoS); Dynamic defense
TP393.08
A
1009-5896(2017)02-0397-08
10.11999/JEIT160449
2016-05-03;改回日期:2016-09-27;
2016-11-14
武泽慧 wuzehui2010@foxmail.com
国家863计划项目(2012AA012902),国家杰出青年科学基金(61402526)
The National 863 Program of China (2012AA012902), The National Science Fund for Distinguished Young Scholars (61402526)
武泽慧: 男,1988年生,博士,研究方向为网络安全.
魏 强: 男,1979年生,副教授,硕士生导师,研究方向为工控网络安全.
任开磊: 男,1992年生,硕士,研究方向为SDN安全.
王清贤: 男,1960年生,教授,博士生导师,研究方向为网络与信息安全.