基于OpenFlow的网络安全技术研究
2021-10-27
来源:21ic中国电子网
引言
OpenFlow是一种软件定义网络(SDN)的解决方案,它使得网络的灵活性大大增加。它是以在实际环境中测试新协议为初衷而开发的新技术。OpenFlow在使用新协议时不打断原有网络的正常运行,并且使用OpenFlow的网络转发设备(Switch)实现了与控制器(Controller)的标准接口,新的协议、转发方式不必重新开发网络转发设备,从而减少了不必要的麻烦(如厂家不愿意开放其技术细节,导致第三方无法进行对设备的灵活升级、使用)。OpenFlow技术使得网络更加灵活,已经成为软件定义网络的解决方案之一。现在已有的研究成果中,已出现了以OpenFlow技术实现QoS、路由算法[等的方法,针对如何使用OpenFlow技术解决网络安全问题还是一个新的课题。
本文以OpenFlow技术为基础,开展新型网络安全体系结构设计方法的探索。主要研究了OpenFlow技术;并为采用隧道技术改进的OpenFlow网络安全设计方法进行了探索;给出了基于OpenFlow技术的增强型网络安全设计方法;最后为OpenFlow技术在未来网络安全中的应用进行了展望。
1OpenFlow技术
OpenFlow是斯坦福大学CleanSlate计划资助的一个开放式协议标准,同时也作为GENI计划的一个子项目,主要用于在现有网络上部署新的协议和新的业务应用叫OpenFlow技术主要由OpenFlow交换机、控制器Controller和虚拟化FlowVisor组成。OpenFlow交换机完成数据转发;控制器Controller完成转发策略的判断;虚拟化FlowVisor提供一个虚拟化层,使得多个控制器可以控制同一个交换机。
图1 OpenFlow技术组网结构
为了简单起见,先不考虑网络虚拟化问题,那么一个基本的OpenFlow技术组网结构如图1所示,它包括OpenFlow交换机(Switch)和OpenFlow控制器(Controller)。当第一个数据包到达Switch后,由Switch使用OpenFlow协议通过安全通道(SecureChannel)将它转发至Controller,Controller
上的软件进行转发决策,将转发决策下发到Switch的流表(FlowTable)中,后续数据包按FlowTable规则转发。安全通道是基于SSL协议的,保证了控制器及系统的安全。它在设备与控制器之间釆用证书认证的方式来进行合法设备的识别,以防未授权设备的接入,从而保证控制器和系统本身不受攻击。
图2所示是OpenFlow交换机的流表。它包括三个部分,分别是MatchFields(表示匹配的流信息元组)、Counters(是一个数据包字节统计)、Instructions(表示针对这个流的处理方式)。每个流表项包括了一组Instructions,它们在当数据流匹配到这个表项时被执行。在Instructions中定义了一系列Action行为,如Apply-Actions>Clear-Actions>Write-Actions等。这些行为中可根据ActionSet的内容具体执行。ActionSet中有几个“必须”Action,分别是Output、Drop和Group。
2采用隧道技术改进的OpenFlow网络安全设计
如果实现网络安全设计,需要Controller进行逐包检测而不是按流转发(如上所述),因为按流转发只能完成最简单的包过滤防火墙的功能。为了结合目前最新的网络安全技术,如深度包/流检测,以达到对网络更细粒度的保护,需要改变按流转发的策略为按包检测。这样做在OpenFlow技术实现上是可行的,但按包检测进行转发会使网络传输速率下降,使得网络规模不会很大。
本解决方案是将流转发至一个线速的包处理器NetFPGA进行网络安全分析,以便在进行网络安全检查的同时提高转发速率,图3所示是基于OpenFlow技术的网络安全设计图。如果发起从PC1到PC2的访问,其过程又需要网络安全的保证,那么流量首先经过交换机,然后控制器更新交换机的流表,于是流量就从交换机通过隧道技术转发给了NetFPGA,由它来为转发的流进行安全性检测。如果通过,则将流解隧道封装转发到目的地PC2;不通过则丢弃。采用隧道技术进行传输的优势有三点:首先,隧道封装后不会丢失原始流的信息,以防直接改写流表造成原始流目的地址丢失;其次,隧道封装后形成新流,不会使新流和原始流(刚进入系统且未经检查的流)混淆;最后,隧道封装后有利于与传统设备(非OpenFlow设备)的兼容,以便实现第3部分将要提出的增强型网络安全设计架构。至于NetFPGA的实现,则会有多种多样,可以将现有网络安全设备的研究成果用在这里。采用了基于OpenFlow技术的网络安全设计使得网络中的每个转发设备都具备安全性功能,因为它们在转发时要考虑控制器和NetFPGA的转发策略,而这些策略是通过网络安全技术人员精心设置的。例如,为了实现基于OpenFlow技术的网络安全设计,应对原始OpenFlow技术进行扩充。以下是笔者提出的具体改进方案:
图3 基于OpenFlow技术的网络安全设计
首先是在流表的Instruction的ActionSet中增加check行为和tunnel_encap行为。给check行为定义三个值,分别是00(未进行安全检查)、11(安全检查完毕,确保安全)、10(安全检查完毕,不安全);同时也给tunnel_encap定义三个值,分别是00(不需要隧道封装)、11(需要隧道封装)、10(解封装)。
其次,在OpenFlow交换机上实现数据隧道功能和流缓存时间统计功能,并且在Controller上实现暂存、修改流状态功能。当PC1将流量发至PC2并经过交换机时,由交换机将流转发给Controller,Controller查看到传输的目的地是PC2,则Controller将check字段设成00(未进行安全检查),tunnel_encap字段设成11(需要隧道封装),传给交换机并将这个流的信息暂存。然后,交换机将PC1传过来的流量封装到一个IP隧道中,这个隧道的内层就是PC1到PC2的IP传输路径,外层就是PC1到NetFPGA的IP传输路径,并标记为新流。再次发送新流请求给Controller(这时目的地是NetFPGA),让其找出从交换机到NetFPGA的下一跳输出端口(这时check值为00,tunnel_encap为00)。当交换机收到这个策略时,将其路径写入流表,按外层数据包匹配的流表项(PC1到NetFPGA)进行转发。交换机上的流表项应设置缓存时间,因为上次检查过的流没有安全问题并不代表下一时刻流中的数据也是安全的,所以需要设置超时阈值以便于重新检查。
其他交换机在转发询问到NetFPGA的路径时不需要封装,因为Controller中暂存的记录tunnel_encap为00。当NetFPGA收到隧道包后,它将进行流内容的安全检查,并通知更新交换机流表将check值设为11(安全检查完毕,确保安全)或为10(安全检查完毕,不安全),将tunnel_encp值设为10(解封装)。同时,修改Controller中暂存的原始流记录值的check为11、tunnel_encap为10。
接收到check为11、tunnel_encap为10的交换机将这个流的外层隧道剥离,并再次发送内层转发请求给Controller以寻找到PC2的下一跳路径。由于Controller中针对该流的暂存标记已修改为check为11、tunnel_encap为10,所以不再封装与检查。收到结果后,则按照内层路径进行转发。这样,数据包就从PC1传输到了PC2。当交换机收到check为10的流时,丢弃数据包。
在基于OpenFlow技术的网络安全设计中,可以设置多个Controller和NetFPGA。它们分别实现不同的策略,以保证网络安全策略的纵深化、层次化。对于重点保护区域,设置高级别的安全策略,安全性相对较低的区域采用低级别的朿略。
3基于OpenFlow技术的增强型网络安全设计
OpenFlow技术使网络的部署更加灵活,使用这项技术的网络安全部署也就能够突显出它的优势。
首先,网络保护全面。网络中的每个转发设备都是防火墙/IPS/UTM,因为它们都按照Controller和NetFPGA的策略转发。以前,网络安全设备(如防火墙等)都仅部署在两个安全级别不同的网络边界,但对同一个安全级别内部的攻击却束手无策。采用了OpenFlow技术的网络安全设计使得全网就会有一个全局的安全策略,不会出现‘仅防一点“的尴尬局面。所以,它的保护具有全面性。
其次,网络保护具有均衡性。不会出现”木桶效应“,因为Controller和NetFPGA的策略是一致的,必要时可进行分等级的安全性部署。众所周知,一个好的网络安全设计是不应该出现明显弱点的。采用了OpenFlow技术的网络安全性设计使得网络中没有明显的弱点。为了防止网络被黑客攻破,可以采用分等级保护的策略。在网络设计时,将网络按安全性划分出若干个逻辑等级,在每一个逻辑等级上实施不同的转发策略,并且在同一个安全级别的逻辑网络内还可按不同应用进行策略配置。这样,使得网络的安全性策略有层次、有条理,不至于出现一点被攻破就全盘皆输的情况。所以,它的保护具有均衡性。
再次,网络保护易于升级、维护,并且具有高可用性。Controller(或NetFPGA)内部的转发策略易升级,以应对新型网络攻击。由于采用了集中式的网络安全保护,即安全策略是高度集中的,因此,升级病毒、攻击特征库仅需在中心控制设备上进行。由于OpenFlow网络的特性,升级后的网络设备全部具有最新更新补丁。另外,可把中心Controller(或NetFPGA)采用双机热备策略。备用中心节点通过”心跳“信号来检测主中心节点是否还”活着“,如果主节点出现问题,备用节点马上接管起主节点的任务。所以,OpenFlow的网络安全设计具有易升级、易维护和高可用的特性。
在这里,我们看到了基于OpenFlow技术的网络安全设计的优势。这种架构是一个全新的思路。如果再把传统的网络安全保护方式与这种全新的方式结合起来,那么这个系统就显得更加完善。我们称满足上述优势并与传统方式相结合的OpenFlow设计为增强型设计。它可在不破坏OpenFlow技术架构的同时,再在网络的关键点上设置一些诸如IPS、防火墙等设备,这会使得两种保护方式相得益彰。传统设备按IP地址转发,这也是在本文第2部分中提到使用隧道技术的原因之一。在关键服务器的前端设置一个IPS,在网络边界设置防火墙,都是不错的选择。OpenFlow技术在信道传输的层面上保护了网络安全,IPS在应用层面上过滤安全威胁,防火墙在两个可信度不同的域之间建立起安全桥梁。随着传统网络安全设备的不断更新换代,其保护的功能也越来越强。在这种环境下部署OpenFlow与传统设备的结合,会使网络更加安全、可靠。
4OpenFlow技术在未来网络安全中的应用展望
在不久的将来,网络将向着更快、更安全、更丰富和更人性化发展。目前出现的云计算技术代表了网络的先进发展方向,用户可以像使用水、电及煤气那样方便地使用云计算的服务。然而,如何识别合法用户在其中显得格外重要。目前,还在被IETF讨论的LISP协议(Locator/IDSeparationProtocol)可以将位置与身份分离,这样,单一IP地址不再担当网络寻址与身份的双重任务。LISP使用户在位置改变时,身份标识保持不变。文献中阐述了如何使用身份标识EID和位置标识RLOC。LISP将身份标识赋予每个流,这迎合了OpenFlow的流控制技术,所以,LISP与OpenFlow技术可以完美结合。文献[8]将OpenFlow技术引入云计算服务。在云计算数据中心,基础服务层的设备将被替换成OpenFlow设备实现数据转发,同时利用OpenFlow控制器根据用户数据流中的EID进行转发决策来提供安全、合法的云服务,图4所示是OpenFlow的云计算应用方案。同时,应根据用户的EID信息通过OpenFlow技术将不同组别的用户划分到不同的VLAN中,以便在网络上对云计算虚拟化应用提供用户隔离,从而保证安全性。
图4 OpenFlow的云计算应用
5结语
OpenFlow技术有着广博的发展空间,它能应用于路由、QoS、安全等各个方面。它改变了网络的转发方式,是个全新而大胆的解决方案。通过本文的分析,我们看到基于OpenFlow技术的网络安全设计的优势,它与传统方式构成的增强型设计方案使得网络安全问题得到了很好的解决。最后,云计算的发展也为OpenFlow技术提供了施展的舞台。