CN108958879B - 一种虚拟机的监控方法和装置 - Google Patents
一种虚拟机的监控方法和装置 Download PDFInfo
- Publication number
- CN108958879B CN108958879B CN201710378105.4A CN201710378105A CN108958879B CN 108958879 B CN108958879 B CN 108958879B CN 201710378105 A CN201710378105 A CN 201710378105A CN 108958879 B CN108958879 B CN 108958879B
- Authority
- CN
- China
- Prior art keywords
- ept
- physical page
- vcpu
- instruction
- monitoring
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in 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)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种虚拟机的监控方法和装置,涉及IT领域,能够解决具有多个VCPU的虚拟机的监控发生遗漏的问题。其方法为:当网络设备确定第一VCPU中发生中断的客户虚拟机虚拟地址GVA为监控点时,网络设备将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT;网络设备根据监控点和第二EPT读取监控指令,并执行监控指令;当网络设备执行完监控指令时,网络设备将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,以便第一VCPU根据第一EPT执行中断指令。本申请实施例应用于虚拟机的外部监控。
Description
技术领域
本申请涉及信息技术(Information Technology,IT)领域,尤其涉及一种虚拟机(Virtual Machine,VM)的监控方法和装置。
背景技术
随着近年来多核系统、集群以及云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,虚拟化架构安全监控的研究也有了新的进展。如图1所示,在计算机体系的传统架构中,操作系统具有最高权限,负责管理整个硬件平台的资源,即中央处理器(Central Processing Unit,CPU)、内存和外设等。而在虚拟化架构中,虚拟机监控器(Virtual Machine Monitor,VMM)位于操作系统和硬件平台之间,具有最高的特权级,能够管理硬件平台。因此VMM可以通过截获虚拟机(Virtual Machine,VM)的内部事件,获知虚拟机的内部状态,使得从虚拟机外部监控虚拟机成为可能。
下面介绍一种从外部监控虚拟机的方法,如图2所示,假设指令流中的incl%eax对应的地址为监控点,第一步,VMM在监控点处写入中断指令(int3),虚拟处理器(VirtualCPU,VCPU)在执行到int3指令时会陷入到VMM,VMM收集虚拟机的相关信息。第二步,VMM回写监控点的原指令incl%eax,并设置VCPU进入单步调试模式,VCPU单步执行监控点原指令incl%eax后再次陷入到VMM。第三步,VMM再次将中断指令写入到监控点,以便下一次继续在该监控点对原程序进行监控。
但是,现有的监控方案难以应对虚拟机中存在多VCPU的场景。例如,当虚拟机有两个VCPU同时执行指令流时,第一个VCPU刚回写完原指令,第二个VCPU恰好执行到监控点,此时,监控点对应回写的原指令,也就是此时监控点处并未写入中断指令,这时第二个VCPU就避开了监控点,导致监控出现遗漏。
发明内容
本申请实施例提供一种虚拟机的监控方法,能够解决多个VCPU的虚拟机的监控发生遗漏的问题。
一方面,本申请实施例提供一种虚拟机的监控方法,包括:当网络设备确定第一虚拟处理器VCPU中发生中断的客户虚拟机虚拟地址(Guest Virtual Address,GVA)为监控点时,网络设备将第一VCPU的扩展页表(Extended Page Tables,EPT)指针从指向第一EPT调整为指向第二EPT;其中,监控点用于指示待监控的GVA,第一EPT包括监控点对应的客户虚拟机物理地址(Guest Physical Address,GPA)与中断指令对应的主机物理地址(HostPhysical Address,HPA)之间的映射关系,第二EPT包括监控点对应的GPA与监控指令对应的HPA之间的映射关系;网络设备根据监控点和第二EPT读取监控指令,并执行监控指令;当网络设备执行完监控指令时,网络设备将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,以便第一VCPU根据第一EPT执行中断指令。相比现有技术,当VCPU需要执行原指令时,VMM将中断指令改写为原指令,这可能导致其他VCPU发生监控遗漏。本申请实施例中,无需改写原指令,而是在VCPU需要执行监控指令时将该VCPU的EPT指针指向第二EPT,使得该VCPU可以根据第二EPT执行监控指令,而其他VCPU可以继续根据第一EPT执行中断指令,从而解决了多VCPU的虚拟机的监控发生遗漏的问题。
在一种可能的设计中,网络设备将第一VCPU的EPT指针从第一EPT指向第二EPT之前,方法还包括:网络设备确定监控点和第一物理页,第一物理页的内容为空;网络设备将第二物理页的指令拷贝至第一物理页;其中,第二物理页的指令包括监控指令;网络设备将第一物理页中的监控指令替换为中断指令;网络设备建立第二物理页对应的GPA与第一物理页的映射关系;网络设备根据第二物理页对应的GPA与第一物理页的映射关系建立第一EPT。另外,网络设备还可以默认创建一个第二EPT,第一EPT和第二EPT的主要区别在于:监控点在第一EPT对应第一物理页,监控点在该第一物理页对应的HPA所指示的存储单元中存储有中断指令,而监控点在第二EPT对应第二物理页,监控点在该第二物理页对应的HPA所指示的存储单元中存储有监控指令。这样一来,当对第一VCPU进行外部监控时,可以将第一VCPU的EPT指针指向第一EPT,以便第一VCPU可以根据第一EPT执行中断指令,当需要第一VCPU执行监控指令时,可以将第一VCPU的EPT指针指向第二EPT。
在一种可能的设计中,该方法还包括:网络设备设置第一物理页不可读和/或不可写;当网络设备确定第一VCPU发生读操作或写操作的GVA对应第一物理页,则网络设备将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT;网络设备根据第二EPT对第二物理页进行读操作或写操作;当网络设备对第二物理页完成读操作或写操作时,网络设备将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,以便网络设备根据第一EPT执行中断指令。这样一来,在对写有中断指令的第一物理页进行读操作或写操作时,不会读到第一物理页中的内容或将新的内容写入到第一物理页中,而会读到第二物理页中的内容或将新的内容写到第二物理页中,保证了监控方法对用户是透明的,而且用户也无法改写中断指令,避免了因中断指令被改写造成的监控失效的问题。
在一种可能的设计中,该方法还包括:网络设备判断发生写操作的GVA是否包括监控点;当写操作的GVA包括监控点时,则网络设备读取第二物理页中除监控点对应的HPA以外发生写操作的HPA的指令,并将除监控点对应的HPA以外发生写操作的HPA的指令写入到第一物理页中;当写操作的GVA不包括监控点时,则网络设备读取第二物理页中所有发生写操作的HPA的指令,并将所有发生写操作的HPA的指令写入到第一物理页中。简要来说,当VCPU的EPT指针指向第一EPT时,若需要对第一物理页进行写操作,则VMM可以将VCPU的指针指向第二EPT,以便VCPU将需要写入的指令先写入第二物理页。而后,VMM可以判断第二物理页中进行写操作的指令是否包括监控指令,若包括,则VMM读取第二物理页中除监控指令以外发生写操作的指令,并将除监控指令以外发生写操作的指令写入到第一物理页中;若不包括,则VMM将所有发生写操作的指令写入第一物理页中。如此一来,保证了第二物理页中的中断指令不被改写,且没有改变虚拟机执行的指令流,避免了虚拟机崩溃的风险。
在一种可能的设计中,若网络设备确定第一VCPU发生中断时的EPT指针指向第二EPT,则将中断注入第一虚拟机。在一种可能的情况下,在VMM将VCPU的指针从指向第一EPT调整为指向第二EPT,VCPU执行监控指令时,由于监控指令本身可能是一个系统插入的中断指令,而碰到此类中断指令时,VMM无需收集监控信息。从而当VMM确定VCPU发生中断时的EPT指针指向第二EPT,也就可以确定该中断为系统插入的中断指令,此时VMM可以直接将该中断注入虚拟机即可。
另一方面,本申请实施例提供一种网络设备,包括:调整单元,用于:当确定第一VCPU中发生中断的GVA为监控点时,将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT;其中,监控点用于指示待监控的GVA,第一EPT包括监控点对应的GPA与中断指令对应的HPA之间的映射关系,第二EPT包括监控点对应的GPA与监控指令对应的HPA之间的映射关系;处理单元,用于根据监控点和第二EPT读取监控指令,并执行监控指令;调整单元还用于:当执行完监控指令时,将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,以便第一VCPU根据第一EPT执行中断指令。
在一种可能的设计中,处理单元还用于:确定监控点和第一物理页,第一物理页的内容为空;将第二物理页的指令拷贝至第一物理页;其中,第二物理页的指令包括监控指令;将第一物理页中的监控指令替换为中断指令;建立第二物理页对应的GPA与第一物理页的映射关系;根据第二物理页对应的GPA与第一物理页的映射关系建立第一EPT。
在一种可能的设计中,处理单元还用于:设置第一物理页不可读和/或不可写;当确定第一VCPU发生读操作或写操作的GVA对应第一物理页,则通过调整单元将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT;根据第二EPT对第二物理页进行读操作或写操作;调整单元用于:将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,以便处理单元根据第一EPT执行中断指令。
在一种可能的设计中,处理单元还用于:判断发生写操作的GVA是否包括监控点;当写操作的GVA包括监控点时,则读取第二物理页中除监控点对应的HPA以外发生写操作的HPA的指令,并将除监控点对应的HPA以外发生写操作的HPA的指令写入到第一物理页中;当写操作的GVA不包括监控点时,则读取第二物理页中所有发生写操作的HPA的指令,并将所有发生写操作的HPA的指令写入到第一物理页中。
在一种可能的设计中,处理单元还用于:若确定第一VCPU发生中断时的EPT指针指向第二EPT,则将中断注入第一虚拟机。
再一方面,本申请实施例提供了一种计算机存储介质,用于储存为上述网络设备所用的计算机软件指令,其包括用于执行上述方面所设计的程序。
简要来说,当全部VCPU的EPT指针指向第一EPT时,第一VCPU可以根据第一EPT执行监控点对应的中断指令,第一VCPU执行到中断指令后会陷入VMM中,VMM可以收集第一VCPU的监控信息,并将第一VCPU的EPT指针指向第二EPT,以便第一VCPU便可以根据第二EPT执行监控点对应的监控指令。而后VMM将第一VCPU的指针从指向第二EPT调整为指向第一EPT,以便第一VCPU可以继续根据第一EPT执行监控点对应的中断指令。相比现有技术,当VCPU需要执行原指令时,VMM将中断指令改写为原指令,这可能导致其他VCPU发生监控遗漏。本申请实施例中,无需改写原指令,而是在VCPU需要执行监控指令时将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT,使得第一VCPU可以执行监控指令,而其他VCPU可以继续根据第一EPT执行中断指令,从而解决了多VCPU的虚拟机的监控发生遗漏的问题。
附图说明
图1为本申请实施例提供的一种传统架构与虚拟化架构的对比示意图;
图2为本申请实施例提供的一种虚拟机外部监控方案的步骤示意图;
图3为本申请实施例提供的一种虚拟机的外部监控方法示意图;
图4为本申请实施例提供的一种地址转换方法的示意图;
图5a为本申请实施例提供的一种网络设备内的部署示意图;
图5b为本申请实施例提供的一种网络设备内的部署示意图;
图6为本申请实施例提供的一种网络设备的内部结构示意图;
图7为本申请实施例提供的一种虚拟机的监控方法的流程示意图;
图8为本申请实施例提供的一种第二EPT的结构示意图;
图9为本申请实施例提供的一种第二EPT的结构示意图;
图10为本申请实施例提供的一种第一EPT和第二EPT的结构示意图;
图11为本申请实施例提供的一种虚拟机的监控方法的流程示意图;
图12为本申请实施例提供的一种虚拟机的监控方法的流程示意图;
图13为本申请实施例提供的一种网络设备的结构示意图;
图14为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
VM:即虚拟机,是一种特殊的软件。虚拟机可以在计算机平台和终端用户之间创建一种环境,以便于终端用户基于虚拟机所创建的环境来操作其他软件。从应用程序的角度看,程序运行在虚拟机上与运行在其对应的实体计算机上一样。
VCPU:相对于物理CPU而言,VCPU是虚拟机的CPU。
EPT:是物理CPU提供的一种加速虚拟机地址转换的硬件机制。在Intel CPU上,这种机制被称为EPT,在AMD CPU上,这种机制被称为嵌套页表(Nested Page Tables,NPT)。本申请实施例统一使用EPT这个术语。
监控点:用户确定出待监控的函数后,进而将待监控的函数的GVA确定为监控点。通常待监控的函数的GVA即为待监控的函数的第一条指令的GVA。
GPA:虚拟机物理地址。
GVA:虚拟机虚拟地址。
HPA:主机物理地址。
主机物理页:存放指令流和数据的内存地址,主机物理页中的存储单元由HPA指示,HPA除以4096得到的值为主机物理页的页号。本申请实施例中简称主机物理页为物理页。
VMM:即虚拟机监控器,也是一种特殊的软件。VMM可以对VM进行管理和外部监控。另外,VMM也称为hypervisor(管理程序)。
本申请实施例可应用于虚拟机外部监控的场景,例如应用于VMM对具有多个VCPU的VM进行外部监控的场景,也可以应用于VMM对具有多个VCPU的多个VM进行外部监控的场景。可以理解的是,当VM在运行时,可以认为VM的VCPU在执行内存中存储的二进制指令流。举例来说,如图3所示,假设目标(Target)是内存中存储的一段二进制指令流,当VM在运行的时候,可以认为VCPU在执行Target。VMM在对VM的运行情况进行监控时,可以在监控点中断VCPU正常的执行流程,并使VCPU跳转到VMM去执行。而后,VMM可以获取VCPU当前的运行状态,比如说进程信息,寄存器信息,然后再将VCPU的执行流程返回到正常的执行流程之中。
其中,VCPU在执行Target时,需要从内存中获取Target的指令,VCPU在访问内存时,如图4(a)所示,需要经过至少两步转换,即将GVA转换为GPA以及将GPA转换为HPA。具体地,VCPU可以根据页表将GVA转换为GPA,然后再根据EPT将GPA转换为HPA。可以理解的是,如图4(b)所示,若有多个不同的EPT,则VCPU可以根据EPT将GPA转换为不同的HPA,即同一个GPA可以被转换为不同的HPA。此时,通过动态修改VCPU中的EPT指针寄存器的内容,VCPU可以使用多个EPT进行GPA到HPA的寻址,即不同VCPU访问同一GVA或GPA地址时,对应的HPA和访问权限可以是不同的。本申请实施例以VCPU通过两个EPT寻址为例进行说明。
本申请实施例中的网络设备的系统架构如图5a所示,即网络设备上可以部署有VMM和VM。其中,VMM动态的在VM中部署监控点,并根据监控点监控VM。本申请实施例中的网络设备可以包括终端设备或服务器,终端设备可以包括个人计算机(Personal Computer,PC)和平板电脑(pad)等。
在一种可能的设计中,如图5b所示,网络设备上可以部署有VMM、VM和安全域,安全域可以部署安全工具,安全工具可以用于通过VMM的相关接口监控VM。其中,安全域可以是另一台虚拟机,但安全域不会被病毒入侵和破坏。
图6为本申请的网络设备的一种内部结构示意图,在本申请中,网络设备可以包括处理模块601和输入/输出模块602。其中,处理模块601上可以运行有VMM6011和VM6012,VM6012上可以运行多个VCPU,包括VCPU0和VCPU1。VMM6011可以用于确定第一VCPU中发生中断的GVA是否为监控点,若确定是,则网络设备收集第一VCPU的监控信息;还可以用于设置第一VCPU的EPT指针指向第二EPT。VCPU0或VCPU1可以用于执行监控指令。输入/输出模块602可以用于接收指令,以便根据指令执行相关操作。例如,输入/输出模块602可以用于接收用户的指令,以确定监控点。
本申请实施例提供一种虚拟机的监控方法,如图7所示,包括:
701、网络设备确定监控点。
当网络设备的输入/输出模块接收到用户输入的确定待监控函数的指令时,网络设备可以确定出待监控的函数,而后网络设备的VMM可以根据内核符号表得到待监控的函数的GVA,并将该GVA确定为监控点。进一步地,网络设备可以根据页表获取监控点对应的GPA。其中,内核符号表用于根据待监控函数确定待监控函数的GVA,页表用于根据待监控函数的GVA确定待监控函数的GPA。
举例来说,以VM的操作系统内核为64位linux,内核版本为4.2.0-27为例,假设待监控的函数是sys-open,其指令如下:
nop
push%rbp
mov%rsp,%rbp
VMM可以根据内核符号表得到sys_open的GVA为0xffffffff811ea640。本申请实施例中,sys_open的GVA即sys_open的第一条指令nop对应的GVA,因此监控点对应的监控指令即sys_open的第一条指令nop。
进一步地,VMM可以根据页表得出nop对应的GPA为0x11ea640。
702、网络设备创建第一EPT,第一EPT包括监控点对应的GPA与中断指令对应的HPA之间的映射关系。
即网络设备通过VMM创建第一EPT。需要说明的是,在VMM创建第一EPT前,VMM可以默认创建一个第二EPT,第二EPT用于指示GPA与HPA的映射关系,其中,GPA与HPA的映射关系包括指令流对应的全部GPA与全部HPA的映射关系。
举例来说,如图8所示,为一个第二EPT的结构示意图。第二EPT可以包括4级页表、3级页表、2级页表和1级页表。其中,4级页表有一页;3级页表可以有512页(图中仅以两页示意);2级页表可以有512*512=262,144页;1级页表可以有262144*512=134,217,728页。每一页可以包括512个条目(图8中仅以6个条目示意),每个条目为8个字节,也就是说,每一页有512*8=4096个字节,即每一页为4k。其中,4级页表的每个条目对应3级页表的每一页,类似地,3级页表的每个条目对应2级页表的每一页,2级页表的每个条目对应1级页表的每一页,1级页表的每个条目对应物理页的每一页。
下面介绍第二EPT怎样指示GPA与HPA的映射关系,以及VCPU如何根据第二EPT确定监控点对应的GPA所对应的HPA。本申请实施例中,监控点对应的GPA所对应的HPA即监控点对应的HPA。通俗来说,VCPU根据各级页表一级一级确定监控点对应的GPA所对应的HPA。对于每一级页表,既要确定该级页表的页数,也要确定该页的条目,该级页表的页数可以根据上一级页表的条目确定,该页的条目可以根据二进制下的GPA转换成的10进制数值确定。举例来说,如图9所示,若监控点对应的GPA在16进制下为0x11ea640,则在二进制下为000000000,000000000,000001000,111101010,011001000000,可以分为第一个9位比特,第二个9位比特,第三个9位比特,第四个9位比特以及第五个12位比特,共48位。首先,VCPU根据EPT指针定位到第二EPT的4级页表,而后将二进制下的GPA的第一个9位比特转换为10进制的数值,即将000000000转换为0,0对应4级页表的第1个条目,可知该4级页表的第1个条目对应3级页表的第一页,根据第二个9位比特转换的数值0可以定位到3级页表的第一页的第1个条目,可知该3级页表的第一页的第1个条目对应2级页表的第一页,根据第三个9位比特转换为的数值8可以定位到2级页表的第一页的第8个条目,可知该2级页表的第一页的第8个条目对应1级页表的第八页,根据第四个9位比特转换的数值492可以定位到1级页表的第八页的第492个条目,可知该1级页表的第八页的第492个条目对应页号为0x17a4的物理页,该物理页即监控点在第二EPT对应的第二物理页。其中,监控点对应的第二物理页中存储有部分的指令流,该部分指令流包括监控指令。而后虚拟机根据第五个12位比特转换的16进制的数值640确定该第二物理页的页内偏移为0x640的地址即为监控点对应HPA,监控点对应的HPA所指示的存储单元中写有监控指令。
下面介绍VMM如何创建第一EPT。简要来说,首先,VMM申请第一物理页,而后将监控点在第二EPT对应的第二物理页的内容拷贝至第一物理页,并在第一物理页中写入中断指令。
根据上述举例,监控点对应的第二物理页的页号为0x17a4,监控点对应的HPA在第二物理页的页内偏移为0x640,可以理解的是,监控点对应的HPA所指示的存储单元中存储有监控指令。假设VMM申请的第一物理页的页号为0x17a5,则VMM将页号为0x17a4的第二物理页中存储的部分指令流拷贝到页号为0x17a5的第一物理页中,并在该第一物理页的页内偏移为0x640处写入中断指令,也就是将原有的监控指令替换为中断指令。其中,中断指令可以是int3,即0xCC。
然后,VMM可以根据第二EPT建立初始的第一EPT,此时初始的第一EPT与第二EPT拥有相同的表结构。而后,VMM在初始的第一EPT建立监控点与第一物理页的映射关系,以建立本申请实施例中的第一EPT。
如图10所示,a、b、c和d分别为第二EPT的4级页表、3级页表、2级页表和1级页表。假设在第二EPT中,VCPU可以根据a、b、c和d确定出监控点对应的第二物理页,则VMM可以在初始的第一EPT中将a、b、c和d替换为a1、b1、c1和d1,使虚拟机可以根据a1、b1、c1和d1确定出监控点对应的第一物理页,替换后的第一EPT即本申请实施例中的第一EPT。可以理解的是,第一EPT除a1、b1、c1和d1外,其他页表的结构及内容可以与第二EPT一致。由此可见,第一EPT和第二EPT的主要区别在于:监控点根据第一EPT对应第一物理页,监控点在该第一物理页对应的HPA所指示的存储单元中存储有中断指令,而监控点根据第二EPT对应第二物理页,监控点在该第二物理页对应的HPA所指示的存储单元中存储有监控指令。总的来说,第一物理页和第二物理页的页号是不同的,存储的信息也不完全相同。
703、网络设备设置VM中的全部VCPU的EPT指针指向第一EPT。
即网络设备通过VMM设置全部VCPU的EPT指针指向第一EPT。可以理解的是,当VCPU的EPT指针指向第一EPT时,VCPU根据第一EPT将GPA转换为相应的HPA,并执行相应的HPA所指示的存储单元中存储的指令。
704、网络设备确定第一VCPU中发生中断的GVA是否为监控点。
当第一VCPU发生中断时,VMM保护中断现场,所保护的中断现场中包括的发生中断的GVA,VMM确定该发生中断的GVA是否为监控点。若是,则执行步骤705;若否,则可以确定该中断是指令流中的中断指令,而非监控点对应的中断指令,第一VCPU将该中断注入虚拟机即可。
705、网络设备收集第一VCPU的监控信息,将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT。
网络设备可以通过VMM直接收集第一VCPU的监控信息,监控信息可以包括进程标识(Identity,ID),函数ID以及函数参数等。
在一种可能的设计中,网络设备可以通过监控程序收集第一VCPU的监控信息,监控程序可以通过VMM的接口收集第一VCPU的监控信息。
网络设备收集监控信息后,可以通过VMM将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT,第一VCPU根据第二EPT将监控点对应的GPA转换为HPA,该HPA所指示的存储单元中存储有监控指令,VMM执行该监控指令。VMM还可以将第一VCPU设置为单步调试模式,以便第一VCPU执行完监控指令后,因单步调试模式重新陷入VMM,而后网络设备执行步骤706。
在一种可能的设计中,若在设置第一VCPU进入单步调试模式时再次发生中断,也就是若VMM确定第一VCPU发生中断时的EPT指针指向第二EPT,则VMM直接将中断注入虚拟机。这是因为此时发生中断是由于监控指令本身是个中断指令,在这种情况下,VMM无需收集第一VCPU的监控信息,而可以直接将该中断注入到虚拟机中。
706、网络设备将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT。
当第一VCPU因单步调试模式陷入VMM后,VMM将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,并取消第一VCPU的单步调试模式。若网络设备不将第一VCPU的EPT指针调整为指向第一EPT,即第一VCPU的EPT指针仍指向第二EPT,那么当第一VCPU再次执行指令流时,就不会执行到中断指令,VMM也就无法继续对第一VCPU进行监控了。因此可以将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT,这样一来,第一VCPU可以继续执行指令流中监控指令后的指令流,并且可以保证当第一VCPU再次执行指令流时,VMM可以继续对第一VCPU进行监控。
这样一来,当全部VCPU的EPT指针指向第一EPT时,第一VCPU可以根据第一EPT执行中断指令,VMM可以在第一VCPU执行到中断指令时收集第一VCPU的监控信息,并将第一VCPU的EPT指针指向第二EPT,以便第一VCPU便可以根据第二EPT执行监控点对应的监控指令。而后VMM重新将第一VCPU的指针指向第一EPT,以便第一VCPU可以继续根据第一EPT执行监控点对应的中断指令。相比现有技术,当VCPU需要执行原指令时,VMM将中断指令改写为原指令,这可能导致其他VCPU发生监控遗漏。本申请实施例中,无需改写原指令,而是在VCPU需要执行监控指令时将该VCPU的EPT指针指向第二EPT,使得该VCPU可以执行监控指令,而其他VCPU可以继续根据第一EPT执行中断指令,从而解决了多VCPU的虚拟机的监控发生遗漏的问题。
下面提供一种虚拟机监控方法,如图11所示,能够解决监控方法对用户不透明的问题。
1101、网络设备设置第一物理页不可读。
以图7所示方法的软件环境为例,sys_open的第一条指令nop对应的第一物理页的页号为0x17a5。假设监控点对应的GPA在第一EPT中对应第一物理页,且在第一物理页对应的HPA为0x17a5640,以0x17a5640为起始地址的16个字节的内容如下所示:
0x17a5640:cc 66 66 66 90 55 0f b7
0x17a5648:ca 89 f2 80 ce 80 48 89
其中,cc即中断指令。
当第一VCPU需要读取第一物理页0x17a5的内容时,第一VCPU会读到第一物理页中的中断指令,因此VMM可以在第一EPT中设置第一物理页0x17a5不可读,即将第一EPT中指向第一物理页的页表条目中读/写权限部分设置为不可读。这样当读取该第一物理页的内容时,会触发内存权限异常,执行读指令的第一VCPU会陷入到VMM。
1102、若网络设备确定第一VCPU发生读操作的GVA对应第一物理页,则网络设备将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT,并设置第一VCPU为单步调试模式。
第一VCPU的EPT指针指向第二EPT后,第一VCPU在执行读指令时会读到异常中断点在第二EPT对应的第二物理页的内容,从而不会读到监控点对应的第一物理页中写入的中断指令,保证了对用户的透明。其中,异常中断点即发生读操作的GPA,本申请实施例中默认异常中断点在第一EPT中对应第一物理页,在第二EPT中对应第二物理页。
1103、网络设备读取异常中断点在第二EPT对应的第二物理页的内容。
根据步骤1101中的举例,假设异常中断点为监控点对应的GPA,则异常中断点在第二EPT对应的第二物理页的内容为监控指令。根据上述举例,监控点在第二EPT对应的第二物理页的页号为0x17a4,页内偏移0x640,以0x17a4640为起始地址的16个字节的内容如下所示:
0x17a4640:66 66 66 66 90 55 0f b7
0x17a4648:ca 89 f2 80 ce 80 48 89
可以理解的是,监控点在第二EPT对应的0x17a4640中为监控指令,而非中断指令,即第一VCPU读取到的指令为“66”,从而保证了监控方法对用户的透明。
1104、网络设备将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT。
这是由于若网络设备不将第一VCPU的EPT指针调整为指向第一EPT,即第一VCPU的EPT指针仍指向第二EPT,那么第一VCPU就无法继续执行中断指令,VMM也就无法对第一VCPU进行监控了。
这样一来,当对写有中断指令的第一物理页进行读操作时,不会读到第一物理页中的内容,而会读到第二物理页中的内容,从而不会读到中断指令,保证了监控方法对用户是透明的。
下面提供一种虚拟机监控方法,如图12所示,能够解决中断指令被修改造成的监控失效的问题。
1201、网络设备设置第一物理页不可写。
即将第一EPT中指向第一物理页的页表条目中读/写权限部分设置为不可写。具体实现方式可以参考步骤1101。
1202、若网络设备确定第一VCPU发生写操作的GVA对应第一物理页,则网络设备将第一VCPU的EPT指针从指向第一EPT调整为指向第二EPT,并设置第一VCPU为单步调试模式。
第一VCPU的EPT指针指向第二EPT后,第一VCPU返回后继续执行写指令时,会将需要写入的指令写入异常中断点在第二EPT对应的第二物理页中,从而不会写入监控点在第一EPT对应的第一物理页中,保证了中断指令不会被改写。
1203、网络设备修改异常中断点在第二EPT对应的第二物理页中的指令。
即网络设备通过VMM在异常中断点对应的第二物理页中写入需要修改的指令。
1204、网络设备确定写操作的GVA是否包括监控点。
若确定是,则网络设备执行步骤1205;若确定否,则网络设备执行步骤1206。
1205、网络设备读取第二物理页中除监控点对应的HPA以外发生写操作的HPA的指令,并将除监控点对应的HPA以外发生写操作的HPA的指令写入到第一物理页中。
举例来说,假设监控点在第二物理页对应的HPA为0x17a4640,监控点在第一物理页对应的HPA为0x17a5640,若网络设备在步骤1203中通过VMM发生写操作的字节为以0x17a4640为起始地址的前5个字节,发生写操作后的HPA的指令如下所示:
0x17a4640:e8 bb 59 e3 3e
则VMM读取以0x17a4641为起始地址的前4个字节,并将该4个字节的指令复制到以0x17a5641为起始地址的前4个字节中,修改后的字节的指令如下所示:
0x17a5640:cc bb 59 e3 3e
这样一来,保证了第一物理页中的中断指令不被改写,且没有改变虚拟机执行的指令流,避免了虚拟机崩溃的风险。
1206、网络设备读取第二物理页中所有发生写操作的HPA的指令,并将所有发生写操作的HPA的指令写入第一物理页中。
由于发生写操作的GVA不包括监控点,因此网络设备可以将所有发生写操作的HPA的指令写入第一物理页中。
1207、网络设备将第一VCPU的EPT指针从指向第二EPT调整为指向第一EPT。
网络设备可以通过VMM重新将第一VCPU的EPT指针调整为指向第一EPT。
简要来说,当第一VCPU的EPT指针指向第一EPT时,若第一物理页发生写操作,则VMM可以将第一VCPU的指针指向第二EPT,以便第一VCPU将需要写入的指令先写入第二物理页。而后,VMM可以判断第二物理页中进行写操作的指令是否包括监控指令,若包括,则VMM读取第二物理页中除监控指令以外发生写操作的指令,并将除监控指令以外发生写操作的指令写入到第一物理页中;若不包括,则VMM将所有发生写操作的指令写入第一物理页中。如此一来,保证了第二物理页中的中断指令不被改写,且没有改变虚拟机执行的指令流,避免了虚拟机崩溃的风险。
上述主要从网络设备的角度对本申请实施例提供的方案进行了介绍。可以理解的是,网络设备为了实现上述功能,其包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对网络设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图13示出了上述实施例中所涉及的网络设备13的一种可能的结构示意图,网络设备包括:调整单元1301和处理单元1302。调整单元1301用于支持网络设备执行图7中的过程705-706,图11中的过程1102和1104,图12中的过程1202和1207;处理单元1302用于支持网络设备执行图7中的过程701-704,图11中的过程1101和1103,图12中的过程1201-1206。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在一种可能的设计中,网络设备可以通过图14中的计算机设备(或系统)来实现。
图14所示为本申请实施例提供的计算机设备示意图。计算机设备1400包括至少一个处理器1401,通信总线1402,存储器1403以及至少一个通信接口1404。
处理器1401可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线1402可包括一通路,在上述组件之间传送信息。
通信接口1404,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器1403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1403用于存储执行本申请方案的应用程序代码,并由处理器1401来控制执行。处理器1401用于执行存储器1403中存储的应用程序代码,从而实现本专利方法中的功能。
在具体实现中,作为一种实施例,处理器1401可以包括一个或多个CPU,例如图14中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备1400可以包括多个处理器,例如图14中的处理器1401和处理器1407。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备1400还可以包括输出设备1405和输入设备1406。输出设备1405和处理器1401通信,可以以多种方式来显示信息。例如,输出设备1405可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emittingdiode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备1406和处理器1401通信,可以以多种方式接受用户的输入。例如,输入设备1406可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备1400可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备1400可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图14中类似结构的设备。本申请实施例不限定计算机设备1400的类型。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (10)
1.一种虚拟机的监控方法,其特征在于,包括:
当网络设备确定第一虚拟处理器VCPU中发生中断的客户虚拟机虚拟地址GVA为监控点时,所述网络设备将所述第一VCPU的扩展页表EPT指针从指向第一EPT调整为指向第二EPT;其中,所述监控点用于指示待监控的GVA,所述第一EPT包括所述监控点对应的客户虚拟机物理地址GPA与中断指令对应的主机物理地址HPA之间的映射关系,所述第二EPT包括所述监控点对应的GPA与监控指令对应的HPA之间的映射关系;
所述网络设备根据所述监控点和所述第二EPT读取所述监控指令,并执行所述监控指令;
当所述网络设备执行完所述监控指令时,所述网络设备将所述第一VCPU的EPT指针从指向所述第二EPT调整为指向所述第一EPT,以便所述第一VCPU根据所述第一EPT执行所述中断指令。
2.根据权利要求1所述的方法,其特征在于,所述网络设备将所述第一VCPU的EPT指针从第一EPT指向第二EPT之前,所述方法还包括:
所述网络设备确定所述监控点和第一物理页,所述第一物理页的内容为空;
所述网络设备将第二物理页的指令拷贝至所述第一物理页;其中,所述第二物理页的指令包括所述监控指令;
所述网络设备将所述第一物理页中的所述监控指令替换为所述中断指令;
所述网络设备建立所述第二物理页对应的GPA与所述第一物理页的映射关系;
所述网络设备根据所述第二物理页对应的GPA与所述第一物理页的映射关系建立所述第一EPT。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述网络设备设置所述第一物理页不可读和/或不可写;
当所述网络设备确定所述第一VCPU发生读操作或写操作的GVA对应所述第一物理页,则所述网络设备将所述第一VCPU的EPT指针从指向所述第一EPT调整为指向所述第二EPT;
所述网络设备根据所述第二EPT对所述第二物理页进行所述读操作或写操作;
当所述网络设备对所述第二物理页完成所述读操作或写操作时,所述网络设备将所述第一VCPU的EPT指针从指向所述第二EPT调整为指向所述第一EPT,以便所述网络设备根据所述第一EPT执行所述中断指令。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述网络设备判断发生所述写操作的GVA是否包括所述监控点;
当所述写操作的GVA包括所述监控点时,则所述网络设备读取所述第二物理页中除所述监控点对应的HPA以外发生所述写操作的HPA的指令,并将除所述监控点对应的HPA以外发生所述写操作的HPA的指令写入到所述第一物理页中;
当所述写操作的GVA不包括所述监控点时,则所述网络设备读取所述第二物理页中所有发生所述写操作的HPA的指令,并将所述所有发生所述写操作的HPA的指令写入到所述第一物理页中。
5.根据权利要求1-4任意一项所述的方法,其特征在于,若所述网络设备确定所述第一VCPU发生中断时的EPT指针指向所述第二EPT,则将所述中断注入第一虚拟机。
6.一种网络设备,其特征在于,包括:
调整单元,用于:当确定第一虚拟处理器VCPU中发生中断的客户虚拟机虚拟地址GVA为监控点时,将所述第一VCPU的扩展页表EPT指针从指向第一EPT调整为指向第二EPT;其中,所述监控点用于指示待监控的GVA,所述第一EPT包括所述监控点对应的客户虚拟机物理地址GPA与中断指令对应的主机物理地址HPA之间的映射关系,所述第二EPT包括所述监控点对应的GPA与监控指令对应的HPA之间的映射关系;
处理单元,用于根据所述监控点和所述第二EPT读取所述监控指令,并执行所述监控指令;
所述调整单元还用于:当执行完所述监控指令时,将所述第一VCPU的EPT指针从指向第二EPT调整为指向所述第一EPT,以便所述第一VCPU根据所述第一EPT执行所述中断指令。
7.根据权利要求6所述的网络设备,其特征在于,所述处理单元还用于:
确定所述监控点和第一物理页,所述第一物理页的内容为空;
将第二物理页的指令拷贝至所述第一物理页;其中,所述第二物理页的指令包括所述监控指令;
将所述第一物理页中的所述监控指令替换为所述中断指令;
建立所述第二物理页对应的GPA与所述第一物理页的映射关系;
根据所述第二物理页对应的GPA与所述第一物理页的映射关系建立所述第一EPT。
8.根据权利要求7所述的网络设备,其特征在于,所述处理单元还用于:
设置所述第一物理页不可读和/或不可写;
当确定所述第一VCPU发生读操作或写操作的GVA对应所述第一物理页,则通过所述调整单元将所述第一VCPU的EPT指针从指向所述第一EPT调整为指向所述第二EPT;
根据所述第二EPT对所述第二物理页进行所述读操作或写操作;
所述调整单元用于:将所述第一VCPU的EPT指针从指向所述第二EPT调整为指向所述第一EPT,以便所述处理单元根据所述第一EPT执行所述中断指令。
9.根据权利要求8所述的网络设备,其特征在于,所述处理单元还用于:
判断发生所述写操作的GVA是否包括所述监控点;
当所述写操作的GVA包括所述监控点时,则读取所述第二物理页中除所述监控点对应的HPA以外发生所述写操作的HPA的指令,并将除所述监控点对应的HPA以外发生所述写操作的HPA的指令写入到所述第一物理页中;
当所述写操作的GVA不包括所述监控点时,则读取所述第二物理页中所有发生所述写操作的HPA的指令,并将所述所有发生所述写操作的HPA的指令写入到所述第一物理页中。
10.根据权利要求6-9任意一项所述的网络设备,其特征在于,所述处理单元还用于:若确定所述第一VCPU发生中断时的EPT指针指向所述第二EPT,则将所述中断注入第一虚拟机。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710378105.4A CN108958879B (zh) | 2017-05-24 | 2017-05-24 | 一种虚拟机的监控方法和装置 |
PCT/CN2017/116278 WO2018214482A1 (zh) | 2017-05-24 | 2017-12-14 | 一种虚拟机的监控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710378105.4A CN108958879B (zh) | 2017-05-24 | 2017-05-24 | 一种虚拟机的监控方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958879A CN108958879A (zh) | 2018-12-07 |
CN108958879B true CN108958879B (zh) | 2021-02-26 |
Family
ID=64395338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710378105.4A Active CN108958879B (zh) | 2017-05-24 | 2017-05-24 | 一种虚拟机的监控方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108958879B (zh) |
WO (1) | WO2018214482A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109784062B (zh) * | 2018-12-29 | 2021-07-20 | 360企业安全技术(珠海)有限公司 | 漏洞检测方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882113A (zh) * | 2009-05-05 | 2010-11-10 | 北京大学 | 一种基于客户操作系统内核代码替换的内存虚拟化方法 |
CN106295385A (zh) * | 2015-05-29 | 2017-01-04 | 华为技术有限公司 | 一种数据保护方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403983B (zh) * | 2008-11-25 | 2010-10-13 | 北京航空航天大学 | 基于虚拟机的多核处理器的资源监控方法及系统 |
US8726404B2 (en) * | 2011-11-14 | 2014-05-13 | Intel Corporation | Regulating access to and protecting portions of applications of virtual machines |
US9405570B2 (en) * | 2011-12-30 | 2016-08-02 | Intel Corporation | Low latency virtual machine page table management |
CN103744765B (zh) * | 2013-10-25 | 2017-04-12 | 中国科学院计算技术研究所 | 一种虚拟化环境下的磁盘访问请求监控系统及其方法 |
CN105138388B (zh) * | 2014-06-09 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 虚拟机监控方法及装置 |
CN104036185B (zh) * | 2014-06-23 | 2017-04-12 | 常熟理工学院 | 基于虚拟化的宏内核操作系统载入模块权能隔离方法 |
US9898430B2 (en) * | 2014-11-12 | 2018-02-20 | Vmware, Inc. | Tracking virtual machine memory modified by a single root I/O virtualization (SR-IOV) device |
CN104809401B (zh) * | 2015-05-08 | 2017-12-19 | 南京大学 | 一种操作系统内核完整性保护方法 |
US9946566B2 (en) * | 2015-09-28 | 2018-04-17 | Intel Corporation | Method and apparatus for light-weight virtualization contexts |
CN106354543B (zh) * | 2016-08-11 | 2019-11-26 | 上海交通大学 | 一种基于虚拟机和宿主机内存地址转换的numa内存迁页方法 |
-
2017
- 2017-05-24 CN CN201710378105.4A patent/CN108958879B/zh active Active
- 2017-12-14 WO PCT/CN2017/116278 patent/WO2018214482A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882113A (zh) * | 2009-05-05 | 2010-11-10 | 北京大学 | 一种基于客户操作系统内核代码替换的内存虚拟化方法 |
CN106295385A (zh) * | 2015-05-29 | 2017-01-04 | 华为技术有限公司 | 一种数据保护方法和装置 |
Non-Patent Citations (1)
Title |
---|
"虚拟化软件栈安全研究";朱民 等;《计算机学报》;20170228;第40卷(第2期);第481-504页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018214482A1 (zh) | 2018-11-29 |
CN108958879A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8645644B2 (en) | Facilitating data coherency using in-memory tag bits and tag test instructions | |
US10324863B2 (en) | Protected memory view for nested page table access by virtual machine guests | |
US8631222B2 (en) | Translation of input/output addresses to memory addresses | |
US9134911B2 (en) | Store peripheral component interconnect (PCI) function controls instruction | |
US9195623B2 (en) | Multiple address spaces per adapter with address translation | |
US8639858B2 (en) | Resizing address spaces concurrent to accessing the address spaces | |
US8626970B2 (en) | Controlling access by a configuration to an adapter function | |
CA2800630C (en) | Runtime determination of translation formats for adapter functions | |
ES2710887T3 (es) | Utilización de palabras de dirección de datos indirectos de trasladador de datos asíncronos extendidos | |
US8478922B2 (en) | Controlling a rate at which adapter interruption requests are processed | |
US10671542B2 (en) | Application execution enclave memory method and apparatus | |
RU2562372C2 (ru) | Активация/деактивация адаптеров вычислительной среды | |
US8645633B2 (en) | Facilitating data coherency using in-memory tag bits and faulting stores | |
Tang et al. | Exploring control flow guard in windows 10 | |
CN109791584B (zh) | 用于标识和避免虚拟机监视程序和客户虚拟机之间的跟踪冲突的处理器扩展 | |
CN110968394A (zh) | 虚拟机与其监视器之间的页面属性的分割控制方法和系统 | |
CN108958879B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |