基于硬件虚拟化的虚拟机进程代码分页式度量方法

2018-04-12 05:51蔡梦娟陈兴蜀殷明勇
计算机应用 2018年2期
关键词:调用内核完整性

蔡梦娟,陈兴蜀,金 鑫,赵 成,殷明勇

(1.四川大学 网络空间安全研究院,成都 610065; 2.四川大学 计算机学院,成都 610065;3.中国工程物理研究院 计算机应用研究所,四川 绵阳 621900)(*通信作者电子邮箱chenxsh@scu.edu.cn)

0 引言

虚拟化技术是云计算平台的核心技术之一,随着云计算服务的大量应用,云计算平台中的安全成为关注焦点。一般情况下,云环境下的关键业务需要长时间地稳定运行,为用户提供高质量的服务,安全性和可用性是保证服务质量的关键。美国国家标准机构(National Institute of Standards and Technology, NIST)发布的《完全虚拟化安全指南》[1]指出,传统主机面临的安全威胁同样适用于云计算环境下的虚拟机。对于部署在虚拟机中的业务程序,一方面虚拟机操作系统存在代码漏洞或内部配置不合理等缺陷,另一方面业务程序自身代码也存在安全漏洞。《2015年12月计算机病毒疫情分析》[2]指出的恶意木马变种Trojan.PSW/Tepfer.lst等可窃取计算机操作系统敏感数据,破坏应用程序甚至修改宿主进程代码以伪装自身存在,严重威胁关键业务运行的稳定性及云平台信息的安全性。文献[3]指出云服务商须对自身进行安全监管以保障云平台上业务及数据的安全,因此,对虚拟机中进程代码进行完整性度量,以检测其是否遭受恶意篡改,对于保证服务的稳定性与安全性、减少用户损失、增强虚拟机安全性等具有重要作用。

传统的基于主机的监控系统因其与恶意软件位于同一操作系统内部,易被其绕过或攻击而失效,如HookAPI[4]等。虚拟化技术的发展在提高资源利用率的同时也为安全研究带来了新的思路:文献[5-8]采用在虚拟机监视器(Virtual Machine Monitor, VMM)层部署监控系统,利用VMM的强隔离性、强控制性和高特权级等优势,使检测模块与虚拟机系统隔离开来,在虚拟机外部采用虚拟机自省(Virtual Machine Introspection, VMI)[9]获取虚拟机内部信息,实现对虚拟机中进程的监控,解决传统基于主机的检测过程中遇到的问题。完整性验证流程一般包括度量和验证两部分:度量部分负责收集系统内部信息并发送至验证部分;验证部分负责保存原始基值,并与接收的度量信息进行比较以验证完整性。云环境下针对虚拟机系统进行度量的方法中,根据度量部分的部署位置可分为两类:1)将度量部分部署在虚拟机中;2)将度量部分部署在Hypervisor中。第一类方法通过在虚拟机内部捕获进程行为,获取系统信息并传至验证部分,如文献[10-11]。此类方法可获取丰富的虚拟机系统信息,但存在以下不足:1)依赖目标虚拟机版本,通用性不强;2)易受虚拟机内部恶意软件的攻击,需要Hypervisor提供额外的防护措施,增加了开发的复杂性。第二类方法在虚拟机外部完成信息获取及验证的流程,如文献[12-14],其中IVirt[12]通过Xen提供的Xencontrol和Xenstore接口在虚拟机外部进行地址转换和内容定位,将虚拟机代码页逐页复制到特权用户可访问的存储空间进行完整性验证。此类方法无需修改虚拟机,克服了将度量部分部署在虚拟机内部的不足,但同时也面临挑战:1)VMM层与虚拟机之间的语义鸿沟[15]问题;2)现代操作系统使用“按需分配”的方式分配物理内存,在某一时刻只有部分进程代码被加载至物理内存,且其物理地址空间不一定连续,因此在VMM层难以获取完整的虚拟机进程代码段。如IVirt[12]就需保证虚拟机进程代码全部加载至内存中,当代码段很大时,该种实现方式会带来严重的内存消耗。

