CN110058921A - 客户虚拟机内存动态隔离和监控方法及系统 - Google Patents

客户虚拟机内存动态隔离和监控方法及系统 Download PDF

Info

Publication number
CN110058921A
CN110058921A CN201910190051.8A CN201910190051A CN110058921A CN 110058921 A CN110058921 A CN 110058921A CN 201910190051 A CN201910190051 A CN 201910190051A CN 110058921 A CN110058921 A CN 110058921A
Authority
CN
China
Prior art keywords
page table
virtual machine
extension page
request
extension
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.)
Granted
Application number
CN201910190051.8A
Other languages
English (en)
Other versions
CN110058921B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201910190051.8A priority Critical patent/CN110058921B/zh
Publication of CN110058921A publication Critical patent/CN110058921A/zh
Application granted granted Critical
Publication of CN110058921B publication Critical patent/CN110058921B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种客户虚拟机内存动态隔离和监控方法及系统,在客户虚拟机中分别部署用户请求处理模块、扩展页表异常截获与处理模块、虚拟机监控器交互模块、扩展页表通信模块,在虚拟机监控器中分别部署扩展页表管理模块、应用行为学习模块。利用虚拟机内核地址空间隔离技术,有效防御针对内核关键数据的窃取、针对内存的随意覆写攻击。即使掌握了内核中某一模块的漏洞,也无法随意篡改受保护的关键数据。为不同模块提供不同的隔离执行环境,保护内核不受未授权的数据窃取、内存覆写攻击。使用硬件提供的虚拟化机制,加速扩展页表的切换功能,减少性能开销。

Description

