软件定义网络安全研究
2014-09-25张德治
何 恩,张德治,郝 平
0 引言
软件定义网络(SDN)最初由斯坦福大学发起研究,目前产业界成立了中立的开放网络基金会(ONF,Open Networking Foundation),包括德意志电信、Facebook、Google、微软、Verizon、Yahoo! 等在内的41家公司参与,推动SDN和Openflow有关的产品、标准化和市场形成。随着SDN的不断发展,斯坦福、普林斯顿等著名大学也投入到Openflow/SDN有关的研究项目中,涉及到网络安全、路由决策、网络虚拟化、无线接入、数据中心节能等多个通信网络研究领域。SDN已经进入了产业界大力推动、学术界积极研究的良性发展阶段,成为一项极有可能改变目前通信网络产业生态系统的热点技术。
然而,SDN的安全问题令人关注,由于SDN采用集中式控制的方式,直观上,意味着更大的安全风险。另一方面,SDN也冲击着传统安全防护技术,随着基于SDN的创新安全应用不断涌现,传统安全厂商挑战与机遇并存。因此,文中选择SDN的信息安全进行研究,首先介绍Openflow和SDN,然后综述目前有关SDN安全研究的安全风险分析和安全技术及应用,最后提出我们的想法和启示性的意见。
1 Openflow/SDN简介
1. 1 起源:Openflow
首先由斯坦福大学的Nick McKeown教授提出OpenFlow 的概念[1-2],最初的目的是为校园网的研究人员试验其创新的网络架构、协议。Openflow网络采用控制和转发分离架构,将控制逻辑从网络设备中分离出来,研究者可以通过软件实现任意的网络控制逻辑,而不需对网络设备本身进行修改。其中,OpenFlow就是实现网络控制逻辑的网络控制器与网络设备之间的标准通信协议。
Openflow技术架构如图1所示。支持Openflow的交换机维护着一个流表(FlowTable),且仅根据流表来进行转发,而流表本身的生成、维护、下发完全由外置的、在PC或服务器上运行网络操作系统的控制器来实现。在 Openflow 1.0中[3],流表中的包头域定义了包括端口号、VLAN ID以及L2/L3/L4信息的12个字段。由于每个域均可以进行通配,网络运营商可以根据需要决定使用何种粒度的flow。比如,运营商可以根据目的IP地址进行路由,在流表中,就只有目的IP地址是有效的,其余全为通配;又如,企业园区网可以根据VLAN进行转发,那么在流表中,就只有VLAN ID是有效的,其余全为通配。其具体的流表表项如图2所示,主要包括包头域、计数器和行动。包头域是包匹配的输入关键字,包头域的每个字段可以使用ANY进行通配,也可以包括如图3所示的12个字段。计数器用于管理所需,可用于统计每个流表的活跃表项、每条流的持续时间、每个端口的接收包数、每队列传输的包数等信息。行动则规定了交换机如何对数据包进行处理,如转发到某个端口、改写数据包或予以丢弃。
图1 Openflow技术架构Fig.1 Openflow architecure
图2 Openflow流表表项结构Fig.2 Openflow flow table
图3 包头域中用于匹配数据包的字段Fig.3 Octets in header fields against packets
1. 2 兴起:SDN
在OpenFlow为网络提供可编程特性的基础上,Nick和他的团队又进一步提出了SDN的概念。SDN将网络中所有的网络设备视为被管理的资源,并参考计算机操作系统的原理,提出了一个网络操作系统(Network OS)的概念,网络操作系统一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口,基于网络操作系统这个平台,用户可以开发各种控制平面的应用程序,通过软件来来满足各种各样的网络控制需求。SDN体系结构如图4所示,由简单的分组转发硬件(网络设备)、网络操作系统和应用三层组成。至少有一个网络操作系统通过开放的接口(如Openflow)对网络设备进行控制,并向应用提供良好定义的开放接口。
SDN 的基本思想包括[4]:
1)控制与转发分离。
2)使用开放的、中立于设备提供商的网络控制接口(如Openflow)。
3)逻辑上集中的控制平面(网络操作系统):维护网域视图,并向应用开发者提供定义良好的API。
4)网络虚拟化:同时运行多个网络操作系统,并控制同一物理网络上的不同分片(Slices)。
图4 SDN体系结构Fig.4 SDN architecture
SDN是一种网络架构,在该架构中,OpenFlow协议则是其中一种具体的、开放控制接口。网络的智能都集中在逻辑上中心化的网络操作系统及其APP上,网络运营商可以通过网络操作系统的API来开发各种定制化控制层面的网络应用,而网络设备不需要理解各种复杂的网络协议,只需要按照SDN控制软件下发的指令转发数据。SDN使网络变成了一台可以编程的计算机,使以往由网络设备完成的控制层面智能开放到运营商和网络管理员可以编程的程度,以更灵活的满足网络的需求。
SDN体现了抽象的思想,通过网络操作系统和Openflow流表的设计隐藏了网络的底层细节,使网络研究成果能够有效继承和复用,降低了网络创新的门槛。
一是对转发的抽象,Openflow流表及API提供了一种通用的、与网络设备硬件芯片交互的指令集,提供了转发的抽象,结束了网络硬件芯片没有统一的指令集的状态。
二是对状态分发的抽象,传统网络互连涉及到状态分发(如RIB、FIB),各网络协议具有独立的状态分发机制,理解其收敛特性具有挑战性。在SDN中,网络操作系统收集网络信息,下发操作流表的控制命令,创建统一并可继承的状态分发机制。
三是对配置规范的抽象,传统的网络控制管理涉及到对网络中成千上万设备的底层配置文件,这是一种低层次的抽象。而在SDN中,网络操作系统将网级目标翻译成网络设备的底层配置规范,使网络程序员能够对网络整体进行编程。
2 SDN安全风险
SDN是一把“双刃剑”,在简化网络管理、缩短创新周期的同时,也引入了不可低估的安全风险,包括:
(1)单点失效
集中式控制和分布式控制孰好孰坏,永远充满了争论。其中针对集中式控制最重要的一点是,SDN控制器先天地引入了单点失效,容易成为攻击的目标。在SDN中,谁控制了控制器,谁就控制了整个网络。
(2)恶意控制应用
在SDN中,网络操作系统之上可以运行各种各样的控制平面应用程序,但还缺乏保证各种控制应用协调一致的机制。比如,经过一个恶意应用程序的重新计算,可能绕过其他应用程序计算得出的安全转发路径,而网络操作系统却对此毫不知情。正如普通功能手机向Android智能手机、DOS操作系统向Windows操作系统的转变,开放的接口使得功能变得强大,但同时也创造了病毒、蠕虫恶意代码生存的空间,SDN及其开放接口为试图操纵网络的恶意攻击者提供了释放恶意控制应用的最佳场所。
(3)PC或服务器开放环境的安全隐患
SDN将网络的智能提升到PC或服务器中,以通用软件的形式运行,与传统路由器、交换机的封闭运行环境相比较,PC或服务器的安全风险更大。
目前Openflow 1.3规范[5]针对控制器和网络交换机之间的控制通道,提供了一种使用TLS协议的可选安全机制,支持基于证书的双向认证和通信加密,但这种安全机制还存在缺陷,文献[6]对此进行了归纳,包括:
1)可选的安全:允许控制通道不采取任何安全措施,也没有规定安全认证失败后所采取的行动。
2)未提供证书细节:未规定使用哪种证书,也没有规定证书中的哪个字段来代表控制器或交换机的身份,这将导致SDN部署后运维的复杂性。
3)未强制要求双向认证:目前许多TLS实现仅支持对服务器端的单向认证,不支持客户端证书,SDN采用后易遭受中间人攻击。
4)TLS 1.0存在漏洞:未规定TLS协议的版本,可能导致互操作问题。TLS 1.0还存在易遭受中间人攻击等漏洞,在后续的1.1版本中则得到了修补。
5)多控制器或多应用之间的协调:主要适用于单控制器、单应用对多交换机进行控制的应用场合,缺乏对多控制器或多应用协调的考虑,这牵涉到对各控制器或应用的细粒度授权和访问控制。
3 SDN安全技术及应用
随着SDN研究的不断深入,已经涌现出一系列创新的、基于SDN方式的安全技术和应用,包括:
(1)企业网访问控制Ethane
斯坦福大学Ethane项目[7]允许网络管理人员以一种更易理解的方式定义精细化、全局性的网络连通策略,并通过集中式控制器统一下发到支持Openflow的网络交换机中。在Ethane中,主机入网和用户入网都需要经历主机认证和用户认证过程,集中式控制器建立起服务、用户、主机、IP地址、MAC地址以及交换机端口的绑定关系,这些绑定关系使安全策略能够以一种比传统防火墙或交换机ACL更易读的方式表述。比如,“Nick can access Martin using ICQ”、“Marketing can use http via web proxy”。这里,集中式控制器无需考虑维护分布式访问控制策略的一致性,可以根据安全策略决定每一条Flow在网络中的路径。
(2)SDN的安全网络操作系统FortNOX[8]
SRI公司和Texas大学的研究团队提出了一种针对Openflow SDN的安全网络操作系统FortNOX,这是一个由美军研究中心(Army Research Center)资助的项目,能够为Openflow控制器提供基于角色的授权和安全限制这两种安全增强措施,并实现了一种算法来检测控制器上恶意应用对Openflow流表所实施策略的绕过。作为一种软件扩展,Fort-NOX集成在NOX网络操作系统之中,根据安全策略对NOX上应用操纵流表的所有操作进行仲裁,确认不会跟已有规则发生冲突后,才允许其写入到网络交换机中。FortNOX将控制器上的应用分为三类,包括普通应用、安全应用和管理员应用三类角色,其权限优先级依次升高。各类应用程序通过FortNOX提供的IPC(进程间控制)接口,对自己发出的流操作进行数字签名,FortNOX通过验证数字签名,进而判断对流的操作来源于哪一类角色的应用。该IPC接口是作为一个独立进程运行的。
在FortNOX的基础上,该研究团队还实现了Fresco应用框架,提供可用于在Openflow网络中迅速实现和部署安全应用程序的功能,这些应用程序包括检测扫描并将其导入蜜罐、检测扫描给出假拓扑、僵尸网络发现等有趣的例子。
(3)轻量级DDoS(分布式拒绝服务)检测
来自巴西的研究团队根据通信流的特性,实现了一种基于神经网络的轻量级DDoS检测算法[9]。与当前DDoS检测需要分析大量数据包不同,这种算法使用的神经网络算法利用了Openflow交换机维护的每个流的统计信息和NOX提供的接口,显著降低了计算开销。
(4)网络虚拟化
SDN还可以利用FlowVisor[10]这一特殊的网络控制器,实现基于流特征分割网络为Slice、某一网络控制器控制某一特定的Slice的网络虚拟化能力。FlowVisor位于交换机与客户网络控制器之间(Proxy),截获在它们之间传递的数据包,既确保某一客户网络控制器只能发现和控制它所控制的那一片Slice,也确保属于某一片Slice的交换机只能与自己的客户网络控制器联系。这种“一虚多”的网络虚拟化能力,使OpenFlow各种实验能够互不干扰地在同一物理网络中并行,也可以在不影响实际生产性网络的条件下进行网络研究实验,非常适合网络试验床使用,目前已知韩国、欧盟Ofelia、美国GENI和Internet2等网络体系结构研究试验床项目都采用了Openflow进行试验。网络虚拟化对于信息安全上的意义在于,可以构建相互隔离的虚拟网络,为不同安全等级的应用业务提供服务。还可以在不影响真实网络和业务的前提下,提供蠕虫、僵尸网络等恶意代码试验的受控网络环境。
(5)校园网网络访问控制
NEC公司系统平台研究实验室针对目前校园网划分VLAN进行访问控制不够灵活、配置难度大的现状,提出了一种基于Openflow的网络访问控制方案[11]。该方案在NEC Openflow控制器上实现了一个访问控制管理的功能模块,与Radius接入认证相结合,根据用户的身份、所处的组织机构和MAC地址来进行访问控制,只有具有相同GID(组织机构的ID)的用户允许通信,这种使用GID来划分虚拟网络的方案比基于802.1q标签划分VLAN的方案更加灵活且支持虚拟网络的数量更大(GID有64字节),显著提高了网络访问控制的自动化程度,不需要针对每个交换机进行繁琐的配置,降低了由于WIFI接入用户经常移动、部门变动而带来的VLAN重新划分的工作量。
(6)Radware的DefenseFlow
日前,Radware推出被称为业界第一个软件定义网络SDN安全应用DefenseFlow,旨在为全网范围提供攻击缓解服务。软件架构提供三方面支持:SDN应用编程,SDN生态交互系统,SDN相关API支持。
(7)国内的研究
随着去年底成立了中国SDN与开放网络专业委员会,一些单位已经开始对SDN技术,包括SDN的安全技术进行研究和测试。如清华大学在校园网上部署的网络安全系统Livesec在传统以太网之上,通过无线接入技术和虚拟化技术引入了基于Open-Flow协议的控制层,显著降低了构建成本。
4 SDN对信息安全的启示
SDN作为一种新的网络体系结构,其全新的理念、创新式的应用给信息安全技术带来了冲击。
(1)安全即服务(Security As a Service)
按照SDN控制与转发分离的思想,信息安全可以作为一种网络控制层面的应用,运行在网络操作系统之上,对网络实施统一控制。按照这种思路,传统网络防火墙、UTM、IPS等Inline设备“慢速路径”上实现的检测、应用层识别、URL过滤等功能都可以实现为网络操作系统之上运行的一种信息安全应用。在这种场景下,威胁的探测和数据的转发实现解耦,用户可根据自己的安全需求,在控制层面选取实现某种威胁检测模型的安全应用,在数据平面选取某一性能的防火墙(或Openflow交换机),组合实现最符合自己需求的信息安全解决方案。这样,作为网络操作系统上运行的应用,信息安全更容易以软件服务的形式提供。
设想这样一种场景,原有网络环境主要是防范外部用户的恶意攻击,由于需求和应用环境发生了变化,更重视对内部用户的管控和合规性的满足,网络所面临的威胁模型变得迥然不同,但用户通过SDN,可以在保护已有网络投资的基础上,通过更换网络操作系统上运行的安全应用来适应不同的网络环境,而不需再投资购买专门的安全设备。虽然用户得利,但这种“安全应用+转发硬件”的模式,也使传统安全设备整机厂商受到冲击。
(2)基于网络全局的安全控制
从Ethane等项目可以看出,在网络操作系统之上运行的信息安全应用,由于比网络或安全设备所处的层次更高,通过对网络全局信息的掌控,可以实施更高抽象层次的安全控制,比如指定用户中谁能够跟谁通信、谁访问HTTP必须通过代理服务器,这种抽象层次显然高于传统ACL(访问控制列表)指定端口、IP地址、MAC地址甚至应用层中的某个字段的方式。由于信息安全应用只是网络操作系统中的一种应用,网络操作系统可对各种应用进行权衡,有利于实现对网络的一致控制,即除信息安全外,还可以综合考虑网络应用性能、负载均衡等多方面的需求。SDN提供了将信息安全与网络可用性、容灾备份等一起统一考虑的技术手段。
(3)安全集中管控
在Internet那样量级的网络中,无疑采用分布式控制是有优势的,生存性、可扩展性都有优势。然而,对于军队、党政等封闭的专用网络环境,其网络规模不是很大,信息流相对固定,防内重于防外,特别强调满足安全保密的合规性,需要对用户进行认证、授权和审计,采用SDN的网络架构,无疑是效率最高的,具有集中管控的优势。从NEC的安全应用可以看出,这种集中管控还可以满足网络拓扑经常变动的需求,能够随用户移动、虚拟机迁移而进行动态调整。
5 结语
作为目前最为流行的网络技术,SDN在引入新的安全问题的同时,也提供了网络安全创新应用的一种便捷的实现方式。与独立的网络安全设备相比,基于SDN的安全应用在“安全即服务”、基于网络全局的安全控制、安全集中管控方面具有优势,成为SDN研究的热点。
[1] MCKEOWN N,ANDERSON T,BALAKRISHNAN H,et al.Openflow:Enabling Innovation in Campus Networks[J].ACM SIGCOMM Computer Communication Review,2008,38(02):69 -74.
[2] 范伟.软件定义网络及应用[J].通信技术,2013,46(03):67-70.
FAN Wei.Software - Defined Networking and Application.Communications Technology,46(03):67 -70.
[3] OpenFlow Switch Spec Version1.0[EB/OL].(2012 -09 -07)[2013 -08 -15].http://www.opennetworking.org.
[4] DAVY M,PARULKARG,REIJENDAM Van J,et al.A Case for Expanding Openflow/SDN Deployments On University Campuses[EB/OL].(2013-01-02)[2013-08-15].GENI report.http://www.openflow.org.
[5] OpenFlow Switch Spec Version1.3.0.[EB/OL].(2012 -11-05)[2013 -08 -15].http://www.opennetworking.org.
[6] WASSERMAN M,HARTMAN S,ZHANG D.Security Analysis of the Open Networking Foundation(ONF)OpenFlow Switch Specification,Internet Draft.[EB/OL].(2012-08-03)[2013-08-15].http://datatracker.ietf.org/drafts/current.
[7] CASADO M,REEDMAN F,PETTIT J M,et al.Ethane:Taking Control of the Enterprise[J].ACM SIGCOMM Computer Communication Review,2007,37(04):1-12.
[8] PORRAS P,SHIN S,YEGNESWARAN V.A Security Enforcement Kernel for Openflow Networks[C]//Proc.of the HotSDN Workshop at SIGCOMM.Helsinki,Finland:ACM,2012:121-128.
[9] BRAGA R,MOTA E,PASSITO A.Lightweight DDoS Flooding Attack Detection Using NOX/Openflow[C]//35th IEEE Conference on Local Computer Networks.Denver,Colorado:IEEE,2010:408 -415.
[10] SHERWOOD R,GIBG,YAPK K,et al.FlowVisor:A Network Virtualization Layer[EB/OL].(2012 -03 -19) [2013-08 -15].Openflow Technical Report.http://www.openflow.org.
[11] YAMASAKI Y,MIYAMOTO Y,YAMATO J.Flexible Access Management System for Campus VLAN Based on Openflow[C].//IEEE/IPSJ International Symposium on Applications and the Internet.Munich,Bavaria Germany:IEEE,2011:347 -351.