虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中的制作方法_2

文档序号:9635155阅读:来源:国知局
图2展示主机系统10的示范性硬件配置。系统10包括一组物理装置,包含处理 器12、存储器单元14、一组输入装置16、一组输出装置18、一组存储装置20及一组网络适 配器22,所有这些都由控制器集线器24连接。在一些实施例中,处理器12包括物理装置 (举例来说,形成于半导体衬底上的多核集成电路),所述物理装置经配置以用一组信号及 /或数据执行计算及/或逻辑操作。在一些实施例中,此类逻辑操作呈处理器指令序列(举 例来说,机器代码或其它类型软件)的形式被传递到处理器12。存储器单元14可包括存储 在实施指令的进程中由处理器12存取或产生的数据/信号的易失性计算机可读媒体(举 例来说,RAM)。
[0028] 输入装置16可包含计算机键盘、鼠标及麦克风以及其它,包含相应的硬件接口及 /或适配器,从而允许用户将数据及/或指令引入到主机系统10中。输出装置18可包含显 示器装置(例如监视器及扬声器以及其它),以及硬件接口 /适配器(例如图形卡),从而 允许主机系统10将数据传达到用户。在一些实施例中,输入装置16及输出装置18可共享 一块共同的硬件,如在触控屏装置的情况下。存储装置20包含实现软件指令及/或数据的 非易失性存储、读取、及写入的计算机可读媒体。示范性存储装置20包含磁盘及光盘及闪 存存储装置,以及可移动媒体,例如CD及/或DVD盘及驱动器。网络适配器22的组使得主 机系统10能够连接到计算机网络及/或连接到其它装置/计算机系统。控制器集线器24 表示多个系统、外设及/或芯片组总线及/或使得处理器12与装置14、16、18、20及22之 间能够通信的所有其它电路。例如,控制器集线器24可包含存储器控制器、输入/输出(1/ 0)控制器及中断控制器以及其它。在另一实例中,控制器集线器24可包括将处理器12连 接到存储器14的北桥及/或将处理器12连接到装置16、18、20及22的南桥。
[0029] 为了实现如图1中展示的配置,管理程序30可产生多个虚拟化装置,其各自模拟 系统10的物理硬件装置。管理程序30可进一步将一组虚拟化装置指派到每一VM32a到 b,且控制调度、信令及通信使得VM32a到b可同时使用处理器12及其它硬件装置。执行 此类操作(如暴露VM32a到b)在所属领域中也为已知的。
[0030] 图3展示如由管理程序30暴露的虚拟机32的示范性配置。VM32可表示(例如) 图1的VM32a到b中的任何者。VM32包含虚拟化处理器112、虚拟化存储器单元114、虚 拟化输入装置116、虚拟化输出装置118、虚拟化存储装置120、虚拟化网络适配器122及虚 拟化控制器集线器124。虚拟化处理器112包括对处理器12的至少一些功能性的模拟且经 配置以接收形成软件(例如操作系统及其它应用程序)的部分的处理器指令以用于执行。 将处理器112用于执行的软件被认为在虚拟机32内执行。在一些实施例中,虚拟化存储器 单元114包括用于存储及检索由虚拟化处理器112使用的数据的可寻址空间。其它虚拟化 装置(举例来说,虚拟化输入、输出、存储装置等等)模拟主机系统10的相应的物理装置的 至少一些功能性。虚拟化处理器112可经配置以与此类装置交互,如同其与对应的物理装 置交互一样。例如,在VM32内执行的软件可经由虚拟化网络适配器122发送及/或接收 网络业务。在一些实施例中,管理程序30可将仅虚拟化装置的子集暴露到VM32(例如,仅 虚拟化处理器112、虚拟化存储器114及集线器124的部分)。管理程序30还可给出主机 系统10的经选择的VM专用的一些硬件装置。在一个此类实例中,VM32a(图1)可具有专 用输入装置16及输出装置18,但缺少虚拟化网络适配器。同时,VM32b可具有专用网络适 配器22。
[0031] 图4说明根据本发明的一些实施例的在主机系统10上执行的软件对象的分层。图 4是从处理器权限级别(在所属领域中也称为层或保护环)的角度来呈现。在一些实施例 中,管理程序30在最高权限级别(举例来说,支持虚拟化的丨平台上的VMXroot,也称 为环-1或根模式)下控制处理器12,从而产生如虚拟机32暴露到在主机系统10上执行的 其它软件的硬件虚拟化平台。操作系统34(例如图2中的OS34a到b)在VM32的虚拟环 境内执行,0S34具有比管理程序30小的处理器权限(举例来说,在英特尔(Intel)平台上 的环〇或内核模式)。一组应用程序42e到f在比0S34小的处理器权限(举例来说,环3 或用户模式)下执行。应用程序42e到f的部分可在内核权限级别(例如,由应用程序42f 安装的驱动程序36 ;示范性驱动程序36执行反恶意软件操作,例如检测软件对象的恶意软 件指示行为及/或检测软件对象内的恶意软件指示签名)下执行。类似地,0S34的部分 可在用户模式(环3)中执行。
[0032] 在一些实施例中,自省引擎40实质上在与管理程序30相同的处理器权限级别下 执行,且经配置以执行在主机系统10上执行的虚拟机(例如VM32)的自省。VM的或在相 应的VM内执行的软件对象的自省可包括:分析相应的软件对象的行为,例如识别由对象执 行的一组操作(例如,发布系统调用、存取0S的注册表、从远程位置下载文件、将数据写入 到文件等)。自省可进一步包括:确定含有软件对象的部分的存储器区段的地址;存取相应 的存储器区段;以及分析存储于相应的存储器区段内的内容。自省的其它实例包含:拦截 及/或约束对此类存储器区段的某些进程的存取,举例来说,防止进程重写由另一进程使 用的代码或数据。在一些实施例中,由引擎40针对自省选择的对象包括进程、指令流、寄存 器及数据结构(例如页面表及相应的VM的驱动对象)以及其它。
[0033] 为了在如图1(即,从相应的VM外部)中说明的配置中执行VM32的自省,引擎40 的一些实施例利用处理器12的存储器映射结构及机制。虚拟机通常与虚拟化物理存储器 (举例来说,图3中的存储器114,在所属领域中也称为客户物理存储器)一起操作。虚拟 化物理存储器包括实际物理存储器14的抽象表示,例如作为指定到每一客户VM的虚拟化 地址的连续空间,其中所述空间的部分被映射到物理存储器14及/或物理存储装置20内 的地址。在经配置以支持虚拟化的系统中,通常通过由处理器12控制的专用数据结构实现 此类映射,所述专用数据结构称为第二级地址转换(SLAT)。流行的SLAT实施方案包含扩展 页面表(Intel?平台上的EPT)及嵌套页面表(AMD?平台上的NPT)。在此类系统中,虚拟 化物理存储器可被划分在所属领域中称为页面的单元中,页面表示经由机制(例如EPT及/ 或NPT)被个别地映射到物理存储器的虚拟化物理存储器的最小单元,S卩,用页面粒度执行 物理与虚拟化物理存储器之间的映射。所有页面通常都具有预先确定的尺寸,举例来说,4 千字节、2兆字节等。通常由管理程序30配置虚拟化物理存储器到页面的划分。在一些实 施例中,管理程序30还配置EPT/NPT且因此配置物理存储器与虚拟化物理存储器之间的映 射。虚拟化物理存储器地址到物理存储器地址的实际映射(转换)可包括在主机系统10 的转换后备缓冲器(TLB)中查找物理存储器地址。在一些实施例中,地址转换包括:执行页 面行走,其包含在一组页面表及/或页面目录中的一组连续的地址查找;以及执行计算,例 如将页面的偏置添加到关于相应的页面的地址。
[0034] 一些硬件配置允许管理程序30(举例来说)通过对相应的页面设定读、写及/或 执行存取权利来选择性地控制对存储于物理存储器14中的每一页面内的数据的存取。(例 如)可通过修改EPT或NPT内的相应的页面的项目来设定此类权利。管理程序30可因此 选择哪个软件对象可存取在每一页面内的地址处存储的数据,且可指示用相应的数据允许 哪种操作,举例来说,读、写、执行。为了执行操作(例如将数据写入到对象不具有相应的 权利的页面或执行来自被标记为非可执行的页面的代码)由在VM内执行的软件对象做出 的尝试可触发虚拟机退出事件(举例来说,英特尔平台上的VMExit事件)。在一些实施例 中,虚拟机退出事件将对处理器的控制从执行相应的软件对象的VM转移到管理程序30。此 类转移可允许在管理程序30的处理器权限级别下执行的软件拦截未经授权的写或执行尝 试。在一些实施例中,自省引擎40执行此类自省以作为反恶意软件操作的部分。
[0035] 在一些实施例中,0S34通过(例如)利用页面表机制维持VM32相应的虚拟存 储器空间与虚拟化物理存储器之间的映射(地址转换),针对进程(例如图4中的应用程 序42e到f)配置虚拟存储器空间。在一些实施例中,进程虚拟存储器空间也被划分成页 面,此类页面表示被0S34个别地映射到虚拟化物理存储器的虚拟存储器的最小单元,即, 用页面粒度执行对虚拟化物理存储器映射的虚拟化。
[0036] 图5说明在如图4中展示的实施例中的存储器地址的示范性映射。软件对象(例 如应用程序、进程或在客户VM32内执行的操作系统的部分)由客户0S34指派虚拟存储 器空间214a。当软件对象试图存取空间214a的示范性存储器页面60a的内容时,根据由客 户0S34配置及控制的页面表,由客户VM32的虚拟化处理器将页面60a的地址转换成VM 32的虚拟化物理存储器空间114的页面60b的地址。配置及控制虚拟化物理存储器114的 管理程序30 (例如)使用如上文论述的SLAT构件接着将页面60b的地址映射到在主机系 统10的物理存储器14内的页面60c的地址。
[0037] 在一些实施例中,管理程序30构建包括物理存储器14的表示的其本身的虚拟存 储器空间214b且利用转换机构(例如页面表)将空间214b中的地址映射到物理存储器14 中的地址中。在图5中,此类示范性映射将页面60c的地址转换成页面60h的地址。此类 映射允许管理程序30管理(举例来说,读取、写入及对其的控制存取)属于在主
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1