针对以上问题,本文提出一种基于硬件虚拟化的虚拟机进程代码分页式度量方法,并实现了原型系统——虚拟机分页式度量系统(Virtual Machine Paging-Measurement System, VMPMS)。VMPMS以基于内核的虚拟机(Kernel-based Virtual Machine, KVM)作为虚拟机监视器,在VMM层截获虚拟机进程行为作为度量流程的触发点,可实现对运行进程的动态度量;并基于相对地址偏移方法对虚拟机中进程语义进行重构,解决了不同版本虚拟机之间的语义差异;提出并实现了分页式度量方法在虚拟机外部验证进程代码段的完整性,无需修改虚拟机。VMPMS采用无代理方式,可实现在VMM层对虚拟机中运行进程代码段的完整性验证,且无需保证度量进程代码段全部加载至内存,具有较好的适用性与灵活性。

1 VMPMS设计

进程代码完整性攻击威胁主要包括两种:1)修改进程二进制可执行文件;2)对运行进程代码进行挂钩操作,破坏原有执行流程。现有的部分研究集中于在程序启动之前验证其完整性,如基于可信计算组织(Trusted Computing Group, TCG)的完整性度量架构(Integrity Measurement Architecture, IMA)[16]及其改进方法PRIMA(Policy-Reduced Integrity Measurement Architecture)[17],此类方法为静态度量,无法验证运行进程的完整性。Huh等[18]及Stelte等[19]设计的SIMA(Sensory Integrity Measurement Architecture)在虚拟机内核中安装度量代理,对运行进程的完整性进行验证,但将度量软件与被度量程序置于同一系统,安全性较差;同时,若要度量多个目标虚拟机,则需在每个虚拟机中插入度量模块,增加了管理的复杂性。针对以上缺陷,本文设计的VMPMS采用无代理方式,将度量流程置于VMM层,利用其高特权级提升系统的安全性;同时每一台物理机只需部署一套度量系统,减少了资源消耗;此外,VMPMS基于事件捕获机制,可实现对运行进程完整性的验证。

KVM是基于硬件辅助虚拟化的一个Linux内核模块,其实现需要Intel VT(Virtualization Technology)或AMD SVM(Secure Virtual Machine)技术的支持[20]。KVM运行在Root模式,负责管理虚拟机内存及CPU,处理虚拟机因异常或执行特权指令引发的VM Exit事件。同时,KVM利用VMCS(Virtual Machine Control Structure)[21]保存宿主机与虚拟机切换过程中的硬件上下文环境,并可以指定引发VM Exit的事件。VMPMS基于虚拟机中的系统事件,主动触发虚拟机进程代码段的度量,其总体架构如图1所示。

图1 VMPMS架构Fig. 1 Architecture of VMPMS

VMPMS分为三个模块:捕获模块、语义重构模块和分页动态度量模块。捕获模块负责捕获虚拟机进程的系统调用事件。语义重构模块采用VMI获取虚拟机进程信息,如进程名称、进程代码段起始地址与结束地址等。分页动态度量模块根据语义重构模块传递的进程信息,以虚拟机物理页大小为单位对进程代码段进行划分,对已载入物理内存的代码页进行度量,并根据基值库中的基值验证其完整性,将对比结果写入日志;对于尚未载入物理内存的代码页,暂时忽略其度量,待其被载入物理内存之后再度量。基值库保存虚拟机进程代码各页的度量值,可以文件、数据库等形式存在,日志则用于记录度量模块的代码页度量信息与基值库中基值信息的对比结果。

2 VMPMS实现

2.1 捕获模块

捕获模块捕获虚拟机中的系统事件,根据其引发的虚拟机寄存器等状态的变化获取底层语义。系统事件为虚拟机系统中能引发虚拟机退出的进程行为,本文采用拦截虚拟机中进程的系统调用,实现在VMM层对进程行为的捕获。

在X86架构下,当操作系统中的进程需要执行系统调用时,其首先将系统调用号保存至EAX寄存器,之后通过系统调用陷入指令完成用户态到内核态的切换和进程上下文的保存。以32位操作系统为例,当其使用sysenter指令执行系统调用时,系统会读取存放在MSR_IA32_SYSENTER_EIP寄存器中的系统调用入口函数地址,据此VMPMS实现了基于MSR_IA32_SYSENTER_EIP寄存器的虚拟机系统调用拦截机制,其原理如图2。

