VSA和SDS:两种SDN网络安全架构的研究
来源:小型微型计算机系统杂志 更新时间:2013-12-10


软件定义网络SDN(Software Defined Networking)的软件编程特性和开放性带来很多新的安全挑战.也给网络安全带来了挑战和机遇.本文提出了两种演进的SDN网络安全架构:虚拟化安全设(Virtualized Security Appliance)和软件定义安全(Software Defined Security),给出了两种架构的建设要点,并以常规网络入侵、拒绝服务攻击和高级持续威胁等三类典型攻击场景分析了相应的工作原理,以防火墙为例演示了两种架构下的实现,测试表明两种结构在云计算中心环境中性能上是可行的,并且SDN数据和控制分离的特性使防火墙可用更少的代码实现.
   1.引言

    随着互联网和数据中心规模的迅速发展,尤其是在虚拟化技术的冲击下,运营商和大型数据中心的运营者遇到越来越多的挑战,例如:网络设备没有开放接口,很难实现运维活动的自动化,难以降低运营成本;依赖网络设备供应商的响应,无法满足业务部门快速变化的业务需求;网络设备之间的互操作性不好,容易导致供应商锁定;网络规模很难快速扩容和降容(Scale UP/DOWN);由于网络IP地址和物理位置绑定,很难做业务迁移;传统路由策略太复杂,很难管理,容易失控等等。软件定义网络SDN( Software Defined Networking)的提出为解决以上大型数据中心的运营问题提供了可能的解决方案,因此虽然SDN还存在许多技术问题没有解决,但己有大量云计算中心、运营商及相关厂家的进行了SDN的实践。

    软件定义网络(SDN)通过控制器实现网络的可编程。SDN架构具备三个核心特征:1)控制平面和数据平面相互分离,2)智能和状态在逻辑上集中,3)底层网络基础设施从应用中抽象了出来。

    近年来学术界和工业界将软件定义网络的思想进行了进一步扩展,出现了软件定义的计算、存储等,并被统称为软件定义的环境川,其主要特点是将计算、网络、存储等从底层异构的硬件中抽象出来,成为可由软件定义的资源,使原来独立、难以互通的控制组件构成统一的控制平面,通过对底层基础设施的可编程能力,实现基于策略的、自动化的集中管理和控制。

    在工业界一些厂家也提出了各种SDx,例如软件定义数据中心、软件定义安全等,但究其实质都只是集中的、智能的平台系统,如所提的软件定义安全与SDN并无实质关联,因此也被一些业内人士认为是一种商业策略Big Switch和vAtmour合作提的SDsec( software defined security)安全服务层结构可能是思想最接近本文的工作,根据它仅有的一份简单的报告可知,SDsec采用集中的控制平面,独立于转发和安全执行平面,以在整个数据中心支持统一的安全策略‘但目前为止,并没有给出SDsec的具体架构。从其原有产品看也更关注于虚拟化的安全。

    从网络安全的角度,SDN带来了网络架构方面的革新,这即带人了新的安全威胁和挑战,同时也带来了新的机遇来变革传统的安全防护体系。

    本文在分析SDN技术带来的新的安全威胁和机遇的基础上,提出了传统网络向SDN演进过程中的两种安全架构:虚拟化的安全设备VSA( Virtualized Security Appliance)和软件定义安全SDS ( Software Defined Security )。VSA的特点是通过传统安全设备的虚拟化以及SDN对基础设施或转发层的动态可编程来实现SDN网络中的安全嵌人,这是在SDN网络发展初期,SDN网络部署超前于新的安全产品研发时的SDN安全架构。软件定义安全SDS的特点是采用SDN架构设计思想,将安全的控制平面和数据平面进行分离,通过控制平面提供的可编程能力实现安全服务的重构,使安全功能服务化、模块化、可重用,最大化SDN带来的安全机遇。本文分别给出了VSA和SDS架构的建设要点,对比分析了两种架构的优缺点,并将网络威胁分为常规网络人侵、拒绝服务和分布式拒绝服务DoS/DDoS、高级持续性威胁APT ( AdvancedPersistent Threat)或定向攻击(Targeted Attack ),针对这三类典型的攻击场景,给出了两种架构下的安全防护流程。并利用开源软件搭建了实验系统,对两种安全架构进行了初步实验和测试。

    本文第2节简要分析并综述了SDN网络技术带来的新的安全挑战;第3节分析了SDN网络技术给网络安全带来的机遇;第4节,归纳提出演进过程中的两种主要的SDN安全防护机制,并针对三类网络安全攻击分析了它们各自的工作原理;第5节对两种安全架构进行了实验;第6节综述了国内外相关研究;最后对文中主要发现和观点进行了总结,并对下一步的研究方向进行了展望。

    2.SDN带来的安全挑战

    作为一种崭新的网络架构体系,SDN面临诸多新出现的、相对独特的安全威胁和挑战:

    1) SDN控制器的自身安全。SDN网络中的集中控制器(Controller)是SDN体系中的核心,由于SDN网络的可编程性、开放性,SDN控制器安全防护的重要性远大于传统网络中网管系统的安全。所以围绕控制器的攻防是SDN体系自身安全的最关键环节。例如,在OpenFlow交换机流表中不存在的初始流信息将通过集中的控制器进行处理,虽然控制器可能并不是某次分布式拒绝服务攻击的直接目标,但大量的初始流量将使控制器的负载急剧上升。

    2)开放带来的安全隐患。开放是一把双刃剑,第三方的应用和各种插件可能会带有恶意功能、未声明功能、安全漏洞等多种风险。

    3)规则冲突带来的安全隐患。安全和网络的应用插件都具备一定的规则写人权限,处理规则之间的冲突需要精巧而完备的算法以及优先级政策,以避免安全策略冲突或被绕过可能带来的服务中断等。

    4)安全相关标准协议不足。Opentlow协议提供了较为完整的路由、交换、管理等协议,但是安全相关的设备和功能组件非常复杂,在安全设组件、安全控制器(或各种安全管理器)、网络控制器、云控制器等之间的通信和协作将会成为挑战。

    5)分布式部署和全局视野。SDN网络中流量可全局调度,但是当前的安全设备普遍不具备全局视野能力,无法对跨设备的流进行完整的还原和分析,从而导致漏报。

    总体来说,针对SDN所引人的新安全威胁,相应的防护策略包括但不限于:

    1)使用多种手段保护SDN控制器,包括认证、职责分离和授权、审计、应用生命周期安全、以及其它各种常规的网络防护技术。

    2)强化安全策略的管理和分析,包括有效性检查、冲突检查、仲裁机制等,确保安全策略不被绕过和篡改。

    3)安全和各种应用的沙箱检测体系,以及覆盖第三方的安全应用开发和一致性检查等。

    4)充分利用SDN网络的全局数据和视野,实现分布式安全设备的协同工作。

    5)设计实现安全服务和网络服务之间、安全服务之间等接口的安全标准,以解决Openflow协议在安全方面的不足,并建立和完善SDN各接口的安全规范。目前,正式发布了SDN安全需求,讨论了控制器和应用之间的安全接口、认证授权等问题,但并没有给出对SDN安全威胁的防护机制。

    3.SDN网络带来的安全机遇

    SDN在带来新的安全威胁和挑战的同时,也给网络安全防护带来了前所未有的机遇。

    SDN网络中的控制器具备全局视野,掌握整个管理域范围内的流信息,这与传统交换机只了解所转发的流量有很大的区别。通过和不同类型的安全功能进行结合,这个全局信息使得安全服务重构成为可能。例如,SDN可以为每个网络节点和流建立各种安全状态属性,并与安全信誉和异常发现系统等联动,实现更智能、灵活、高效的安全机制。

    SDN中集中的控制层为各安全机制的自动化、联动、特别是跨厂商设备的联动,提供了新的机遇。在传统网络现有的安全设备和机制中,在安全自动化和联动方面虽已进行了一些努力,但安全运营和流程自动化方面由于诸多原因远未达到理想的目标,例如,美国推动的安全内容自动协议SCAP( Security Content Automation Protocol)只是在安全信息和呈现方面在美国得到一定的应用,国内广泛部署的安全运维中心SOC(SecurityqAeration Center)也只是基于同一厂家的安全事件共享和关联。

    SDN在应用和低层转发间增加了一层控制层,因此原来需要低层网络支持的应用层的安全策略可以通过控制层来实现,例如,通过VLAN,MPLS LSP虚拟网络实现的安全隔离,将可通过控制层来编程实现,可以预见这种实现由于控制层的可编程能力,将比完全依赖底层转发网络的实现更具智能、更易配置、更灵活。

    SDN使得构建全局的、全网状的流表并基于此构建端到端的网络准人和访问控制体系成为可能。并且可增加灵活的控制机制:不仅可在检测点进行处理,还可实现远端控制和处理,如通知源端将特定或全部流量丢弃(Drop),从而使恶意流量在源端即被遏制,这将提升安全防护的效率,对于对抗分布式拒绝服务等攻击尤为有效。

    SDN网络可以实现基于流的调度,而不是传统网络中基于IP包的调度,这使提升安全服务的防护效率和性能成为可能,客观上还将使安全服务和管控更加细粒度。

    SDN控制层和基础设施层的分离,以及控制层的可编程特性使得网络运行维护任务可以更有效、更低成本、更快速的自动化,从而降低安全运维成本,提高安全防护的及时性和效率。

    SDN网络中,原来分布在各节点上的智能管理和控制功能可以集中到控制器上完成,基础设施层的节点功能可更单一化,从而降低了基础设施层的节点安全防护的难度,为降低整体安全防护成本提供了可能。

    但目前对SDN网络上的安全架构还缺少系统的研究,更多的机遇和挑战需要经过实验和实践去验证。本文基于对SDN带来的安全机遇的分析所提出的软件定义安全SDS的架构是一个初步的探索。

    4.SDN网络的安全防护机制

    网络攻击一直伴随着互联网的成长,从早年的Morris蠕虫、SQL Slammer, Code Red到近年的Stuznet, Flame, Duqu等。从安全防护角度,本文将主要的网络攻击分为三大类:常规网络人侵,拒绝服务和分布式拒绝服务DoS/DDoS、高级持续性威胁APT或定向攻击m。这些传统网络中存在的三类典型的网络攻击同样将出现在SDN网络中,也是SDN的网络安全机制所必需面对和解决的。

    分析SDN网络的体系架构特点,以及相关的技术成熟度,本文提出在SDN演进的过程中,有两种架构实现SDN网络环境中的安全防护:虚拟化的安全设备(Virtualized SecurityAppliance)和软件定义安全(Software Defined Security)。

    4.1虚拟化的安全设备

    VSA的特点是通过传统安全设备的虚拟化来实现SDN网络中的安全嵌人。SDN网络被划分为基础设施层(主要包括计算和存储资源,以及负责网络转发的交换和路由设备等)、控制层(主要有SDN控制器组成)和服务层(主要包括业务应用和网络安全应用等),在VSA模式下,安全设备,例如防火墙、人侵检测和防护系统、反病毒系统、蜜罐等安全设备工作于服务层,由网络控制器根据策略将目标流量调度到相应的安全设备进行处理。

    VSA的主要建设要点包括:

    1)将传统软硬件形态的安全设备虚拟化,例如防火墙、人侵检测和防护系统、抗拒绝服务系统、反病毒系统、蜜罐等,支持虚拟镜像方式的部署,并且成为qpenflow-aware,以便根据安全检查的结果和安全策略通知控制层执行流量调度,以完成进一步的安全检测。

    2)将物理拓扑映射到逻辑拓扑,由SDN网络的控制平面按照既定策略和逻辑拓扑对流进行调度,让流经过相应的安全设备进行处理(如监视、检测、清洗等)。

    3)各安全设备可继续由各自的管理器管理,但是都提供RESTful API以便于更进一步的安全服务集成。

    VSA是现有安全技术在SDN网络中的一种实现架构,安全设备的部署和工作方式与传统网络相比本质上并没有特别的改变,安全防护能力也未能提升,只是通过SDN对网络的可编程能力用逻辑拓扑取代了物理拓扑,从而改进了安全运维的自动化程度,降低成本,同时可适应云计算中心多租户环境的动态性。这里给出VSA中对三类网络攻击的防御方式:

    常规网络入侵:设主机A是保护目标,根据安全策略该租户的网络中应部署人侵检测系统(IDS)对针对主机A的攻击进行报警,此时,可通过控制器将主机A的所有流量复制并调度至IDS,由SDN网络中可编程的逻辑拓扑实现安全设备的物理部署。

    拒绝服务攻击:设主机D正在遭受拒绝服务攻击,通过SDN控制器将主机D的所有流量或者能够识别出的部分流量调度至抗拒绝服务系统进行清洗,并将清洗后的流量回注。

    高级持续威胁:设主机C是高价值的保护目标,而主机B安全等级较低,但是需要访问C的数据或服务。VSA中,由SDN控制器将主机B和C之间的通信流量调度到防火墙进行安全隔离和检查。根据策略将可疑流量导入蜜罐或特定功能的沙箱系统对APT攻击进行检测、监视和捕获。
 4.2软件定义安全

    软件定义安全的特点是将安全的控制平面和数据平面进行分离和重构,实现模块化、服务化、可重用。

    如图1所示,SDS将现有安全技术分解成原子服务,图中威胁检测类服务泛指基于模式匹配的网络人侵检测、反病毒和反恶意软件系统、虚拟执行或沙箱系统,信誉类服务泛指IP信誉、URL信誉、身份信誉、文件信誉等,这些构成基本安全服务,并进一步细分可形成原子服务。通过SDN控制层的可编程能力及安全控制器,利用服务重构技术和安全状态表将各安全原子服务有机整合,形成定制的安全能力。

