时间:2013-08-28 13:18 文章来源:http://www.lunwenbuluo.com 作者:钱霂馨 张辉鹏 点击次数:
3.2避开虚拟机
要避开虚拟机,需要依次迂回进入硬件和操作系统设计。在基于X86的CPU,ring0(通常指内核模式)是CPU的一部分,在这里管理内核级进程。同样,ring3(或用户模式)是对用户级进程分配处理空间的地方。虚拟化操作系统要求ring0接入CPU,就如同真正的本地安装的操作系统。物理和虚拟操作系统都需要一定数量的内核代码(例如中断表格和视图)在ring0中运行,并且始终知道这些代码在RAM中位于何处。
与物理操作系统不同的是,虚拟客户端不可能像独立的机器那样,将中断表格放置在RAM中的同一个位置,主机的中断表格已经占用了内存中的该位置。因此,尽管客户端认为其中断表格可能位于其虚拟RAM中的0x0000ffff处(表格始终存储在这个特定操作系统中),但主机实际上已经通过透明的Hypervisor将这个位置映射到物理RAM中的0x1234abcd位置,对虚拟系统隐藏了实际位置。然而,这是一个内核级空间,即使主机Hypervisor已经针对客户端处理了中断表格的实际位置,虚拟表格仍必须从实际CPU上有权限的ring0运行(并驻留在其中)。
一般用户也无法知道在虚拟ring0中发生了什么,但是VMM翻译该呼叫,并通过IPC将该呼叫交付给运行在主机上的超级用户,如果攻击者找到利用虚拟微代码的方式,则他们可能会操纵主机内核和CPU。这叫做虚拟机躲避:跳出虚拟环境的限制,并进入物理环境。
联系方式
随机阅读
热门排行