云环境中的软件定义安全

引言

作为一种新兴的计算模式,云计算能够将各种各样的资源以服务的方式通过网络交付给用户。这些服务包括种类繁多的互联网应用、运行这些应用的平台,以及虚拟化后的计算和存储资源。由于云计算应用的用户信息资源的高度集中,存在的风险以及带来的安全事件后果也较传统应用高出很多。自“棱镜门”事件以来,各国政府对云安全的重视也已上升为国家基础设施安全的高度。对政府而言,提高云服务的安全防护能力,提高事中检测能力和事后追责处置能力,是政府推动云计算落地发展的所要面对的首要问题之一;对普通用户而言,其对云平台的安全性的顾虑也是当前制约云计算发展的主要因素之一,能否确保云计算平台中用户数据的机密性、完整性、可用性,将很大程度影响用户是否愿意将其数据和应用向云计算平台进行迁移。

从技术的角度来看,云计算不仅仅是一种新的概念,并行计算和虚拟化是实现云计算应用的主要技术手段。由于硬件技术的快速发展,使得一台普通的物理服务器所具有的性能远远超过普通的单一用户对硬件性能的需求。因此,通过虚拟化的手段,将一台物理服务器虚拟为多台虚拟机,提供虚拟化服务成为了构建公有云和企业私有云的技术基础。在以虚拟化技术为基础构建的公有云或私有云的服务系统中,传统网络安全的解决方案不能够提供可随被服务计算资源同步弹性扩展的按需服务能力,并且多租户问题也使得在物理边界消失的虚拟网络很难为不同安全要求的用户提供不同级别的安全服务。

 

云计算中的软件定义概念

VMware在2012年提出了软件定义数据中心(Software-defined DataCenter, SDDC)[1]的概念,是把数据中心所有的传统物理硬件的资源进行虚拟化、软件化,目的是为了能够通过统一的软件管理平台对所有虚拟化的资源进行统一的动态管理,从而真正实现NIST所定义的云计算[2]中的按需服务、弹性扩展等特性。软件定义网络(Software-defined Networking, SDN)[3]是由美国斯坦福大学Clean Slate研究组的Emulex提出的一种新型网络创新架构,利用OpenFlow协议,把路由器的控制平面(control plane)从数据平面(data plane)中分离出来,以软件方式实现,这个架构可以让网络管理员,在不改动硬件设备的前提下,以中央控制方式,用程序重新规划网络,为控制网络流量提供了新的方法,也提供了核心网络及应用创新的良好平台。云安全联盟(Cloud Security Alliance,CSA)则针对云计算环境中的边界消失问题提出了软件定义边界(Software Defined Perimeter,SDP)[4]的概念,SDP描述了一种加密安全架构,该架构采用了类似VPN的认证和加密方法,利用一个安全流程便可确定云环境中服务和应用的有效性,其使命是为云安全建立最佳实践和相关标准。

可以看出,无论是哪种软件定义的概念,都具有“业务实现软件化”、“业务流程解耦合”、“业务策略集中可控”这三种特性,即满足此三种特性的业务实现框架就可以认为其具有软件定义的能力。在实践中,业务实现软件化目的是能够在业务实现过程中动态的部署,比如动态生成和部署执行计算任务的虚拟机;业务流程解耦合目的是为了能够精细化控制和业务流程的动态组装,比如虚拟机计算、网络、存储资源的动态装配;业务策略集中可控目的是为了能够基于全局视角,感知业务需求,实现按需和优化,如SDN中的控制层对整个网络中流转发规则的管控。因此对于软件定义X(Software-defined X, SDX),这里软件定义对于X的价值在于使得X的业务实现对其所在环境具有更高的适配性,能够动态、按需、灵活的匹配环境变化带来的对X的业务管控的需求,即软件定义赋予了X能够根据其所在环境和业务需求按需而变的能力。

 

软件定义安全

