操作系统与虚拟化安全-虚拟化概述

(接intro)

虚拟化技术分类

  • 按照数据中心分,基础设施、系统、软件

  • 按照层次分,可以如图

image-20230925095343336

基础设施虚拟化

  • 网络虚拟化:网络的硬件与软件资源整合,向用户提供虚拟网络连接的虚拟化技术
  • 存储虚拟化:物理的存储设备提供一个抽象的逻辑视图
  • 系统虚拟化:一台物理机上虚拟出一台或多台虚拟机(VM)

系统虚拟化

pool

软件虚拟化

Pool

服务器虚拟化技术

3种体系结构

ESX

image-20230925101847326

VMware workstation

image-20230925101914213

Xen

image-20230925101928521

虚拟化实现技术

虚拟机系统是通过在现有平台(裸机或操作系统)上增加一个虚拟层VMM(virtual Machine Monitor或Hypervisor)来实现

1、全虚拟化

  • hypervisor提到0环权限,os换成1环
  • 全部的指令都交给Hypervisor拦截,并转换处理,不需要改os
  • Hypervisor需要做软件模拟,开销大

image-20230925102155008

2、半虚拟化

  • os的权限环不变,hypervisor也在0权限环
  • 对特权指令的调用都改成对Hypervisor的调用(hyper call),os修改
  • 性能优于全虚拟化

image-20230925102522518

3、 硬件辅助虚拟化

  • CPU 额外的多提供了一个环为Hypervisor专用,称为 -1 环(硬件实现)
  • 在操作系统调用特权指令的时候,通过硬件的机制将特权指令调用转到在处在 -1环上的Hypervisor 上(os不用修改)
  • 需要硬件支持(Intel VT和AMD-V)

image-20230925103038438

相应的产品对比

image-20230925103151200

VMM实现技术

上一节相当于vmm的实现类型

CPU虚拟化

目标
  • 为每个虚拟机提供 一个或多个 虚拟CPU(VCPU)

  • 多个VCPU 复用 物理CPUs, 任何时刻一个物理CPU只能被一个VCPU使用

实现
  • 模拟执行 是指由VMM模拟所有指令的执行效果,包括解释执行和二进制代码翻译执行,效率较低。
  • 监控执行 是指虚拟机的绝大多数指令都在物理主机上直接执行,少量可能影响虚拟机运行或影响其虚拟机状态的指令(敏感指令)必须由VMM监控并模拟其执行效果。执行效率较高。取决于模拟执行指令数量、复杂度和算法性能
硬件辅助的实现——Intel VT-x操作模式
  • 即上文硬件辅助虚拟化具体实现机制,实现根模式、非根模式切换

pool

内存虚拟化

VMM参与时的机器地址定位过程

image-20230925111332784

  • 在硬件层面用EPT技术实现两次的地址转换(x86只能支持一次地址转换)
  • 或者用下文的页表虚拟化技术
页表虚拟化
  • 背景:os通过多级页表建立虚拟地址到物理地址的映射关系

  • 整体思路:由VMM 根据映射 f 和 g 生成复合的映射 f·g,并直接将这个映射关系交给MMU(Memory Management Unit)

    • 泛虚拟化方法
      • 直接将 f.g 映射关系更新到Guest OS页表项中
      • 安全隐患大,因为理论上VMM不应该知道guest os到HW的映射(违背了f映射对于虚拟机不应可见的规则)
      • 例如:Xen
    • 全虚拟化方法
      • guest OS的每个页表维护一个影子页表,并将合成后的映射关系 f·g 写入到“影子”中,guest OS的页表内容保持不变
      • VMM将影子页表交给MMU进行地址转换

image-20230925111742019

内存虚拟化的优化

pool

IO虚拟化

《系统虚拟化:原理与实现》

设备发现
访问截获
设备模拟
设备共享

操作系统与虚拟化安全-虚拟化概述
https://al-377.github.io/2023/09/25/OS-Virtualization-Security-lesson4/
作者
Aidan Lew
发布于
2023年9月25日
许可协议