云计算的虚拟化安全问题*
2012-06-27白松林
房 晶,吴 昊,白松林
(北京交通大学轨道交通控制与安全国家重点实验室 北京 100044)
1 引言
近年来,云计算受到了学术界和产业界的一致关注。随着云计算应用的日益复杂,其安全性要求也越来越高。而且传统的IT系统是封闭的,存在于企业内部,对外暴露的只是网页服务器、邮件服务器等少数接口,因此只需要在出口设置防火墙、访问控制等安全措施,就可以解决大部分安全问题。但在云环境下,云暴露在公开的网络中,任何一个节点及它们的网络都可能受到攻击,存在诸多安全隐患。
云计算中的安全包括身份和访问管理、数据安全、隐私保护、虚拟化安全等。图1描述了虚拟化角度下的云计算架构[1]。节点的物理硬件和网络物理硬件通过多层虚拟化的逻辑简化过程形成了弹性化的计算、存储和网络带宽3者整合的虚拟资源池,提供了随需而选的资源共享、分配、管控平台,用户可根据上层的数据和业务形态的不同需求,搭配出各种互相隔离的应用。这样通过虚拟技术,就形成一个服务导向的可伸缩的IT基础架构,可以提供云计算服务。比如 Amazon EC2(elastic compute cloud),它为用户提供了大量的虚拟资源,用户只需根据自己的需要创建虚拟机实例,从而通过这些资源完成用户的任务。
专家大多认为,云计算与传统IT环境最大的区别在于其虚拟的计算环境,也正是这一区别导致其安全问题变得异常“棘手”。身份管理、数据安全等问题可以通过现有的访问控制策略、数据加密等传统安全手段来解决,而虚拟化作为云计算最重要的技术,且虚拟环境是云计算的独特环境,传统的安全措施很难从根本上解决问题,必须采取新的安全策略。
2 虚拟化技术
云计算的特征体现为虚拟化、分布式和动态可扩展。虚拟化是云计算最主要的特点。每一个应用部署的环境和物理平台是没有关系的,通过虚拟平台进行管理、扩展、迁移、备份,种种操作都是通过虚拟化技术完成。虚拟化技术是一种调配计算资源的方法,它将应用系统的不同层面——硬件、软件、数据、网络、存储等一一隔离开来,从而打破数据中心、服务器、存储、网络、数据和应用中的物理设备之间的划分,实现架构动态化,并实现集中管理和动态使用物理资源及虚拟资源[2,3]。图2显示的是一个典型的虚拟机系统。其中,虚拟机监控器(virtual machine monitor,VMM),又称为监管程序(Hypervisor),是虚拟化技术的核心。通过在计算机系统上添加一个虚拟机监控程序软件对计算机系统进行虚拟化,在物理机上构建一个虚拟机系统,每个虚拟机(VM)运行自己的客户机操作系统(Guest OS)[4]。这可以说是云计算的一个雏形。
现在,整个IT环境已逐步向云计算时代跨越,虚拟化技术也从最初的侧重于整合数据中心内的资源,发展到可以跨越IT架构实现包括资源、网络、应用和桌面在内的多种虚拟化,这些都促进了云计算模式的形成。大部分软件和硬件已经对虚拟化有一定支持,可以把各种IT资源、软件、硬件、操作系统和存储网络等要素都进行虚拟化,放在云计算平台中统一管理[5]。
3 虚拟化安全问题研究
3.1 虚拟化的安全问题
虚拟化技术对于云计算而言是非常重要的,所以,虚拟化的安全也直接关系到云计算的安全。从目前研究来看,云计算的虚拟化安全问题主要集中在以下几点。
(1)VM Hopping
一台虚拟机可能监控另一台虚拟机甚至会接入到宿主机,这称为VM Hopping。如果两个虚拟机在同一台宿主机上,一个在虚拟机1上的攻击者通过获取虚拟机2的IP地址或通过获得宿主机本身的访问权限可接入到虚拟机2。攻击者监控虚拟机2的流量,可以通过操纵流量攻击,或改变它的配置文件,将虚拟机2由运行改为离线,造成通信中断。当连接重新建立时,通信将需要重新开始[6]。
(2)VM Escape
VM Escape攻击获得Hypervisor的访问权限,从而对其他虚拟机进行攻击。若一个攻击者接入的主机运行多个虚拟机,它可以关闭Hypervisor,最终导致这些虚拟机关闭。
(3)远程管理缺陷
Hypervisor通常由管理平台来为管理员管理虚拟机。例如,Xen用XenCenter管理其虚拟机。这些控制台可能会引起一些新的缺陷,例如跨站脚本攻击、SQL入侵等。
(4)拒绝服务(DoS)的缺陷
在虚拟化环境下,资源(如CPU、内存、硬盘和网络)由虚拟机和宿主机一起共享。因此,DoS攻击可能会加到虚拟机上从而获取宿主机上所有的资源,因为没有可用资源,从而造成系统将会拒绝来自客户的所有请求。
(5)基于 Rootkit的虚拟机
Rootkit概念出现在Unix中,它是一些收集工具,能够获得管理员级别的计算机或计算机网络访问。如果Hypervisor被Rootkit控制,Rootkit可以得到整个物理机器的控制权[7]。
(6)迁移攻击
迁移攻击可以将虚拟机从一台主机移动到另一台,也可以通过网络或USB复制虚拟机。虚拟机的内容存储在Hypervisor的一个文件中。如图3所示,在虚拟机移动到另一个位置的过程中,虚拟磁盘被重新创建,攻击者能够改变源配置文件和虚拟机的特性。一旦攻击者接触到虚拟磁盘,攻击者有足够的时间来打破所有的安全措施,例如密码、重要认证等。由于该虚拟机是一个实际虚拟机的副本,难以追踪攻击者的此类威胁。
除此以外,虚拟机和主机之间共享剪切板可能造成安全问题。若主机记录运行在主机上的虚拟机的登录按键和屏幕操作,如何确保主机日志的安全也是一个问题。
3.2 虚拟化安全分层分析
目前对虚拟化安全的研究综合起来可以归结为两个方面:一个是虚拟化软件的安全;另一个是虚拟服务器的安全。
(1)虚拟化软件的安全
该软件层直接部署于裸机之上,提供能够创建、运行和销毁虚拟服务器的能力。主机层的虚拟化能通过任何虚拟化模式完成,包括操作系统级虚拟化(Solaris container、BSD jail、Linux-Vserver)、半虚拟化(硬件和 Xen、VMware的结合)或基于硬件的虚拟化(Xen、VMware、Microsoft Hyper-V)[8]。
这一层的重点是虚拟机的安全,其中Hypervisor作为虚拟机的核心,要确保安全。目前有两种攻击方式,一是恶意代码通过应用程序接口(API)攻击,因虚拟机通过调用API向Hypervisor发出请求,Hypervisor要确保虚拟机只会发出经过认证和授权的请求。二是通过网络对Hypervisor进行攻击。通常,Hypervisor所使用的网络接口设备也是虚拟机所使用的。如果网络配置得不是很严格,这意味着虚拟机可以连接到Hypervisor的IP地址,并且可以在Hypervisor的登录密码没有使用强密码保护的情况下入侵到Hypervisor。这种不严格的网络配置还可能导致对Hypervisor的DoS攻击,使得外网无法链接到Hypervisor去关闭这些有问题的虚拟机。
(2)虚拟服务器的安全
虚拟服务器位于虚拟化软件之上。服务器的虚拟化相对于之前的服务器,变化最大的一点是网络架构。网络架构的改变相应地产生了许多安全问题[9]。采用虚拟化技术前,用户可以在防火墙设备商建立多个隔离区,对不同服务器采用不同的规则进行管理,由于隔离区的存在,对一个服务器的攻击不会扩散到其他服务器。采用虚拟服务器后,所有的虚拟机会集中连接到同一台虚拟交换机与外部网络通信,会造成安全问题的扩散。服务器虚拟化后,每一台服务器都将支持若干个资源密集型的应用程序,可能出现负载过重,甚至会出现物理服务器崩溃的状况。在管理程序设计过程中的安全隐患会传染到同台物理主机上的虚拟机,造成虚拟机溢出,此时的虚拟机从管理程序脱离出来,黑客可能进入虚拟机管理程序,能够避开虚拟机安全保护系统,对虚拟机进行危害[10]。
另外,虚拟机迁移以及虚拟机间的通信将会大大增加服务器遭受渗透攻击的机会。虚拟服务器或客户端面临着许多主机安全威胁,包括接入和管理主机的密钥被盗,攻击未打补丁的主机,在脆弱的服务标准端口侦听,劫持未采取合适安全措施的账户等。面对以上不安全因素,目前研究发现,可以采取以下措施:
·针对网络架构的变化,在每台虚拟机上都安装防毒软件或者其他种类的杀毒软件;
·避免服务器过载崩溃,要不断监视服务器的硬件利用率,并进行容量分析,使用容错服务器或容错软件是一个好的选择[11];
·为阻止虚拟机溢出,在数据库和应用层间设置防火墙,通过隔离虚拟机实现从网络上脱机保存虚拟化环境;
·选择具有可信平台模块 (trusted platform module,TPM)的虚拟服务器;
·安装时为每台虚拟服务器分配一个独立的硬盘分区,以便进行逻辑隔离;
·每台虚拟服务器应通过VLAN和不同的IP地址网段的方式进行逻辑隔离,需要通信的虚拟服务器间通过VPN进行网络连接;
·进行有计划的备份,包括完整、增量或差量备份方式,进行虚拟化的灾难恢复[12]。
4 基于Xen平台安全问题分析
为了研究方便,笔者选择Xen搭建云计算平台,分析Xen是怎样解决虚拟化安全问题的,并认识Xen未解决的问题,从而对云计算虚拟化的安全问题有更深一步的认识。
4.1 Xen概述及其与VMware的比较
Xen是一种基于虚拟机监控器Xen Hypervisor的虚拟机体系结构,由剑桥大学开发。Xen Hypervisor作为虚拟机监控器直接运行在硬件上,提供虚拟化环境。同时,在Xen Hypervisor上运行一个具有管理接口(administrative console)的虚拟机(Domain 0)作为 Xen Hypervisor的扩展,管理Xen hypervisor和其他虚拟机实例(Domain U)[13]。
跟Xen比较起来,VMware是完全仿真计算机,理论上操作系统可不需更改就直接在虚拟机器上执行,但是VMware不够灵活。通常Xen采用半虚拟化技术,虽然操作系统必须进行显式地修改(“移植”)以在Xen上运行,但是提供给用户应用的兼容性强。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。参考文献[14]表明,当用Linux自带的网络服务测试工具测试VMware和Xen的虚拟网络性能时,随着请求文件长度的变大,每秒钟处理的请求数均降低,Xen的虚拟网络性能与真实主机接近,而比VMware虚拟网络的性能好。目前,Intel等公司的努力使Xen已经支持完全虚拟化。更重要的是,Xen是开源的,因此选用Xen搭建云计算环境是一个不错的选择。
4.2 Xen已解决的安全问题
(1)Xen 的访问控制
云计算虚拟化面临诸多安全问题,有效采取访问控制策略能有效解决非法登录、虚拟机流量监控等安全问题。Xen通过自己的访问控制模块 (access control module,ACM),能有效解决诸多访问不当造成的安全问题。
ACM实现了两种策略机制,分别是中国墙(Chinese wall)策略和简单类型强制(simple type enforcement,STE)策略。其中,中国墙策略定义了一组中国墙类型,并由此定义冲突集,然后根据类型定义标签,该策略根据标签来进行判断,若两个虚拟机的标签处在同一个冲突集中,则不能同时在相同的系统上运行,因此该机制主要用于虚拟机之间的信息流控制。STE策略亦定义了一组类型(该类型针对的是域所拥有的资源),然后根据类型定义标签,要求当主体拥有客体标签时,主体才能访问客体,以此来控制资源共享。除此以外,Xen的Domain 0用户可以根据自己的需求制定安全策略文档,当虚拟机请求与别的虚拟机进行通信或访问资源时,ACM模块能根据用户定义的策略判断,以此达到对虚拟机的资源进行控制以及对虚拟机之间的信息流进行控制的目的[15]。
(2)Xen 的可信计算
可信计算技术是一种新兴的信息安全手段,其安全措施是通过构建信任链来防御攻击。通过传递机制,在系统启动时可将BIOS中最先启动的代码BIOS boot loader作为整个信任链的起点,依次逐级向上传递系统控制权并构建信任链,直到应用层。可信计算可以有效弥补传统安全协议无法提供的有关通信终点节点完整性与可信性差的问题[16,17]。
可信计算平台是能够提供可信计算服务的计算机软硬件实体,它能够提供系统的可靠性、可用性以及信息和行为的安全性[18]。因此,建立可信平台是应对云计算安全的一种重要手段。而可信平台模块(TPM)是可信计算的基石。
TPM实际上是一个含有密码运算部件和存储部件的系统级芯片,是云计算平台重要的防篡改组件[19],这能有效保证平台的安全。相对于传统物理平台,可信平台在Xen等虚拟化平台上实现TPM,有一定的优越性。平时计算机装了太多软件,这使得构建信任链变得很复杂。相对而言,使用虚拟机(VM)配合虚拟可信平台模块(vTPM)组成虚拟终端可信平台要方便得多[20]。这是因为虚拟终端可信平台通常只为处理某种特定任务而产生,可由用户自定义其所需功能,所以功能相对简单,更容易构建信任链。此平台可以来处理需要安全保障的在线服务或敏感数据的访问。
现在,Xen 3.0以上的版本都能支持vTPM的实现,vTPM能实现虚拟计算系统中虚拟机的安全可靠。vTPM可以使平台上的每个虚拟机利用其功能,让每个需要TPM功能的虚拟机都感觉是在访问自己私有的TPM一样。在平台搭建中,可以创建多个虚拟TPM,这样每一个如实地效仿硬件TPM的功能,可有效维护各个虚拟机的安全,从而使Xen搭建的云计算平台处于较稳定状态。
4.3 Xen的现有问题及解决策略
目前的Xen的安全性还有较多的安全问题。比如,Domain 0是一个安全瓶颈,其功能较其他域强,所以容易被敌手发起蠕虫、病毒、DoS等各种攻击,如果Domain 0瘫痪或者被敌手攻破,那么将破坏整个虚拟机系统。Xen的隐通道问题没有解决,在Xen上就不可能运行高安全等级的操作系统。虚拟机共享同一套硬件设备,一些网络安全协议可能更加容易遭到恶意破坏和恶意实施[21]。Xen提供了方便的保存和恢复机制,使得操作系统数据的回滚和重放非常容易,但这些将影响操作本身的密码特性。除此之外,在Xen中,由于安全机制做在Guest OS中,所以不能保证VMM的安全。Xen只能限制页表一级的内存I/O地址空间,而中断和I/O端口地址空间的粒度要比页表小得多,如果不同虚拟机中的驱动不幸被分配到同一个页表空间,那么它们就可以访问对方的内存地址空间[22],造成安全问题。
针对Domain 0的问题,可削弱它的功能,将其功能分解到其他域,这将会适当减少Domain 0的瓶颈作用。具体的策略需要进一步研究。对于敏感数据要进行多次擦除防止再恢复。另外,Xen的ACM模块不能完全解决设备隔离和资源隔离问题,将Xen和LaGrande技术结合是一个不错的选择。LaGrande是Intel将要实施的一种硬件技术,它是一组通用的硬件安全增强组件,用来防止敏感的信息被恶意软件攻击,其安全功能将被整合到处理器和芯片集中,能有效增强设备隔离,实现I/O保护、内存越界保护、键盘、显示的隔离保护等。总之,在之后的工作中,需要慢慢解决虚拟化的安全问题,这是云计算安全的关键。
5 业界对虚拟化安全的努力
针对传统安全防火墙技术不能有效监控虚拟机流量的问题,Altor Networks公司使用VMware的API来开发虚拟安全分析器,以检测虚拟交换机流量——在虚拟层之上的网络层流量。该公司也开发了虚拟网络防火墙,该防火墙基于虚拟机管理器,可认证有状态的虚拟防火墙,检查所有通过虚拟机的数据分组,组织所有未经批准的连接和允许对数据分组进行更深层次的检查,确保了虚拟机间通信的安全。针对虚拟环境的安全问题,目前Resolution Enterprise公司提出要对虚拟化环境采取深层防护战略,这是一个像城堡一样的防护模型,通过执行相应的策略实现对云计算虚拟资源池的保护。这个新发明值得进一步去研究。
除此以外,开源Xen管理程序社区Xen.org已经开始实施Xen云平台(XCP)计划,目的是在云环境中利用领先的Xen管理程序,为未来的云服务提供安全的、经过验证的开源基础设施平台。目前,已经发布了XCP1.0及其修正版,并将慢慢发布更加稳定的版本。这将有助于建立更加稳定的云计算平台。
6 结束语
虚拟化打开了云计算的大门,而云计算的本质正是虚拟化服务。作为一个新的网络计算,云计算面临着诸多安全问题,而虚拟化安全作为云计算的特有安全问题,需要重点关注。后期研究的重点集中在虚拟机的隔离,虚拟机流量的监控和虚拟的可信平台的稳固上。只有解决这些问题,才能够确保云计算平台的虚拟化安全,从而放心地使用云计算。
1 王鹏,黄华峰,曹珂.云计算:中国未来的IT战略.北京:人民邮电出版社,2010
2 《虚拟化与云计算》小组.虚拟化与云计算.北京:电子工业出版社,2009
3 张为民,唐剑峰,罗志国.云计算深刻改变未来.北京:科学出版社,2009
4 于嘉.基于TPM的虚拟机安全协议的设计与实现.上海交通大学硕士学位论文,2008
5 王昊鹏,刘旺盛.虚拟化技术在云计算中的应用初探 .电脑知识与技术,2008,7(3)
6 Jasti A,Shah P,Nagaraj R,et al.Security in multi-tenancy cloud.Proceedings of2010 IEEE InternationalCarnahan Conference on Security Technology (ICCST),San Jose,CA,2010:35~41
7 Hanqian Wu,Yi Ding,Winer Chuck,et al.Network security for virtual machine in cloud computing.Proceedings of 5th International Conference on Computer, Sciences and Convergence Information Technology(ICCIT),Seoul,Korea,2010:18~21
8 Tim Mather,Subra Kumaraswamy,Shahed Latif.Cloud Security and Privacy.O'Reilly Media,2009
9 Yanfeng Zhang,Cuirong Wang,Yuan Gao.A QoS-oriented network architecture based on virtualization.Proceedings of First International Workshop on Education Technology and Computer Science,Wuhan,China,2009:959~963
10 Sehgal N K,Ganguli M.Applications of virtualization for server management and security.Proceedings of IEEE International Conference on Industrial Technology (ICIT),Mumbai,India,2006:2 752~2 755
11 Xiaorui Wang,Yefu Wang.Coordinating power control and performance management for virtualized server clusters.IEEE Transactions on Parallel and Distributed Systems,2011,22(2):245~259
12 闻剑峰,龚德志.虚拟化技术在电信灾难恢复计划中的应用研究.电信科学,2009,25(9):16~20
13 Xen Introduction.http://xen.xensource.com/media /xen/player.html
14 江迎春.VMware和Xen虚拟网络性能比较.软件导刊,2009,8(5):133~134
15 石磊,邹德清,金海.Xen虚拟化技术.武汉:华中科技大学出版社,2009
16 程川.一种基于Xen的信任虚拟机安全访问设计与实现.计算机数字与工程,2010,38(3):109~111
17 Challener D,Yoder K,Catherman R,et al.A Practical Guide to Trusted Computing.IBM Press,2008
18 陈小峰.可信平台模块的形式化分析和测试.计算机学报,2009,32(4):646~653
19 刘海雷,王震宇,马鸣锦.嵌入式可信终端TPM接口的研究与实现.计算机工程与设计,2008,29(13):16~19
20 Chen P M,Noble B D.When virtual is better than real.Proceedings of the 8th Workshop on HotTopics in Operating Systems,IEEE ComputerSociety,Washington,DC,USA,2001
21 Ongaro D,Cox A L,Rixner S.Scheduling I/O in virtual machine monitors.Proceedings of the fourth ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments,Seattle,WA,2008
22 Lei Yu,Chuliang Weng,Minglu Li,et al.Security challenges on the clone,snapshot,migration and rollback ofXen based computing environments.Proceedingsofthe Fifth Annual ChinaGrid Conference,Guangzhou,China,2010:223~227