客户虚拟机内存动态隔离和监控方法及系统
技术领域
本发明涉及计算机技术领域,具体地,涉及一种客户虚拟机内存动态隔离和监 控方法及系统。
背景技术
操作系统的内核安全一直是学术界和工业界研究的热点。因为内核拥有比用户态程序更高的权限,所以一旦内核被攻击者所攻破,整个系统便会失去保护。随着 云平台的盛行,许多厂商将自己的服务放置到云平台上,而内核安全问题依然重要。 大部分的虚拟机都运行了例如linux,windows这样的大型操作系统,在这些操作 系统之上又运行了大量用户程序。不管是操作系统还是用户程序都是复杂的软件, 这样的复杂度使得整个系统中隐藏的很多错误或者漏洞难以被发现,而这些错误和 漏洞有可能会被攻击者所掌握并利用,以及来破坏整个系统的完整性。
攻击者会找寻下层操作系统内核中的错误和漏洞,而一旦攻击者找到一个漏洞后,会针对该漏洞构造特定的恶意请求,并通过syscall指令去请求内核的处理。 操作系统内核收到来自用户态的请求之后,会解析该请求的参数并交由特定的处理 逻辑进行处理。由于这个请求的参数是恶意构造的,内核会在执行过程中触发该漏 洞,攻击者通过此漏洞可以劫持控制流或者破坏内核完整性,进而控制整个内核。 操作系统可以访问并修改所有内存,一旦攻击者能够控制整个内核,便能访问甚至 修改其他所有用户态应用的内存,严重危害其他程序的安全。正因为其重要性,目 前已经有不少研究者进行了相关的研究,试图缓解内核的安全问题。
在2016年纽约大学的Yiwen等研究者提出了一种方案叫Lock-in-Pop,该方案假设内核中经常被执行的代码路径比不经常执行的代码路径包含更少的错误或漏洞。在该方案中用户态程序运行在一个library OS环境中,用户程序与内核的交互都需要经过NaCl和Repy进行转换,而这两个部件会将所有的不常见的系统调用都替换为常见的系统调 用,以此确保只有内核中经常被执行的代码路径会得到实际运行,而不经常执行的代码 路径则不会实际被执行。上述方法在一定程度上避免了内核中有错误或漏洞的代码被执 行,但在经常执行的代码路径中仍然可能存在错误或漏洞。例如在内核的常见代码路径 中包含CVE-2014-4171漏洞,该方案并不能防范未知的漏洞。性能方面,由于将用户程 序运行在library OS中,极大的降低了应用程序的性能,最高的性能损耗达到了6.5 倍。
2015莱斯大学的Nathan等人提出,利用现有硬件机制,在原本的内核中建立一个小型的、隔离的部件,叫做Nested Kernel;而原本的内核部分,叫做Outer Kernel。 该方案通过修改页表中相应入口的权限位保证了Outer Kernel无法访问Nested Kernel 的地址空间,同时将修改CR0,CR3,CR4等关键寄存器的指令设置为对于Outer Kernel 不可见来确保其无法随意修改关键寄存器或内存。上述方案可以在同一特权级中实现对 于关键数据的只读保护,然而安全性方面,攻击者对于关键数据仍然具体读取权限,仍 然存在敏感数据的泄露可能。性能方面,由于每次修改关键数据或关键寄存器的时候都 需要进入到Nested Kernel去模拟执行,因此在一些micro benchmark中对于性能的影 响较大。
与本申请相关的现有技术是专利文献CN107797895A,公开了一种虚拟机安全监控方法及系统,利用了虚拟化异常功能(#VE)实现对应用程序执行的监控。同时,通过 EPT页表的隔离,可以实现应用程序和操作系统的隔离,以及不同应用程序之间的内存 隔离。CPU在执行时,通过CPU硬件提供的VMFUNC功能实现不同EPT页表的切换,从而 实现执行流的切换。采用带内的方式实现虚拟机安全监控,同时基于新的硬件特性支持 保证监控程序和监控目标的安全隔离,以最终达到安全和效率的统一。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种客户虚拟机内存动态隔离和监控方法及系统。
根据本发明提供的一种客户虚拟机内存动态隔离和监控系统,包括:
用户请求处理模块:处理用户态程序发送给内核的用户请求,根据用户请求中 携带的参数,确定执行所述用户请求的扩展页表;
扩展页表异常截获与处理模块:依据用户请求,在虚拟机中截获由扩展页表引 发的异常情况,判定所述异常情况的异常状态,根据异常状态筛选出合法请求,并 将合法请求发送至虚拟机监控器;
虚拟机监控器交互模块:处理与虚拟机监控器的交互,所述交互包括请求虚拟 机监控器创建扩展页表或者修改扩展页表;
扩展页表通信模块:为在不同扩展页表中运行的程序提供一套统一的通信机制,使得扩展页表在地址隔离时能够正常通信;
扩展页表管理模块:接收客户虚拟机发送的创建扩展页表或切换扩展页表的请求,执行创建第二扩展页表,所述第二扩展页表与已存在的第一扩展页表分别映射 到不同的主机物理内存;
应用行为学习模块:通过机器学习,获得客户虚拟机在运行过程中的行为特征,根据行为特征识别运行过程中出现的高危行为,完善地址隔离;
其中,用户请求处理模块、扩展页表异常截获与处理模块、虚拟机监控器交互 模块、扩展页表通信模块分别部署在客户虚拟机中,扩展页表管理模块、应用行为 学习模块分别部署在虚拟机监控器中。
优选地,所述用户请求处理模块包括:
扩展页表切换模块:控制客户虚拟机能够在不同扩展页表中进行安全切换,防 止未授权的扩展页表进行切换操作;
扩展页表同步模块:控制多个扩展页表中的共享数据同步。
优选地,所述扩展页表异常截获与处理模块包括:
虚拟异常模块:将扩展页表引发的异常情况转换成虚拟异常;
安全检查模块:通过客户虚拟机内部的语义信息对虚拟异常进行安全检查,判 断是否是合法操作造成异常情况,若是合法操作,则作为合法请求发送至虚拟机监 控器进行扩展页表操作;否则,则提示用户收到非法异常,拒绝处理用户请求,记 录日志。
优选地,所述应用行为学习模块包括:
获取模块:获取行为特征,所述行为特征包括用户请求访问的客户物理地址范围、触发扩展页表异常的次数和类型、访问未授权的关键数据的次数中的任一种或 任多种;
学习模块:采用机器学习,得到用户请求的行为统计结果,发送至客户虚拟机, 客户虚拟机获取行为统计结果后,进行完善用户请求的安全检查。
根据本发明提供的一种客户虚拟机内存动态隔离和监控方法,包括:
用户请求处理步骤:接收用户态程序发送给内核的用户请求,根据用户请求中 携带的参数,确定所述用户请求对应目标的扩展页表,并切换至目标的扩展页表;
扩展页表异常截获与处理步骤:在虚拟机中截获由扩展页表引发的异常情况, 判定所述异常情况的异常状态,根据异常状态筛选出合法请求,并将合法请求发送 至虚拟机监控器;
虚拟机监控器交互步骤:处理与虚拟机监控器的交互,所述交互包括请求虚拟 机监控器创建扩展页表或者修改扩展页表;当虚拟机监控器交互模块收到对应其他 模块的请求时,其根据请求所携带参数,执行对应的交互程序实现与虚拟机监控器 的交互。
扩展页表通信步骤:为在不同扩展页表中运行的程序提供一套统一的通信机制,使得扩展页表在地址隔离时能够正常通信;当一个扩展页表需要与另一个扩展页表 进行通信时,其发送消息至扩展页表通信模块,经由该模块检查后转发至目标扩展 页表。两份扩展页表互相隔离但能够正常通信。
扩展页表管理步骤:接收客户虚拟机发送的创建扩展页表或切换扩展页表的请求,执行创建第二扩展页表,所述第二扩展页表与已存在的第一扩展页表分别映射 到不同的主机物理内存;
应用行为学习步骤:通过机器学习,获得客户虚拟机在运行过程中的行为特征,根据行为特征识别运行过程中出现的高危行为,完善地址隔离;
其中,用户请求处理步骤、扩展页表异常截获与处理步骤、虚拟机监控器交互 步骤、扩展页表通信步骤分别部署在客户虚拟机中,扩展页表管理步骤、应用行为 学习步骤分别部署在虚拟机监控器中。
优选地,所述用户请求处理步骤包括:
扩展页表切换步骤:控制客户虚拟机能够在不同扩展页表中进行安全切换,防 止未授权的扩展页表进行切换操作;收到用户请求后,用户请求处理模块根据请求 携带参数信息,决定切换的目标扩展页表,并由扩展页表切换模块执行不同扩展页 表的安全切换操作。
扩展页表同步步骤:控制多个扩展页表中的共享数据同步。当某一扩展页表对 应环境试图修改共享数据时,其对扩展页表同步模块发送请求,由该模块执行实际 的共享数据同步操作。
优选地,所述扩展页表异常截获与处理步骤包括:
虚拟异常步骤:将扩展页表引发的异常情况转换成虚拟异常;
安全检查步骤:通过客户虚拟机内部的语义信息对虚拟异常进行安全检查,判 断是否是合法操作造成异常情况,若是合法操作,则作为合法请求发送至虚拟机监 控器进行扩展页表操作;否则,则提示用户收到非法异常,拒绝处理用户请求,记 录日志。
优选地,所述应用行为学习步骤包括:
获取步骤:获取行为特征,所述行为特征包括用户请求访问的客户物理地址范围、触发扩展页表异常的次数和类型、访问未授权的关键数据的次数中的任一种或 任多种;
学习步骤:采用机器学习,得到用户请求的行为统计结果,发送至客户虚拟机, 客户虚拟机获取行为统计结果后,进行完善用户请求的安全检查。
优选地,所述扩展页表在客户虚拟机内核中能够提供地址隔离,利用扩展页表控制客户虚拟地址到主机物理地址的映射;
所述截获由扩展页表引发的异常情况时,利用硬件提供的虚拟异常机制,在虚 拟机内部发生扩展页表异常时进行实时内存检查;
所述根据行为特征识别运行过程中出现的高危行为后,得到行为统计结果,根 据行为统计结果更新对于用户请求和虚拟异常的安全检查。
根据本发明提供的一种客户虚拟机内存动态隔离和监控方法,包括:
创建扩展页表步骤:收到客户虚拟机请求后,对扩展页表分配内存,对内存进行解析关键数据地址,删除关键数据映射,激活扩展页表;
切换扩展页表步骤:收到切换扩展页表请求后,客户虚拟机调用指令序列,检查请求参数的合法性,若合法则切换至目标扩展页表,并隔离运行,运行完成后切换回源扩 展页表,客户虚拟机调用指令序列返回;
截获异常步骤:客户虚拟机运行后,若截获扩展页表异常,则判断异常是否合法,若合法,则下陷至虚拟机监控器,处理扩展页表,并进行行为分析,记录分析结果;若 不合法,则提示用户,记录日志。
与现有技术相比,本发明具有如下的有益效果:
1、本发明在客户虚拟机内部实现内存强隔离,使得内核敏感数据对于未授权的用户完全不可见,有效防御针对内核关键数据的窃取、针对内存的随意覆写攻击;
2、本发明在对虚拟机监控器的修改尽可能小的情况下,解决虚拟机监控器和虚拟机之间的语义鸿沟;
3、本发明做到完全无需修改应用程序,且对于性能影响小的情况下实现对于用户请求的保护和隔离。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为客户虚拟机在不同扩展页表下的地址隔离
图2为装置实施例
图3为多份扩展页表同步方法
图4为扩展页表的创建方法
图5为扩展页表的创建方法
图6为虚拟机监控器扩展页表创建流程
图7为客户虚拟机中的扩展页表快速切换流程
图8为扩展页表异常的截获与处理流程
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人 员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都 属于本发明的保护范围。
本发明提出的方法能够解决现有方案中的问题,在虚拟化环境下,如何在客户 虚拟机内核中实现更强的内存隔离。由于一些数据非常敏感,攻击者不仅不能修改 它,而且不能读取到这些数据。本发明需要在客户虚拟机内部实现更强的内存隔离, 使得这些敏感数据对于未授权用户完全不可见。如何减少虚拟机监控器和虚拟机之间 的语义鸿沟,并且对于虚拟机监控器的修改尽可能小。虚拟机监控器在很多时候无法 获取虚拟机的精确语义信息,要获取这些信息需要对虚拟机监控器做大量修改。本发 明需要在对于虚拟机监控器的修改尽可能小的情况下,解决虚拟机监控器和虚拟机之 间的语义鸿沟问题。如何在不改动用户态程序、对性能影响尽可能小的情况下使用户 态程序得到有效的保护或隔离。许多用户程序非常庞大和复杂,对性能也 有很高要求,本发明需要做到完全无需修改应用程序,且对于性能影响小的情况下实 现对于用户请求的保护或隔离。
根据本发明提供的一种客户虚拟机内存动态隔离和监控系统,包括:
用户请求处理模块:处理用户态程序发送给内核的用户请求,根据用户请求中 携带的参数,确定执行所述用户请求的扩展页表;
扩展页表异常截获与处理模块:依据用户请求,在虚拟机中截获由扩展页表引 发的异常情况,判定所述异常情况的异常状态,根据异常状态筛选出合法请求,并 将合法请求发送至虚拟机监控器;
虚拟机监控器交互模块:处理与虚拟机监控器的交互,所述交互包括请求虚拟 机监控器创建扩展页表或者修改扩展页表;
扩展页表通信模块:为在不同扩展页表中运行的程序提供一套统一的通信机制,使得扩展页表在地址隔离时能够正常通信;
扩展页表管理模块:接收客户虚拟机发送的创建扩展页表或切换扩展页表的请求,执行创建第二扩展页表,所述第二扩展页表与已存在的第一扩展页表分别映射 到不同的主机物理内存;
应用行为学习模块:通过机器学习,获得客户虚拟机在运行过程中的行为特征,根据行为特征识别运行过程中出现的高危行为,完善地址隔离;
其中,用户请求处理模块、扩展页表异常截获与处理模块、虚拟机监控器交互 模块、扩展页表通信模块分别部署在客户虚拟机中,扩展页表管理模块、应用行为 学习模块分别部署在虚拟机监控器中。
具体地,所述用户请求处理模块包括:
扩展页表切换模块:控制客户虚拟机能够在不同扩展页表中进行安全切换,防 止未授权的扩展页表进行切换操作;
扩展页表同步模块:控制多个扩展页表中的共享数据同步。
具体地,所述扩展页表异常截获与处理模块包括:
虚拟异常模块:将扩展页表引发的异常情况转换成虚拟异常;
安全检查模块:通过客户虚拟机内部的语义信息对虚拟异常进行安全检查,判 断是否是合法操作造成异常情况,若是合法操作,则作为合法请求发送至虚拟机监 控器进行扩展页表操作;否则,则提示用户收到非法异常,拒绝处理用户请求,记 录日志。
具体地,所述应用行为学习模块包括:
获取模块:获取行为特征,所述行为特征包括用户请求访问的客户物理地址范围、触发扩展页表异常的次数和类型、访问未授权的关键数据的次数中的任一种或 任多种;
学习模块:采用机器学习,得到用户请求的行为统计结果,发送至客户虚拟机, 客户虚拟机获取行为统计结果后,进行完善用户请求的安全检查。
根据本发明提供的一种客户虚拟机内存动态隔离和监控方法,包括:
用户请求处理步骤:接收用户态程序发送给内核的用户请求,根据用户请求中 携带的参数,确定所述用户请求对应的目标扩展页表并切换至目标扩展页表;
扩展页表异常截获与处理步骤:在虚拟机中截获由扩展页表引发的异常情况, 判定所述异常情况的异常状态,根据异常状态筛选出合法请求,并将合法请求发送 至虚拟机监控器;
虚拟机监控器交互步骤:处理与虚拟机监控器的交互,所述交互包括请求虚拟 机监控器创建扩展页表或者修改扩展页表;当虚拟机监控器交互模块收到对应其他 模块的请求时,其根据请求所携带参数,执行对应的交互程序实现与虚拟机监控器 的交互。
扩展页表通信步骤:为在不同扩展页表中运行的程序提供一套统一的通信机制,使得扩展页表在地址隔离时能够正常通信;当一个扩展页表需要与另一个扩展页表 进行通信时,其发送消息至扩展页表通信模块,经由该模块检查后转发至目标扩展 页表。两份扩展页表互相隔离但能够正常通信。
扩展页表管理步骤:接收客户虚拟机发送的创建扩展页表或切换扩展页表的请求,执行创建第二扩展页表,所述第二扩展页表与已存在的第一扩展页表分别映射 到不同的主机物理内存;
应用行为学习步骤:通过机器学习,获得客户虚拟机在运行过程中的行为特征,根据行为特征识别运行过程中出现的高危行为,完善地址隔离;
其中,用户请求处理步骤、扩展页表异常截获与处理步骤、虚拟机监控器交互 步骤、扩展页表通信步骤分别部署在客户虚拟机中,扩展页表管理步骤、应用行为 学习步骤分别部署在虚拟机监控器中。
具体地,所述用户请求处理步骤包括:
扩展页表切换步骤:控制客户虚拟机能够在不同扩展页表中进行安全切换,防 止未授权的扩展页表进行切换操作;收到用户请求后,用户请求处理模块根据请求 携带参数信息,决定切换的目标扩展页表,并由扩展页表切换模块执行不同扩展页 表的安全切换操作。
扩展页表同步步骤:控制多个扩展页表中的共享数据同步。当某一扩展页表对 应环境试图修改共享数据时,其对扩展页表同步模块发送请求,由该模块执行实际 的共享数据同步操作。
具体地,所述扩展页表异常截获与处理步骤包括:
虚拟异常步骤:将扩展页表引发的异常情况转换成虚拟异常;
安全检查步骤:通过客户虚拟机内部的语义信息对虚拟异常进行安全检查,判 断是否是合法操作造成异常情况,若是合法操作,则作为合法请求发送至虚拟机监 控器进行扩展页表操作;否则,则提示用户收到非法异常,拒绝处理用户请求,记 录日志。
具体地,所述应用行为学习步骤包括:
获取步骤:获取行为特征,所述行为特征包括用户请求访问的客户物理地址范围、触发扩展页表异常的次数和类型、访问未授权的关键数据的次数中的任一种或 任多种;
学习步骤:采用机器学习,得到用户请求的行为统计结果,发送至客户虚拟机, 客户虚拟机获取行为统计结果后,进行完善用户请求的安全检查。
具体地,所述扩展页表在客户虚拟机内核中能够提供地址隔离,利用扩展页表控制客户虚拟地址到主机物理地址的映射;
所述截获由扩展页表引发的异常情况时,利用硬件提供的虚拟异常机制,在虚 拟机内部发生扩展页表异常时进行实时内存检查;
所述根据行为特征识别运行过程中出现的高危行为后,得到行为统计结果,根 据行为统计结果更新对于用户请求和虚拟异常的安全检查。
根据本发明提供的一种客户虚拟机内存动态隔离和监控方法,包括:
创建扩展页表步骤:收到客户虚拟机请求后,对扩展页表分配内存,对内存进行解析关键数据地址,删除关键数据映射,激活扩展页表;
切换扩展页表步骤:收到切换扩展页表请求后,客户虚拟机调用指令序列,检查请求参数的合法性,若合法则切换至目标扩展页表,并隔离运行,运行完成后切换回源扩 展页表,客户虚拟机调用指令序列返回;
截获异常步骤:客户虚拟机运行后,若截获扩展页表异常,则判断异常是否合法,若合法,则下陷至虚拟机监控器,处理扩展页表,并进行行为分析,记录分析结果;若 不合法,则提示用户,记录日志。
本发明提供的客户虚拟机内存动态隔离和监控系统,可以通过客户虚拟机内存动态隔离和监控方法的步骤流程实现。本领域技术人员可以将客户虚拟机内存动态隔离 和监控方法理解为所述客户虚拟机内存动态隔离和监控系统的优选例。
本发明利用虚拟机监控器提供的多套扩展页表实现对于虚拟机内核的客户物理地址空间的隔离,从而防止攻击者利用内核中的漏洞窃取或篡改关键内存数据。本 发明通过在虚拟机监控器中构造多份扩展页表,并允许客户虚拟机主动切换扩展页 表,实现对于同一客户物理地址到不同主机物理地址的映射。具体而言,如图1所 示,客户虚拟机使用扩展页表1时可以访问全部主机物理内存,当客户虚拟机收到 不可信的用户请求时,用户请求处理模块会将该用户请求放在一个隔离的执行环境 中执行,客户虚拟机从扩展页表1切换到扩展页表2。此时即使客户虚拟机所使用 的客户物理地址没有做任何变换,其也不能访问关键数据,因为关键数据并未在扩 展页表2中被映射。
同时,虚拟机监控器中的行为学习模块会记录并学习客户虚拟机在每份扩展页表中的访问特征,例如其访问地址的局部性特征,其是否经常试图访问未授权的关 键数据等。这些特征会通过客户虚拟机中的虚拟机监控器里交互模块反馈给客户虚 拟机,而用户请求处理模块和扩展页表异常截获与处理模块则会获得这些反馈,同 时根据反馈结果完善检查规则,对于很少或从未发生非法访问行为的请求可以适当 放松隔离强度,以提升性能;对于经常发生非法访问行为的请求,保持或加强隔离 强度。行为学习规则更新可以在系统运行时进行,这样能够及时发现新的非法行为 特征,也可以事先学习各种应用行为特征而不在系统运行时更新,以减轻学习行为 给系统运行带来的开销。
本发明方案的装置实施例如图2所示,在客户虚拟机中共放置了四个模块:用 户请求处理模块、扩展页表通信模块,虚拟机监控器交互模块和扩展页表异常截获 模块;在虚拟机监控器中共放置两个模块:扩展页表创建模块和扩展页表异常处理 模块。客户虚拟机中的用户请求处理模块负责处理用户态程序发送给内核的请求, 这是所有用户态程序进入内核第一个交互的模块。虚拟机监控器交互模块负责和虚 拟机监控器进行必要的交互,包括请求虚拟机监控器创建多套扩展页表、将合法的 扩展页表异常交由虚拟机监控器进行处理等。扩展页表通信模块给在不同扩展页表 中运行的程序提供一套统一的通信机制,使得其在实现地址隔离的情况下也能正常 通信。扩展页表异常截获与处理模块负责在虚拟机中截获因扩展页表而引发的异常, 判断其是否是合法异常,是否属于恶意的异常、是否属于程序本身错误等,只将合 法请求通过虚拟机监控器交互模块传递给虚拟机监控进行后续处理。虚拟机监控器 中的扩展页表管理模块负责接受客户虚拟机创建或修改扩展页表的请求并执行创 建扩展页表,这个扩展页表可以和已有的扩展页表映射不同的主机物理内存从而实 现物理地址的隔离。应用行为处模块负责学习客户虚拟机在运行过程中的行为特征, 从而识别出其中的高危行为,完善地址空间隔离规则。
其中,用户请求处理模块将负责处理所有用户态程序的请求。用户态程序在 x86/x64平台下通过sysenter/syscall指令发送请求主动进入内核,还会因为中断、 异常等原因被动下陷到内核中进行处理。该模块是这些请求或下陷进入内核后所交 互的第一个模块。每次下陷都会带有一定的参数来标识请求的意图或下陷的原因, 用户请求处理模块通过检查这些参数来决定是否需要将该请求放置到与当前环境 隔离的环境中去执行,并调用扩展页表通信模块来完成相应功能。该模块包含两个 关键部件,扩展页表切换部件和扩展页表同步部件。扩展页表切换部件使得客户虚 拟机能够在不同扩展页表中安全切换,并防止未授权的扩展页表切换操作。扩展页 表同步部件确保多个扩展也表中共享数据是同步的,不会因为扩展页表之间的内存 隔离而出现多份数据不一致的情况。
该模块主要使用到了下面两项关键技术,防止未经授权的扩展页表切换以及多份扩展页表之间的同步。防止未经授权的扩展页表切换:为了防止未经授权的客户 虚拟机随意调用VMFUNC指令进行扩展页表切换,本发明使用了一段构造的指令序 列,只有经过该段指令序列才能调用VMFUNC指令,而使用该指令序列会检查扩展 页表切换的参数是否合法,确保客户虚拟机无法任意切换到未经授权的扩展页表。 多份扩展页表间的同步:现有大部分宏操作系统内核中有许多模块之间在运行时需 要数据同步,本发明需要在将这些模块隔离到不同的扩展页表后,需要继续维护它 们彼此之间的一致性,确保系统的正常执行。基本的同步方法如图3所示,将一个 模块中所有涉及到对于其他隔离环境中数据的操作都发送到一个专门的扩展页表 同步部件,该同步部件是扩展页表通信模块的一个子部件。由扩展页表同步部件专 门负责检查这些请求的合法性,并将合法的请求转发给对应的其他扩展页表的程序 执行操作。
虚拟机监控器交互模块负责与虚拟机监控器进行必要的交互,在x86/x64平台 下可以利用vmcall、cpuid等指令从虚拟机下陷到虚拟监控器。该模块一般用于请 求虚拟机监控器协助完成特定功能,例如可在启动时请求虚拟机监控器为当前客户 虚拟机创建多份部分隔离的扩展页表,或通知虚拟机监控器发生了特定事件,例如 对于扩展页表异常截获模块截获到的异常,将会通过虚拟机监控器交互模块发送给 虚拟机监控机进行交互。
扩展页表异常截获与处理模块为了加快客户虚拟地址到客户物理地址的翻译过程,客户虚拟机并不会在每次发生页表错误的时候都请求虚拟机监控器去填充虚拟 机页表,而是分为两个步骤,延迟填充。首先客户虚拟机内核为分配一个”虚假” 的客户物理地址,虚拟机内部的页表错误处理完毕。第二步,在客户虚拟机试图真 正去访问该客户物理地址时,扩展页表翻译部件会检测到该客户物理地址无效,因 此产生扩展页表异常,表明该客户物理地址是一个无效的地址。传统情况下,发生 扩展页表异常会强制使客户虚拟机立刻下陷到虚拟机监控器中进行处理,然而虚拟 机监控器缺乏完整的虚拟机内部语义信息,无法确保检查规则的准确性。本发明利 用硬件虚拟化技术,允许扩展页表中断转换成为虚拟异常(Virtualization Exception),并被客户虚拟机内部的扩展页表异常截获与处理模块所截获并进一步 处理。
对于截获到的虚拟异常的处理方法如图4所示,扩展页表异常截获与处理模块 首先通过客户虚拟机内部的语义信息对该异常进行安全检查,判断去是否是一个合 法操作所造成的扩展页表异常。如果是合法操作,则通过虚拟机监控器交互模块发 送给虚拟机监控器进行实际的扩展页表修改;否则,该模块会提示用户收到了一个 非法的异常,拒绝处理该次请求并记录相关日志。
扩展页表管理模块位于虚拟机监控器中,负责接收客户虚拟机发送的创建、修改、查询及删除扩展页表请求,并执行实际的扩展页表修改操作。扩展页表的主要 作用在于控制客户物理地址到主机物理地址的映射关系。通过创建多份扩展页表, 可以将相同的客户物理地址映射到不同的主机物理地址,它们彼此之间的内存相互 隔离。
不同扩展页表之间的隔离方法如图5所示,对于每份创建的扩展页表,客户虚 拟机指定一段或多段关键数据的客户物理地址。对于客户虚拟机指定隐藏的关键数 据,虚拟机监控器将这一段或多段内存对应的所有页表项从该份扩展页表中删除, 从而确保使用该份扩展页表的程序无法访问到任何未经授权的关键数据,实现虚拟 机内部的内存隔离。对于客户虚拟机指定不允许未授权修改的关键数据,虚拟机监 控器将这一段或多段内存对应的所有页表项的访问权限设置为只读权限,确保使用 该份扩展页表的程序只能读取关键数据,而无法篡改。
应用行为学习模块的目的在于学习客户虚拟机中各种请求的行为特征,包括其访问的客户物理地址范围、触发扩展页表异常的次数和类型以及试图访问未授权关 键数据的次数等。对于每种请求得到的统计结果,应用行为学习模块会通过客户虚 拟机中的虚拟机监控器交互模块将结果反馈给客户虚拟机。而客户虚拟机中的应用 请求处理模块和扩展页表异常截获与处理模块会获取反馈结果,并根据结果完善自 己的安全检查规则。对于该模块的部署时间有两种方案:第一种方案,可以在系统 运行时部署,对于每个请求都会学习其特征,并即使反馈给客户虚拟机。该方案确 保得到最新的应用行为特征,使得安全检查规则更加完善。第二种方案,周期性离 线部署,但在系统运行时并不部署。该方案事先离线学习各种请求的行为特征,并 得到一个较为完整的安全检查规则,并周期性离线学习来完善规则。该方案相比于 第一种方案,在安全规则更新上会有一定延迟,但可以减轻系统运行时的性能开销。
本发明涉及的流程包括虚拟机监控器创建扩展页表流程、扩展页表快速切换流程以及扩展页表异常截获和处理流程。
如图6所示,虚拟机监控器创建扩展页表流程通过以下步骤进行:
步骤1)客户虚拟机向虚拟机监控器发送创建扩展页表的请求,该请求会被虚 拟机监控器中的扩展页表创建模块截获处理。
步骤2)虚拟机监控器的扩展页表创建模块收到客户虚拟机的请求后执行创建 操作,为新的扩展页表分配足够的主机物理地址空间,并事先填充系统运行的必要 页表项。这一过程不涉及关键数据。
步骤3)解析客户虚拟机发送的请求的参数,保存参数中指定的关键数据的信 息,包括客户物理地址、地址范围和该段范围对应的权限等。
步骤4)对于步骤3中解析的每个地址范围,在页表中修改其对应的页表项的 映射。例如对于未授权的关键数据,将其从新创建的扩展页表的页表项中删去。对 于客户虚拟机请求设置为只读的数据范围,修改新创建的扩展页表中对应的页表项 权限为只读。
步骤5)虚拟机监控器将新创建的扩展页表设置到客户虚拟机的虚拟机控制块中,激活该扩展页表使其对于客户虚拟机可用。
如图7所示,扩展页表快速切换流程通过以下步骤进行:
步骤1)每当客户虚拟机试图切换到另一个扩展页表时,都需要调用一段的指 令序列,仅有通过这段指令序列客户虚拟机才能最终成功切换扩展页表。
步骤2)这段指令序列中会检查客户虚拟机指定参数的合法性,包括目标扩展 页表的序号,该次切换是否经过授权等。如果检查发现参数不合法,则直接进入步 骤6,否则进入步骤3。
步骤3)执行实际的扩展页表切换指令,VMFUNC指令。该指令完成后客户虚拟 机将运行在切换后的扩展页表中。
步骤4)客户虚拟机在切换后的扩展页表中执行特定目标操作,切换后的扩展 页表和原有扩展页表的关键数据相互隔离。
步骤5)客户虚拟机切换回原始扩展页表。
步骤6)客户虚拟机从指令序列返回,继续执行。
如图8所示,扩展页表异常截获和处理流程通过以下步骤进行:
步骤1)客户虚拟机在某个扩展页表环境中运行,该扩展页表中不会有未授权 的关键数据的映射。
步骤2)当客户虚拟机试图通过该扩展页表去访问未映射的关键数据时,会由 硬件触发扩展页表异常,并被转换为虚拟异常,进而被客户虚拟机中的扩展页表异 常截获模块所截获。
步骤3)扩展页表异常截获模块从虚拟异常信息域获得触发该异常的相关信息,包括触发原因,触发时的客户物理地址,触发时的客户虚拟地址以及当前的扩展页 表序号。通过这些信息,扩展页表异常截获模块将判断这次异常是否合法,如果不 合法,将会直接进入步骤6,拒绝处理本次异常,并提示用户该异常的发生以及记 录相应的日志。如果该次异常合法,扩展页表异常截获模块会将异常发送给虚拟机 监控器,由其中的扩展页表异常处理模块进行后续处理。
步骤4)虚拟机监控器的扩展页表异常处理模块收到客户虚拟机发送的扩展页 表处理请求后,会首先执行基本的检查,包括客户虚拟机是否处于一个隔离的执行 环境等。然后其会根据请求执行实际的扩展页表修改操作,例如分配新页填充页表 项、修复页表项的权限等,使得客户虚拟机能够继续正常运行。
步骤5)扩展页表异常处理模块处理正常完成后,会进入步骤7。
步骤6)当客户虚拟机中的扩展页表异常截获模块发现该次扩展页表异常不合 法时,会进入到该步骤调用非法请求处理函数。在该步骤中,该请求会被拒绝处理, 因此客户虚拟机无法继续正常运行。用户将收到关于该异常的提示,并被记录在日 志中便于后期审计。然后直接进入步骤7
步骤7)虚拟机监控器中的行为学习模块会记录并分析本次行为中应用行为的 特征,包括其内存访问是否是合法操作等,并将结果返回给客户虚拟机。客户虚拟 机收到反馈后会完善其对用户请求和扩展页表异常的检查规则。
利用上述本发明提供的虚拟机内核地址空间隔离技术,能够有效防御针对内核关键数据的窃取、针对内存的随意覆写攻击。即使掌握了内核中某一模块的漏洞, 也无法随意篡改受保护的关键数据。操作系统内核的复杂性使得其包含诸多错误和 漏洞,本发明通过为不同模块提供不同的隔离执行环境,能够保护内核不受未授权 的数据窃取、内存覆写攻击。
本发明使用硬件提供的虚拟化机制,例如VMFUNC指令,加速了扩展页表的切换 功能,减少性能开销。解决了虚拟机监控器和客户虚拟机的语义鸿沟问题,使得对 于内存地址的安全检查能够更加精确。通过对应用行为进行学习,可以适应不同应 用和不同运行环境,且无需对于现有的用户态程序做任何改动。利用扩展页表在同 一客户虚拟机内核态中提供地址隔离。利用扩展页表控制客户物理地址到主机物理 地址映射,在同一虚拟机内核内部即可提供隔离的执行环境。利用硬件虚拟化机制 和指令,加速客户虚拟机内部扩展页表切换过程,而无需下陷到虚拟机监控器,对 性能影响小。无需修改用户态应用程序,保持兼容。在内存检查机制方面,进行没 有语义差异的客户虚拟机内存检查机制,利用硬件提供的虚拟异常机制,将扩展页 表异常自动转换为虚拟异常,从而可以在客户虚拟机内部截获。每次发生扩展页表 异常的时候都可以实时进行内存检查,避免了虚拟机监控器进行周期性检查的检查 时间-使用时间(TOCTTOU)问题;在客户虚拟机内部对于扩展页表异常或虚拟异常的 相关信息进行安全检查,无需虚拟机监控器的帮助。客户虚拟机内部拥有完整语义 信息,避免虚拟机监控器因为缺乏完整的语义信息而无法进行精确检查的情况。仅在发生扩展页表异常的时候才会被扩展页表截获模块截获并后续处理,而正常情况 下不会频繁发生扩展页表异常,对性能影响小。在行为学习中,通过学习应用访问 内存的行为完善安全检查规则,虚拟机监控器中的应用行为学习模块会学习客户虚 拟机中每个应用请求访问内存的模式特征。通过分析应用请求访问内存的模式特征, 识别出经常发生非法访问的请求,进而完善客户虚拟机中的安全检查规则。
传统的在内核中提供隔离环境的方法大都是纯粹从软件层面提供解决方案,但本发明通过合理利用扩展页表、VMFUNC指令和虚拟异常等现有的硬件机制,提出了 一种高效、实时、没有语义鸿沟的虚拟机内核态的内存隔离机制。本发明所利用的 VMFUNC指令不仅限于内核态,在用户态也可以执行,因此除了能够在内核态提供隔 离执行环境之外,也可以用来在同一个用户态程序内部提供不同的隔离执行环境。 同时,本发明提出的解决虚拟机监控器和客户虚拟机之间的语义鸿沟的方法,不仅 可以被用于检查客户虚拟机内存,还可以用于其他需要完整客户虚拟机语义信息的 方案中。主要特征尤其体现在于,利用扩展页表控制客户虚拟地址到主机物理地址 的映射,从而实现在同一客户虚拟机内核态提供不同的隔离执行环境,即使使用同 一客户物理地址也可以读取到不同的数据。通过使用硬件提供的虚拟异常机制,使 得能够在虚拟机内部发生扩展页表异常时进行实时内存检查。通过在虚拟机内部进 行安全检查,拥有完整语义信息,解决了语义差异问题,从而使得检查结果更加精 确。通过学习应用请求的行为,更新对于用户请求和虚拟异常的安全检查规则。
以下对本发明中涉及到的缩略语和关键术语进行定义:
硬件虚拟化技术:指硬件提供的各种虚拟化机制(例如VT-x),可以用于虚拟机 性能加速。
虚拟机监视器:指对物理机器的各种资源(例如内存、硬盘)进行抽象并分配给 多个虚拟机的软件,使得各个虚拟机拥有在物理机器上相同的功能。
虚拟地址空间/物理地址空间:指在系统启用页表后,系统将默认使用虚拟地 址来对应不同的物理地址,处理器中的内存管理单元负责通过页表进行虚拟地址到 物理地址的转换。
客户虚拟地址/客户物理地址/主机物理地址:客户虚拟地址指在虚拟机运行 的程序所使用的地址,处理器中的内存管理单元通过页表将客户虚拟地址转换成为 客户物理地址。主机物理地址指物理机器上的真实物理内存,处理器通过扩展页表 将客户物理地址转换为主机物理地址。
页表/扩展页表:指处理器用于进行地址翻译的一段空间,页表用于虚拟地址 空间到物理地址空间的转换,扩展页表进行客户物理地址到主机物理地址的转换。
VMFUNC:传统情况下,客户虚拟机切换扩展页表需要虚拟机监视器的帮助,为 了加快扩展页表的切换,处理器提供了VMFUNC指令使得客户虚拟机无需虚拟机即 可切换到另一套事先定义好的扩展页表。
虚拟异常:传统情况下,当扩展页表无效时,硬件会触发对应中断并陷入虚拟 机监控器进行处理,而虚拟异常机制允许该异常被客户虚拟机捕获到并进行处理。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提 供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及 嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模 块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬 件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序 又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改, 这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的 特征可以任意相互组合。