在传统的网络环境中,安全解决方案在实施的过程中通常可以分为规划、部署、采集、分析、响应几个过程。“规划”是对用户现有业务环境安全需求的获取,并制定具有针对性的安全解决方案,包括选择安全产品、选择部署位置等;“部署”是基于安全解决方案把安全产品接入到用户的业务环境中,并进行相应的配置;“采集”是在安全产品部署完成后,开始从用户的业务环境中获取需要处理的信息,这些信息根据不同的安全产品可能包括用户操作系统内的进程一级的信息、业务系统、操作系统和安全产品的日志信息、网络流(netflow)和网络数据包信息、用户资产拓扑信息等;“分析”是安全产品对其所获取到的信息执行相应的算法进行处理的过程;“响应”是对分析结果的响应处理,包括展现、预警、配置安全策略等。

在传统环境的安全解决方案中,安全防护的对象是物理的主机和网络,安全任务的承担者是相应安全产品。在软件定义的云计算环境中,被安全保护的对象通过软件定义了,意味着这些对象在云计算环境中以虚拟化的方式存在,是软件形态而非硬件形态,因此能够被动态的调整、弹性扩展,这将导致被保护对象所需的安全服务能力和安全服务所保护的物理边界都是动态变化的。在这种环境中,安全需求的规划过程不再是一次性完成的,而会随着租户业务域的变化而随时变化;安全产品部署过程将随着安全需求而改变,并且安全产品的部署位置、时间都需要能够适应动态变化的被保护对象;物理边界的消失使得信息的采集过程需要对软件定义出的边界具有识别能力,而不再是简单的镜像端口;安全产品中的分析功能往往占用很高的计算资源,这使得把安全产品软件化后部署在虚拟化环境中,也将消耗很多本该用于用户业务系统的计算资源,这就要求分析功能需要尽可能的被从虚拟化环境中解耦合出来或者采取非7×24小时的方式按需启动;采集和分析的灵活性,不仅提高了对安全分析结果的响应要求,也增加了智能响应和协同可能,如通过网络检测和分析定位故障点后,按需启动主机检测和扫描的协同响应方式。由此可见,安全解决方案的整个实施过程中每个实践环节都受到云计算环境的影响,具有随需而变的需求,因此需要以软件定义的框架去实施整个安全解决方案,使之能够适应云计算的弹性多变的环境,为云的用户提供按需的、精准的、可靠的安全服务能力。

 

在软件定义的概念框架下实践安全

为了让安全解决方案在云计算环境中有效、可用,必须让安全解决方案实施的所有过程具有软件定义的特性,使之能够适应随需而变的业务环境,因此软件定义安全就要求能够把安全实施的整个过程中不可管控的部分解耦合,并且将其中无法在硬件形态下被管控的部分进行软件化。那么在云计算环境下,若一个安全系统同时具有软件定义规划、软件定义部署、软件定义采集、软件定义分析和软件定义响应的能力,则可以认为该安全系统是一种具有软件定义能力、符合软件定义安全框架的安全系统。显然这对于如杀毒、扫描等软件类安全产品比较容易实现,而对于入侵检测、防火墙等硬件类安全产品具有极高的挑战,因此实现一个具有软件定义安全能力的系统或产品,首先就需要考虑把硬件形态的安全产品进行功能解耦合和组件软件化。

以入侵检测产品为例,传统的物理硬件入侵检测系统在云计算网络环境中已经难以找到合适的接入点,硬件入侵检测系统通常只能静态地接入到物理网络中的一个固定的位置上,通过端口镜像获得固定物理链路上的网络流量。而在云计算环境中,入侵检测系统所需要检测的目的虚拟机可能会分布在不同的物理主机内,虚拟机的位置还将受到虚拟机迁移策略的影响,而随时有可能发生改变,并且虚拟交换机的存在也使得部分同属一个物理主机上的虚拟机间的网络流量可以不通过物理网络而直接在虚拟交换机内部进行交换,这都使得硬件入侵检测系统对网络流量的监控出现不完整性。