在虚拟机启动加载内核镜像完毕后,VMPMS在VMM层将MSR_IA32_SYSENTER_EIP寄存器的值初始化为一个非法地址,并将原地址保存。虚拟机进程执行系统调用时,将由于访问非法地址引发page fault异常,产生VM Exit陷入至VMM层触发其处理流程。VMPMS读取虚拟机退出原因,若其因page fault异常退出,则判断当前虚拟机EIP寄存器的值是否为初始化的非法地址,若是则说明虚拟机因系统调用被拦截而退出,VMPMS进而开启对当前进程的度量流程,度量完毕后将被截获的系统调用入口函数地址装入虚拟机EIP寄存器,执行VM Entry恢复虚拟机系统调用正常执行流程。对于不需要处理的page fault陷入则注入虚拟机中按照原有流程正常执行,避免额外的性能损耗。

图2 虚拟机系统调用截获原理Fig. 2 Interception principle of virtual machine system call

在KVM平台上,虚拟机内部产生的page fault异常默认由虚拟机内核自身处理,不会产生VM Exit陷入至KVM中,故需设置VMCS 中EXCEPTION_BITMAP字段,使虚拟机的page fault可引发VM Exit。Intel官方定义的page fault有五种[22]:存在位异常、读写异常、模式异常、保留位异常及取指令异常。内核在处理缺页异常之前,CPU控制单元将产生一个硬件错误码(Hardware Error Code)并压入到内核态堆栈中,引发缺页异常的原因不同,硬件错误码也不同,其保存在缺页错误码(Page Fault Error Code, PFEC)字段中。只有当PFEC中的硬件错误码满足式(1)的关系时,虚拟机中产生的page fault才会引发VM Exit。

PFEC & PFEC_MASK=PFEC_MATCH

(1)

本文通过对缺页错误错误码掩码域(Page Fault Error Code Mask, PFEC_MASK)和缺页错误错误码匹配域(Page Fault Error Code Match, PFEC_MATCH)两个字段进行设置,可让虚拟机仅在发生取指令异常时陷入至VMM中,对缺页异常进行过滤。

2.2 语义重构

VMM位于虚拟机底层,具有更高的权限,能获取目标虚拟机内存中的二进制数据。但两者存在语义鸿沟问题,VMM无法得知这些数据的具体含义,语义重构模块利用捕获模块截获的虚拟机底层语义,结合内核数据结构得出高级语义。文献[23]中的vMon结合虚拟机操作系统内核源码和硬件虚拟化技术,可对多种版本虚拟机进程相关语义信息进行重构,但vMon在无法获取虚拟机内核版本或内核源码的情况下作用有限,且分析复杂内核源码的工作量很大。本文实现了一种基于相对地址偏移的语义重构方法,利用测试模块获取进程描述符与其内部属性的相对地址偏移,可灵活地获取虚拟机进程描述符中的信息,对vMon的方法进行了改进。

本文在目标虚拟机中实现测试模块,由于进程描述符中的元素在内存中是连续存放的,元素之间的相对地址偏移量保持不变,故获取进程描述符地址与其内部属性地址的差值即为相对地址偏移量,该方法仅需运行一次即可得到相关偏移量,具有通用性,可兼容多种虚拟机内核版本。

以获取进程描述符中属性pid为例,原理如图3。Linux操作系统为每一个CPU准备了一个任务状态段(Task State Segment, TSS),任务寄存器(Task Register, TR)用于保存其地址。操作系统发生进程调度时,内核将当前进程的内核栈指针保存在TSS的esp0域中。故获取虚拟机TR寄存器中的值,进一步得到tss.esp0,即当前进程内核栈栈顶单元地址,与GUEST_ESP_TO_THREAD进行与运算后得到thread_info结构体的首地址,其task字段指向进程描述符;得到进程描述符地址后,结合测试模块所得的偏移量,由式(2)即可得到属性pid的地址,同理可获取其他属性的地址及内容。

