Hypervisor简介
因为底层的硬件设备被其上运行的虚拟化监视器VMM(VirtualMachineMoniToR,即VMM)屏蔽,运行在VMM之上的虚拟机只需要关心目的主机是否也存在相同的VMM即可,不用关心底层的硬件规格配置等信息。,此模型的物理资源由HostOS(例如Windows,Linuxetc.)管理,实际的虚拟化功能由VMM提供,而VMM作为底层操作系统(Windows或Linux等)上的一个普通应用程序
从头开始了解和使用Hypervisor(第4部分) - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com
根据 Hypervisor 的不同类型,我们将虚拟化分为I 型和 II 型两种。
I 型虚拟化,也被称为裸金属虚拟化,Hypervisor 直接调用硬件资源,不需要底层 Host OS,或者说在I 型虚拟化中,可以将 Hypervisor 看做一个定制的 Host OS,除了起到 VMM 的作用外,一般不能在其上安装其它的应用。
Hypervisor 主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的 CPU 特权指令或保护指令(特权指令和保护指令在 CPU 虚拟化中介绍);其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机。
也就是说,Hypervisor 将负责管理所有的资源和虚拟环境。VMM 可以看作一个为虚拟化而生的完整操作系统,掌控有所有资源(CPU、内存和 I/O 设备)。VMM 承担管理资源的重任,其还需向上提供虚拟机VM 用于运行 Guest OS,因此 VMM 还负责虚拟环境的创建和管理。
采用该结构的虚拟化产品主要有:VMWare ESX Server、Citrix XenServer 和FusionCompute 等。
注:通俗的讲,I 型虚拟化中Hypervisor 啥也不干,就专门负责将物理的硬件资源转换为虚拟资源供Guest OS 使用,Guest OS 就像直接运行在物理硬件上一样,所以称为裸金属。
I 型虚拟化有以下特点:
- 优点:虚拟机不依赖于操作系统,支持多种操作系统,多种应用。
- 缺点:虚拟层内核开发难度大。
II 型虚拟化,也被称为宿主型虚拟化,此模型的物理资源由 Host OS(例如 Windows, Linux etc.)管理,实际的虚拟化功能由 VMM 提供,而 VMM 作为底层操作系统(Windows 或 Linux 等)上的一个普通应用程序,然后通过其再创建相应的虚拟机,共享底层服务器资源。VMM 通过调用 Host OS 的服务来获得资源,实现 CPU、内存和 I/O 设备的虚拟化。VMM 创建出虚拟机VM 后,通常将VM 作为 Host OS 的一个进程参与调度。
采用该虚拟化产品主要 有:VMware Workstation、Virtual PC 等。
II 型虚拟化有以下特点:
- 优点:简单、易于实现。
- 缺点:安装和运行应用程序依赖于主机操作系统对设备的支持。管理开销较大,性能损耗大。
注:和 I 型虚拟化不一样,II 型虚拟化中 Hypervisor 只是 Host OS 的一个应用程序,所有的硬件资源还是归 Host OS 管理。
无论是 I 型还是 II 型虚拟化,都具备分区、隔离、封装和独立的特点。
(1) 分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使您能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。分区功能解决了以下两个方面的问题:
- 每个分区划分资源配额,防止虚拟化超配额使用资源
- 每个虚拟机单独安装操作系统,彼此互不影响
(2) 隔离:通过分区所建立的多个虚拟机之间采用逻辑隔离措施,防止相互影响。隔离功能解决了如下问题:
- 一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障, 等等)不会影响同一服务器上的其它虚拟机
- 一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样
通过隔离的功能,我们可以进行资源控制以提供性能隔离,即为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可 用;也可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论传统x86 服务器体系结构的局限性时所提到的那些问题(应用程序冲突、DLL 冲突等)
(3) 封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。只需复制几个文件就可以随时随地根据需要复 制、保存和移动虚拟机。不少人都用过VMWare Workstation 这个虚拟化产品,我们创建的虚拟机是可以通过复制一小组虚拟机文件到其它安装有VMWare Workstation 的电脑上重新打开运行的。对于虚拟机的迁移而言,最为重要的原因就是封装特性,封装也是虚拟化所有本质特性中最为重要的特性。这是因为虚拟机成为独立硬件的文件,那么虚拟机具备迁移和热插拔特性等功能。这些特性也都和虚拟机封装特性息息相关。
(4) 相对硬件独立:虚拟机在封装为独立文件后,虚拟机迁移只需要把虚拟机设备文件和配置文件或磁盘文件复制到另一台主机上运行即可,而不用关心底层的硬件类型是否兼容,这就是相对硬件的独立性。因为底层的硬件设备被其上运行的虚拟化监视器 VMM(Virtual Machine MoniToR,即 VMM)屏蔽,运行在 VMM 之上的虚拟机只需要关心目的主机是否也存在相同的 VMM 即可,不用关心底层的硬件规格配置等信息。这就如同我们在Windows 7 系统上用office 2007 编辑好 word 文件,然后把这个 word 文件复制到另一台 Windows 10 系统的电脑上,这时我们只要关心是否有可以打开文档的 office 2007 即可,不必关心底层硬件 CPU 是什么型号,内存多大的规格。
Hypervisor是所有虚拟化技术的核心,也是最容易被攻击的对象。
Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。
正是由于Hypervisor可以控制在服务器上所运行虚拟机的方方面面,因此他自然成为了需要保护的对象。保护Hypervisor是至关重要的,并且远比想象中的复杂。
虚拟机可以通过几种不同的方式向Hypervisor发出请求,这些方式通常涉及到API的调用。而API往往是恶意代码的首要攻击对象,所以所有的Hypervisor必须付出大量的努力来确保API的安全,并且确保虚拟机只会发出经过认证和授权的请求。上述保护API安全是Hypervisor的主要功能之一,当然,为了确保虚拟机的性能不受影响,Hypervisor在处理速度方面也是至关重要的。
为了让虚拟机之间沟通更方便,现在已经有人建议开发新的API。从表面上来看,这是合理的 – 为什么要把数据都写入磁盘才能让另一台虚拟机来读取?为什么不直接采用内存拷贝的方式呢?
这种API,如VMware 的VMCI,为在虚拟机里运行的操作系统带来了一些新的风险。在未来的几年内,随着我们慢慢看清楚如何利用这些新技术,这些API还将会被赋予更多新的功能。我们需要跟踪这些变化,并时刻警惕他们被恶意程序利用作为侵入虚拟机的新方法。
另一种途径是通过网络对Hypervisor进行攻击。通常,Hypervisor所使用的网络接口设备也是虚拟机所使用的。如果网络配置的不是很严格,这意味着虚拟机可以连接到Hypervisor的IP地址并且可以在Hypervisor登录密码没有使用强密码保护的情况下入侵到Hypervisor。这种不严格的网络配置还可能导致对Hypervisor的DOS攻击,使得外网无法链接到Hypervisor去关闭这些有问题的虚拟机。
Hypervisor在给我们带来新的性能的同时也带了新的计算机运作风险。充分认识这种新的环境非常重要。
更多推荐
所有评论(0)