虚拟化技术最早起源于20世纪60年代,是计算领域的一项传统技术,虚拟化技术支持在一个单一的服务器之上运行多个操作系统的服务器。虚拟机技术是虚拟化技术在计算机上的一种体现,通过内存、CPU、网络等虚拟化技术实现资源的隔离和可靠利用。目前有很多流行的虚拟机,如VMware、KVM、Xen,通过研究分析对比,开源的Xen虚拟机在性能上十分优越,被认为是未来最有前途的虚拟化解决方案之一。
虚拟化技术作为云计算的关键核心技术,使得云计算成为能够提供动态资源池、虚拟化和高可用性的下一代计算平台,给企业和用户带来了很多的益处;硬件和资源的共享既节约了开销,也为管理带来了方便,同时也革新了许多传统IT技术。然而从安全角度来分析,却又带来了很多威胁,除传统的攻击威胁之外,如隐蔽通道、基于VM 的Rootkit攻击(VMBR)以及新的恶意软件等也随之而来。虚拟化技术作为云计算的核心技术,必须向其用户提供安全性和隔离保证。2009年,在IDC以虚拟化技术为基础的云计算的用户调查中就显示,安全是用户最关心的关键点。
本文从虚拟机系统的原理、架构入手,从虚拟机系统的关键技术如资源隔离、共享等方面研究系统可能存在的安全威胁,然后,根据安全隐患提出理论上的保护方法。在总结前人研究成果的基础上,较为全面地总结了目前国内外针对虚拟机安全各方面相关的研究成果,指出了目前存在的问题,探讨了下一步的研究方向。
1 虚拟机技术
虚拟机技术最早由IBM于20世纪60年代提出,被定义为硬件设备的软件模拟实现,通常的使用模式是分时共享昂贵的大型机。目前,虚拟机中用到的虚拟化技术主要有网络、内存、CPU、硬盘虚拟化技术。在虚拟机环境中,硬件层与虚拟机系统之间存在一层虚拟机监视器(virtualmachinemonitor,VMM),是虚拟机的核心层,负责上层虚拟机系统的资源分配和底层交接。
1.1虚拟机架构
本文将以虚拟机Xen为例,介绍虚拟机架构和原理。Xen是由英国剑桥大学计算机实验室开发的一个开源项目。Xen主要由两个组成部分,一个是虚拟机监控器VMM,也叫Hypervisor。Hypervisor层在硬件与虚拟机之间,是最先载入到硬件的第一层。在Xen中,虚拟机称为Domain,其中Domain0扮演着很重要的角色,负责其他虚拟机的控制管理和硬件驱动等,同时Domain0还负责其他Domain的数据传递。Xen的架构如图1所示。
图1 Xen虚拟机架构
在Xen虚拟机系统中,在安全级别上分为四个等级(0~3ring),VMM运行在特权模式(0-ring),负责控制资源的隔离、共享、数据处理等,为每个虚拟机虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器、内存、I/O设备等),并仲裁虚拟机OS对底层硬件的访问。
1.2 虚拟机安全特征
将虚拟机架构抽象化,那么虚拟机主要由硬件、VMM、VMs及Domain0四部分组成。下面将列出这四部分的一些关键特征,以及在安全角度上分析其可能带来的安全影响。
1.2.1硬件
随着虚拟机技术的广泛应用,目前,很多硬件针对虚拟化技术进行了拓展,如AMD和Intel相继针对全虚拟化拓展了AMD-V和Intel VT技术,通过多余的指令集来控制虚拟过程。除此之外,虚拟机技术的硬件特征体现在陷进执行和可信模块上。
a)陷进。在所有x86的硬件平台下,陷进执行是支持虚拟化的重要特征,虚拟域本身并不能直接访问本虚拟域以外的物理资源,但是虚拟域可以通过超级调用(hypercall)向Hypervisor申请各种服务,如MMU更新、I/O处理、对虚拟域的管理等。
b)可信模块。它是可选硬件特征,目前可信计算已成为了安全工具的一部分,而通过可信计算来确保VMM代码上的完整性也是保护虚拟机系统的重要方法之一。
1.2.2虚拟机管理器
在虚拟机环境中,VMM是核心。VMM可以完成如下一些功能:a)网络管理,配置网络及网络数据包的转发,而VMM的这一特征也可以用于数据包过滤,如为上层的安全服务提供入侵检测;b)安全日志管理,通过监测,VMMs能对VM的事件行为进行记录,并保存在VM的空间外,可以利用这些日志信息对VM进行入侵分析;c)认证,当VM运行时,对VM的关键数据和进程进行hash存储,当VM系统发生数据改变或者进程调用时,可以用于认证依据。这个功能在VM完整性保护和可信模块上可以得到很好的利用。
1.2.3Domain0
Domain0是VM的控制域,相当于所有VMs中拥有root权限的管理员,其他VM的创建、启动、挂起等操作都由Domain0控制。除此之外,Domain0还具有直接访问硬件的权利,在Domain0中安装了硬件的原始驱动,担任着为DomainU提供硬件服务的角色,如网络数据通信(DMA传输除外)。Domain0在接收数据包后,通过虚拟网桥技术,根据虚拟网卡地址将数据包转发到目标虚拟机系统中,因此,拥有Dmain0的控制权限就控制了上层所有虚拟机系统,这也致使Domain0成为了攻击者的又一个主要目标。
1.2.4VM
VM的OS运行与传统意义上的操作系统并无两样,但是因为VMM的存在,VMM可以将VM当做软件一样进行镜像存储和系统快照,以用于复制、备份、状态保留等。
2 虚拟机安全分析
在前面的章节中系统地介绍了虚拟机的一些关键特征,并且从安全角度进行了分析。本章中将从整个虚拟机的架构上对虚拟机存在的安全威胁进行分析。
2.1 攻击威胁
虚拟机系统比起传统的计算机系统存在更多的攻击点及安全隐患。通过分析,得到虚拟机的攻击模型如图2所示,图中箭头表明所受攻击威胁来源。本文只考虑虚拟机系统中存在的安全分析,针对VM的传统攻击,诸如病毒攻击和网络攻击等将不再细述。
图2 虚拟机威胁分析
2.1.1VMM的外部攻击
目前针对VMM的外部攻击主要有两种,一种是基于VM的Rootkit攻击,另一种是恶意代码攻击。
a)VMBR。攻击者利用Rootkit隐藏自己的踪迹,通过保留root访问权限,留下后门的程序集。VMBR的攻击会在VMM的启动之前将程序代码写入内存并运行,一旦攻击者得逞,那么所有虚拟机系统都将在攻击者的控制范围之内。目前比较出名的VMBR攻击有Bluepill等。检测及防御VMBR攻击的方法分析如下:(a)通过计时的方法,有一些指令的执行是通过虚拟出来的,所占用的CPU周期会比真实的时间长,可以通过这种方法来进行检测;(b)通过可信模块TPM来进行VMM的保护,通过启动过程的完整监测,可以防止Rootkit的隐蔽插入,TPM的设计不但可以抵御VMBR的攻击,同时也可以防御其他破坏VMM完整性的攻击。
b)恶意代码。攻击者可以利用远程攻击方法,虚拟机系统的远程管理技术大多是用HTTP/HTTPs来连接控制的,因此,VMM必须运行服务器来接受HTTP连接。那么攻击者就可以利用HTTP的漏洞来进行恶意代码的攻击,如Xen的XenAPIHTTP接口就存在XSS(cross sitscripting)漏洞,攻击者可以通过浏览器执行恶意代码脚本。
2.1.2 VM对Domain0的攻击
Domain0具有管理其他VM的特权,VM到Domain0的攻击体现在guest to host的攻击来获取host的特权,而VMescape就是这种模式的攻击。VM通过应用程序,绕过VMM的监控而直接访问Domain0,从而获取Domain0的特权,而一旦获取到了Domain0的控制权后,就可以控制所有VM。这些攻击是利用所发现的bug来实施的,如VMwareWorkstation 6 CVE20074496,通过用户授权,进行内存访问和运行恶意代码。另外,VM还可以利用共享内存通信方式对VMM进行病毒分析。
2.1.3VM之间的攻击
VMs之间的攻击体现在通过共同访问的资源来进行恶意攻击。其中隐蔽通道是一个难以解决的问题,攻击者通过进程、内存共享或内存错误,甚至其他错误信息来进行代码的植入和攻击,目前也尚未得到很好的解决。
2.2 其他安全隐患
a)备份、快照及还原漏洞。在虚拟机中,VMM提供了备份、快照和还原的功能,一旦系统崩溃了,可以通过快照进行还原,这为系统的维护带来了方便且具有实效性。然而这也导致了新的问题发生:(a)这种机制使得VMs容易受到新的攻击,因为许多安全攻击是依赖于线性时间的,重新访问以前的系统状态会违反这些协议;(b)还原后,系统以前存在的漏洞会全部出现,可能没有安全补丁,或旧的安全机制(防火墙规则、反病毒签名等),重新激活先前那些封锁的账号和密码,这都带来了很多的安全隐患。
b)DMA攻击。在虚拟中有一种数据传输不受VMM控制,这就是DMA传输。VM通过Domain0与硬件建立DMA连接,而后将数据控制权交由VM进行数据传输,在数据传输的过程中,数据将直接从网卡传输到目的VM中,在大数据量的传输效率上有很大的提高。然而,这也为攻击者提供了方便,攻击者将轻而易举地利用DMA方式将恶意代码或者病毒文件等传入没有安全防范的目标机中,从而达到攻击的目的。
3 虚拟机系统研究现状
目前针对虚拟安全的研究可以分为如下几类,如图3所示。a)安全Hypervisor。在保护Hypervisor的同时,保护VMs资源隔离性、数据安全性、通信安全性以及代码完整性等。
b)针对专门攻击的防御研究。针对特定攻击,如VMBR攻击、网络攻击、通信数据保护等。
c)可信计算。以TPM为硬件基础,建立可信Hypervisor、可信安全域或通过可信链确保上层安全。
d)安全应用。如通过入侵检测和蜜罐等技术来进行系统保护。
图3 虚拟机安全研究分类
3.1 安全Hypervisor研究
Hypervisor是虚拟机的核心层,而虚拟机的安全研究也是以Hypervisor为核心。很多研究人员提出了安全Hypervisor的概念,目前针对安全Hypervisor的研究较多。
IBM研究人员Sailer等人提出了一种安全的Hypervisor架构shype,利用安全模型,通过访问控制模块(accesscontrolmodule,ACM)来控制系统进程、内存的访问,实现内部资源安全隔离。shype可以实行多种安全模型,但只是针对明确数据流进行限制,而并未过多顾虑隐蔽通道威胁。Sailer等人在虚拟机Xen上进行了shype架构的实现。目前在Xen虚拟机上,已经可以配置ACM安全模块。
Garfinkel等人提出了基于虚拟机的可信架构Terra,利用TPM来保护Hypervisor的启动,然后通过可信虚拟机监视器对VM进行硬件资源隔离。这种设计保证了Hypervisor启动的安全,同时可信链的存在可以对系统事件进行认证。但Terra的提出只是在理论上进行了研究分析,在实际中还未完成真正的实现,这也是Terra架构的一大主要问题。
Wang等人提出了Hypersafe架构,针对代码和控制数据的完整性保护提出了相关的模型研究。文中提到了两种技术:a)Nonbypassablememorylockdown,是一种内存保护技术,通过特殊位WP来控制是否能写,除了安全更新之外,其他时间都处于保护状态,保证了执行期间的数据和代码完整性;b)Restrictedpointerindexing,通过将控制数据指针限制到一个自己建立的表中进行监控。Hypersafe能灵活地控制数据流的完整性。
一些研究人员针对当前虚拟机中安全机制的一些漏洞进行了分析和改进,Jansen等人提出一种PEV(protection、enforcement、verification)架构,通过加密解封的协议、安全策略等技术进行数据检测和保护,并使用TPM建立可信区域来保护关键数据;但是其关键数据是通过数据类型日志形式来保存的,对数据日志项的加/解密势必影响整个虚拟机系统的性能。
针对DMA攻击,Shinagawa等人通过先开辟内存缓冲区进行数据检测,然后从缓冲区将安全数据拷贝到目标系统的物理内存区。他们提出了一个parapassthrougharchitecture的架构,将很多设备的驱动直接交由客户系统本身,而自身只配置了一个parapass throughdrivers驱动集,通过在Hypervisor中对指令和数据的截取来进行安全监控,从而提高了整个系统的可靠性。
Azab等人提出了HyperSentry。当完整性检测模块在激活时,如果VMM已经被攻击,那么在激活过程中会擦除以往的攻击痕迹,因此文章提出了一种隐蔽的激活方法,通过外部的out of band信道IPMI来激活,并通过系统管理模块SMM来保护基本代码和关键数据的安全性。同时在文献中,他们还提出了一种基于Hypervisor的虚拟机系统VMs完整性测试代理HIMA,可以实现客户系统关键事件的动态监视和客户内存的保护,在程序完整性测试上通过对加载到内存的代码和数据段进行哈希计算来确认完整性;在内存保护上,HIMA通过访问权限限制来保护客户内存,并使用测试虚拟域内存地址的哈希方法来确保页映射中发生的安全问题。Wu等人研究了基于Hypervisor的系统控制和监视机制,利用Hypervisor来进行客户系统的安全保护,提出了BMCS(behaviormonitoringandcontrollingsystem)的模块来完成系统中的行为监控。Xu等人提出了一种基于VMM的OS内核保护模型UCON,通过基于事件的策略持续而实时地检测系统。
3.2针对特定攻击的安全研究
随着虚拟机的广泛应用,目前针对虚拟机的漏洞攻击也有很多种,主要体现在VMBR攻击、内存错误等隐蔽通道攻击、网络攻击等。有很多安全研究人员针对这些攻击进行了研究,并提出了相关的解决方法。
针对VMBR的攻击,Rhee等人利用一些安全策略,通过监视内核的内存访问来防御动态数据内核Rootkit攻击,Riley等人提出了通过内存影子来检测内核Rootkit攻击。Gebhardtd等人提出了利用可信计算来防御Hypervisor的Rootkit攻击。
针对虚拟机系统中存在的网络方面的威胁,如拒绝服务攻击(Dos),Lakshmi等人提出了一种新的I/O虚拟架构,为每个VM配置一个虚拟网卡,VM可以通过自身的网卡驱动与虚拟网卡直接进行通信,然后通过VMM监视每个VM的数据流,在防御诸如DMA的无控制漏洞和Dos攻击等威胁的同时,也可以提高网络性能。
隐蔽通道是较难解决的安全问题之一,因为存在的隐蔽通道通常是用户和系统不可知的传输通道,如基于CPU负载的隐蔽通道,攻击者利用CPU的负载传输私密数据流,既能很隐蔽地传输数据,又能成功地避免检测。Salaun研究了虚拟机Xen上可能存在的隐蔽通道,从XenStore的机制、共享协议、驱动加载、数据传输等方面分析了可能存在的隐蔽通道。隐蔽通道的建立和数据传输通常是需要“同伙的存在”,即接收者和发送者的存在。Cheng等人根据这一特征,在Chinesewall的安全模型上进行了改进,利用限制冲突集数据传输来防御隐蔽通道。
3.3可信计算
在前面的介绍中已经提到了,一些研究人员提出用可信计算来保护系统的完整性。Catuogno等人研究了一个基于TCB的可信虚拟域的设计和执行,通过安全策略和TVD协议实现可靠性。Berger等人则通过软件方法设计了基于硬件TPM的虚拟TPM来保证多个VM的可靠性。而Ruan等人设计了一个一般的可信虚拟平台架构GTVP,将控制域分为管理、安全、设备、OS成员、通信五个域,每个域都完成相应的功能,从而达到了安全、负载均衡和易用等目的。程川提出了一种基于Xen的信任虚拟机安全访问机制,为用户提供了一种有效的安全访问敏感数据的模式。其核心思想是利用虚拟机的隔离性,为数据信息应用提供一个专用的隔离环境,同时利用可信计算技术保证该虚拟平台配置状态的可信性。
3.4安全应用
中间层VMM的存在使得一些传统的安全技术能得到更好的利用,因此,一些研究人员利用传统的安全技术如入侵检测技术来提升系统的安全性。Jansen等人提出了通过虚拟化来提高系统的安全性和独立性。首先在安全主域配置入侵检测系统,通过对客户机的用户命令所获取的信息和内核内存所获取的信息比较来进行入侵分析;然后通过设置保护模块获取客户机系统调用,进行进程等事件管理,实现完整性保护。张志新等人提出了基于Xen的入侵检测服务,通过在VMM层设置入侵检测系统,使得这个入侵检测系统位于监控所有对操作系统的入侵事件的最佳位置,并处于一个独立于操作系统之外的受保护的空间内,增强了入侵检测系统的独立性和检测能力,是传统的基于主机和网络入侵检测系统优点的完美结合。
3.5尚存在的问题
通过上文的分析可以发现,在国内外针对虚拟机系统的安全研究已陆续出现很多,针对不同角度的安全研究都存在,从整体分析来说,尚且存在如下一些问题:
a)没有从整体安全上进行设计,只是从单一的一方面进行了研究,如shype只是针对明确数据流,没有考虑到隐蔽通道等安全。
b)一些研究设计过于复杂。在实施上存在问题,如Terra架构,虽然作者的设计理念十分突出,但是至今没能设计出合适的实现平台。
c)忽略了性能的因素。出于安全的考虑,通过策略来进行系统的完整性保护,如UCON保护模型,但是在Linux系统中,由于资源众多,将存在50000种策略状态,那么在实际中将严重影响系统的性能。有些研究人员针对存在的一些系统复杂性进行了改进,如Payne等人提出了分层的访问控制模型,在很大程度上简化了访问控制模块中的主客体关系链。
d)忽略了安全模块自身的安全,一旦安全模块自身被攻击,那么相关的安全将得不到保障,如HIMA、BitVisor。
4 结束语
本文旨在进行虚拟机系统的安全分析,总结目前已有的研究成果,并指出其中存在的问题。首先以虚拟机Xen为例,介绍了虚拟机的架构和关键技术,并从安全的角度对虚拟机中的这些特征和存在的漏洞进行了分析,然后系统地介绍了虚拟机环境中存在的攻击模型,分析了目前存在的一些攻击方式,并针对这些攻击方式提出了相应的防御方法。其次还对目前针对虚拟机安全的研究现状进行了概括总结,主要体现在安全Hypervisor、安全虚拟机架构、特定攻击安全研究、可信计算等几个方面。同时,本文还分析了目前研究存在的一些问题。在后续研究中,笔者将在前人研究的基础上进行安全虚拟机管理器的研究,设计一个安全可靠的虚拟机管理器架构。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:虚拟机系统安全综述