TaskAddr+offset=MemAddr

(2)

其中:TaskAddr为进程描述符基地址,offset表示元素与基地址的偏移量,MemAddr表示元素地址。

图3 Linux环境下语义重构原理Fig. 3 Principle of semantic reconstruction in Linux environment

2.3 分页动态度量

在操作系统中,进程利用页表完成虚拟地址到物理地址的映射和转换。在开启分页机制的情况下,操作系统通过“按需加载”的方式以物理页为单位分配物理内存。在物理内存资源紧张时,操作系统会将一部分物理页面的内容写入到磁盘,因此在进程运行的某一时刻,进程的所有代码页并不一定全部载入物理内存中,还可能存在于磁盘文件或交换分区中。此外,由内存虚拟化[24],客户机操作系统所见为虚拟的客户机物理地址空间,为了正确地访问内存,需要将客户机虚拟地址(Guest Virtual Address, GVA)转换成宿主机物理地址(Host Physical Address, HPA),其映射过程如图4所示。GVA到客户机物理地址(Guest Physical Address, GPA)的转换由客户机页表完成,支持扩展页表(Extended Page Table, EPT)机制时,GPA到宿主机虚拟地址(Host Virtual Machine, HVA)的映射是线性一一对应的,宿主机页表完成HVA到HPA的转换,可见在虚拟机中连续存放的内存地址映射至宿主机中则不一定连续。若要在VMM层一次获取虚拟机完整代码段再度量,则需获取在内存与不在内存的所有代码页,并按其顺序重新“拼凑”,其实现十分复杂且内存消耗巨大。

图4 GVA到HPA的映射过程Fig. 4 Mapping process from GVA to HPA

基于此,本文提出分页式度量的方法在VMM层验证虚拟机进程代码段的完整性。VMPMS拦截虚拟机进程系统调用,使其产生page fault异常陷入至KVM,经过语义重构得到当前运行进程代码段的起始地址与结束地址,以虚拟机物理页大小为单位对代码段进行划分,按照代码页顺序依次进行度量操作。对某个特定的代码页,KVM首先判断其是否已载入物理内存中,若是则采用SHA-1哈希算法对其进行度量操作,并将度量值与基值库中该页的基值进行对比,将结果写入日志文件中;若该代码页尚未载入物理内存,说明在此度量时刻虚拟机尚未执行该代码页,则暂时忽略其度量,待其载入内存中后再度量。VMPMS捕获进程系统调用作为度量流程的触发点,使度量时机与进程执行时机相关,在KVM中实现对虚拟机进程代码段的动态度量。

基值是进程在“纯净”状态下得到的代码段各页的度量值,存储于基值库,用于对比虚拟机进程代码段动态度量值,验证其完整性。本文采用在VMM层捕获虚拟机进程代码页第一次载入内存时刻的度量值作为基值,动态地完成基值库的建立,并利用VMM层的强隔离性与高特权级提升基值库的安全性。

3 测试与分析

为验证VMPMS对虚拟机进程代码完整性度量的有效性,并评估其对目标进程和虚拟机操作系统产生的性能消耗,进行相关测试并与现有部分完整性度量方案作对比。

实验测试环境如下:宿主机操作系统为64位Ubuntu- 12.04,内核版本为Linux- 3.10.1,KVM版本为kvm- kmod- 3.10.1,QEMU版本为Qemu- 2.3.0;宿主机的CPU型号为Intel Core i3- 4160,主频为3.60 GHz,物理内存为4 GB,支持硬件辅助虚拟化。虚拟机为32位CentOS 6.5操作系统,内核版本为Linux- 2.6.32.24。

3.1 功能测试

功能测试分为两个步骤:1)对正常的虚拟机进程代码段进行度量;2)通过修改源代码的方式模拟针对进程的攻击,并度量修改后的进程代码段,以验证其完整性是否被破坏。VMPMS可对所有虚拟机进程进行度量,为方便说明,本文在虚拟机中部署版本为2.2.15的Apache服务器软件,将其作为度量对象。