以虚拟机形态的安全产品来防护虚拟化网络的安全是现在大多数安全厂商采用的方案之一,然而这种方案并非能真正到达软件定义安全的目的,首先若采用虚拟机形态的入侵检测系统来对目的虚拟机进行“贴身防护”(即把入侵检测虚拟机与被保护的业务虚拟机部署在同一个虚拟交换机上),虽然能够解决虚拟交换机内部流量的不可见问题,但是完全功能的虚拟机入侵检测产品将会消耗虚拟化平台很高的资源,随着其防护能力的加强,对资源的消耗也将进一步加强;其次虚拟机形态的入侵检测系统并不具有全局的拓扑视角,因此入侵检测虚拟机只能对其所在物理主机内的业务虚拟机提供入侵检测服务,如果其所需要检测的对象(如一个逻辑的安全域内的一组业务虚拟机)不全位于同一台物理主机内,将不得不在所有存在这些业务虚拟机的物理主机上都部署入侵检测虚拟机,并且还需要同步汇总这些分布在不同物理主机上的安全虚拟机的信息才能够得到完整的安全域的安全状态;除此以外,另外一个从根本上难以得到解决的问题是安全产品并不仅仅是入侵检测系统,还包括了如入侵防御、Web应用网关、审计等很多种不同的产品,显然把这些功能都装进一台虚拟机是不现实的,那么要想实现完整的安全解决方案,就需要多产品间的配合工作,这样就需要把所有无法通过硬件的形态获取虚拟化环境内信息的安全产品都放入虚拟机内,部署在虚拟化环境中,这显然是不可行的方案,因为这些本身对计算资源需求极高的安全产品将抢占大量的本该属于业务系统的虚拟化计算资源。

云环境中的软件定义安全4083

图1 符合软件定义框架的安全实践模型

云环境中的软件定义安全4146

图2 软件定义采集——导流分流汇聚

云环境中的软件定义安全4208

图3 系统部署结构图

  对比本文提出的软件定义概念的特性,仅把入侵检测产品放入虚拟机只做到了软件化,并不是完整的软件定义,因此我们需要从整个安全的实施过程来对其进行改造,才能使之具有软件定义的软件化、解耦合和集中可控这三种特点。图1给出了一种符合软件定义框架的安全实践模型,按照此模型把虚拟机形态的入侵检测系统按照功能进行解耦合,解耦合后的入侵检测系统分成配置响应层、网络流操控层和业务分析层。其中,配置响应层用于对入侵检测系统策略配置和告警结果展示分析的功能,对应于安全实施流程中的响应过程。网络流操控层作为流量采集器以虚拟机的方式部署在用户的业务网络中,每台物理主机内部署一个这样的流量采集虚拟机,用于抓取该物理主机内所有虚拟机间的网络流量,并根据安全域的策略对流量进行按需的分类导引。图2给出了这个导流分类汇聚的原理图,边界混杂的流量被进行统一的按软件定义的域边界分类、再以软件定义的域边界对应的安全设备抓包口为目的进行汇聚,从而实现了在安全实施流程中软件定义采集的过程。通过网络流导引技术把通过流量采集虚拟机采集到的网络流量按照所属安全域转发到对应的物理入侵检测系统上,这里的物理入侵检测系统承担了对采集到的数据的分析和展现功能,对应安全实施流程中的分析过程。在整个体系结构的最上层,建立一个统一的安全管理中心,通过虚拟化管理中心提供的API接口收集全局拓扑信息,以软件配置的方式定义建立在物理拓扑信息上的安全域,根据安全域中虚拟机的物理位置按需的部署采集器,并为安全域分配物理安全设备,实现安全实施流程中的规划和部署过程。这样就实现了一个完整的包括规划、部署、采集、分析和响应的软件定义的安全解决方案的实施流程。图3给出了整个系统的部署示意图,被从物理硬件上解耦合出来的采集功能能够被部署到虚拟化环境的内部以获得物理硬件设备无法采集到的流量,在解耦出去采集功能后,硬件的入侵检测设备不再需要考虑具体的部署接入位置,而是可以接入在大二层的虚拟化环境中的任何位置上,其流量将不在是被动的流经其所监控的交换机端口,而是被主动推送到其抓包口上,租户的安全策略管理门户即安全管理中心,该设备可以以软件或硬件的方式接入在虚拟化环境中,该设备作为整个软件定义安全系统的大脑,控制着上整个软件定义安全的规划、部署、采集、分析和相应的过程。

