2014-09-02 02:06:33
来 源
中存储
虚拟化存储
系统虚拟化是指将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统。每个虚拟计算机系统(简称客户机)都拥有自己的虚拟硬件,提供一个独立的客户机执行环境。

服务器虚拟化屏蔽硬件的差异,为数据中心带来更高的可用性、可靠性及可维护性,但同时也带来了诸多安全问题,一类是恶意攻击导致系统不能正常服务的攻击,另一类是以窃取私密信息为目的的攻击。

系统虚拟化为客户机提供分区和隔离,高效整合服务器资源,提高硬件资源利用率,而且极大地降低了管理和运维成本。但是由于共享资源的本质,服务器虚拟化天生存在着诸多安全问题。这些安全问题主要有两类,一类是恶意攻击导致系统不能正常服务的攻击,另一类是以窃取私密信息为目的的攻击。传统物理主机场景下攻击不易取得客户数据,但是虚拟化场景下如果主机遭到入侵,那么运行其上的所有的客户机都处于威胁中。研究并解决这些安全问题对更好地利用虚拟化技术,提供安全可靠服务,具有重要意义。

系统虚拟化概述

虚拟化技术从1965 年的IBMSystem/360 Model 40 VM 起, 经过了近三十年的沉寂,在近二十年得到快速发展。系统虚拟化是指将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统。每个虚拟计算机系统(简称客户机)都拥有自己的虚拟硬件,提供一个独立的客户机执行环境。提供客户机运行环境的虚拟化层称之为客户机监控器(Virtual Machine Monitor,VMM)。随着X86 架构对其虚拟化漏洞的修复,推出VT/AMD-v 技术,X86 平台的虚拟化技术发展迅猛,出现了诸多的基于硬件辅助虚拟化的VMM,如VMware ESX、XEN、KVM、VirtualBox、Hyper-V 等等,也相应诞生了一大批虚拟化商业产品与方案,如VMware ESX、Huawei、 FusionSphere、Citrix XEN、Red hat RHEV、Oracle Virtual Box、Microsoft 等。

系统虚拟化技术推进了新一轮的数据中心改造,源于虚拟化技术带来的好处:

1、封装:以客户机为粒度进行封装,可以方便地实现快照(snapshot)、克隆(clone)、迁移(migration)、挂起(suspend)和恢复(resume)。从而大大提供系统可维护性,降低IT 管理维护成本。

2、提高资源使用率:多台客户机运行在VMM 上进行统一调度,这些客户机可以共享硬件资源,并交替忙闲运行,可以极大提高硬件资源的使用效率。

3、隔离:由于客户机是运行在VMM之上的一个独立的实例,因此一个客户机的故障不会影响到另外一个客户机的运行。但是隔离也不是完全的,也存在一些安全隐患,也就是本文要讨论的问题。

4、抽象:由于VMM 的存在,客户机并不感知硬件的差别,可以自由的在不同的硬件上方面的迁移,屏蔽了硬件的多样性和复杂性,便利服务的提供和部署。

X86 平台的虚拟化技术可以分为三类(不包括不同体系结构的虚拟化):

1、软件完全虚拟化

优先级压缩(Ring Compression)和二进制代码翻译(Binary translation)相结合。基本原理是:将Guest OS 运行在较低特权级别上,执行遇到特权指令时被VMM 截获进行虚拟化。X86 架构下存在虚拟化漏洞,即作特权操作却没有触发异常的这些指令需要特殊处理,即动态扫描执行代码,如果发现这些指令便将其替换为支持虚拟化的指令块。

2、硬件辅助完全虚拟化

为了解决虚拟化漏洞的问题,处理器生产商推出相应的虚拟化解决方案,即Intel VT/AMD-v 技术。与软件完全虚拟化不同,硬件辅助虚拟化将客户机运行在一个新的模式下(non-root mode),该模式具有一套完全的运行环境,当运行到特权指令时被处理器截获并报告给VMM.VMM 进行处理并反馈给客户机运行环境。

3、半虚拟化

半虚拟化是指通过修改操作系统的内核代码从而避免虚拟化漏洞。在现在的虚拟化系统中,也利用半虚拟的思想优化I/O 路径。 硬件辅助虚拟化是现在虚拟化主要采用的虚拟化方案,如VMware、XEN、KVM 等VMM 都属于该类型(XEN 也有半虚拟化架构)。

可以看出,VMM 将Guest OS作为自己的应用实例运行在其之上,提供Guest OS 运行所需的资源,如运行时资源(内存、相关寄存器)、存储、I/O(如网络)等,另外为了提升效率或可管理性,也提供了一个PV Tools 安装在Guest OS中,并在VMM 中有对应的后端。这些资源对于Guest OS 来说是透明的,不过对于VMM 来说是完全感知的。

存储

Guest OS 的磁盘在VMM 看来是一个文件,即镜像文件,这个文件具有多种格式,常见的有VMDK、VHD、VDI、QED、QCOW2、RAW 等。这些镜像文件都可以通过VMM 平台的工具进行挂载读取。若Guest OS 在安装时未作磁盘加密,那么这些镜像文件在挂载后,Guest 的磁盘文件就可以被读取。而为了管理方面虚拟化方案提供商往往提供未加密的磁盘镜像文件。比较传统主机,虚拟化场景下的虚拟主机的磁盘文件更容易被窃取和攻击。

