虚拟化技术深入解析:VA 支持的虚拟机与虚拟化安全
1. VA 支持的虚拟机概述
虚拟机有着多种用途,其中之一是在隔离环境(即容器)中正确运行传统软件。像 Windows Defender Application Guard 使用容器来完全隔离浏览器,Windows Sandbox 则利用容器提供完全隔离的虚拟环境。通常,容器会共享同一虚拟机的固件、操作系统,甚至一些运行其中的应用程序。若为每个容器分配独立的来宾物理内存空间,不仅不可行,还会造成物理内存的大量浪费。
为解决这一问题,虚拟化堆栈引入了 VA 支持的虚拟机。这种虚拟机借助主机操作系统的内存管理器,为来宾分区的物理内存提供诸如内存去重、内存修剪、直接映射、内存克隆以及分页等高级功能。
与传统虚拟机不同,VA 支持的虚拟机在来宾物理地址(GPA)空间和系统物理地址(SPA)空间之间增加了一层间接映射。VID 驱动会创建一个初始为空的 GPA 空间,创建一个名为 VMMEM 的用户模式最小进程来托管虚拟地址(VA)空间,并通过 MicroVM 建立 GPA 到 VA 的映射。MicroVM 是 NT 内核的新组件,与 NT 内存管理器紧密集成,负责通过组合 GPA 到 VA 的映射(由 VID 维护)和 VA 到 SPA 的映射(由 NT 内存管理器维护)来管理 GPA 到 SPA 的映射。
2. VA 支持的虚拟机的内存管理流程
当 VM Worker 进程启动 VA 支持的虚拟机时,会请求 VID 驱动创建分区的内存块。具体操作如下:
1. 创建 Memory Block Range GPA 映射位图,用于跟踪为新虚拟机的 RAM 提供支持的已分配虚拟页面。
超级会员免费看
订阅专栏 解锁全文
3687

被折叠的 条评论
为什么被折叠?