Claims (10)

1.一种客户虚拟机内存动态隔离和监控系统,其特征在于,包括:
用户请求处理模块:处理用户态程序发送给内核的用户请求,根据用户请求中携带的参数,确定执行所述用户请求的扩展页表;
扩展页表异常截获与处理模块:依据用户请求,在虚拟机中截获由扩展页表引发的异常情况,判定所述异常情况的异常状态,根据异常状态筛选出合法请求,并将合法请求发送至虚拟机监控器;
虚拟机监控器交互模块:处理与虚拟机监控器的交互,所述交互包括请求虚拟机监控器创建扩展页表或者修改扩展页表;
扩展页表通信模块:为在不同扩展页表中运行的程序提供一套统一的通信机制,使得扩展页表在地址隔离时能够正常通信;
扩展页表管理模块:接收客户虚拟机发送的创建扩展页表或切换扩展页表的请求,执行创建第二扩展页表,所述第二扩展页表与已存在的第一扩展页表分别映射到不同的主机物理内存;
应用行为学习模块:通过机器学习,获得客户虚拟机在运行过程中的行为特征,根据行为特征识别运行过程中出现的高危行为,完善地址隔离;
其中,用户请求处理模块、扩展页表异常截获与处理模块、虚拟机监控器交互模块、扩展页表通信模块分别部署在客户虚拟机中,扩展页表管理模块、应用行为学习模块分别部署在虚拟机监控器中。
2.根据权利要求1所述的客户虚拟机内存动态隔离和监控系统,其特征在于,所述用户请求处理模块包括:
扩展页表切换模块:控制客户虚拟机能够在不同扩展页表中进行安全切换,防止未授权的扩展页表进行切换操作;
扩展页表同步模块:控制多个扩展页表中的共享数据同步。
3.根据权利要求1所述的客户虚拟机内存动态隔离和监控系统,其特征在于,所述扩展页表异常截获与处理模块包括:
虚拟异常模块:将扩展页表引发的异常情况转换成虚拟异常;
安全检查模块:通过客户虚拟机内部的语义信息对虚拟异常进行安全检查,判断是否是合法操作造成异常情况,若是合法操作,则作为合法请求发送至虚拟机监控器进行扩展页表操作;否则,则提示用户收到非法异常,拒绝处理用户请求,记录日志。
4.根据权利要求1所述的客户虚拟机内存动态隔离和监控系统,其特征在于,所述应用行为学习模块包括:
获取模块:获取行为特征,所述行为特征包括用户请求访问的客户物理地址范围、触发扩展页表异常的次数和类型、访问未授权的关键数据的次数中的任一种或任多种;
学习模块:采用机器学习,得到用户请求的行为统计结果,发送至客户虚拟机,客户虚拟机获取行为统计结果后,进行完善用户请求的安全检查。
5.一种客户虚拟机内存动态隔离和监控方法,其特征在于,包括:
用户请求处理步骤:接收用户态程序发送给内核的用户请求,根据用户请求中携带的参数,确定所述用户请求对应目标的扩展页表,并切换至目标的扩展页表;
扩展页表异常截获与处理步骤:在虚拟机中截获由扩展页表引发的异常情况,判定所述异常情况的异常状态,根据异常状态筛选出合法请求,并将合法请求发送至虚拟机监控器;
虚拟机监控器交互步骤:根据用户请求所携带参数,执行对应的交互程序,实现与虚拟机监控器的交互,所述交互包括请求虚拟机监控器创建扩展页表或者修改扩展页表;
扩展页表通信步骤:为在不同扩展页表中运行的程序提供一套统一的通信机制,使得扩展页表在地址隔离时能够正常通信;
扩展页表管理步骤:接收客户虚拟机发送的创建扩展页表或切换扩展页表的请求,执行创建第二扩展页表,所述第二扩展页表与已存在的第一扩展页表分别映射到不同的主机物理内存;
应用行为学习步骤:通过机器学习,获得客户虚拟机在运行过程中的行为特征,根据行为特征识别运行过程中出现的高危行为,完善地址隔离;
其中,用户请求处理步骤、扩展页表异常截获与处理步骤、虚拟机监控器交互步骤、扩展页表通信步骤分别部署在客户虚拟机中,扩展页表管理步骤、应用行为学习步骤分别部署在虚拟机监控器中。
6.根据权利要求1所述的客户虚拟机内存动态隔离和监控方法,其特征在于,所述用户请求处理步骤包括:
扩展页表切换步骤:控制客户虚拟机能够在不同扩展页表中进行安全切换,防止未授权的扩展页表进行切换操作;
扩展页表同步步骤:控制多个扩展页表中的共享数据同步。
7.根据权利要求1所述的客户虚拟机内存动态隔离和监控方法,其特征在于,所述扩展页表异常截获与处理步骤包括:
虚拟异常步骤:将扩展页表引发的异常情况转换成虚拟异常;
安全检查步骤:通过客户虚拟机内部的语义信息对虚拟异常进行安全检查,判断是否是合法操作造成异常情况,若是合法操作,则作为合法请求发送至虚拟机监控器进行扩展页表操作;否则,则提示用户收到非法异常,拒绝处理用户请求,记录日志。
8.根据权利要求1所述的客户虚拟机内存动态隔离和监控方法,其特征在于,所述应用行为学习步骤包括:
获取步骤:获取行为特征,所述行为特征包括用户请求访问的客户物理地址范围、触发扩展页表异常的次数和类型、访问未授权的关键数据的次数中的任一种或任多种;
学习步骤:采用机器学习,得到用户请求的行为统计结果,发送至客户虚拟机,客户虚拟机获取行为统计结果后,进行完善用户请求的安全检查。
9.根据权利要求1所述的客户虚拟机内存动态隔离和监控系统或者权利要求5所述的客户虚拟机内存动态隔离和监控方法,其特征在于,所述扩展页表在客户虚拟机内核中能够提供地址隔离,利用扩展页表控制客户虚拟地址到主机物理地址的映射;
所述截获由扩展页表引发的异常情况时,利用硬件提供的虚拟异常机制,在虚拟机内部发生扩展页表异常时进行实时内存检查;
所述根据行为特征识别运行过程中出现的高危行为后,得到行为统计结果,根据行为统计结果更新对于用户请求和虚拟异常的安全检查。
10.一种客户虚拟机内存动态隔离和监控方法,其特征在于,包括:
创建扩展页表步骤:收到客户虚拟机请求后,对扩展页表分配内存,对内存进行解析关键数据地址,删除关键数据映射,激活扩展页表;
切换扩展页表步骤:收到切换扩展页表请求后,客户虚拟机调用指令序列,检查请求参数的合法性,若合法则切换至目标扩展页表,并隔离运行,运行完成后切换回源扩展页表,客户虚拟机调用指令序列返回;
截获异常步骤:客户虚拟机运行后,若截获扩展页表异常,则判断异常是否合法,若合法,则下陷至虚拟机监控器,处理扩展页表,并进行行为分析,记录分析结果;若不合法,则提示用户,记录日志。
CN201910190051.8A 2019-03-13 2019-03-13 客户虚拟机内存动态隔离和监控方法及系统 Active CN110058921B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910190051.8A CN110058921B (zh) 2019-03-13 2019-03-13 客户虚拟机内存动态隔离和监控方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910190051.8A CN110058921B (zh) 2019-03-13 2019-03-13 客户虚拟机内存动态隔离和监控方法及系统