图1 SDS架构和工作机理示意图

Fig.1 Architecture of SDS

    SDS的建设要点包括:

    1)建立全局安全状态表GSR(Global Security Registry),维护全局范围的基于流的应用信息、用户信息、安全状态和信誉信息、流量基线等。

    2)建立全局安全控制器GSC( Global Security Controller),用以定义和维护更新安全策略,与SDN控制器同步更新。

    3)对传统安全设备的功能进行重整,合并或简化冗余的功能和计算处理,形成一系列的安全原子服务模块,例如应用识别、流量异常检测、流量清洗、网络行为异常检测、基于模式匹配的网络人侵检测、反病毒和反恶意软件系统、虚拟执行或沙箱系统、蜜罐、漏洞扫描、安全配置稽核、信誉系统、认证和审计等等。

    4)定义安全控制器和各安全服务的应用编程接口API(Application Programming Interface )。

    5)通过服务重构,由软件定义构成用户定制的安全服务。

    与VSA不同,SDS中用户通过安全服务重组定制所需的安全服务,在安全控制器下控制下实现在基于全局安全状态表GSR的网络防御,如图1所示。

    对常规网络人侵,设安全目标是对主机A的所有流量进行人侵检测和高级威胁分析。SDN控制器通过策略分发将A的流量复制到威胁检测系统,结果将更新至GSR;安全控制器GSC根据既定的安全策略和GSR中的安全状态作出下一步的动作,并将动作指令通过SDN控制器分发到相应的基础设施层设备。

    对拒绝服务攻击,在安全服务层部署基于全局安全状态表的流量异常检测系统,在基础设施层部署流量清洗系统。当检测到DDoS攻击时,通过安全控制器和SDN控制器将判定为攻击的流量导人流量清洗系统,将清洗后的流量送回原目的主机。不仅可以防护从互联网到数据中心的DDoS攻击,还可以同时防护数据中心内部、数据中心之间的DDoS攻击。

    对高级持续威胁,设主机C是高价值的保护目标,B安全等级较低,但需访问C的数据或服务。通过安全控制器将B访问C的流量调度至深度包过滤DPI和应用识别服务,相应地,流量异常分析服务和网络行为异常分析服务可以通过及时更新的安全状态表分析监视网络连接;在发生文件型的传送时,根据策略将文件转送到沙箱系统进行深度检查一旦B被识别为可疑,则可依照安全策略对其进行隔离或将其网络访问转送给蜜罐系统,同时更新信誉系统和安全状态系统。整个过程,重组了应用识别、异常分析、沙箱、蜜罐、信誉等多个安全服务。

    4.3 VSA与SDS架构的比较

    VSA和SDS架构对比见表1,VSA模式技术上更成熟,实现风险较小,但是开放性以及与SDN网络的兼容性不够好;SDS模式符合SDN的设计思想,具备更好的开放性和效率,并可带来新的安全能力,但在技术成熟度方面的风险较大,安全功能模块化重组后的效率、性能和能力提升还有待验证。