Apache服务进程通过sysenter指令执行系统调用引发page fault异常陷入KVM后,KVM获取其名称及代码段地址等,采用分页式度量的方法验证其代码段完整性,Apache服务进程正常运行状态下,其度量结果如图5所示。

图5 正常进程度量结果Fig. 5 Measurement result of normal process

通过在Apache服务进程源代码的入口函数添加一行输出代码,模拟进程代码段篡改行为。修改后启动Apache服务器进程并对其进行度量,其结果如图6所示。

实验选取的httpd进程代码段较长,故此处仅截取部分代码页度量结果。对比图5、6可见,进程运行过程中并非所有代码页均已载入物理内存,如第108、109页;攻击前后进程名称和代码语义信息并无明显变化,但代码页的度量值发生了改变,如第105、106、107、110页。实验结果表明,VMPMS能够从虚拟机外部判断进程代码页是否载入物理内存,并可度量已载入内存的代码页,验证虚拟机进程代码段的完整性。

图6 模拟攻击后进程度量结果Fig. 6 Process measurement result after simulation attack

3.2 性能测试

本节分别通过ApacheBench和Unixbench测试工具测试VMPMS对目标进程及对虚拟机操作系统整体性能的影响。利用ApacheBench模拟了请求数量为3 000,并发数量为100的情况下VMPMS对Apache服务器的影响,其结果如表1所示。为更好地分析性能损耗来源,本节同时测试了开启事件捕获、关闭哈希运算的性能消耗。由表1可知,在关闭哈希运算的情况下,每秒Apache服务器的处理请求数下降24%左右。开启捕获及哈希运算之后,其平均并发请求时间为初始情况的2倍,单位时间处理请求数降低了近一半。对比可知,拦截系统调用会带来一定的性能损耗,但主要的性能损耗源于哈希运算的过程,此为哈希算法本身固有的属性,为实时地验证代码的完整性,这样的性能损耗可以接受。

表1 ApacheBench测试结果Tab. 1 ApacheBench test result

除了测试VMPMS对所度量的Apache服务器的性能损耗,本节还利用版本为5.1.2的基准测试工具UnixBench测试了其对虚拟机系统整体性能的影响,其测试结果为指数值,如表2所示。相比于初始环境,开启VMPMS后浮点运算效率测试项性能损耗几乎为0,excel函数调用测试项和shell脚本执行效率测试项性能损耗提高近30%,文件数据传输速率测试项、进程管道通信速率测试项和进出系统内核速率测试项性能消耗增加明显。由于VMPMS设置拦截系统调用作为度量触发点,故系统调用相关操作性能消耗会相应提高;且设置度量点后,虚拟机进程的系统调用会引发缺页异常陷入至KVM,故虚拟机与宿主机的上下文切换也较为频繁;此外,选取的度量进程代码段较大,度量过程中涉及从基值文件中读取基线值的过程,故文件相关的操作性能损耗也会增加。

测试结果表明,VMPMS会给目标进程及虚拟机系统带来一定的性能损耗;在VMM层验证虚拟机进程代码段的完整性,需在KVM中设置相应度量点,因此会带来如上下文切换、文件操作等的性能损耗。为提升验证进程代码段完整性的安全性与可行性,此类性能损耗可以接受。

3.3 与现有方案的对比分析

VMPMS与现有虚拟机进程完整性度量方案的对比如表3所示。从表3可以看出,这三种方法均可检测虚拟机中运行进程代码段的完整性,但与文献[10]的方案相比,VMPMS无需在客户机中添加代理模块,提高了系统的安全性,在度量多个虚拟机时无需重复部署相关代理;而与IVirt[12]相比,VMPMS则不需要将所度量的进程代码段全部载入内存,这样在度量代码段较长的进程时,VMPMS不会给内存资源带来较大的负担。由对比可知,VMPMS具有更强的适用性与灵活性。

表2 UnixBench测试结果Tab. 2 UnixBench test result

表3 VMPMS与现有方案对比Tab. 3 Comparison between VMPMS and existing methods

4 结语