Publications (2)

Publication Number Publication Date
CN110058921A true CN110058921A (zh) 2019-07-26
CN110058921B CN110058921B (zh) 2021-06-22

Family

ID=67316833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910190051.8A Active CN110058921B (zh) 2019-03-13 2019-03-13 客户虚拟机内存动态隔离和监控方法及系统

Country Status (1)

Country Link
CN (1) CN110058921B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949369A (zh) * 2020-08-03 2020-11-17 上海交通大学 面向图形处理器的可信执行环境构建方法及系统
CN112464221A (zh) * 2019-09-09 2021-03-09 北京奇虎科技有限公司 内存访问行为的监控方法及系统
WO2021059125A1 (en) * 2019-09-24 2021-04-01 International Business Machines Corporation Obscuring information in virtualization environment
CN112988508A (zh) * 2021-03-04 2021-06-18 浙江中控研究院有限公司 一种基于内存隔离的可信plc嵌入式系统
CN113608906A (zh) * 2021-06-30 2021-11-05 苏州浪潮智能科技有限公司 云计算内存地址段异常测试方法、系统、终端及存储介质
WO2023098536A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 一种运行进程的方法及装置
CN111949369B (zh) * 2020-08-03 2024-05-31 上海交通大学 面向图形处理器的可信执行环境构建方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477496A (zh) * 2008-12-29 2009-07-08 北京航空航天大学 基于分布式内存虚拟化的numa结构的实现方法
US20140189194A1 (en) * 2012-12-29 2014-07-03 Ravi L. Sahita Low overhead paged memory runtime protection
CN105117649A (zh) * 2015-07-30 2015-12-02 中国科学院计算技术研究所 一种用于虚拟机的防病毒方法与系统
CN106203082A (zh) * 2016-06-29 2016-12-07 上海交通大学 基于虚拟化硬件特性的高效隔离内核模块的系统及方法
CN106970823A (zh) * 2017-02-24 2017-07-21 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
CN107102888A (zh) * 2017-04-25 2017-08-29 华中科技大学 一种基于硬件虚拟化技术的共享库隔离保护方法及系统
CN107479946A (zh) * 2017-08-16 2017-12-15 南京大学 一种内核模块的交互行为监控方案
CN107667350A (zh) * 2015-06-15 2018-02-06 英特尔公司 基于虚拟化的平台保护技术
CN107797895A (zh) * 2017-05-08 2018-03-13 中国人民解放军国防科学技术大学 一种虚拟机安全监控方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477496A (zh) * 2008-12-29 2009-07-08 北京航空航天大学 基于分布式内存虚拟化的numa结构的实现方法
US20140189194A1 (en) * 2012-12-29 2014-07-03 Ravi L. Sahita Low overhead paged memory runtime protection
CN107667350A (zh) * 2015-06-15 2018-02-06 英特尔公司 基于虚拟化的平台保护技术
CN105117649A (zh) * 2015-07-30 2015-12-02 中国科学院计算技术研究所 一种用于虚拟机的防病毒方法与系统
CN106203082A (zh) * 2016-06-29 2016-12-07 上海交通大学 基于虚拟化硬件特性的高效隔离内核模块的系统及方法
CN106970823A (zh) * 2017-02-24 2017-07-21 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
CN107102888A (zh) * 2017-04-25 2017-08-29 华中科技大学 一种基于硬件虚拟化技术的共享库隔离保护方法及系统
CN107797895A (zh) * 2017-05-08 2018-03-13 中国人民解放军国防科学技术大学 一种虚拟机安全监控方法及系统
CN107479946A (zh) * 2017-08-16 2017-12-15 南京大学 一种内核模块的交互行为监控方案

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SIQI ZHAO 等: "On the Effectiveness of Virtualization Based Memory Isolation on Multicore Platforms", 《2017 IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY (EUROS&P)》 *
胡志希: "Xen虚拟机内存安全隔离技术研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464221A (zh) * 2019-09-09 2021-03-09 北京奇虎科技有限公司 内存访问行为的监控方法及系统
WO2021059125A1 (en) * 2019-09-24 2021-04-01 International Business Machines Corporation Obscuring information in virtualization environment
GB2602438A (en) * 2019-09-24 2022-06-29 Ibm Obscuring information in virtualization environment
GB2602438B (en) * 2019-09-24 2022-11-02 Ibm Obscuring information in virtualization environment
US11556365B2 (en) 2019-09-24 2023-01-17 International Business Machines Corporation Obscuring information in virtualization environment
CN111949369A (zh) * 2020-08-03 2020-11-17 上海交通大学 面向图形处理器的可信执行环境构建方法及系统
CN111949369B (zh) * 2020-08-03 2024-05-31 上海交通大学 面向图形处理器的可信执行环境构建方法及系统
CN112988508A (zh) * 2021-03-04 2021-06-18 浙江中控研究院有限公司 一种基于内存隔离的可信plc嵌入式系统
CN112988508B (zh) * 2021-03-04 2022-03-18 浙江中控研究院有限公司 一种基于内存隔离的可信plc嵌入式系统
CN113608906A (zh) * 2021-06-30 2021-11-05 苏州浪潮智能科技有限公司 云计算内存地址段异常测试方法、系统、终端及存储介质
CN113608906B (zh) * 2021-06-30 2023-08-08 苏州浪潮智能科技有限公司 云计算内存地址段异常测试方法、系统、终端及存储介质
WO2023098536A1 (zh) * 2021-11-30 2023-06-08 华为技术有限公司 一种运行进程的方法及装置

