应对DDoS攻击的SDN网络安全特性研究
2018-04-23王小鹏
杨 盾,王小鹏
(江苏省邮电规划设计院有限责任公司 江苏省南京市 210019)
0 引言
软件定义网络(software defined networking,简称SDN),将传统封闭的网络体系解耦为数据平面、控制平面和应用平面,是对传统IT网络、电信网络基础设施的重构,目前已在网络虚拟化、数据中心网络、无线局域网和云计算等领域得到应用。
SDN的思想是将更多的控制权交给网络使用者,除了设计部署、配置变更,还可以进行网络软件的重构[1]。SDN既不是一项具体的技术,也不是一个具体的协议,而是一种网络架构。这种架构能够改变提供商几十年来的运营方式,如用户出口选择,通过基于可信任路由选择增强的BGP安全性、更快的路由收敛。
1 SDN 架构及发展现状
如图1所示,ONF提出的SDN架构主要分为基础设施层、控制层和应用层。基础设施层由网络底层的转发设备组成,主要负责数据的处理、转发和状态收集。控制层集中维护网络状态,一方面,它通过自身与基础设施层之间的接口获取底层基础设施信息,对数据平面的资源进行编排;另一方面,它对全网的拓扑和状态等信息进行实时维护,并为应用层提供可扩展的编程接口。应用层位于SDN架构的顶层,主要包括不同类型的业务和应用。此外,按照接口与控制层的位置关系,ONF分别定义了SDN架构中的南向接口和北向接口。
图1 SDN 网络架构Fig.1 Network architecture of SDN
其中,南向接口在这里场景的控制协议是Openflow,但绝非仅仅是Openflow。可以实现控制功能的协议其实很多,除了最知名的 Openflow以外,还有Netconf、PCEP、LISP、MP-BGP、SNMP等等[2]。南向接口保存用于转发决策的转发表,OpenFlow解决了如何由控制层把SDN交换机所需的用于和数据流做匹配的表项下发给转发层设备的问题。北向接口缺乏业界公认的标准,对于北向接口的协议制定和安全规范是SDN领域竞争的焦点。北向接口具有开放性,便捷性和灵活性特点。它向上层业务应用开放,使业务应用能便捷地调用底层网络资源和能力,实现SDN网络集中化控制,把握全网资源视图,改善网络资源交付过程。同时,控制能力集中化同样带来安全威胁:首先,控制器局部安全性和性能具有瓶颈。其次,无法应对跨多个地域的SDN网络,而要多个控制器分布式集群建立单一控制器,在可靠性、扩展性和性能方面存在问题,同时多个控制器之间的联系和通信的东西向接口还没有定义标准,分布式集群技术如何运用也是一个问题。
SDN使管理人员能够非常快速地配置网络资源,并调整网络流量以动态满足不断变化的需求。然而,现阶段 SDN网络仍面临很多挑战。SDN的安全性作为重要的挑战之一,越来越受到研究者的关注。利用新的SDN架构,一些对于传统网络很常见的安全威胁可以得到应对,这些威胁无论是发生的可能性还是造成的影响以及总体风险级别都会发生变化。然而,还存在一些新的安全挑战,例如通过插入欺诈流条目来覆盖流入流量和数据窃听来绕过预定义的强制策略等。由于所有未知的流量必须传送给控制器进行审查,伪造的恶意流量可能导致对其的拒绝服务(DoS)攻击。在本文中,我们分析了SDN的安全特性及其面对DoS/DDoS攻击的优势、缺陷和可能的解决方案。
2 SDN 安全研究现状
SDN的迅速发展和深化应用,不仅带来了全新的信息安全威胁和挑战,也丰富了传统信息安全防护技术和思路,将对传统信息安全产生重大影响。“SDN安全”和“软件定义安全”不是一个概念,前者是新的网络技术的自身安全问题;而后者其实并非是一种技术,而是一种思想或一种体系架构,强调通过软件化的安全应用和安全控制平台,集中控制、智能决策和敏捷响应,以解决以往安全设备简单堆叠不能抵御复杂、高级的安全威胁。当然两者存在联系,借助 SDN的技术可以使软件定义安全更快落地。
逻辑上的集中控制和数据转发分离是 SDN的基本思想[3]。SDN的软件定义体现在:
1. 控制平面从嵌入式节点独立出来;
2. 以开放可编程的软控制平面代替传统的基于系统嵌入的控制平面;
3. 由软件驱动的中央控制器来集中控制。
由于其具备的这些特性,SDN的优点就是简化及其可编程性。一方面,SDN由于其特性,对传统安全威胁具有较好的应对表现,它的特性及对安全的优势整理如下表1:
表1 SDN 安全特性和优势Tab.1 Security features and advantages of SDN
同时,另一方面,根据 SDN的体系架构可将SDN自身面临的安全问题做如下划分:
1. 脆弱的控制器。大多数功能,例如网络信息收集、网络配置、路由计算等都集中在SDN控制器中。正是SDN的这种架构,提供了一个更加集中的攻击目标,并且也显著降低了被攻击的难度。同时,云计算的发展也给攻击者提供了大规模数据计算的能力。在云计算平台的支持下,攻击者可以轻松实施攻击。而只要攻击者成功获取 SDN网络的控制器,他们就可以造成网络服务的大面积瘫痪,并且影响控制器覆盖下的整个网络。
2. 开放的可编程接口导致的风险。因为接口的开放性,SDN更容易受到安全威胁。首先,它使SDN控制器的软件漏洞充分暴露在攻击者面前,后者能获得足够的信息来制定攻击策略。其次,SDN控制器提供了大量可编程接口给应用层,这种开放等级可能会导致接口滥用。例如嵌入恶意代码、病毒等。因此,SDN控制器的开放接口需要被仔细评估和审查。
3. 更多的攻击点。由于 SDN被分为三层,每层的实体可以被分布在网络的不同位置,那么这些在不同实体之间的通信就是非常重要和频繁的。因此,与传统网络相比,SDN提供了更多可能的攻击点给攻击者们。
针对以上安全问题,SDN本身面临的安全威胁主要形式如下表2:
表2 SDN 本身面临威胁形式Tab.2 The threat form faced with SDN
3 SDN 应对DDoS攻击的优势与问题
SDN和分布式拒绝服务(DDoS)攻击之间存在着对立关系。一方面,SDN的功能使其易于检测和对DDoS攻击做出反应。另一方面,控制平面与SDN数据平面的分离开发出新的攻击,SDN本身可能是DDoS攻击的关键。事实上,SDN网络上存在潜在的DDoS漏洞[4-6]。例如,攻击者可以利用SDN的特点,对控制层,基础设施层,和SDN的应用层进行攻击。
SDN具有很多良好特性,这些特性为抵御DDoS攻击提供了很多优势,如图2所示。
图2 SDN 应对DDoS的特性Fig.2 Characteristics of SDN response to DDoS attacks
1. 控制平面与数据平面的分离:DDoS攻击并不是一个新的问题。在传统的网络中,研究人员无法在真实的网络设置中大规模地尝试他们的想法,因此提出的算法的性能不能很好的测试和验证。SDN将数据平面与控制平面分离,从而可以轻松建立大规模的攻击和防御实验。SDN的高配置性提供了虚拟网络中的明确分类,允许在真实环境中进行实验。SDN的这一特点为DDoS攻击缓解提出了新的思路和方法。
2. 集中控制器和网络视图:控制器具有全系统的系统知识和全局视图,以构建一致的安全策略,并监视或分析潜在安全威胁的流量模式。SDN的集中控制使得可以根据通过请求终端主机获得的信息和用户服务服务器中的远程身份验证拨号,动态隔离受影响的主机并对合法主机进行身份验证,以便用户的身份验证信息和注册期间的系统扫描。TaheriMonfared等[7]提出了一种通过使用OpenFlow控制器构建租户视图的方法。控制器提供网络的统一视图,并且了解用户逻辑。监控节点与控制器进行通信,构建网络的租户视图,并生成监控信息。
3. 外部应用程序对网络的可编程性:SDN的可编程性支持从现有入侵检测系统(IDS)和入侵防御系统(IPS)中采集智能的过程[4]。可以根据不同的DDoS攻击灵活使用更智能的算法。在基础设施即服务(IaaS)云中,为了防止易受攻击的虚拟机在云中受到影响,Chun-Jen Chung等[8]提出了一种称为 NICE的多阶段分布式漏洞检测,测量和对策选择机制。提出的框架利用OpenFlow网络编程API,在分布式可编程虚拟交换机上构建监控和控制平面,以显着提高攻击检测并减轻攻击后果。
4. 基于软件的流量分析:基于软件的流量分析极大地促进了创新,因为它可以使用各种智能算法,数据库和任何其他软件工具。由于SDN架构的灵活性和大多数移动恶意软件需要互联网连接,Jin和Wang设计了一个通过使用SDN架构实时流量分析来检测移动恶意软件的系统[9]。
5. 动态更新转发规则和流抽象:动态更新转发规则有助于及时响应DDoS攻击。基于流量分析,新的或更新的安全策略可以以流规则的形式传播到网络上,以便不间断地阻止攻击流量。
SDN在减轻云计算环境中的DDoS攻击方面具有很大的前景。然而,SDN本身的安全性仍有待解决。SDN中可能会出现许多安全问题,如未经授权的访问,数据泄露,恶意应用程序,配置问题等[10]。SDN本身可能是DDoS攻击的对象,由于SDN垂直分为三个主要功能层-基础设施层,控制层和应用层,根据可能的目标,我们可以将SDN上的DDoS攻击分为三类:应用层DDoS攻击,控制层DDoS攻击和基础设施层DDoS攻击,如图3所示。
应用层DDoS攻击:启动应用层DDoS攻击有两种方法:攻击应用,或攻击北向接口。由于SDN中应用程序或资源的隔离不能很好地解决,因此对一个应用程序的 DDoS攻击可能会影响其他应用程序。
控制层DDoS攻击:控制器可能被视为网络单点故障的风险点,因此它们是 SDN架构中最吸引DDoS攻击的目标。通过攻击控制器,北向接口,南向接口或东西向 接口可启动对控制层的攻击。来自不同应用程序的许多冲突的流规则可能导致控制平面上的DDoS攻击[11-12]。在SDN的操作中,当数据平面看到不知道如何处理的新网络数据包时,数据平面通常会要求控制平面获取流规则。在流表中没有流匹配时,有两种处理新流的选项:将完整的数据包或数据包头的一部分传输到控制器以解决查询。当遇到网络流量很大时,向控制器发送完整的数据包将占用高带宽。
基础设施层DDoS攻击:启动基础架构层DDoS攻击有两种方法:攻击交换机或攻击南向接口。例如,如果仅将报头信息发送到控制器,则分组本身必须存储在节点存储器中,直到返回流表条目。在这种情况下,攻击者很容易通过设置一些新的和未知的流来对节点执行DoS攻击。由于节点的存储元件由于成本高而可能成为瓶颈,因此攻击者可能会使交换机存储器过载。所产生的假流请求可能产生许多无用的数据平面所需的流量规则,从而使数据平面难以存储正常网络流的流规则。
图3 SDN 上的DDoS攻击Fig.3 DDoS attacks on SDN
4 SDN 防护DDoS手段及安全策略
我们总结了SDN中可能的DDoS攻击和可用解决方案如下表3。
表3 SDN 中DDoS攻击解决方案Tab.3 Solutions to DDoS attacks on SDN
FortNox是一个新的安全策略执行内核,作为开源 NOX OpenFlow控制器的扩展,它调解所有Open-Flow规则插入请求[13]。 FortNOX实施基于角色的身份验证,以确定每个Open-Flow应用程序(规则制定者)的安全授权,并执行最小权限的原则以确保调解过程的完整性。
为了安全起见,OpenFlow为加密的传输层安全性(TLS)通信和交换机与控制器之间的证书交换提供可选支持[14]。此外,通过控制器副本,通过阈值加密来保证通信可能是有帮助的。为了保证控制平面和数据平面设备之间的信任,可以考虑使用动态的,自动的和有保证的设备关联机制。使用支持运行时根本原因分析的IDS可以帮助识别异常流。这可以与用于动态控制开关行为(例如控制平面请求的速率限制)的机制相结合。
AVANT-GUARD是提升OpenFlow网络的安全性和弹性的新框架,具有数据平面的更多参与[15]。它解决了启用SDN的网络的两个安全挑战。第一个目标是确保控制平面和数据平面之间的接口,并通过数据平面上的连接迁移技术来防止饱和攻击。第二个目标是提高响应能力,以便当检测到预定义的触发条件时,安全应用程序可以有效地访问网络统计信息以响应威胁。
另外,针对SDN引入的新安全威胁,相应的防护建议策略包括但不限于以下几个方面:
在易于受到攻击的控制器层面,首先,需要制定一系列严密的授权、访问控制、安全管理等规则;其次,能够及时对感知到的异常网络设备、异常行为进行隔离,避免造成大范围的破坏;最后,控制器需要具备分析网络行为的能力,从日志、流量、当前服务等状态分析网络行为的特征,对于异常的网络行为需及时报警和隔离。在应用层面,首先,制定一系列安全服务准入规则,对应用提供的服务、需要控制器提供的接口等进行鉴定,负责规则的应用才允许成为SDN中合法的应用;其次,利用可编程的接口,针对目前存在的安全威胁,利用已有的技术对安全威胁进行监控和排除,加强控制器的安全防护。除此以外,安全技术框架还提出了跨越数据层、应用层、控制层的安全评价体系和安全管理。安全评价体系制定一系列的安全评价标准,对网络设备、服务、应用等的安全进行评价和分级,将安全级别低的应用或服务通知给控制器,由控制器执行相应的处理。安全管理通过可视化的控制界面,为不同的管理人员提供差异化的安全策略配置和管理。
5 结语
作为一个有希望的网络架构,SDN可能会取代传统的网络,因为它在管理集中性,可编程性和开放性方面为网络管理带来了机会。SDN网络管理方便,具有简化网络设备和统一、高效的管理和维护,但同时,面临认证、授权等欺骗,拒绝服务等攻击;SDN可以灵活配置,多业务支持,易于更新升级,可以显著提高网络运行效率,但会导致接口滥用,恶意软件,利用某些接口进行网络窃听等;SDN支持个性化定制,支持业务快速创新,易于推广,结构透明,但面临着第三方应用或插件可能带有恶意功能、安全规则冲突、未声明功能、安全漏洞等多种风险。本文重点介绍SDN应对DDoS攻击的优势与面临的问题,并提出了一些手段和安全策略防护DDoS攻击。目前,随着各类安全方案的不断出现,SDN面临的安全问题虽然在一定程度上得到了缓解,但一些关键的安全问题仍然存在,未来SDN的安全研究还需要重点关注面向安全的新型控制器的设计与开发、北向接口安全协议的标准化和控制器DoS/DDoS攻击检测与防范技术等。
[1] 刘文懋, 裘晓峰, 陈鹏程, 等. 面向SDN环境的软件定义安全架构[J]. 计算机科学与探索, 2015, 9(1): 63-70.
[2] 李洁. 云平台SDN关键技术的研究与展望[J]. 软件, 2015,36(7): 71-74.
[3] 周苏静. 浅析SDN安全需求和安全实现[J]. 电信科学,2013, 29(9): 113-116.
[4] Scott-Hayward S, O'Callaghan G, Sezer S. Sdn Security: A Survey[C]// Future Networks and Services. IEEE, 2013: 1-7.
[5] 王钰琪, 窦伟超. SDN网络多控制器结构的失效备援设计[J]. 软件, 2016, 37(01): 71-75.
[6] 朱磊. 浅析计算机网络安全策略[J]. 软件, 2014, 35(2):106-108.
[7] Taherimonfared A, Rong C. Multi-tenant Network Monitoring Based on Software Defined Networking[M]// On the Move to Meaningful Internet Systems: OTM 2013 Conferences. Springer Berlin Heidelberg, 2013: 327-341.
[8] Chung C J, Khatkar P, Xing T, et al. NICE: Network Intrusion Detection and Countermeasure Selection in Virtual Network Systems[J]. IEEE Transactions on Dependable &Secure Computing, 2013, 10(4): 198-211.
[9] Jin R, Wang B. Malware Detection for Mobile Devices Using Software-Defined Networking[C]// Research and Educational Experiment Workshop. IEEE, 2013: 81-88.
[10] Yu Y, Chen Q, Li X. Distributed Collaborative Monitoring in Software Defined Networks[J]. Computer Science, 2014.
[11] 陈凡, 刘果, 李剑锋, 等. 主要软件定义网络控制器的对比和分析[J]. 软件, 2015, 36(6): 97-102.
[12] 陈伯胜. 基于SDN控制器的恶意数据流控制技术研究[D].电子科技大学, 2016.
[13] Porras P, Shin S, Yegneswaran V, et al. A security enforcement kernel for OpenFlow networks[C]// 2012: 121-126.
[14] Nunes B A A, Mendonca M, Nguyen X N, et al. A Survey of Software-Defined Networking: Past, Present, and Future of Programmable Networks[J]. IEEE Communications Surveys& Tutorials, 2014, 16(3): 1617-1634.
[15] Shin S, Yegneswaran V, Porras P, et al. AVANT-GUARD:scalable and vigilant switch flow management in software-defined networks[C]// ACM Sigsac Conference on Computer & Communications Security. ACM, 2013: 413-424