表1 VSA和SDS架构对比

Table1 Comparison of VSA and SDS
 

    5.可行性验证

    本文以防火墙应用为例搭建实验初步验证VSA和SDS架构的可行性和有效性。

    实验服务器和测试机配置均为1nte1 Core 2 Duo 2。8GHzCPU加上2.OOG RAM。实验搭载在Ubuntu 12.04操作系统上,采用开源的SDN控制器Floodlight,Open vSwitch和防火墙应用模块之间的桥接采用Openstack中的Quantum模块实现。在Floodlight上增设了安全策略应用,Floodlight虽自带防火墙应用,但只实现了最简单的包过滤功能,因此防火墙应用仍由Linux的Iptables实现。应用识别采用基于正则表达式的应用过滤器L7-filter。本文根据前一节所述的VSA和SDS建设要点进行了二次开发,实现VSA和SDS架构下的防火墙安全服务,并针对其时延特性进行了测量。

图2 VSA和SDS架构实验图

Fig.2 Experimental Framework of VSA and SDS

    VSA架构中的实验示意图如图2(左)所示。防火墙应用集成了L7-filter应用识别以及Iptables过滤功能,作为独立的安全应用与Floodlight控制器以及计算节点进行通信。模块测试主机C1和C2通过虚拟交换机OpenvSwitch相连,Flood-light Controller为整个SDN网络的控制器,防火墙应用通过API调用实现与控制器的交互。根据VSA架构特点,图中各步为:

    1)主机CI向主机C2发送数据包Packet_IN;

    2 ) Floodlight控制器上的策略应用根据策略,向交换机下发流指令,将Packet 1N重定向到防火墙应用;

    3)数据包Packet IN根据Floodlight控制器指定的路径流经防火墙进行处理;

    4)防火墙应用根据定义的策略将可疑流量丢弃;对于合法流量则通知Floodlight执行步骤5;

    5 ) Floodlight建立从防火墙到C2的流,将合法流量发送至C2。

    根据以上流程,我们测试了主机C1至主机口间通过防火墙过滤的时延,作为对照同时测试了VSA环境下主机C1至主机C2直接通过虚拟交换机的数据发送时延。具体的时延结果和完成实验所需代码量如表2所示,所有时延数据均取20次实验结果的平均值。实验表明,相对于正常的数据包发送过程而言,基于VSA的数据包重定向流程增加了大约0.58ms的时延。