Also Published As

Publication number Publication date
CN110058921B (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN110058921A (zh) 客户虚拟机内存动态隔离和监控方法及系统
CN105393255B (zh) 用于虚拟机中的恶意软件检测的过程评估
US9832226B2 (en) Automatic curation and modification of virtualized computer programs
EP2764434B1 (en) Security in virtualized computer programs
CN103620613B (zh) 用于基于虚拟机监视器的反恶意软件安全的系统和方法
Fu et al. {HYPERSHELL}: A Practical Hypervisor Layer Guest {OS} Shell for Automated {In-VM} Management
CN103370715A (zh) 用于保护虚拟计算环境的系统和方法
CN103907098A (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
WO2006014554A9 (en) Method and system for monitoring system memory integrity
CN111597109A (zh) 一种跨架构固件堆内存的缺陷检测方法及系统
CN104021344A (zh) 一种用于收集和截获计算机内存行为的蜜罐机制及其方法
US20160232354A1 (en) System memory integrity monitoring
CN112433822A (zh) 基于三权分立的跨域网络终端虚拟机的实现方法
CN110737888B (zh) 虚拟化平台操作系统内核数据攻击行为检测方法
Peisert et al. Principles-driven forensic analysis
Rana et al. Automated windows behavioral tracing for malware analysis
Qiang et al. CloudVMI: A cloud-oriented writable virtual machine introspection
Reeves Autoscopy Jr.: Intrusion detection for embedded control systems
Kang et al. Minicon: Automatic enforcement of a minimal capability set for security-enhanced containers
Tsifountidis Virtualization security: Virtual machine monitoring and introspection
CN106775923B (zh) 处理器协助的内核地址空间细粒度管理方法
CN108491249A (zh) 一种基于模块权能的内核模块隔离方法及系统
KR102183649B1 (ko) 커널 무결성 검증 장치 및 그 방법
Zhao et al. Secure logging for auditable file system using separate virtual machines
Liu et al. HRPDF: A Software-Based Heterogeneous Redundant Proactive Defense Framework for Programmable Logic Controller

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