基于SDN/NFV的安全服务链构建技术
2018-02-13张林杰曹丽惠
张林杰,李 倩,贾 哲,曹丽惠
(1.通信网信息传输与分发技术重点实验室,河北 石家庄 050081; 2.空军指挥学院,北京 100097)
0 引言
21世纪的网络安全已经成为安全研究的一个焦点,“网络战”、“网络主权”等概念层出不穷,网络空间作为继“陆、海、空、天”后的第五空间而备受瞩目。现有安全防护手段如入侵检测、防火墙等,都是构建在高成本的专用硬件和封闭软件的设备中,本质上都是通过不断升级或补充特征库的方式对安全问题做出被动响应。随着网络安全形势的日益严峻,查漏补缺、外围封堵的传统安全防护模式正在走进“死胡同”。
传统安全设备(例如防火墙、入侵检测)是基于特定的硬件环境实现特定的安全防护功能,部署在网络中的固定位置,很难满足当今网络服务和应用的不同安全要求。一是传统的安全服务设备与网络拓扑紧耦合,管理配置固定繁琐,无法随业务安全需求变化而动态变化,无法根据网络状态和安全威胁进行网络防御能力的动态调整;二是当前网络攻击的演变速度大大超过了安全防护技术的开发和更新速度,管理员需要根据各种新型攻击扩充检测攻击特征库,现有的网络架构下进行各种安全设备的升级和更新换代,安全服务升级周期长、扩展难、成本高、易出错,管理员无法实时高效地实现对网络的安全管理;三是网络中部署的各种安全防护设备功能重复交叉,网络的安全防护设备繁多,重复建设,开销成本高,资源消耗大;四是各厂商之间的安全设备缺乏透明度,软硬件种类繁多,阻碍了技术融合,不利于形成全网统一的态势呈现。
网络功能虚拟化(NFV)[1]通过在通用服务器上部署虚拟网络功能(VNF)软件取代基于专用硬件的网络设备,在降低网络成本和运营支出的同时,部署使用更加灵活。软件定义网络(SDN)[2]可对全网流量进行细粒度控制,支持应用的动态部署和重新配置。SDN和NFV技术[3]的发展,使得网络服务和应用系统可采用服务功能链(SFC)这种高效、可扩展的方式,实现快速自动部署。作为网络服务和应用的关键特征之一的安全性[4]也必须满足当今快速增长和不断发展的网络及应用的不同安全需求[5]。
SHIN S等[6]提出FRESCO安全架构,其以安全模块组合的方式生成安全服务,但仅给出了功能上的验证。QAZI Z等[7]通过对SDN/NFV技术的分析,提出通过组合虚拟安全应用模块来构建安全服务链(SSC)的技术思想,但并未给出服务构建策略。LEE W等[8]提出的SIMPLE方案利用SDN技术设计了针对数据层中网络功能中间件的管理机制,然而其仍缺乏对应用层的组合策略。GUSHCHIN A等[9]也仅在假设网络节点具有安全服务能力条件下,研究了节点间的路由问题。Martini B等[10]通过修改OpenFlow 协议QoS字段来标识不同网络流服务需求,提出了基于服务类型的SSC理论模型。但该方案拓展了SDN网络的南向标准协议,兼容性较差且需预先编排各个服务类型对应的服务链。Giotis K等[11]提出了基于策略的网络虚拟资源管理机制,根据不同数据流的业务需求动态地编排服务节点,但其并未涉及应用策略更新引起的策略冲突问题。
Cloud4NFV[12]基于ETSI的架构规范,设计了一种端到端的NFV平台,对服务链的管理和编排进行了优化。Clayman等[13]针对高动态网络提出了一个基于协调器的架构,通过监控网络服务配置和资源状况,确保VNF的自动编排,实现虚拟网络的自动化部署及资源的自动化分配。NetFATE[14]考虑到网络流量所需通过的服务链,提出了将业务流程虚拟化的方法,在设计服务链的同时,也需要考虑物理资源的有效利用,从而实现预期的经济效益。刘鎏等[15]针对传统虚拟网络映射算法的不足提出了基于资源主动拆分的vNFC映射策略,并利用最优化算法,将vNFC的映射问题建模成整型优化问题,有效地提高了物理资源利用率。
本文提出了一种SSC构建方法。该方法基于SSC体系架构,通过SDN控制器下发SSC构建策略,包括分流策略和流量牵引策略,到SDN交换机,来构建SSC。试验结果证明,利用提出的SSC构建方法可实现防火墙、入侵检测以及深度包检测等功能,并能够借助流量牵引模块按需编排安全服务,形成SSC。
1 安全服务链
基于SDN的服务功能链[16](SFC)定义了一组有序的抽象服务功能和排序约束,SSC作为一种服务功能链,定义了一组有序的安全功能,以及针对特定数据包和/或流的安全策略。用户可根据不同业务需求动态部署安全功能(如vFW、vIDS等),按需编排安全功能形成SSC,在应用生命周期内,为应用提供安全服务,支持安全服务的弹性伸缩和故障迁移,同时支持实时威胁检测和基于策略的自动化响应[17]。安全服务提供商利用SSC,可管理和运营独立的安全服务,并提供可集成到其他服务(如智能交通系统(ITS)、视频服务和位置服务)中的定制安全服务。服务提供商可以只关注基本服务逻辑,从安全服务提供商那里获得专业安全服务,以便为终端用户提供安全服务。
根据部署方式的不同,SSC可以分为2种:① 独立的SSC[18],安全服务提供商可自行管理和运营独立的安全服务;② 互通SSC,与其他SFC整合,以将安全机制嵌入到数据流的提供端到端的服务/应用。
根据服务对象不同,SSC可以分为非面向用户的SSC和面向用户的SSC。非面向用户的SSC既不面向特定用户也不面向特定业务逻辑提供通用的安全服务,如数据包过滤、入侵检测和预防等功能;面向用户的SSC是面向特定用户和/或特定业务逻辑,并且通过与SFC控制器协作而以特定顺序集成到SFC(服务功能链)中。例如,面向用户的SSC提供认证、授权和单用户加密/解密等安全服务,以实现更高的安全级别保护。非用户导向的SSC可以作为独立的SSC和互通SSC进行部署。面向用户的SSC只能部署为互通SSC,因为必须集成到特定的业务逻辑中。
2 基于SDN/NFV的SSC体系架构
SSC的构建同时利用了软件定义安全(Software Defined Security,SDS)和虚拟化安全(Virtualized Security Appliance,VSA)2种技术思路。
SDS的特点是将安全的控制平面和数据平面进行分离和重构,实现模块化、服务化、可重用。SDS将现有安全技术分解成基本安全服务,并进一步划分为原子安全服务。然后,通过SDN控制层的可编程能力及安全防护控制器,利用服务重构技术和安全状态表将各安全原子服务有机整合,形成定制的安全能力。
VSA的特点是通过传统安全设备的虚拟化来实现SDN网络中的安全嵌入。SDN网络被划分为基础设施层(主要包括计算和存储资源,以及负责网络转发的交换和路由设备等)、控制层(主要有SDN控制器组成)和服务层(主要包括业务应用和网络安全应用等),在VSA模式下,安全设备,例如防火墙、入侵检测和防护系统、反病毒系统、蜜罐等安全设备工作于服务层,由网络控制器根据策略将目标流量调度到相应的安全设备进行处理。
基于SDN/NFV的SSC体系架构如图1所示,包括SSC控制器和SSC功能域2部分。网络服务/应用和安全管理根据安全需求向SSC控制器发送SSC请求,SSC控制器根据安全需求,创建SSC,提供定制的安全保护。
图1 基于SDN/NFV的SSC体系架构
SSC各部分功能详细描述如下:
① Restful编程接口:SSC控制器对上提供基于Restful的编程接口,方便与其他服务或应用的集成。
② SSC管理:包括服务链目录、服务链创建以及服务链列表。服务链目录,用于管理定义服务链;服务链创建,用于创建SSC实例;服务链列表,用于管理创建的服务链。
③ 安全功能管理:包括安全功能目录、安全功能创建以及安全功能列表。安全功能目录,用于管理定义安全功能;安全功能创建,用于构建安全功能实例;安全功能列表,用于管理安全功能实例。
④ 策略管理:主要包括对分流策略以及流量牵引策略的管理。
⑤ 动态编排:主要包括安全事件分析以及动态响应。安全事件分析:用于分析异常事件;动态响应:当安全事件分析模块发现安全攻击后,动态响应模块根据规则生成SSC请求,并把SSC请求通过消息总线发送给中央调度器。
⑥ 分流引擎:基于分流策略,识别数据流;一旦识别数据流,则将服务链实例ID作为服务链标签插入到数据包中,从而为后续流量牵引做准备;将打上服务链标签的数据包转发给vSwitch。
⑦ 流量牵引:模块内嵌于vSwitch模块;根据数据包中的服务链标签以及相应的流量牵引策略,将流量牵引到1个或多个安全功能实例;从安全功能实例回收流量,然后将流量牵引到下一跳的流量牵引模块或分流引擎,实现安全功能服务链。
⑧ 安全功能实例:基于虚拟化技术创建的安全功能引擎:vIDS,vFW,vDPI等。
3 SSC创建
创建SSC的过程描述如下:
① 服务/应用或管理平台请求来自SSC控制器的定制安全保护,并根据安全要求向SSC控制器发送SSC请求。
② 在接收到来自服务/应用程序,管理平台的SSC请求后,SSC管理将查找服务链目录并选择适当的SSC。
③ 服务链列表检查是否在SSC列表中注册并激活了此类SSC的实例。如果是,则将选择并重用该SSC的活动实例。然后转到步骤⑤。如果此类SSC的实例没有被激活,服务链列表会查找安全功能目录,并在步骤②根据选定的SSC选择相应的安全功能。
④ 根据选定的安全功能,服务链列表检查这些安全功能的实例是否已在安全功能列表中注册和激活。如果是,则这些活动实例将被选中并重用于此SSC。然后转到步骤⑤。如果选定的安全功能没有被激活,将查找虚拟安全功能镜像存储库并选择安全功能镜像,并通过SDN控制器提供的网络拓扑结构将安全功能镜像实例化并部署在相应的主机中。然后把相应的信息反馈到服务链列表和安全功能列表中。
⑤ 创建对应的分流策略和流量牵引策略,分别反馈到服务功能转发器(SFF)的分类策略表和流量牵引转发表中。
4 SSC试验
SSC试验拓扑图如图2所示,主要由外部设备1.0.0.14、内部设备8.0.0.14、网关以及流量牵引模块组成。外部设备经过网关后进入流量牵引模块,由ONOS控制器牵引流量流经vFW,vIDS,vDPI等安全功能,最后到达内部设备8.0.0.14。内部设备8.0.0.14经由网关联通外部设备1.0.0.14。
图2 SSC试验拓扑图
4.1 vFW防火墙功能测试
在vFW内部添加规则拦截源地址为1.0.0.14或目的地址为8.0.0.14的数据包后,外部设备1.0.0.14向内部设备8.0.0.14的ping请求失败。添加iptables规则后外部设备抓包图如图3所示。由图3可以看出,SSC中的vFW安全服务能够起到防火墙的作用。
4.2 vIDS入侵检测功能测试
由外部设备1.0.0.14发起对内部设备8.0.0.14的端口扫描攻击。vIDS的告警信息如图4所示。
图3 添加iptables规则后外部设备抓包图
从图4可以看出,SSC的vIDS安全功能具有入侵检测功能。
图4 由外部设备发起端口扫描攻击后vIDS的告警信息
4.3 安全服务vDPI深度包检测功能测试
此处采用与上述同样的试验方法,vDPI深度包检测结果图如图5所示。由图5可以看出,SSC的vDPI安全服务可以对数据包进行深度检测。
图5 vDPI深度包检测结果
5 结束语
SSC是一种服务功能链(SFC),包含一组有序的安全功能,可实现安全功能的动态部署以及按需编排。提出了一种SSC构建方法,由试验结果可以看出,该方法能够借助流量牵引模块按需编排安全服务,形成SSC;并且系统内的安全功能vFW,vIDS,vDPI分别具有防火墙、入侵检测以及深度包检测功能。