论文部分内容阅读
虚拟机监控器(Hypervisor)是云计算的核心组成部分,它负责为虚拟机提供安全保护。Hypervisor通过在内存中维护一些关键数据来管理和保护虚拟机。如果这些关键数据的完整性被破坏,那虚拟机的安全也必然受到威胁。然而目前商用的Hypervisor通常有较大的攻击面,这使得其内存中的关键数据很容易被攻击者(一个恶意的虚拟机)篡改,进而威胁到其他虚拟机的安全。为了解决这一问题,现有的解决方案通常采用HVI(HyperVisor Introspection)架构。HVI利用嵌套虚拟化,使Hypervisor运行在一个比它权限更高的嵌套Hypervisor软件层之上。HVI用一个监控器来动态地检查Hypervisor中的行为,从而保证Hypervisor内存数据的安全。同时为了确保监控器能安全工作,HVI将监控器放在一个与不可信的Hypervisor隔离的并由嵌套Hypervisor保护的可信虚拟机中。这种从Hypervisor外部对其进行监控的方式虽然能很好地保证Hypervisor的安全,但在嵌套虚拟化环境下监控器和Hypervisor之间的上下文切换会产生大量的性能开销。这也导致HVI不适用于云计算环境。本论文提出IHMI(In-Hypervisor Memory Introspection)架构。该架构基于嵌套虚拟化,并通过从Hypervisor内部对其行为进行监控来保证Hypervisor的内存安全。IHMI旨在实现比HVI更高的性能,同时达到和HVI同样的内存安全水平。为了提升性能,IHMI将监控器放在Hypervisor内部并利用硬件虚拟化技术来实现它们之间的高效切换。为了确保监控器的安全,IHMI利用扩展页表(EPT,Extended Page Table)来将监控器与不可信的Hypervisor隔离。IHMI在EPT中建立了一种单向的映射,这使得监控器能访问Hypervisor的内存但Hypervisor却无法访问监控器的内存。同时IHMI还采用了一系列安全策略来防御恶意的Hypervisor对监控器的攻击。此外,监控器与Hypervisor共用一份页表并且监控器的EPT被设置为能重复Hypervisor的客户机虚拟地址到宿主机物理地址的翻译,从而保证监控器能以本地速度访问Hypervisor的内存,进而提升监控器的运行效率。本文通过安全分析表明IHMI能达到和HVI同样的安全水平。此外,本文经测试发现IHMI中监控器与Hypervisor之间切换的开销相比HVI减少了59.1%,而且IHMI中监控器对Hypervisor内存的访问速度是HVI的5倍以上。IHMI的平均性能开销只有4.54%,并且不到HVI开销的一半。同时在所有应用场景下IHMI都具有比HVI更低的性能开销,而且在某些应用场景下IHMI相比HVI最多能减少44.91%的性能开销。本文主要有以下贡献:·本文基于嵌套虚拟化,提出In-Hypervisor Memory Introspection架构。IHMI通过一个位于Hypervisor内部的监控器来为Hypervisor提供内存保护。·IHMI能达到和HVI相同的安全水平,并利用硬件虚拟化技术实现了比HVI更高的性能。