为解决虚拟机进程物理内存不连续且动态换入换出导致的难以在VMM层度量虚拟机进程完整代码段的问题,本文提出了分页式度量方法在VMM层透明实时地验证虚拟机中运行进程代码段的完整性;此外,实现了基于相对地址偏移的方法获取虚拟机进程信息,解决了不同版本虚拟机之间的语义差异。实验结果表明,在功能上本文实现的VMPMS能够在VMM层有效验证被度量进程代码是否遭受篡改,在性能上VMPMS给度量进程及虚拟机系统带来的性能损耗在可接受范围内。同时本文也存在一些不足:1)本文截获进程的系统调用行为作为度量流程的触发点,可将度量时机与进程行为相关,实现对虚拟机进程的动态度量,但此种方法会带来一定的性能损耗;2)本文目前针对的虚拟机操作系统为Linux,对Windows尚未涉及。下一步将研究在实现代码完整性验证的同时,降低VMPMS带来的性能损耗;并针对不同虚拟机操作系统进行开发,进一步提高VMPMS的通用性。

参考文献:

[1]王惠莅,杨晨,杨建军.美国NIST云计算安全标准跟踪及研究[J].信息技术与标准化,2012(6):51-54. (WANG H L, YANG C, YANG J J. Research on clouds computing security standards of NIST [J]. Information Technology & Standardization, 2012(6): 51-54.)

[2]张瑞,刘威.2015年12月计算机病毒疫情分析[J].信息网络安全,2016(2):74. (ZHANG R, LIU W. Analysis of epidemic situation of computer virus in December 2015[J]. Netinfo Security, 2016(2): 74.)

[3]陈兴蜀,葛龙,罗永刚,等.云计算服务持续监管研究[J].网络与信息安全学报,2016,2(10):2-3. (CHEN X S, GE L, LUO Y G, et al. Research on continuous monitoring of cloud computing service [J]. Chinese Journal of Network and Information Security, 2016, 2(10): 2-3.)

[4]徐江峰,邵向阳.基于HOOK API技术的进程监控系统设计与实现[J].计算机工程与设计,2011,32(4):1330-1332. (XU J F, SHAO X Y. Design and realization of process-monitoring system based on HOOK API technology [J]. Computer Engineering and Design, 2011, 32(4): 1330-1332.)

[5]崔竞松,张雅娜,郭迟,等.支持多种虚拟化技术的进程非代理监控方法[J]. 华中科技大学学报(自然科学版),2014,42(11):122-124. (CUI J S, ZHANG Y N, GUO C, et al. Agent-free processes monitoring method supporting various virtualization technologies [J]. Journal of Huazhong University of Science and Technology (Nature Science Edition), 2014, 42(11): 122-124.)

[6]李博,沃天宇,胡春明,等.基于VMM的操作系统隐藏对象关联检测技术[J].软件学报,2013, 24(2):405-420. (LI B, WO T Y, HU C M, et al. Hidden OS objects correlated detection technology based on VMM [J]. Journal of Software, 2013, 24(2): 405-420.)

[7]张磊,陈兴蜀,任益,等.一种基于VMM的内核级Rootkit检测技术[J].信息网络安全,2015(4):57-59. (ZHANG L, CHEN X S, REN Y, et al. Kernel-level Rootkit detection technology based on VMM [J]. Netinfo Security, 2015(4): 57-59.)

[8]HWANG T, SHIN Y, SON K, et al. Design of a hypervisor-based rootkit detection method for virtualized systems in cloud computing environments [C]// Proceedings of the 2013 AASRI Winter International Conference on Engineering and Technology. Amsterdam: Atlantis Press, 2013:27-33.

[9]GARFINKEL T, ROSENBLUM M. A virtual machine introspection based architecture for intrusion detection [C]// Proceedings of the Internet Society’s 2003 Symposium on Network and Distributed Systems Security Symposium. [S.l.]: Internet Society, 2003: 253-285.

[10]骆源,毛亚强,廖振壹.一种用于虚拟机上的混合监控度量方法及系统:中国,CN104714877A [P]. 2015- 06- 17.

[11]孙绍钢,李晓勇.一种基于虚拟化技术的恶意代码行为检测方法:中国,CN102682229A [P]. 2012- 09- 19.

