更新时间:2024-07-26 gmt 08:00

hypervisor安全-九游平台

什么是hypervisor

hypervisor能实现同一物理机上不同虚拟机之间的资源隔离,避免虚拟机之间的数据窃取或恶意攻击,保证虚拟机的资源使用不受周边虚拟机的影响。用户使用虚拟机时,仅能访问属于自己的虚拟机的资源(如硬件、软件和数据),不能访问其他虚拟机的资源,保证虚拟机隔离安全。

cpu隔离

x86架构为了保护指令的运行,提供了指令的4个不同特权级别,术语称为ring,优先级从高到低依次为:

  • ring 0:被用于运行操作系统内核。
  • ring 1:用于操作系统服务。
  • ring 2:用于特权代码(具有i/o访问权限的用户程序)。
  • ring 3:用于应用程序。

各个级别对可以运行的指令进行限制:

  • hypervisor运行在ring0。
  • 虚拟机操作系统运行在ring 1,有效地防止了虚拟机guest os直接执行所有特权指令。
  • 应用程序运行在ring 3上,保证了操作系统与应用程序之间的隔离。

cpu硬件辅助虚拟化的引入进一步实现了hypervisor和虚拟机操作系统运行模式的深度隔离。

内存隔离

hypervisor通过内存虚拟化技术来实现不同虚拟机之间的内存隔离。内存虚拟化技术在传统os两层地址映射(“虚拟地址”到“机器地址”)的基础上,引入三层地址映射:虚拟机负责将“guest虚拟地址”映射为“guest物理地址”,然后hypervisor负责将“虚拟机物理地址”映射成“机器地址”,再交由物理处理器来执行,保证了虚拟机无法直接接触实际的机器地址,只能访问hypervisor分配给它的物理内存。

i/o隔离

hypervisor采用分离设备模型实现i/o的虚拟化。前端负责将虚拟机的i/o请求传递到hypervisor中的后端,后端解析i/o请求并提交给相应的设备完成i/o操作。hypervisor保证虚拟机只能访问分配给它的i/o资源。

相关文档

网站地图