通过表1对比说明符合软件定义特性的入侵检测系统和虚拟机形态的入侵检测系统在解决虚拟化环境具体安全问题上的能力区别:

表1两种入侵检测系统方案对比表

两种入侵检测系统方案对比表
虚拟化安全问题 虚拟机形态安全产品方案 软件定义的安全方案
流量可见性问题 全流量可见 全流量可见
安全域流量完整性问题 无法对应跨物理机的安全域,只能检测一台物理机内的虚拟机 可以跨物理机获取安全域的全部流量
适应动态拓扑能力 适应动态拓扑的性能较低,需要根据被保护的虚拟机的创建而实时创建,当被保护虚拟机迁移时,也需要实时跟随迁移,代价较高,并且无全局视角,需要手动操作 每台物理机部署一台抓取流量用的流量采集虚拟机即可,该虚拟机不迁移,当被保护虚拟机迁移时,只根据安全管理中心的命令自动同步安全策略,代价很低
安全域边界划分问题 不能区分网络流所属安全域,只能按照虚拟交换机的镜像功能抓取流量 在采集虚拟机处通过软件定义,划分了安全域边界,网络流导入分析引擎时,是按照划分后的边界进行的导流
占用虚拟化资源问题 占用资源随着分析功能的增加而提高,在部署多个虚拟机形态的安全产品后,将占用极大的计算资源 每台物理机最多只部署一个采集虚拟机,在虚拟化环境中只占用数据包捕获和导出所需的计算资源,占用资源可控,且较低
入侵检测系统自身性能问题 自身性能受到虚拟化环境的影响较大,难以达到硬件物理设备的性能水平 采用带外的硬件作为分析组件,能够达到和传统物理网络相同的性能

 

结束语

本文归纳总结了软件定义模型的三个特征:软件化、解耦合、集中可控。从安全实施的角度给出了一个软件定义安全的实践模型,该模型以软件定义的规划、部署过程来集中管控整个安全实施流程,通过解耦合采集、分析和响应过程来配合集中管控策略的动态变化能力,通过软件化的采集器组件保证对虚拟化环境的监控粒度,而利用硬件形态的分析组件保证安全业务的执行效率。本文所提出的软件定义安全的实践方法以入侵检测系统为例,但不仅仅适用于入侵检测系统,同时也广泛的适用于大多数硬件形态的网络安全设备,可以作为云计算安全解决方案的实施模板。

在下期中,我们将继续从软件定义安全的角度讨论:如何让物理安全产品能够以服务的方式提供按需的安全服务能力,如何让软件形态的安全产品也更加适应云计算的动态变化计算环境,如何对建立合理的云计算环境中的问责追溯技术环境,如何确保安全产品在虚拟化环境中不对用户业务系统产生资源竞争威胁,如何强化传统SOC在云计算环境中的能力,使之起到云计算安全管理中心的作用。

 

参考文献

[1] SDDC – Software-defined Data Center. http://www.vmware.com/cn/software-defined-datacenter/index.html

[2] Robert B. Bohn, John Messina, Fang Liu, Jin Tong, Jian Mao, “NIST Cloud Computing Reference Architecture,” services, pp.594-596, 2011 IEEE World Congress on Services, 2011.

[3] Boris Koldehofe, Frank Dürr,Muhammad Adnan Tariq and Kurt Rothermel. The Power of Software-defined Networking: Line-rate Content-based Routing Using OpenFlow. In Proceedings of the 7th MW4NG Workshop of the 13th International Middleware Conference 2012.

[4] Software Defined Perimeter (SDP) Specification v1.0. https://cloudsecurityalliance.org/download/sdp-specification-v1-0/

发表评论

邮箱地址不会被公开。 必填项已用*标注