[12]林杰,刘川意,方滨兴.IVirt:基于虚拟机自省的运行环境完整性度量机制[J].计算机学报,2015,38(1):191-203. (LIN J, LIU C Y, FANG B X. IVirt: runtime environment integrity measurement mechanism based on virtual machine introspection [J]. Chinese Journal of Computers, 2015, 38(1): 191-203.)

[13]AZAB A M, NING P, SEZER E C, et al. HIMA: a hypervisor-based integrity measurement agent [C]// ACSAC’09: Proceedings of the 2009 IEEE Annual Computer Security Applications Conference. Piscataway, NJ: IEEE, 2009: 461-470.

[14]GARFINKEL T, PFAFF B, CHOW J, et al. Terra: a virtual machine-based platform for trusted computing [C]// SOSP’03: Proceedings of the 19th ACM Symposium on Operating Systems Principles. New York: ACM, 2003: 193-206.

[15]陈兴蜀,李辉,张磊,等.基于Xen的自下而上调用的设计与实现[J].电子科技大学学报,2014,43(6):881-884. (CHEN X S, LI H, ZHANG L, et al. The design and implement of Xen-based upcall [J]. Journal of University of Electronic Science and Technology of China, 2014, 43(6): 881-884.)

[16]SAILER R, ZHANG X, JAEGER T, et al. Design and implementation of a TCG-based integrity measurement architecture [C]// SSYM’04: Proceedings of the 13th Conference on USENIX Security Symposium. Berkeley, CA: USENIX Association, 2004, 13: 223-238.

[17]JAEGER T, SAILER R, SHANKAR U. PRIMA: Policy-Reduced Integrity Measurement Architecture [C]// SACMAT 2006: Proceedings of the 11th ACM Symposium on Access Control Models and Technologies. New York: ACM, 2006: 19-28.

[18]HUH J H, MONTANARI M, DAGIT D, et al. An empirical study on the software integrity of virtual appliances: are you really getting what you paid for? [C]// ASIA CCS’13: Proceedings of the 2013 ACM SIGSAC Symposium on Information, Computer and Communications Security. New York: ACM, 2013: 231-242.

[19]STELTE B, KOCH R, ULLMANN M. Towards integrity measurement in virtualized environments — a hypervisor based sensory integrity measurement architecture (SIMA) [C]// HST ’10: Proceedings of the 2010 IEEE International Conference on Technologies for Homeland Security. Piscataway, NJ: IEEE, 2010: 106-112.

[20]ALI S. Virtualization with KVM [M]// Practical Linux Infrastructure. Berkeley, CA: Apress, 2015: 53-80.

[21]Intel. Intel 64 and IA- 32 architectures software developer’s manual [EB/OL]. [2017- 05- 06]. http://www.ti.uni-bielefeld.de/html/teaching/WS1314/techinf1/64-ia-32-architectures-software-developers-manual.pdf.

[22]邓志.处理器虚拟化[M].北京:电子工业出版社,2014:200-201. (DENG Z. Processor virtualization [M]. Beijing: Publishing House of Electronics Industry, 2014: 200-201.)

[23]LI N, LI B, LI J, et al. vMON: An efficient out-of-VM process monitor for virtual machines [C]// HPCC_EUC 2013: Proceedings of the 2013 IEEE 10th International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing. Piscataway, NJ: IEEE, 2013: 1366-1373.

[24]英特尔开源软件技术中心,复旦大学并行处理研究所. 系统虚拟化——原理与实现[M].北京:清华大学出版社,2009:51-54. (Intel Open Source Technology Center,Parallel Processing Institution of Fudan University . System Virtualization: Principles and Implementation [M]. Beijing: Tsinghua University Press, 2009: 51-54.)

猜你喜欢
调用内核完整性
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
石油化工企业设备完整性管理
活化非遗文化 承启设计内核
ELM及IS/OS完整性对年龄相关性黄斑变性预后视力的影响
核电项目物项调用管理的应用研究
微软发布新Edge浏览器预览版下载换装Chrome内核
系统虚拟化环境下客户机系统调用信息捕获与分析①
高速信号采集及存储系统的信号完整性研究分析
利用RFC技术实现SAP系统接口通信