赵桦筝 徐萱 乔俊博 孙岭新
摘要:在网络多样化的趋势下,网络受众范围不断扩大,网络安全问题越来越突出。传统的安全架构已经难以应对复杂的网络安全现状,软件定义网络(Software Defined Network, SDN)为解决安全问题提供了一种新思路。基于SDN,提出了新型安全管理体系架构SDSM(Software Defined Security Management)。该架构能够为用户提供全面且可自定义的网络安全服务,以双控制器作为关键组件,可通过北向API接口提供多种多样的原子服务。针对防治DoS和DDoS攻击做出了详细介绍,并提出了解决SDN本身可能受到DDoS攻击的方法。相比于传统网络安全架构,SDN集中控制的特性使得SDSM简化了管理,增强了安全性,提升了网络安全服务能力。
关键词:网络安全;软件定义网络;双控制器;分布式拒绝服务攻击;拒绝服务
中图分类号:TN915.08 文献标识码:A
文章编号:1009-3044(2019)12-0051-04
The Security Management Architecture basing on SDN
ZHAO Hua-zheng , XU Xuan, QIAO Jun-bo, SUN Ling-xin
(Software and Applied Science and Technology Institute, Zhengzhou University, Zhengzhou 450003, China)
Abstract:In the trend of networks diversification, the scope of the network users is expanding and the network security issues are becoming more and more prominent. Nowadays, it's difficult for the traditional security architecture to deal with the complex network security issues. Software Defined Network (SDN) proposes a new way to solve these security problems. This paper presents a new security management system based on the architecture of SDN named SDSM (Software Defined Security Management), which can provide users with comprehensive and customizable network security services. With dual controllers as key components, SDSM can provide a large variety of atomic services through northbound API interface. This paper gives a detailed introduction to the prevention and control of DoS and DDoS attacks, and puts forward the solution to the possibility that DDoS attacks on SDN itself. Compared with traditional network security architectures, the centralized control of SDN helps SDSM simplify management, enhance security performance and improve network security service capability.
Key words:Internet security; Software Defined Network(SDN); dual controllers; Distributed Denial of Service(DDoS); Denial of Service(DoS)
1 引言
隨着近年来虚拟化技术、软件定义网络[1](Software Defined Network,SDN)的快速发展、逐渐应用和不断完善,如今,传统的安全防护方法已经无法较好地适应当下新的网络安全需求。为解决这一问题,学术研究领域和工业应用领域开始在软件定义安全(Software Defined Security,SDS)方面积极地开展探索与实践工作。
互联网工程任务组(IETF)于2012年11月发布了SDN架构的安全标准,主要研究了SDN控制器的安全性要求,以及应用与内嵌应用之间安全策略的可见性等安全问题,但并未给出应对SDN中安全威胁的方案。
软件定义安全( SDS) 架构虽然有极强的可塑性,但这也代表了它的不成熟以及未来发展的不确定。SDSM比SDS的初步架构更加完善,注意到了由于SDN的开放性,其本身也易受到DDoS攻击的问题,解决了其可能存在的安全隐患问题。
FRESCO框架[2]虽然具有模块化的可扩展编程结构,但未实现深层次的安全防护。虚拟化的安全设备( VSA)架构虽然与传统安全架构衔接紧密,但未在本质上改变传统架构,缺乏创新。
本文借鉴了Qiu Xiaofeng等人的基于SDN的新型web架构[3],使用双控制器:标准SDN控制器(NC)与安全与管理控制器(SMC),将安全服务作为原子服务发布;利用SDN极强的可编程性,定制多项安全服务。
2 SDSM安全管理体系架构
SDN控制器强大的可编程性在带来更多的创新服务的同时,也可能会因接口的滥用导致DDoS攻击相关问题。本文提出的SDSM(Software Defined Security Management)作为一个较为完整的安全管理体系架构,不仅在SDS的框架基础上进行了实现与改进,还注意到了SDN本身可能受到DDoS攻击时的相关问题,并提出了解决方案。
新型安全管理体系结构SDSM利用OpenFlow协议,通过北向REST API接口以及控制器的集中控制,实现了安全管理的集中化,并支持网络的编程与扩展。
SDSM的主要特点如下:
1) 利用SDN提供的可编程性,组合支持原子服务,更快速地进行服务开发;
2) 双SDN控制器,除了标准的SDN控制器(NC)外,还在体系结构中设计了安全与管理控制器(SMC);
3) 在使用SDN技术的同时考虑到了SDN开放性可能造成的DDoS攻击安全隐患问题。
如图1所示,为SDSM的整体架构设计,图1中的虚线部分为主要控制模块,其主要部件为SMC(安全管理控制器)。SDSM一共可分为三层:SDN基础设施层、资源协调控制层、原子服务层。
2.1 SDN基础设施层
在流的传递、阻塞或重复中,物理设备上产生的安全数据及事件可通过NC抽象为资源,同时感知流和包的状态,通过OpenFlow协议,将其抽象为网络数据资源,即NC控制了基础设施层的数据流量。
2.2 资源协调控制层
资源协调控制层作为连接原子服务层和SDN基础设施层的中心控制层,主要完成安全事件、安全数据等资源的分类管理,并完成资源同步等事项。
在资源协调控制层,我们使用双控制器结构[3]以实现更高效的安全管理,分别为传统SDN控制器(NC)和安全与管理控制器(SMC)。
安全与管理控制器(SMC)接收SDN基础设施层传输的各种信息,并将其抽象为不同的数据资源,放置在资源池中,同时提供相应的资源信息。而对资源的控制作用也被封装在REST API内,资源协调控制层通过北向接口与原子服务层相协调,资源池中的资源可以通过北向REST API被原子服务层调用,以此来实现应用层中的各种原子服务。
而对于传统SDN控制器(NC),我们在其中添加一个SMC代理,通过添加的SMC代理实现东西接口。SMC通過西行接口来完成两个控制器之间的信息交互,NC通过SMC传输回来的流处理命令,下发相应的调整策略,且负责控制和管理OpenFlow数据流,并构建出SDN网络的全局视图,让我们从宏观对网络进行把控。
综上,我们通过资源协调控制层整合SDN控制平面,加强对资源的控制和优化各种资源之间的协调。同时,基于全局信息的三层体系结构将各种原子服务关联在了一起,也为重构安全服务并将其与原子服务紧密结合提供了新的可能。
2.3 原子服务层
在SDSM三层架构中,安全原子服务可以通过软件定义的方法进行重组并发布。将各种安全服务按照各自的功能模块进行划分,并分类重组,将其作为安全原子服务发布,以更好地实现SDN提供的创新功能,而且能够更好地提高SDN安全管理体系架构的灵活性、可操作性并大大降低总成本。
2.4 安全管理控制器(SMC)
SMC提供南向接口与北向接口,分别服务于安全设备和普通应用程序。在此基础上,SMC借鉴了NC的OpenFlow交换机和应用程序接口,添加了西向的资源池接口,并为NC提供接口。
SMC的主要组成架构如图2所示。我们在NC中嵌入SMC代理来实现双控制器之间的信息交互。流轮询通过NC获取流条目,更新全局流状态表。事件调度程序负责将高级应用程序策略传递给策略解析器,策略解析器将其整理为流命令,直接下发给安全设备。通过推流器,由基于OpenFlow的流命令告知NC,来进行对流命令的事件是SMC内部的关键交互机制。如图2所示的事件调度程序是SMC的核心。在SMC事件总线中,不同组件之间的事件主要基于事件订阅和异步触发器进行交互。为了更好地服务于客户端和服务器,大多数组件提供REST API来实现松耦合结构。
3 实验分析
我们通过将以下三个原子服务模块与传统方式进行对比,来验证该架构的合理性。
3.1 模拟环境
该验证需在Mininet仿真环境中完成。首先创建两个虚拟机,分别命名为ODL和Mininet。在ODL中选择安装OpenDaylight Carbon版本的控制器并带有wireshark,在Mininet中安装支持OpenFlow1.3协议的Mininet和wireshark。
3.2 DoS攻击防治服务模块
DoS攻击即拒绝服务攻击,包括SYN FLOOD、IP欺骗、ICMP FLOOD等,攻击报文主要可分为破坏报文、欺骗报文、异常报文三类。
3.2.1 具体解决方案
通过策略服务输入安全策略,反DoS应用程序使用粗粒度模式订阅数据。例如,当只需要保护部分重要网关时,反DoS应用程序可以通过进行flow.dstAddr = ref.netAddr来实现,其中ref.netAddr是受保护的网关的IP地址。流条目将通过FlowPolling从NC的API中轮询,并通过SMC中的事件调度器推送到反DoS服务器中。我们可设置FlowPolling每5秒查询一次流表信息。
在检查粗粒度模式后,流监控器和检测器可以进行基于流的细粒度模式匹配。首先利用NC的OpenFlow计数器,进行带宽流量统计。接着为每个客户端建立相应的征信系统。在如表1所示的违规次数哈希表中统计每台主机的违规次数。设置阙值为S(i)=r1*C(i)+r2*M(i) (r1+r2=1)其中,S(i)是第i个服务器的负载量,C(i)是第i个服务器的CPU的使用率,M(i)是第i台内存的使用率。
当检测器检测到该主机的违规次数达到阙值时,将触发相应的安全策略。然后,策略解析器将策略解析为标准的OpenFlow命令,并将其推到NC上的SMC代理上,从而控制打开虚拟交换机以相应地将流传递、删除或重定向,以便进一步检测或清理。
3.2.2 SDSM解决DoS攻击的优势
NC将控制层与数据转发层分离以获得全局视图。通过这种方式,可以集中控制整个网络的数据转发,这有助于检测网络安全问题。当遇到DoS攻击时,可以制定出相应策略并将其及时传递到每个网络节点,以快速调整资源的部署,例如带宽等。使得网络拥塞、冲突等问题得到快速解决,为用户提供更优质、舒适的网络使用体验。同时,开放的北向REST API接口为引入第三方的流量监控设备和清理虚拟功能模块提供服务。并且虚拟化的解决方案使网络维护成本大幅降低,使得SDSM成为一种性价比极高的安全服务架构。
3.3 DDoS攻击防治服务模块
3.3.1 触发检测模块
在目前的网络环境中,DDoS攻击的方式呈现多样化,同时应对DDoS攻击的方法也更加复杂。本文提出了一种应对DDoS攻击的集检测,回溯为一体的新型解决方法。为实现这个解决方案的轻量化与动态化,我们针对检测模块提出了SD-T&D触发检测模块,即仅针对目的IP进行检测。SD-T&D触发检测系统的触发模块用于检测Packet_In消息的异常突发。它使用exact-STORM算法[4]来判断Packet_In的到达速度是否异常,如果有异常,系统将通过触发进入检测分类阶段,反之,系统将继续收集Packet_In消息。
SD-T&D触发检测模块的检测模块利用基于 XGBoost 分类器的特征值[4]进行检测。不同于文献[5],为了避免控制器过载,本文中仅利用目的IP熵(dstIP-entropy)结合端口速率(记作Vport)的加速度进行检测,该目的IP熵是由控制器从Packet_In消息的Data字段中提取并计算得到的。在正常的网络状态中,从Packet_In消息中提取的特征值dstIP-entropy遵循正态分布。而发生DDoS攻击时,随着目标主机或服务器将收到来自许多攻击源主机的大量请求,窗口时间内源IP的随机性增高,他们对目的IP的访问程度也将增高,进而造成目的IP的熵值和目的端口的熵值明显减少,而源IP的熵值将明显增加。在此基础上,再进行基于端口速率(Vport)加速度的检测。通过实验给出正常网络状态的端口速率的標准值,当端口速率超过预定义标准值的上限,便可预判DDoS的发生。在提取以上特征值之后,我们利用XGBoost算法构造流条目分类器进行分类检测。
3.3.2 回溯模块
回溯在抵抗DDoS攻击中起着重要的作用。在传统网络中,网络具有匿名性、脆弱性和无转台性,黑客可以比较容易地通过一些特殊手段进行自我隐藏。目前存在一个比较可行的基于端口速率的DDoS攻击回溯机制[6]。该回溯机制利用SDN控制器来获取网络内交换机的端口速率信息,利用该速率的变化情况和网络链路信息来进行回溯。此方法在DDoS攻击回溯方面有一定的效果,但是该回溯方法仅仅基于端口速率,这就很容易被攻击者改变攻击策略致使控制器检测不到端口速率的突然变化。比如增加攻击时延或者减少攻击包的数量,或者使用更为先进的黑客攻击算法等。为了对攻击做更快的反应,本文提出了一种与上述触发检测模块配套的攻击回溯的方法来对DDoS攻击源进行跟踪。在触发检测阶段,将流统计消息的分析结果存储在一个数组G(i)中,并将其发送给回溯模块。回溯模块将会根据触发检测模块的分析结果和SDN控制器捕获的拓扑来持续分析数据流量统计消息,以找到攻击源切换。具体的攻击跟踪方法如下。
只要触发检测模块检测到网络中存在DDoS攻击,那么系统就会立即启动回溯模块使之进入相应的回溯状态。回溯模块是跟踪状态的主要组件。作为判断交换机是否在攻击路径上的一个主要模块,如图4所示,它利用同样训练好的XGBoost模型进行攻击检测。等到成功地找到攻击路径中的交换机后,利用网络拓扑、攻击目的IP和标记交换机的组合以及数据包通过OpenFlow交换机时交换机的端口速率,按照攻击流量通过的顺序确定整个攻击路径。本文使用的回溯机制的主要步骤如下。记录经过每个交换机的总流条目的数量(sFlow)和数据包通过OpenFlow交换机时交换机的端口速率(Vport)。由于端口速率求导后得到是速率的加速度,更具有表现性,所以用端口速率的加速度代替端口速率的值。检查模块返回的流统计消息数组G(i)中“1”代表恶意流,“0”代表良性流,然后得到判断标准:
[Tra=(Vport)'Sflow×i=0SflowMAX{G(i)}]
用Tra值来确定该交换机是否位于攻击路径上。如果恶意流条目的数量超过了预定义的上限,或者Tra值高于预定义值,则该交换机将被标记为位于攻击路径上的恶意交换机。否则,它将被标记为一个良性交换机。利用全局网络拓扑、目的IP和标记恶意交换机相结合的方法,可以准确地找到攻击流量经过的交换机的顺序,从而确定攻击路径。具体的Tra的预定值通过适当的实验不难得到。
3.4 针对SDN本身可能受到DDoS攻击时的防治
3.4.1 SDN本身可能受到DDoS攻击
尽管SDN拥有可扩展编程、可集中控制等优势,可以便捷有效地检测和防御DDoS攻击。但同时,SDN的控制平面与数据平面解耦分离,攻击者可能会对OpenFlow交换机、SDN控制器等发起DDoS攻击。
3.4.2 SDN-Self DDoS攻击的防御机制
当我们检测到DDoS攻击时,首要任务是采取适当的措施来减少损害。以下是SDN网络遭受DDoS攻击后的防御措施:
首先我们建立一种分析机制[7],通过分析用户行为将其分为普通用户和异常用户。我们为普通用户IP提供长时间超时权,并对异常用户IP的流条目分配短时间超时权。这样可以强制性的将恶意流快速移出交换机,并以此进行用户的IP过滤。
由于控制器最容易受到SDN架构的攻击,因此减轻控制器的负担尤为重要。我们可以利用多层公平队列(MLFQ)[8]有效解决这一问题。当SDSM检测到DDoS攻击时,NC将响应队列扩展,并降低其优先级,以抵御流条目请求。
同时SDSM使用软件交换机作为硬件交换机的补充。鉴于软件交换机具有比硬件交换机更好的CPU兼容性,我们首先将硬件交换机接收到的新的流条目发送到软件交换机,再由软件交换机生成流请求,重载至数据层后再由硬件交换机转发。这样,软件交换机就可以代替一部分硬件交换机的功能,大大提高数据吞吐量。
4 结束语
本文设计了一种松耦合、可扩展的开放SDSM安全管理体系架构,将SDN可编程功能提供的原子服务组合起来,支持服务创新。借助双控制器的SDN控制层架构,从全局安全和管理视图实现了利用SDN防治DoS攻击,利用SDN防治DDoS攻击,并针对SDN本身可能受到DDoS攻击提出了相应的解决方案。此外,SDN以其集中控制和对流表转发的感知能力,帮助SDSM安全管理体系架构以更低的成本来提高性能、简化管理,增强安全管理功能。
参考文献:
[1] Software-Defined Networking (SDN): Layers and Architecture Terminology https://www.rfc-editor.org/pdfrfc/rfc7426.txt.pdf,2015
[2] Shin S, Porras P A, Yegneswaran V, et,al. FRESCO: Modular Composable Security Services for Software-Defined Networks. NDSS, : The Internet Society,2013.
[3] QIU Xiaofeng,LIU Wenmao,GAO Teng,HE Xinxin,WEN Xutao,CHEN Pengcheng.WoT/SDN:Web of Things Architecture Using SDN[J].中国通信,2015,12(11):177-187.
[4] Y. Cui, L. Yan, S. Li, H. Xing, W. Pan, J. Zhu, X. ZhengSD-Anti-DDos: fast and efficient ddos defense in software-defined networks J. Netw. Comput. Appl., 2016, 68:65-79.
[5] 安颖,孙琼,黄小红.基于OpenFlow的SDN网络环境下DDoS攻击检测系统[J].东南大学学报(自然科学版),2017,47(S1):14-19.
[6] N.N.Dao, J.Park, M.Park, et,al.A feasible method to combat against DDoS attack in SDN network.in International Conference on Information Networking.ambodia,2015:309-311.
[7] P.. Zhang, H. Wang, C. Hu,et,al.On Denial of Service Attacks in Software Defined Networks.IEEE Network, November-December,2016,30(6): 28-33.
[8] A.Wang,Y.Guo,F.Hao,et,al.Scotch:elastically scaling up SDN control-plane using Switch based overlay.in ACM International Conference on Emerging NETWORKING Experiments and Technologies,Sydney,Australia,2014:403-414.
【通聯编辑:代影】