CN111949376B - 虚拟机系统和用于虚拟机系统的方法 - Google Patents

虚拟机系统和用于虚拟机系统的方法 Download PDF

Info

Publication number
CN111949376B
CN111949376B CN202010856209.3A CN202010856209A CN111949376B CN 111949376 B CN111949376 B CN 111949376B CN 202010856209 A CN202010856209 A CN 202010856209A CN 111949376 B CN111949376 B CN 111949376B
Authority
CN
China
Prior art keywords
virtual machine
control block
machine control
shadow
fields
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010856209.3A
Other languages
English (en)
Other versions
CN111949376A (zh
Inventor
刘亚飞
刘子行
应志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202010856209.3A priority Critical patent/CN111949376B/zh
Publication of CN111949376A publication Critical patent/CN111949376A/zh
Application granted granted Critical
Publication of CN111949376B publication Critical patent/CN111949376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

提供一种虚拟机系统和其方法,该系统包括:虚拟机监视器;普通内存,用于存储影子虚拟机控制块,其中,所述虚拟机监视器通过所述影子虚拟机控制块来与主机处理器交互、且能对所述影子虚拟机控制块进行读写;安全内存,用于存储真实虚拟机控制块,其中,所述虚拟机监视器不能对所述真实虚拟机控制块进行读写;安全处理器,被配置为可访问所述安全内存,并控制如下中的至少一种:哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块、哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。

Description

虚拟机系统和用于虚拟机系统的方法
技术领域
本申请涉及处理器领域,且更具体地,涉及虚拟机系统和用于虚拟机系统的方法。
背景技术
虚拟化(Virtualization)技术通过虚拟机监视器(Virtual Machine Monitor,VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(VirtualMachine)实例。
虚拟机控制块(VMCB)用于记录虚拟机的控制信息和执行状态。虚拟机监视器(VMM)通过虚拟机控制块与处理器进行交互,控制虚拟机的执行;在虚拟机退出时,虚拟机监视器通过虚拟机控制块获取虚拟机的退出信息。但是,恶意的虚拟机监视器也可以通过虚拟机控制块控制虚拟机的运行,并窃取虚拟机的机密信息。
发明内容
根据本发明的一个方面,提供一种虚拟机系统,包括:虚拟机监视器;普通内存,用于存储影子虚拟机控制块,其中,所述虚拟机监视器通过所述影子虚拟机控制块来与主机处理器交互、且能对所述影子虚拟机控制块进行读写;安全内存,用于存储真实虚拟机控制块,其中,所述虚拟机监视器不能对所述真实虚拟机控制块进行读写;安全处理器,被配置为可访问所述安全内存,并控制如下中的至少一种:哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块、哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。
根据本发明的另一方面,提供一种用于虚拟机系统的方法,包括:由虚拟机系统中的虚拟机监视器通过影子虚拟机控制块来与主机处理器交互,其中,所述影子虚拟机控制块被存储在所述虚拟机系统中的普通内存中,所述虚拟机监视器能对所述影子虚拟机控制块进行读写;由所述安全处理器控制如下中的至少一种:哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块、哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块,其中,所述真实虚拟机控制块被存储在所述虚拟机系统中的安全内存中,所述虚拟机监视器不能对所述真实虚拟机控制块进行读写,所述安全内存可由所述虚拟机系统中的安全处理器访问。
附图说明
图1示出根据本发明的实施例的虚拟机系统的框图。
图2A示出根据本发明的另一实施例的虚拟机系统的框图。
图2B示出了根据本发明的另一实施例的读掩码和写掩码的示意例子。
图3示出根据本发明的实施例的用于虚拟机系统的方法的流程图。
图4示出根据本发明的实施例的用于虚拟机系统的方法的流程图。
具体实施方式
现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了提高虚拟机的安全性,在内存隔离方案中,将虚拟机控制块存储在安全内存区中,只有安全处理器才能访问虚拟机控制块,虚拟机监视器无法读取和修改虚拟机控制块中的数据。
由于将虚拟机控制块存储到安全内存中,虚拟机监视器获取不到虚拟机控制块中的数据,无法通过虚拟机控制块与处理器交互信息参与到虚拟机的运行,也无法获取到虚拟机的退出信息,对虚拟机的退出事件进行处理,虚拟机无法正常执行。
为了解决虚拟机监视器无法与处理器交互参与虚拟机运行的问题,本发明提出了影子虚拟机控制块的方法,虚拟机监视器可以通过影子虚拟机控制块与处理器进行交互,参与并协助虚拟机的运行,同时又无法获取或修改真实虚拟机控制块中的关键信息,窃取虚拟机的机密,保证了虚拟机的安全。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
图1示出根据本发明的实施例的虚拟机系统100的框图。
图1所示的一种虚拟机系统包括:虚拟机监视器101;普通内存102,用于存储影子虚拟机控制块104,其中,所述虚拟机监视器101通过所述影子虚拟机控制块104来与主机处理器107交互、且能对所述影子虚拟机控制块104进行读写;安全内存103,用于存储真实虚拟机控制块105,其中,所述虚拟机监视器101不能对所述真实虚拟机控制块105进行读写;安全处理器106,被配置为可访问所述安全内存103,并控制如下中的至少一种:哪些字段能够从所述真实虚拟机控制块105中拷贝到所述影子虚拟机控制块104、哪些字段能够从所述影子虚拟机控制块104中拷贝到所述真实虚拟机控制块105。
如此,在安全处理器的控制下,虚拟机监视器只可以通过影子虚拟机控制块与处理器进行交互,参与并协助虚拟机的运行,同时又无法获取或修改真实虚拟机控制块中的关键信息,窃取虚拟机的机密,保证了虚拟机的安全。同时,安全处理器控制影子虚拟机控制块与真实虚拟机控制块之间的哪些字段的拷贝,使得既能够保证通过影子虚拟机控制块(而不需要通过真实虚拟机控制块)也能协助虚拟机的运行,又能保证真实虚拟机控制块中的某些字段不会被虚拟机监视器知道或被恶意软件剽窃或更改。
图2A示出根据本发明的另一实施例的虚拟机系统的框图。
图2A与图1的大部分模块是相同的,在此省略其描述。在图2A中,所述安全内存103中还存储能由所述安全处理器106设置的虚拟机控制块掩码,包括写掩码108和读掩码109中的至少一个。
在一个实施例中,所述读掩码109用于指定所述真实虚拟机控制块105中哪些字段能够从所述真实虚拟机控制块105中拷贝到所述影子虚拟机控制块104。
在一个实施例中,所述写掩码108用于指定所述影子虚拟机控制块104中哪些字段能够从所述影子虚拟机控制块104中拷贝到所述真实虚拟机控制块105。
如此,可以通过读掩码和写掩码来单独控制哪些字段从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块和哪些字段从影子虚拟机控制块中拷贝到所述真实虚拟机控制块。另外,只有安全处理器能够设置虚拟机控制块掩码,这使得恶意软件无法轻易更改虚拟机控制块掩码,保证了安全性。
在一个实施例中,所述虚拟机控制块掩码由所述安全处理器106在所述安全处理器106初始化时设置。当然,这只是例子,还可以在其它需要的时间设置。但在安全处理器初始化时设置能够更早地进行安全设置,从而在安全处理器初始化完成之后开始运时就能保护真实虚拟机控制块中的关键信息。
通过对虚拟机控制块掩码进行设置,安全处理器控制和选择真实虚拟机控制块中的普通字段暴露给虚拟机监视器读取或修改,由虚拟机监视器协助虚拟机的运行;安全处理器控制真实虚拟机控制块中的关键字段,禁止虚拟机监视器访问,防止恶意虚拟机监视器窃取虚拟机的机密信息,保证虚拟机的安全运行。
在一个实施例中,在所述影子虚拟机控制块104和所述真实虚拟机控制块105之间的字段的拷贝可以由所述主机处理器107完成。由所述主机处理器完成的好处是减少安全处理器的工作负荷,并提高虚拟机启动和加载速度。
在一个实施例中,响应于所述主机处理器107执行虚拟机运行指令VMRUN(如图2A所示),所述主机处理器根据设置的所述写掩码108,将所述写掩码108所指定允许的字段从所述影子虚拟机控制块104中拷贝到所述真实虚拟机控制块105。被写掩码108设置为禁止拷贝的字段则被忽略,不能被复制到真实虚拟机控制块中。
在虚拟机运行过程中,主机处理器可以对真实虚拟机控制块进行读写操作。
在一个实施例中,响应于所述主机处理器107执行虚拟机退出指令VMEXIT,所述主机处理器107根据设置的所述读掩码109,将所述读掩码109所指定允许的字段从所述真实虚拟机控制块105中拷贝到所述影子虚拟机控制块104。被读掩码109设置为禁止拷贝的字段则被忽略,不能被复制到影子虚拟机控制块中。
如此,虚拟机监视器可以得知虚拟机运行并退出之后的真实虚拟机控制块中的一些字段的信息,根据这些字段中的提供的退出信息,对虚拟机的退出事件进行对应处理,为下一次虚拟机的启动和运行做准备。
如此,未被所述写掩码或所述读掩码所指定允许的字段不能从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块或从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。使得防止恶意虚拟机监视器窃取虚拟机的机密信息,保证虚拟机的安全运行。
在一个实施例中,所述未被所述写掩码或所述读掩码所指定的字段包括与所述真实虚拟机控制块的安全有关的字段,包括虚拟机嵌套页表nCR3、虚拟机地址空间ID(ASID)、特权指令捕获位(Intercept bit)、虚拟机状态保存区指针(Save State Pointer)等。当然,这些字段不限于此,还可以根据实际情况设置其他不被允许拷贝的字段。
在一个实施例中,读掩码或写掩码中的一个或多个比特与一个字段相对应,且用于指定所述字段为允许拷贝或禁止拷贝。
图2B示出了根据本发明的另一实施例的读掩码和写掩码的示意例子。
读掩码表存储读掩码,且写掩码表存储写掩码。读掩码表或写掩码表的结构可以与虚拟机控制块的结构一致,即读掩码表或写掩码表中的某一比特指示虚拟机控制块中的相应的字段被指定为允许拷贝还是禁止拷贝。
例如,当写掩码对应的位置的比特为0时,影子虚拟机控制块的对应位置的字段允许被拷贝到真实虚拟机控制块中,而当写掩码对应的位置的比特为1时,影子虚拟机控制块对应位置的字段被禁止拷贝到真实虚拟机控制块中。当然,1和0的指示仅是示例,也可以用1表示允许拷贝,0表示禁止拷贝。
例如,如图2B所示,箭头所示的写掩码表中的比特1指示虚拟机控制块中的相应的字段ASID被指定为禁止拷贝(或禁止写入)。
读掩码的原理也是一样。例如,当读掩码对应的位置的比特为0时,真实虚拟机控制块的对应位置的字段允许被拷贝到影子虚拟机控制块中,而当读掩码对应的位置的比特为1时,真实虚拟机控制块对应位置的字段被禁止拷贝到影子虚拟机控制块中。当然,1和0的指示仅是示例,也可以用1表示允许拷贝,0表示禁止拷贝。
例如,如图2B所示,箭头所示的读掩码表中的比特0指示虚拟机控制块中的相应的字段退出码(EXITCODE)被指定为允许拷贝(或允许读出)。
另外一种读掩码表和写掩码表可能的实施方案为,替代用1个比特来指示一个字段,而是用与字段的比特数相对应的实际比特数的读掩码或写掩码来指示该字段。例如在虚拟机控制块中的ASID字段占用8个比特,读掩码表或写掩码表中则使用相应的8个比特的1,即11111111(8bit 1)来表示允许或禁止写入。当然,比特的数量不限于上述举例的1或8,而可以是其他数量,只要其与虚拟机控制块中的字段有对应关系即可。
在一个实施例中,所述虚拟机监视器101运行在所述普通内存102中,且所述安全处理器106运行在所述安全内存103或安全处理器专用内存中。安全内存103中的内容只有安全处理器106能够访问。如此进一步保护了安全处理器的安全,不被恶意软件篡改或控制,从而保证了真实虚拟机控制块和影子虚拟机控制块之间只允许部分字段被拷贝,进一步保证了虚拟机的安全。
图3示出根据本发明的实施例的用于虚拟机系统的方法300的流程图。
用于虚拟机系统的方法300包括:步骤301,由虚拟机系统中的虚拟机监视器通过影子虚拟机控制块来与主机处理器交互,其中,所述影子虚拟机控制块被存储在所述虚拟机系统中的普通内存中,所述虚拟机监视器能对所述影子虚拟机控制块进行读写;步骤302,由所述安全处理器控制如下中的至少一种:哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块、哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。所述真实虚拟机控制块被存储在所述虚拟机系统中的安全内存中,所述虚拟机监视器不能对所述真实虚拟机控制块进行读写,所述安全内存可由所述虚拟机系统中的安全处理器访问。
如此,在安全处理器的控制下,虚拟机监视器只可以通过影子虚拟机控制块与处理器进行交互,参与并协助虚拟机的运行,同时又无法获取或修改真实虚拟机控制块中的关键信息,窃取虚拟机的机密,保证了虚拟机的安全。同时,安全处理器控制影子虚拟机控制块与真实虚拟机控制块之间的哪些字段的拷贝,使得既能够保证通过影子虚拟机控制块(而不需要通过真实虚拟机控制块)也能协助虚拟机的运行,又能保证真实虚拟机控制块中的某些字段不会被虚拟机监视器知道或被恶意软件剽窃或更改。
图4示出根据本发明的实施例的用于虚拟机系统的方法的流程图。
在一个实施例中,方法300还包括:步骤401,由所述安全处理器设置虚拟机控制块掩码,并将其存储在所述安全内存中,所述虚拟机控制块掩码包括读掩码和写掩码中的至少一个。读掩码用于指定所述真实虚拟机控制块中哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。写掩码用于指定所述影子虚拟机控制块中哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。
如此,可以通过读掩码和写掩码来单独控制哪些字段从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块和哪些字段从影子虚拟机控制块中拷贝到所述真实虚拟机控制块。另外,只有安全处理器能够设置虚拟机控制块掩码,这使得恶意软件无法轻易更改虚拟机控制块掩码,保证了安全性。
在一个实施例中,由所述安全处理器在所述安全处理器初始化时设置所述虚拟机控制块掩码。当然,这只是例子,还可以在其它需要的时间设置。但在安全处理器初始化时设置能够更早地进行安全设置,从而在安全处理器初始化完成之后开始运时就能保护真实虚拟机控制块中的关键信息。
通过对虚拟机控制块掩码进行设置,安全处理器控制和选择真实虚拟机控制块中的普通字段暴露给虚拟机监视器读取或修改,由虚拟机监视器协助虚拟机的运行;安全处理器控制真实虚拟机控制块中的关键字段,禁止虚拟机监视器访问,防止恶意虚拟机监视器窃取虚拟机的机密信息,保证虚拟机的安全运行。
在一个实施例中,方法300还包括:步骤402,由所述主机处理器完成在所述影子虚拟机控制块和所述真实虚拟机控制块之间的字段的拷贝。由所述主机处理器完成的好处是减少安全处理器的工作负荷。
在一个实施例中,步骤402包括:步骤4021,响应于所述主机处理器执行虚拟机运行指令,所述主机处理器根据设置的所述写掩码,将所述写掩码所指定的字段从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。被写掩码设置为禁止拷贝的字段则被忽略,不能被复制到真实虚拟机控制块中。
在虚拟机运行过程中,主机处理器可以对真实虚拟机控制块进行读写操作。
在一个实施例中,步骤402包括:步骤4022,响应于所述主机处理器执行虚拟机退出指令,所述主机处理器根据设置的所述读掩码,将所述读掩码所指定的字段从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。
如此,虚拟机监视器可以得知虚拟机运行并退出之后的真实虚拟机控制块中的一些字段的信息,因此未下一次虚拟机的启动和运行做准备。
在一个实施例中,未被所述写掩码或所述读掩码所指定的字段不能从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块或从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。如此,未被所述写掩码或所述读掩码所指定允许的字段不能从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块或从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。使得防止恶意虚拟机监视器窃取虚拟机的机密信息,保证虚拟机的安全运行。
在一个实施例中,所述未被所述写掩码或所述读掩码所指定的字段包括与所述真实虚拟机控制块的安全有关的字段,包括虚拟机嵌套页表nCR3、虚拟机地址空间ID(ASID)、特权指令捕获位(Intercept bit)、虚拟机状态保存区指针(Save State Pointer)等。当然,这些字段不限于此,还可以根据实际情况设置其他不被允许拷贝的字段。
在一个实施例中,读掩码或写掩码中的一个或多个比特与一个字段相对应,且用于指定所述字段为允许拷贝或禁止拷贝。
在一个实施例中,所述虚拟机监视器运行在所述普通内存中,且所述安全处理器运行在所述安全内存或安全处理器专用内存中。安全内存中的内容只有安全处理器能够访问。如此进一步保护了安全处理器的安全,不被恶意软件篡改或控制,从而保证了真实虚拟机控制块和影子虚拟机控制块之间只允许部分字段被拷贝,进一步保证了虚拟机的安全。
当然,上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。
注意,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本公开中的步骤流程图以及以上方法描述仅作为例示性的例子并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本文中的各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置以构思新的实施例,而这些新的实施例也包括在本发明的范围内。
以上所述的方法的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路、专用集成电路(ASIC)或处理器。
可以利用被设计用于进行在此所述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合而实现或进行所述的各个例示的逻辑块、模块和电路。通用处理器可以是微处理器,但是作为替换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核协作的一个或多个微处理器或任何其他这样的配置。
结合本公开描述的方法或算法的步骤可以直接嵌入在硬件中、处理器执行的软件模块中或者这两种的组合中。软件模块可以存在于任何形式的有形存储介质中。可以使用的存储介质的一些例子包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、硬碟、可移动碟、CD-ROM等。存储介质可以耦接到处理器以便该处理器可以从该存储介质读取信息以及向该存储介质写信息。在替换方式中,存储介质可以与处理器是整体的。软件模块可以是单个指令或者许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及跨过多个存储介质。
在此公开的方法包括用于实现所述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
所述的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、数字通用盘(DVD)、软碟和蓝光盘,其中碟通常磁地再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。
软件或指令也可以通过传输介质而传输。例如,可以使用诸如同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或诸如红外、无线电或微波的无线技术的传输介质从网站、服务器或者其他远程源传输软件。
此外,用于进行在此所述的方法和技术的模块和/或其他适当的手段可以在适当时由用户终端和/或基站下载和/或其他方式获得。例如,这样的设备可以耦接到服务器以促进用于进行在此所述的方法的手段的传送。或者,在此所述的各种方法可以经由存储部件(例如RAM、ROM、诸如CD或软碟等的物理存储介质)提供,以便用户终端和/或基站可以在耦接到该设备或者向该设备提供存储部件时获得各种方法。此外,可以利用用于将在此所述的方法和技术提供给设备的任何其他适当的技术。
其他例子和实现方式在本公开和所附权利要求的范围和精神内。例如,由于软件的本质,以上所述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。而且,如在此使用的,包括在权利要求中使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (18)

1.一种虚拟机系统,包括:
虚拟机监视器;
普通内存,用于存储影子虚拟机控制块,其中,所述虚拟机监视器通过所述影子虚拟机控制块来与主机处理器交互、且能对所述影子虚拟机控制块进行读写;
安全内存,用于存储真实虚拟机控制块,其中,所述虚拟机监视器不能对所述真实虚拟机控制块进行读写;
安全处理器,被配置为可访问所述安全内存,并控制如下中的至少一种:哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块、哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块,其中,所述字段包括控制信息;
其中,
所述安全内存中还存储能由所述安全处理器设置的虚拟机控制块掩码,包括读掩码和写掩码中的至少一个,
其中所述读掩码用于指定所述真实虚拟机控制块中哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块,且
所述写掩码用于指定所述影子虚拟机控制块中哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。
2.根据权利要求1所述的系统,其中,所述虚拟机控制块掩码由所述安全处理器在所述安全处理器初始化时设置。
3.根据权利要求1所述的系统,其中,在所述影子虚拟机控制块和所述真实虚拟机控制块之间的字段的拷贝由所述主机处理器完成。
4.根据权利要求3所述的系统,其中,响应于所述主机处理器执行虚拟机运行指令,所述主机处理器根据设置的所述写掩码,将所述写掩码所指定的字段从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。
5.根据权利要求3所述的系统,其中,响应于所述主机处理器执行虚拟机退出指令,所述主机处理器根据设置的所述读掩码,将所述读掩码所指定的字段从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。
6.根据权利要求1所述的系统,其中,未被所述写掩码或所述读掩码所指定的字段不能从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块或从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。
7.根据权利要求6所述的系统,其中所述未被所述写掩码或所述读掩码所指定的字段包括与所述真实虚拟机控制块的安全有关的字段,所述控制信息包括虚拟机嵌套页表nCR3、虚拟机地址空间ID ASID中的至少一种,所述字段还包括执行状态,包括特权指令捕获位、虚拟机状态保存区指针中的至少一种。
8.根据权利要求1所述的系统,其中,读掩码或写掩码中的一个或多个比特与一个字段相对应,且用于指定所述字段为允许拷贝或禁止拷贝。
9.根据权利要求1所述的系统,其中,所述虚拟机监视器运行在所述普通内存中,且所述安全处理器运行在所述安全内存或安全处理器专用内存中。
10.一种用于虚拟机系统的方法,包括:
由虚拟机系统中的虚拟机监视器通过影子虚拟机控制块来与主机处理器交互,其中,所述影子虚拟机控制块被存储在所述虚拟机系统中的普通内存中,所述虚拟机监视器能对所述影子虚拟机控制块进行读写;
由安全处理器控制如下中的至少一种:哪些字段能够从真实虚拟机控制块中拷贝到所述影子虚拟机控制块、哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块,其中,所述字段包括控制信息;其中,所述真实虚拟机控制块被存储在所述虚拟机系统中的安全内存中,所述虚拟机监视器不能对所述真实虚拟机控制块进行读写,所述安全内存可由所述虚拟机系统中的安全处理器访问;
由所述安全处理器设置虚拟机控制块掩码,并将其存储在所述安全内存中,所述虚拟机控制块掩码包括读掩码和写掩码中的至少一个,
其中所述读掩码用于指定所述真实虚拟机控制块中哪些字段能够从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块,且
所述写掩码用于指定所述影子虚拟机控制块中哪些字段能够从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。
11.根据权利要求10所述的方法,其中由所述安全处理器在所述安全处理器初始化时设置所述虚拟机控制块掩码。
12.根据权利要求10所述的方法,还包括:
由所述主机处理器完成在所述影子虚拟机控制块和所述真实虚拟机控制块之间的字段的拷贝。
13.根据权利要求12所述的方法,其中,由所述主机处理器完成在所述影子虚拟机控制块和所述真实虚拟机控制块之间的字段的拷贝包括:
响应于所述主机处理器执行虚拟机运行指令,所述主机处理器根据设置的所述写掩码,将所述写掩码所指定的字段从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块。
14.根据权利要求13所述的方法,其中,由所述主机处理器完成在所述影子虚拟机控制块和所述真实虚拟机控制块之间的字段的拷贝包括:
响应于所述主机处理器执行虚拟机退出指令,所述主机处理器根据设置的所述读掩码,将所述读掩码所指定的字段从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。
15.根据权利要求10所述的方法,其中,未被所述写掩码或所述读掩码所指定的字段不能从所述影子虚拟机控制块中拷贝到所述真实虚拟机控制块或从所述真实虚拟机控制块中拷贝到所述影子虚拟机控制块。
16.根据权利要求15所述的方法,其中所述未被所述写掩码或所述读掩码所指定的字段包括与所述真实虚拟机控制块的安全有关的字段,所述控制信息包括虚拟机嵌套页表nCR3、虚拟机地址空间ID ASID中的至少一种,所述字段还包括执行状态,包括特权指令捕获位、虚拟机状态保存区指针中的至少一种。
17.根据权利要求10所述的方法,其中,读掩码或写掩码中的一个或多个比特与一个字段相对应,且用于指定所述字段为允许拷贝或禁止拷贝。
18.根据权利要求10所述的方法,其中,所述虚拟机监视器运行在所述普通内存中,且所述安全处理器运行在所述安全内存或安全处理器专用内存中。
CN202010856209.3A 2020-08-24 2020-08-24 虚拟机系统和用于虚拟机系统的方法 Active CN111949376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010856209.3A CN111949376B (zh) 2020-08-24 2020-08-24 虚拟机系统和用于虚拟机系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010856209.3A CN111949376B (zh) 2020-08-24 2020-08-24 虚拟机系统和用于虚拟机系统的方法

Publications (2)

Publication Number Publication Date
CN111949376A CN111949376A (zh) 2020-11-17
CN111949376B true CN111949376B (zh) 2021-12-17

Family

ID=73360038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010856209.3A Active CN111949376B (zh) 2020-08-24 2020-08-24 虚拟机系统和用于虚拟机系统的方法

Country Status (1)

Country Link
CN (1) CN111949376B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509250A (zh) * 2017-02-28 2018-09-07 英特尔公司 具有受保护的访客机验证主机控制的安全公共云
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN109828827A (zh) * 2018-11-22 2019-05-31 海光信息技术有限公司 一种检测方法、装置及相关设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725895B2 (en) * 2004-03-31 2010-05-25 Intel Corporation Processor control register virtualization to minimize virtual machine exits
CN101840391B (zh) * 2010-05-17 2011-10-26 深圳视融达科技有限公司 一种电子支付系统双处理器子系统间通信及其调用方法
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
CN105930199A (zh) * 2016-04-14 2016-09-07 浪潮集团有限公司 一种虚拟机监控器本地完整性检测的系统及实现方法
US10698713B2 (en) * 2016-11-29 2020-06-30 Red Hat Israel, Ltd. Virtual processor state switching virtual machine functions
CN106970823B (zh) * 2017-02-24 2021-02-12 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
CN107368739B (zh) * 2017-07-26 2020-02-07 北京理工大学 一种内核驱动的监视方法和装置
US11520611B2 (en) * 2018-08-20 2022-12-06 Intel Corporation Secure public cloud using extended paging and memory integrity
US10545783B2 (en) * 2018-08-22 2020-01-28 Intel Corporation Technologies for securing data structures for controlling virtual machines
CN109684030B (zh) * 2018-11-22 2021-05-04 海光信息技术股份有限公司 虚拟机内存密钥生成装置、以及方法、加密方法和SoC系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509250A (zh) * 2017-02-28 2018-09-07 英特尔公司 具有受保护的访客机验证主机控制的安全公共云
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN109828827A (zh) * 2018-11-22 2019-05-31 海光信息技术有限公司 一种检测方法、装置及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Transparent Security-Sensitive Process Protection via VMM-Based Process Shadowing;Xiaoguang Wang 等;《2013 IEEE 37th Annual Computer Software and Applications Conference Workshops》;20130923;115-120 *
基于AMD硬件内存加密机制的关键数据保护方案;吴宇明 等;《信息安全报》;20180115;第3卷(第1期);31-47 *

Also Published As

Publication number Publication date
CN111949376A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
TWI509453B (zh) 非法模式改變處置
EP3706361B1 (en) Loading and virtualizing cryptographic keys
RU2513909C1 (ru) Ограничение областей памяти для считывания команд в зависимости от аппаратного режима и флага безопасности
US8239959B2 (en) Method and data processing system to prevent manipulation of computer systems
EP3022648B1 (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into vm virtualized memory
TW201137660A (en) Method and system for protecting an operating system against unauthorized modification
JP2006236193A (ja) 起動プログラム実行方法、デバイス、記憶媒体及びプログラム
EP3961446A1 (en) Method and apparatus for securely entering trusted execution environment in hyper-threading scenario
US20150379265A1 (en) Systems And Methods For Preventing Code Injection In Virtualized Environments
WO2009144602A1 (en) Protection and security provisioning using on-the-fly virtualization
CN111949376B (zh) 虚拟机系统和用于虚拟机系统的方法
KR102613643B1 (ko) 예외 처리
KR102427949B1 (ko) 데이터 처리 장치에서의 시스템 에러 핸들링
JP6672341B2 (ja) 仮想マシンの状態情報の保護
WO2013082749A1 (zh) 一种硬件资源保护方法和系统以及虚拟机管理器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Tianjin

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Tianjin

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant