通过虚拟化技术使不同用户的数据可以存储在物理存储上。这种方式不但可以节约存储空间,还可以进行统一管理,降低管理费用。随着虚拟化技术的大规模使用,组织机构数据中心的基础架构、运维管理等都发生重大变化,面临的安全风险也随之增加,变得更加复杂。

1.虚拟机常见安全威胁

云服务提供商通过虚拟化技术,在IaaS、PaaS和SaaS层面向用户提供云服务。云计算的虚拟化安全问题集中在以下方面:

(1)虚拟机跳跃和逃逸

虚拟机跳跃是指借助与目标虚拟机共享同一个物理硬件的其他出以服务器,对目标虚拟机实施攻击。

虚拟机跳跃是两个虚拟机在同一台物理主机上,一台虚拟机上的攻击者通过获取另一台虚拟机的网络地址,或者通过获得物理主机的访问权限接入另一台虚拟机,完成对目标虚拟机的攻击。

虚拟机逃逸是攻击者在允许操作系统与程序直接利用虚拟机运行代码进入在主机上运行的其他虚拟机。不仅危及主机的安全,一旦攻击者获得监视虚拟机访权限,还可以关闭监视及相关虚拟机。

(2)拒绝服务

在虚拟化环境下,虚拟机和宿主机共享系统资源。拒绝服务攻击通过加载虚拟机资源而获取宿主机上所有的资源。当用户发出资源请求时,由于宿主机资源被占用造成系统会拒绝合法用户的所有请求。

(3)恶意软件攻击 

恶意软件是一个隐藏自身及指定的文件、进程和网络链接等信息的工具集,通过隐秘渠道收集信息的程序。攻击者使用程序技术修改原始文件,隐藏特定的系统信息,达成隐藏恶意软件的目的。

(4)迁移攻击

迁移攻击通常指虚拟机动态迁移攻击。攻击者在虚拟机动态迁移过程中,改变配置文件和虚拟机的特性。攻击者如果接触到虚拟硬盘,就可以攻破所有安全措施。

(5)虚拟机之间影响

隔离是虚拟机技术特点之一,每个虚拟机的连接利用专用的通道进行流量传输,并且虚拟机之间不能影响对方的数据包。如果平台使用虚拟交换技术来连接所有虚拟机,那么虚拟机就能够进行嗅探或重新定向数据包。

(6)虚拟机、宿主机之间影响

宿主机对虚拟机的检测、改变和通信、安全进行管理。宿主机可以影响虚拟机启动、停止、暂停和重启,监控虚拟机资源和运行的应用程序,管理数据在虚拟机的硬盘存储,监控所有虚拟机的网络数据。

(7)旁道攻击

旁道攻击是通过共享CPU和内存缓存来提取或推断敏感信息。由于用户虚拟机实例与攻击者的虚拟机实例是共享物理主机的,形成旁道攻击。

2.虚拟化软件安全

虚拟化软件部署于裸机之上,提供创建、运行和销毁虚拟服务器的能力。虚拟化软件层由云服务提供商来管理,在多租户环境下虚拟化软件层保证虚拟机相互隔离,所以严格限制未授权用户访问。

虚拟化软件层直接影响虚拟机的安全,为此云服务提供商需建立必要的安全措施,限制虚拟化层次的物理和逻辑访问控制,保障虚拟化层的安全。

针对虚拟化软件层,主要的攻击方式:恶意代码通过应用程序接口(API)攻击;② 通过VMM使用网络设备和虚拟机所使的IP侵入 VMM。

3.虚拟服务器安全

虚拟服务器位于虚拟化软件之上,虚拟化服务器特点之一是网络架构。网络结构的变化会产生了许多安全问题。在传统网络环境下,用户对不同服务器采用不同的策略进行管理,对用户其中的服务器攻击不会扩散到其他服务器。在采用虚拟化技术后,每台服务器将支持若于程序,可能会出现负载过重、物理服务器崩溃等状况,安全隐患可能在同一物理主机上的虚拟机之间传播,虚拟机间的通信也可能增加服务器被网络攻击的机会。

虚拟服务器面临着许多安全威胁,可以采取以措施:

1)选择具有可信模块的物理服务器。

2)虚拟服务器通过虚拟局域网和IP地址网段的方式进行逻辑隔离。

3)虚服务器分配独立的硬盘分区进行逻辑隔离。

4)虚拟服务器在防火墙中做安全设置,对虚拟服务器进行保护和隔离。虚拟服务器的安全策略与物理服务器安全策略对等。

5)对于虚拟服务器系统进行系统安全加固。

6)监视服务器的硬件利用率,并进行容量分析。

7) 监控虚拟服务器的运行状态,实时监控虚拟机的系统日志和防火墙日志发现存在的安全隐患。

4.虚拟机安全防护

基于虚拟机技术,虚拟机安全防护措施如下:

(1)隔离执行

隔离执行是指将应用程序隔离到封闭的环境中运行。隔离执行架构可以保证整个虚拟环境的完整性,并可以追踪应用之间的交互。

(2)虚拟机监控

虚拟机的隔离性会引入新的问题,即虚拟环境中的用户行为不可见,无法进行监控。虚拟机自省技术可以消除不同虚拟机之间的语义鸿沟。

(3)内存保护

通过分离式页表将内核内存和应用程序内存分离,解决操作系统共享核空间带来的安全问题。

5.Xen 平台的安全

在应用上,虚拟机具有良好的隔离性,但虚拟机之间的交互带来新的安全挑战,如虚拟机之间未经授权访问、虚拟机之间通信产生病毒传播。

针对上述情况,Xen 通过自己的访问控制模块 ACM (ACM 也称为 sHype,由 IBM提出的在Xen上实现的安全架构XSM,其作用类似安全容器。在使用 ACM 进行安全控制时,先加载用户设置的安全策略,再当 Xen 上的Hypercall 被调用时,ACM根据用户配置的策略对访问请求做出允许或拒绝,并反馈给 XSM),能够有效解决访问不当。