本节书摘来自华章出版社《虚拟化安全解决方案》一书中的第1章,第1.1节,作者[美]戴夫·沙克尔福(Dave Shackleford),更多章节内容可以访问云栖社区“华章计算机”公众号查看
1.1 虚拟化架构
所有虚拟化的核心都是对物理硬件层计算资源的抽象。在服务器虚拟化领域中,主机是底层服务器虚拟化平台,它将被用于向虚拟服务器提供虚拟硬件层。虚拟客户(通常也被称为虚拟机或VM)由一系列表示虚拟服务器或系统的文件组成。这些文件在与主机软件和主机安装的底层硬件交互中服务于特定目的。虚拟机可直接安装在主机的本地存储设备上或一个及多个网络存储设备上。
一些术语定义
下面是本书中使用的术语:
主机 主机是运行系统管理软件的虚拟化平台。常见的主机平台包括VMware ESXi、Microsoft Hyper-V、Citrix XenServer、Red Hat KVM和其他。所有虚拟化系统都运行在这个主机管理程序平台之上。
虚拟客户、虚拟机、VM、客户系统 一个虚拟客户,通常称为虚拟机(Virtual Machine, VM),是任何运行在被抽象为一个虚拟模型环境的系统。VM是一组文件,它代表一个基于硬件的计算平台,包括存储器、内存和配置组件。
虚拟服务器 许多虚拟化项目由虚拟化基于硬件的服务器开始。术语虚拟服务器常用于指代这些服务器。虚拟服务器真的只不过是一个特殊类型的虚拟机。
管理程序是服务器虚拟化平台的主要组件。通常被称为虚拟机监视器(Virtual Machine Monitor,VMM),管理程序是虚拟基础设施的中枢神经系统。它管理主机的底层硬件资源和处理所有由客户启动的操作系统(OS)和应用程序对CPU、内存、I/O和硬盘资源的请求。
目前有两种类型的管理程序:类型1管理程序根本上是独立的操作平台并直接安装在主机硬件上。由于这个原因,这些管理程序常被称为物理硬件管理程序。虚拟机运行在硬件“之上”的一层,允许通过系统管理软件完成更彻底的隔离。这种类型的管理程序的一个例子是VMware的ESXi。这种类型的管理程序的例子如图1.1所示。
类型2管理程序是安装在现有操作系统平台上的应用程序,如图1.2所示。类型2管理程序的例子是VMware工作站。
理解管理程序和它们易遭受的安全问题的关键是理解X86 CPU架构的运行模式和特权级别(或环)的概念。
运行模式 有两种需要考虑的运行模式——实模式和保护模式。所有现代X86处理器为了向后兼容都启动进入实模式,但处理器的真正能力是在保护模式中,这就是特权级别概念的由来。
特权级别 为了形象化展示特权级别,想象一组同心圆,中间的最靠近硬件,越外面的环离硬件越远(见图1.3)。中间的环被称为环0,是特权最高的,在这个级别运行的软件具有对底层主机硬件完全的控制。其他的环被标为环1到环3(最外层的环)。在许多现代操作系统中,环0被称为管理模式,是整个操作系统所有功能产生的地方。所有应用程序功能通常发生在环3,通常称为用户模式。
特权级别与管理程序是如何关联的呢?
类型1管理程序与操作平台集成,因此它运行在环0、环1或环2,而用户操作系统运行在环3。
对于类型2管理程序,管理程序和客户都作为不同的应用程序运行在环3。
这两个管理程序模型的目的是使用户安全地运行而不会影响“真正的”环0,因为这将影响底层主机平台和所有其他用户。为了实现这个目标,虚拟化平台在真正的环0和用户间创建了一层,这个层就是管理程序,或虚拟机监视器(VMM)。它表示用户虚拟机为虚拟环0,以便当它们需要内存、硬盘、网络和其他资源时,它们能完成对硬件的标准调用。影响管理程序可能意味着底层主机操作系统(如适用)和所有的用户都容易暴露或遭受
攻击。