4.3.1 虚拟化安全威胁
虚拟化正在成为企业基础架构管理的基础,但是虚拟化也面临新的安全威胁。据数据统计,现在网络上的恶意代码层出不穷,每秒钟就会有一个新的网络安全威胁产生,每5分钟就会发生一起网络入侵行为,高级威胁随时都可能感染数据中心平台。市场调研机构Gartner的报告显示,虚拟化数据中心面临比传统数据中心更大的安全挑战。
1.主机虚拟化威胁
虚拟化的发展逐渐成熟,能够高度利用各种物理资源和软件资源,因此成为云计算的关键技术。主机虚拟化是虚拟化方案中的一种,它通过在主机上虚拟出多个操作系统,然后在各个操作系统上运行不同的应用。和传统服务器比较,主机虚拟化能够大幅度降低成本,提高软硬件资源的使用效率,并在虚拟机管理等方面有更显著的优势。
图4.3所示为主机虚拟化的基本框架。从底层开始,物理主机提供硬件资源(包括CPU、内存、I/O设备),宿主机操作系统调用硬件资源分配出虚拟硬件资源,Hypervisor将虚拟硬件资源分配给上层虚拟机并对其进行资源管理。虚拟机操作系统上则运行不同的App。
图4.3 主机虚拟化框架
云环境下主机虚拟化的多层虚拟化结构大幅度提高了资源使用率,但也给安全问题带来更高的挑战。除了面临传统环境的主机安全威胁,多层虚拟化结构中的各层面也出现了新的安全威胁,并且层与层之间的安全威胁相互影响。如Hypervisor的漏洞可能使黑客拿到宿主机的资源分配权限等。
2.虚拟机之间的安全威胁
在传统环境下,跨越网络的虚拟机流量更多的是通过传统网络的防火墙等硬件安全防护设备进行安全防护。传统环境的这种安全防护机制主要是针对东西向(纵向)的业务安全防护。在云环境的架构中,多租户的模型使得同一物理机下不同虚拟机之间产生了南北向(横向)流量,且南北向流量不经过纵向安全防护的硬件设备。对于云上主机管理员来说,横向流量的监控和访问控制成为安全威胁点,在图4.4中,虚拟机之间的横向流量如果没有受到监控,则一台虚拟机被入侵后,容易通过横向扩展影响到其他的虚拟机。
图4.4 虚拟机之间横向流量威胁
3.虚拟机与宿主机之间的安全威胁
宿主机作为虚拟机的载体,为虚拟机提供资源。宿主机的安全性极其重要,因为一旦攻击者破解了宿主机的最高权限,将会对虚拟机的资源使用造成严重影响,攻击者甚至会关闭当前使用的虚拟机,彻底中断业务,或者监控和分析虚拟机的流量,造成业务层面的信息泄露等后果。
在图4.5中,Hypervisor作为宿主机和虚拟机之间的中间层,其安全漏洞会同时影响到虚拟机和宿主机的安全性。如虚拟机通过Hypervisor漏洞攻击提取到Hypervisor层权限,则可影响到同宿主机的其他虚拟机,若通过物理硬件层执行攻击,则入侵会扩展到其他宿主机。如2012年5月出现的VMware vMA不明细节本地权限提升漏洞,就可以被攻击者用来执行任意代码。
图4.5 虚拟机与宿主机之间攻击
VMware公司之前宣布了一系列漏洞,这些漏洞会直接影响ESX和ESXi管理程序,导致远程DoS攻击、代码执行,权限提升和其他重要安全问题。
4.VM蔓延
虚拟机可以在数秒内完成部署,同时创建未经批准的虚拟机非常容易(例如,测试系统)。实时动态创建的虚拟机可能在补丁、更新或配置方面没有动态管理。一个未打补丁的虚拟机可能会被曝光,进而变成环境中的安全漏洞。虚拟机创建起来越容易,数量就会越多,而想要回收计算资源或清理虚拟机的工作就会越难,这种不受控制的虚拟机繁殖称为虚拟机蔓延(VM Sprawl)。虚拟机蔓延很常见,尤其在安全监管不太严谨的公司。在部署虚拟化技术而没有实行相应的管理流程的环境中,这是普遍存在的问题。
5.虚拟镜像安全
虚拟机镜像为云上快速部署提供了“装机盘”的角色。传统环境下安装一个虚拟机可能需要1~2天的时间,现在云上提供的虚拟机镜像能在3~5分钟内完成虚拟机的部署。虚拟机镜像的多样性也根据各种需求而异,由此会引发虚拟机镜像的安全性问题。
虚拟机镜像以文件形式保存,由于文件存在易访问性和移植等特性,所以虚拟机镜像安全更像是敏感数据安全的一种。虚拟机镜像的非法访问和篡改,会影响到大范围虚拟机的创建,产生“有问题”的虚拟机。镜像安全管理问题成为云服务提供商重点关注的问题,它们需要建立一套镜像管理流程,以管理虚拟机镜像的生产、存储、变更和销毁工作,同时也要引入安全技术来防止虚拟机镜像的非法读取、使用,此外还要建立防篡改机制。
6.虚拟机逃逸
虚拟机逃逸是指虚拟机绕过安全隔离的限制,从而使得虚拟机程序运行在宿主机上。理论上说,在安全的情况下,宿主机负责分配虚拟机的所有硬件资源,虚拟机使用的资源相互隔离,互不影响。但是,一旦虚拟化软件出现漏洞,攻击者就会利用漏洞获取到宿主机的特权权限,使得虚拟化的安全框架崩溃。如2016年在韩国首尔举行的PwnFest 2016黑客破解大赛上,虽然黑客的权限限制在工作站虚拟机中,但是只运行了一个程序就让宿主机弹出了计算器程序。这说明,虚拟机中的用户已经意识到自己虚拟的身份,并成功逃逸到宿主机上。从虚拟机逃逸出来的攻击者可以监控其他虚拟机的I/O流,读取到该虚拟机上的敏感信息。攻击者还可以利用Hypervisor漏洞,强行关闭或删除虚拟机,造成业务中断等灾难性事件。目前,针对虚拟机逃逸问题没有完美的解决方案,业界提出的针对虚拟机逃逸的解决方案有:轻量化Hypervisor,从代码层面简化Hypervisor,减少代码层面安全漏洞的可能性;监控虚拟机异常行为,对特权提取和逃逸等操作进行安全预警;及时发现和修补漏洞;对资源使用采取强访问控制,利用访问控制措施控制虚拟机对资源的使用。