表2 YSA和SDS实验结果统计

Table2 Result of VSA and SDS Experiment
 

    SDS架构中的实验示意图如图2(右)所示。测试主机CI和C2通过虚拟交换机OpenvSwitch相连;Floodlight控制器连接计算节点与防火墙应用;SDS中的防火墙应用由应用层的应用识别、控制器上的策略管理模块以及虚拟交换机上的包处理执行模块这三个原子服务组成。实验流程如下:

    1)测试主机C1向主机C2发送数据包Packetes IN ;

    2)交换机将流表中不存的数据包转发给控制器,Flood-light根据策略将数据包转发应用识别服务;

    3)应用识别服务识别这为QQ,将识别结果转交给控制器;

    4)控制器检查策略,根据策略应禁止此应用通过;

    5)根据策略管理的处理结果,Floodlight向数据转发节点下发流处理的命令Drop ;

    6)基于Floodlight控制器命令,数据包Packetes IN被丢弃。

    同VSA实验,我们测试了20次数据包在SDS环境下的复制转发过程所需时延,并取平均值如表2所示,相对于直接交换的数据包,在SDS中数据包转发处理流程要增加了约4.2ms时延。

    从表2可知,虽然在实验中采用了开源的软件,并没有进行代码优化,交换机也采用的是虚拟交换机,但VSA和SDS架构中防火墙的实现所引入的时延最多只是毫秒级,并不会对业务带来质量损伤。

    另外,在VSA和SDS实现中,在开源软件的基础上,我们分别只用了58行和51行C代码就完成了所需的防火墙功能,主要的代码量分别为控制器上简单的策略管理、防火墙和应用识别应用到控制器的API调用,SDS由于由底层。pen-Flow交换机执行了过滤功能,因此比VSA防火墙应用有更少的代码。

    6.相关工作

    基于SDN的安全问题也已有一些研究成果。

    FRESCO在SDN控制器上实现了一种安全应用开发框架,将Python实现的16个基本的流量监测和威胁检测功能以模块的形式提供,以便快速开发安全应用。实验表明利用FRESCO开发框架,及提供的资源管理、策略冲突检测、角本工具等,可使安全应用的开发减少90%的代码。这是当前与本文思想最接近的研究成果,FRESCO的优势在于使安全公司或SDN网络安全服务供商可以快速开发基于SDN的安全产品和服务,但它采用了封闭的框架,安全服务的提供依赖于开发框架可提供的安全模块,本文则更关注于SDN网络的安全部署和服务提供架构,所提的SDS是一种开放的架构,安全服务层的原子服务仍由不同厂家的设备、应用提供,它们的安全功能通过API开放,用户可基于SDS架构通过安全服务层不同的API调用,利用服务重组定制安全服务。FRESCO的实验表明了当前的安全功能是可以抽象成一些基本的原子服务,这给SDS架构的可行性提供了一定的支撑。

    文献都采用了紧密集成控制器和OpenFlow交换机的人侵检测系统,对家庭接人网络提供安全防护,但是他们采用的人侵检测算法只处理一条流中少量的包,因此相比当前独立的人侵检测系统其功能相关对简单,在云计算中心等安全要求和带宽都远高于家庭接人网络的场景中,这种将安全功能完全集成于控制器和交换机中的解决方案的性能还有待验证;文献提出了SDN网络中一种抗拒绝服务攻击的检测方法,指出与传统的方法相比,SDN通过集中控制器和OpenFlow协议可以直接提取每个流的统计信息,从而能用更少的负荷实现分布式拒绝服务攻击的检测。Fort-Nox 为NOX控制器上的应用,使控制器可以实现实时的规则冲突检查,并通过为控制器下发到交换机的规则增加基于角色的授权和安全约束来应对恶意应用 VAVE(Virtual source Address Validation Edge)考虑到目前>ETF源地址验证标准SAVI(Source Address Validation Improvements)无法支持SAVI设备间交互地址有效性绑定信息,因此无法解决跨SAVI设备的地址伪造,提出了VAVE,通过OpenFlow协议关联流对端的SAVI有效性绑定,在流建立时,由控制器对伪造地址进行过滤,从而扩展SAVI可绑定的地址范围。

    OpenSAFE研究了大规模网络中通过OpenFlow实现线速的流量重定向,从而将流路由到监测设备进行安全检查,他们的实验表明OpenSAFE比传统镜像方法检测出了更多的告警事件。OFRewind也实现了类似功能,并支持多种粒度,而不仅仅支持对整个OpenFlow流进行记录。Cloud Watcher则研究了在采用SDN的云计算中心中将流重定向到安全监测设备的路由算法。这些工作都可做为VSA的基础。

    在OpenFlow和SDN网络自身的安全性方面,F1owVisior分片(Slice)技术通过在控制层和数据层中增加一层实现虚拟网络隔离从而提供一定的安全保障。文献综述了基于OpenFlow的SDN网络的安全问题,指出当物理链路安全性无法保障时,当前在控制器和交换机间普遍缺少TLS配置的状况有很大的安全隐患,并指出拒绝服务攻击是控制器需首要关注的安全威胁。

    7.结论和未来工作

    本文从安全角度简要综述了软件定义网络的架构特点,以及SDN网络所新引人的安全挑战和防护策略。然后分析了SDN网络技术在网络安全防护方面的优势以及所带来的机遇。本文归纳提出了两类SDN网络安全架构,并以三类网络攻击作为场景,分析了两种架构的工作原理。

    相对来说,虚拟化的安全设备(VSA)架构在技术上更加成熟,而软件定义安全(SDS)架构则更符合SDN的设计思想,有更好的兼容性和效率。这是SDN建设过程中两种演进的安全架构。

    在文中分析的基础上,我们通过开源软件搭建了实验环境,以防火墙为例对两种安全架构的可行性进行了初步验证,并对各自的性能进行分析和测量。但是VSA架构在实际云计算中心的部署和运营、SDS架构更多的技术细节都需要经过详细的设计和验证,并需要在实际网络中进行实验,这将是我们后续的工作重点。