武 越,刘向东,段翼真
(中国航天科工集团第二研究院706所,北京100039)
桌面虚拟化,是基于云计算的一种针对用户桌面的部署模式,将散乱分布于各处的用户桌面迁移至云中,以虚拟机的形式在云端数据中心服务器上运行虚拟桌面。桌面虚拟化环境中,用户应用程序具有不同的安全等级,存储资源也具有不同的安全等级,保证用户不同安全等级的应用程序和存储资源的持续隔离至关重要。但是,大量用户的虚拟桌面运行在数据中心的同一台服务器上,打破了传统用户桌面运行在各自主机上的物理隔离局面,攻击者可以利用虚拟化平台的安全漏洞对虚拟桌面进行攻击,窃取用户的敏感数据或与用户进行非法通信,并有可能在攻破一个用户虚拟桌面之后进而控制服务器内其他用户的虚拟桌面[1]。
为应对桌面虚拟化集中部署带来的安全威胁,本文首先对现有虚拟桌面进行改进,将用户虚拟桌面中不同安全等级的应用程序运行在不同的虚拟机中,以实现安全隔离;同时对虚拟机和存储资源依据不同的安全等级进行虚拟安全域划分并使用安全标签进行标识,制定访问控制策略,防止用户间非法通信和对存储资源的越权访问;最后,基于以上研究,设计实现了桌面虚拟化安全访问控制架构。
与传统本地桌面相比,虽然桌面虚拟化具有其独特优势,但是也存在相应的安全风险。本节将详细描述当前桌面虚拟化的现状,并逐一分析其存在的安全问题。
桌面虚拟化将用户的终端设备与桌面环境解耦合,每个用户的虚拟桌面运行在云计算数据中心服务器上,用户使用终端设备依靠桌面传输协议访问虚拟桌面。具体的桌面虚拟化体系架构如图1所示。
图1 桌面虚拟化体系架构
桌面虚拟化具有节约开销、易于运维管理、灵活访问、方便备份的优点,很多企业和行业基于提升管理维护效率和降低信息外泄风险的考虑,纷纷采用桌面虚拟化技术改造或重建内部信息基础设施,将散落分布的用户终端集中到云计算数据中心进行统一管理。桌面虚拟化作为具有前沿革命性的终端部署模式,由于其强大的集中部署和便捷管理,已经开始在各个单位企业中快速实施,逐渐取代了传统的分布式终端部署模式。
虽然桌面虚拟化具有传统本地桌面无法比拟的优势,但是随着虚拟化等技术的引入,当前桌面虚拟化架构面临新的安全风险。
当前,在桌面虚拟化的部署模式中,大量虚拟桌面运行在同一虚拟化平台上,导致不同安全等级的应用程序运行在同一虚拟化平台,用户不同安全等级的数据混杂存储,打破了传统用户桌面运行在各自物理主机上的物理隔离,不便于分类管理。同时,不同用户的虚拟桌面共享服务器资源 (虚拟机监视器 (hypervisor)和包括CPU、内存、I/O在内的各类服务器硬件资源[2]),为攻击者利用虚拟桌面底层的弱隔离性进行攻击提供了可能。如果同一台服务器上的虚拟桌面被攻击者攻破,那么攻击者还可以进一步冲破虚拟桌面的束缚,将安全威胁迅速扩散到服务器上的其它虚拟桌面中,加剧安全风险。
因此,需要对用户虚拟桌面的应用程序和数据依据不同的安全等级进行分割和管理,并在不同用户的虚拟桌面之间和同一用户不同安全等级的应用程序和数据之间建立坚固的安全访问控制机制,对用户之间的访问行为进行监控和约束,对不同安全等级虚拟机之间的通信行为进行管理。
通过分析桌面虚拟化面临的安全威胁,对现有虚拟桌面结构进行改进并研究相应关键技术,本文对桌面虚拟化环境中的虚拟机和存储资源依据不同密级进行分类惯例,制定了相应的安全策略,可以增强虚拟桌面的自身安全性,提高虚拟桌面抵御安全威胁的能力,实现对桌面虚拟化中虚拟机和存储资源的安全访问控制。
为了将用户不同安全等级的应用程序进行分类管理,本文将用户不同安全等级的应用程序运行在对应安全等级的虚拟机中,并使用不同安全防护等级的策略进行防护,对现有的虚拟桌面架构进行改进并进行安全增强。改进后的虚拟桌面架构如图2所示。
图2 改进后的虚拟桌面架构
改进后的虚拟桌面架构为用户不同安全等级的应用程序提供隔离的运行环境,对用户数据进行分类管理,可以避免虚拟桌面中的所有应用程序全部运行在同一台虚拟机中过于集中的运行模式带来的安全威胁,同时能够分散攻击者的攻击目标,为不同安全等级的应用程序、数据和不同功能的配置信息分配更加明确的运行空间,将攻击者的攻击范围限制在更为狭小的范围内,防止攻击效果的大面积扩散。这样,攻击者对一个应用程序的攻击不会影响到其它应用程序的正常运行,即使一台虚拟机被攻破,其它虚拟机中的应用程序和系统配置等将不受影响。
数据中心服务器系统文件和配置信息中存在的潜在漏洞也会导致整个虚拟桌面被感染,故对虚拟桌面进行安全改进时,将网络代码 (包括网卡驱动和协议栈等)、存储设备驱动 (包括磁盘驱动,USB闪存驱动等)和显示代码分别移动到专门的虚拟机 (即分别为网络管理VM,存储管理VM,显示管理VM)中,使攻击者在发现了一个潜在代码漏洞之后,无法继续控制或感染虚拟桌面其它部分的正常运行。
为避免虚拟机拆分过细带来的资源占用问题,各台虚拟机会共用相同的操作系统只读文件[3],只为用户目录和特殊的系统配置分配专门的存储空间,避免为每台虚拟机复制一个操作系统镜像造成的磁盘空间浪费。
同时,为便于后端数据中心管理,对虚拟机和存储资源根据不同的安全等级进行虚拟安全域划分并使用安全标签进行标识,制定访问控制策略,只有符合策略的访问行为才能生效,防止用户间的非法通信和对存储资源的越权访问。
虚拟安全域的概念建立在可信虚拟域的基础之上。可信虚拟域最初由IBM实验室的研究人员于2005年提出[4],它由一组互相信任的虚拟机组成,这组虚拟机共享相同的安全策略,并且独立于物理平台。
基于以上思路,依据桌面虚拟化环境中的安全等级对虚拟机进行划分,将分布在不同物理服务器上的具有相同安全等级的虚拟机组成一个具有统一安全策略的独立区域,即虚拟安全域。虚拟安全域结构如图3所示。虚拟安全域的管理服务器负责制定安全策略,并将策略下发到每台服务器的管理虚拟机 (Xen平台即为Dom0)中,由管理虚拟机执行安全策略。
图3 虚拟安全域结构
不同的虚拟安全域是隔离的,这种隔离不受系统架构、hypervisor、虚拟机生命周期和资源分配的影响。在满足了用户访问控制策略并保证了通信的完整性和保密性之后,同一虚拟安全域中具有相同安全等级的虚拟机之间可以自由通信,虚拟安全域的内部通信建立在认证和加密信道(例如IPsec)之上。例如,如果用户A的机密级应用程序想要与用户C的机密级应用程序进行通信,首先会由管理虚拟机验证访问控制策略,如果用户A可以访问用户C,则两个机密级虚拟机之间可以进行通信。
安全标签对虚拟安全域中所有的虚拟机、存储资源和VLAN进行标识,是对虚拟安全域的直观表示,数据中心虚拟桌面管理员在对虚拟安全域制定隔离策略和其它安全策略时,通过安全标签指定对应的虚拟安全域。
在对桌面虚拟化架构进行改进之后,对虚拟桌面的安全防护分为横向和纵向两个方面。横向,对属于同一用户虚拟桌面的虚拟机和资源依据基于用户的访问控制策略进行统一管理;纵向,将具有相同安全等级的虚拟机和资源划分到同一虚拟安全域中,使用相应安全等级的防护策略进行隔离保护和通信控制[5]。故使用<用户,安全等级>二元组形式的安全标签对各类设备进行标识,以清晰表明虚拟桌面中虚拟机和存储资源所属的用户和安全等级。
在本文的实现中,依据虚拟桌面的安全等级,使用不同的安全标签对虚拟桌面所在的虚拟机和存储资源进行标注,标签信息作为虚拟机和资源属性信息的一部分,只能通过虚拟机监视器创建、修改和管理。桌面虚拟化安全访问控制架构依据安全标签判断用户虚拟桌面能够访问的资源和通信的用户。
虚拟桌面运行在数据中心服务器的虚拟机中,而虚拟机运行在hypervisor之上,所以虚拟机的安全和隔离将最终依赖于hypervisor的坚固。
hypervisor安全增强机制建立在现有hypervisor提供的隔离基础之上,同时在现有hypervisor中增加访问控制模块ACM (access control model),通过ACM中的访问决策函数,对虚拟机之间的资源共享和通信行为进行仲裁判定和约束控制[6]。详细的hypervisor安全增强架构如图4所示。
图4 hypervisor安全增强架构
在hypervisor安全增强的访问控制结构中,有两组访问仲裁钩子 (hook)。第一组钩子,位于hypervisor中,控制虚拟机对事件通道、grant table、网络和虚拟磁盘的访问,以此约束虚拟机之间的通信和共享行为;另一组钩子,位于管理虚拟机中 (若在Xen中即为Dom0),控制虚拟机对资源 (虚拟磁盘或磁盘分区)的访问。这两组钩子都会调用访问控制模块ACM中的访问决策函数以进行仲裁判定。
通过对hypervisor进行安全增强,可以在桌面虚拟化底层确保系统安全策略的正确执行[7],实现对虚拟机行为的强制访问控制。通过强制访问控制限制用户的行为,可以实现:①病毒和恶意代码不会从一个用户虚拟机传播到另一个;②数据不会轻易从一个用户虚拟机泄漏到另一个;③攻击者攻破一台虚拟机,不会影响其它虚拟机的正常运行。
根据数据中心大规模部署的特点,对数据中心机架上的刀片服务器进行配置。数据中心每个机架上含有固定数量的刀片服务器,每个刀片是一个含有独立处理器、内存、网络和存储适配器的计算系统。通过机架上挂载的以太网交换机对刀片进行互联并访问网络存储 (例如SANs),数据中心部署方案如图5所示。图7中从虚拟桌面系统管理端 (以下简称管理端)到刀片、物理交换机、SAN存储控制节点 (SVC)的虚线箭头代表管理应用程序对这些组件的配置行为。管理端通过Xen API配置刀片上运行的Xen系统,配置操作包括为虚拟机、VLAN、逻辑分离的网络和存储设备等资源进行逻辑分离和安全标签标注,不同安全等级的虚拟安全域分别用不同的安全标签进行标识。
图5 数据中心部署方案
在进行具体部署时,将安全等级不同的虚拟安全域分别部署在不同的刀片上,以实现物理隔离。在Xen中,Domain 0通过软件模拟的虚拟网桥为刀片上相同虚拟安全域中的虚拟机进行互联,同时对虚拟网桥使用相同的颜色进行安全标签标注;同一机架上的不同虚拟安全域之间通过机架上挂载的物理交换机进行网络流量交换,不同机架上的虚拟安全域之间通过数据中心物理交换机进行网络流量交换。
在Xen系统中,相同颜色的虚拟机通过相对应的网桥进行互联,例如所有机密级虚拟机全部通过机密级网桥进行互联,所有秘密级虚拟机全部通过秘密级网桥进行互联,这种机制保证了只有同一安全域中的虚拟机之间才能互相通信[8]。
为实现基于安全标签的存储隔离,本文将安全访问控制机制 与 CbCS (capability-based command security)机制进行结合。CbCS机制最初由Michael Factor等人于2007年提出[9],该机制对 SCSI (small computer system interface)协议进行扩展,实现了对网络存储设备的访问控制。CbCS机制要求:发出资源访问请求的虚拟机在对资源进行访问之前,需要给出对资源具有访问权限证明的证书[10]。结合CbCS机制,在涉密信息系统的桌面虚拟化环境中,由管理虚拟机为提出资源访问请求的虚拟机发放证书,并使用消息认证码 (MAC)对证书进行安全增强,防止证书被伪造或修改,消息认证码与存储资源使用同一个对称密钥,使存储设备可以对证书进行验证。
本文的桌面虚拟化安全访问控制架构对于证书的生成增加了一个额外检验步骤,即虚拟机和存储资源必须具有相匹配的安全标签,否则虚拟机无法获取到访问存储资源的证书。
图6即为整合了CbCS机制的安全访问控制机制。具体操作步骤为:步骤一,虚拟桌面系统管理端 (以下简称管理端)在管理虚拟机 (在Xen中为Domain 0)上部署访问控制策略,同时在存储控制器上建立对称密钥;步骤二,管理端对存储资源进行安全标签标识;步骤三,管理端为虚拟机分配安全标签和用于验证管理端的私钥,这一私钥和虚拟机配置信息同时保存在管理虚拟机中;步骤四:管理虚拟机验证管理端的属性,并向管理端请求获取虚拟机访问存储资源时使用的证书,在管理端,如果虚拟机和存储资源具有相同的安全标签,则同意获取证书的请求,否则,管理端拒绝请求。最后,虚拟机发送I/O命令,命令在执行之前会被hypervisor截取并进行安全标签验证,同时还会被存储系统截取进行证书认证。
在实现过程中,管理端、存储系统和管理虚拟机将作为可信计算基的一部分。管理端负责存储密钥并根据隔离策略准确制定访问控制策略,同时虚拟机信任Domain 0不会将其私钥和证书泄露。如果虚拟机不遵守CbCS机制,存储资源将拒绝虚拟机的访问。
为降低安全威胁,本文中对存储资源的访问遵循最小特权原则,当虚拟机被迁移出系统时,管理虚拟机将会把与虚拟机有关的认证信息和证书全部删除。这样,保证了存储资源只能被对应宿主机上运行的虚拟机访问。
图6 安全访问控制实现方案
Xen中虚拟机之间的网络通信通过Domain 0中的虚拟网桥进行实现,虚拟网桥将所有虚拟机的虚拟网卡与实际物理网卡进行连接,但这样使得所有虚拟机可以潜在看到所有通信流量,无法保证隔离,不足以满足大规模、安全级别高的应用环境的安全需求[11]。
在Xen系统中,Domain 0拥有物理网络设备驱动,并控制着对系统中客户虚拟机的网络访问行为[12]。使用网络隔离组件在Domain 0中配置合适的VLAN,并将安全标签技术应用于VLAN中,可以实现虚拟桌面之间的网络隔离。具体的隔离通信实现方案如图7所示。
VLAN通过为以太网帧分配不同的VLAN ID号,实现在一个物理局域网上模拟出多个分离的虚拟局域网,对带有不同ID号的以太网帧进行严格隔离。数据中心与对应的VLAN和虚拟网桥使用相同的安全标签,并将具有相同安全标签的虚拟机和虚拟网桥彼此互联,实现只有相同安全等级的虚拟机之间可以互相通信;不同安全等级的虚拟机之间即使连接到了同一个物理系统中,由于不具有相同的安全标签,也不能穿过VLAN进行通信。
在实现时,安全虚拟桌面网络隔离组件一方面在虚拟化系统内部的VLAN上配置安全标签,另一方面在虚拟化系统与外部进行互联的以太网交换机上为VLAN配置安全标签。这样,虚拟机在本地系统或远程系统上只能与含有相同安全标签的虚拟机进行通信。
本文对当前桌面虚拟化环境的整体结构和各部分功能进行了研究,分析了当前桌面虚拟化的优点和不足,着重针对现有桌面虚拟化访问控制架构中存在的安全问题,对虚拟桌面架构进行了改进,并设计实现了桌面虚拟化安全访问控制架构。
图7 隔离通信实现方案
本文的安全架构中,通过对hypervisor进行安全增强实现了虚拟桌面的强制访问控制和对虚拟桌面的安全隔离;通过结合CbCS机制实现了基于安全标签的安全存储访问,防止越权访问存储资源;通过对虚拟网桥配置安全策略实现了网络隔离,防止用户间的非法通信。
[1]Joanna Rutkowska.Security challenges in virtualized envirnments [C]//San Francisco:RSA Confrence,2008:2-5.
[2]Matt Piotrowski.A system for privilege separation of legacy desktop applications [R].UCB/EECS-2010-70.California:University of California at Berkeley,2010:3-6.
[3]Carl Gebhardt,Allan Tomlinson.Secure virtual disk images for grid computing [C]//Third Asia-Pacific Trusted Infrastructure Technologies Conference,2008:19-22.
[4]Luigi Catuogno,Alexandra Dmitrienko.Trusted virtual domains-design,implementation and lessons learned [G].LNCS 6163:Proceedings of the First International Conference on Trusted Systems,2010:156-159.
[5]Jasti A,Shah P,Nagaraj R,et al.Security in multi-tenancy cloud [C]//San Jose:Proceedings of IEEE International Carnahan Conference on Security Technology,2010:35-41.
[6]Yu Lei,Weng Chuliang,Li Minglu,et al.Security challenges on the clone,snapshot,migration and rollback of Xen based computing environments [C]//Guangzhou,China:Proceedings of the Fifth Annual CinaGrid Conference,2012:223-227.
[7]Serdar Cabuk,Chris I Dalton.Towards automated security policy enforcement in multi-tenant virtual data centers [J].Journal of Computer Security,2010,18 (1):89-121.
[8]Udaya Tupakula,Vijay Varadharajan.TVDSEC:Trusted virtual domain security [C]//4th IEEE International Conference on Utility and Cloud Computing,2011:57-64.
[9]Michael Factor,Dalit Naor.Capability based secure access control to networked storage devices [C]//24th IEEE Conference on Mass Storage Systems and Technologies,2007:43-47.
[10]Tim Mather,Subra Kumaraswamy,Shahed Latif.Cloud security and privacy [M].O’Reilly Media,2009:29-30.
[11]Wu Hanqian,Ding Yi,Winer Chuck,et al.Network security for virtual machine in cloud computing [C]//Seoul Korea:Proceedings of 5th International Conference on Computer Sciences and Convergence Information Technology,2010:18-21.
[12]Serdar Cabuk,Chris I Dalton,HariGovind Ramasamy,et al.Towards automated provisioning of secure virtualised networks[C]//Proceedings of ACM CCS,2007:12-14.