内存

无论是使用影子页表还是EPT/NPT等内存虚拟化技术,HOST 都掌握着GuestOS 的内存信息。以KVM 为例,Guest OS的内存都是通过qemu 用户进程分配。HOST OS1 若遭到入侵,无论是HOST 所用的内存区域还是Guest 所用的内存区域遭破坏都会影响系统的服务,且数据可能被泄露,这对一些运行关键应用的Guest来说是具有风险的。

网络

现在主流方案中使用HOST 的软交换实现Guest 之间,Guest 与HOST 之间的IP 交换,例如Bridge、Openvswitch 等开源组件或vNetwork Standard Switch (vSS) 等商业组件。不像传统主机模式下,每个物理服务器都有一套安全防护产品,外部设有防火墙,且通信直接和二、三层的网络硬件通信,不易被侵入。而虚拟化环境下的网络交换完全通过软件实现,主机一旦被侵入,所有的客户机通信数据也很容易被捕获。

PV Tools

这里的PV Tools 是虚拟化方案中对Guest OS 增强或管理需要,而安装的一些组件的统称。不同的厂商对该工具有不同的名称,如VMware Tools、 Oracle Virtualbox Guest Additional.这些工具包含两类组件,一类是为了加强性能的虚拟化工具,另一类是为了管理监控等用途的工具。无论是哪类工具,都是从HOST 到Guest 建立了通信通道,并自定义了通信协议。这些通道和工具的漏洞也可能成为恶意客户机“租户”进行攻击的通道。

客户机迁移、HA 等特性

客户机在物理服务器间进行迁移,是通过同步存储和内存数据到一致状态,然后进行暂停、恢复客户机的操作完成的。迁移是通过物理网络传输的。这个迁移过程也存在安全风险。而HA(High Availability)是在不同的物理机上运行同一客户机的相同实例,当一个虚拟机出现故障时,业务系统迅速切换到另一台实例上,从而保证高可用性。HA 往往时在不同的物理机上提供,运行过程中需要时刻同步运行信息,这些运行时刻的信息都通过网络传输,信息传输过程迁移特性一样也带来安全风险。 现有的云计算方案都是通过核心虚拟化系统之外的安全组件完成。本文主要针对虚拟化技术方案, 通过底层的安全加强和设计增强安全,针对上一小节提出的安全问题,提出以下应对策略。

严格控制权限等级和接口,采用加密存储(可考虑GPU 加密)

现在架构下超级管理员对HOST/VMM有完全的控制权限,而且HOST 上也装有读取客户机磁盘镜像文件的工具,获得管理员口令或绕开登录认证后即可获取客户机所有的磁盘文件信息。因此严格控制管理员权限,控制管理员可访问的接口,设计应用程序间的认证和鉴权策略,避免人为干预。另外,操作系统在安装时选择加密选项,从策略层面规避安全隐患。为了进一步避免存储丢失的风险,也可以考虑加密存储。

加强内存虚拟化完整性设计

虚拟化VMM 的内存管理延续了传统操作系统的内存管理机制,内核对应用程序的内存具有读写权限。虚拟化场景下,客户机的内存都暴露给VMM 或HOST,客户机的用户私密性得不到保证。为了保护客户机内存数据的私密和安全性,需要进一步加强HOST 内存完整性和安全设计。

调整传统安全组件结构,新型网络和安全框架融合

引入软件交换和软件定义网络(Sdl)之后,传统网络的物理边界已经消失,传统的单一防火墙结构已经不适用虚拟化架构的安全需求,需要有整体的安全框架统一规范虚拟化环境下的网络。

规范PV、监控协议

目前虚拟化解决方案厂商的半虚拟化驱动、监控组件都没有统一的规范和标准,客户机运行在高危状态下(如果含有不合法或恶意的程序段),用户服务和数据没有丝毫安全可言。因此需要统一规范半虚拟化驱动和监控程序的统一规范,制定统一标准,使得这些工具能够被客户机安全软件所监控,而不像现在的方案中,这些工具完全不受客户机安全软件的限制。

加密传输迁移、HA 数据

虚拟机迁移、HA 给虚拟化带来了更高的可操作性和可用性,这些功能都依赖网络传输操作系统的运行时数据。采用加密数据传输可很大程度上避免信息泄露风险。

虚拟化为信息中心带来了低廉的运维成本、便捷和灵活的部署与操作及高可用性,由于其技术方案的原因,同时也带来了诸多的安全问题。不解决这些安全问题,虚拟化仍然不能被安全相关的关键应用所接受。本文针对系统虚拟化的存储、内存、网络、PV Tools 以及迁移和HA 等特性的现有方案讨论了这些方面信息泄露相关的安全问题,并给出初步的应对策略。虚拟化安全不光是个别安全技术的堆砌,而是整体的考虑和设计。作者下一步着手虚拟化的存储加密模型的设计和实现,并陆续展开对其他安全问题的研究。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。