论文部分内容阅读
操作系统管理着计算机系统资源,操作系统安全是计算机系统安全的重要基础。一旦操作系统内核被攻击者控制,攻击者将可以对系统资源进行任意的破坏行为。内核级别的恶意程序可能寄存在内核拓展模块之中,对操作系统安全构成重要威胁,因此对内核拓展模块进行隔离保护具有重要意义。当前的商用处理器Intel、AIMD都支持硬件虚拟化技术,虚拟化技术被广泛用于内核模块的隔离。基于硬件的虚拟机可以提供良好的兼容性和安全性,但是由于会导致硬件特权级的频繁切换,带来大量的系统开销,使得现有的解决方案的性能受到影响。本文研究基于硬件虚拟化技术的内核模块高效隔离方案,以降低隔离机制带来的系统开销。本文的主要工作如下:(1)分析和总结了现有的基于虚拟化的内核拓展模块隔离方案,并比较了各种解决方案的优缺点。通过对这些方案的分析注意到,在GuestOS运行期间需要频繁的陷入到VMM之中,频繁的陷入会严重影响系统性能,因此将降低隔离机制带来的系统运行时开销作为研究的目标。(2)改进了基于硬件虚拟化技术的内核模块隔离方案,以缓解系统运行时的性能开销问题。将安全监控器放在GuestOS层,基于Intel硬件虚拟化技术,采用源代码的改写,实现了内核拓展模块的隔离。利用当前x86处理器普遍提供的虚拟机增强功能的嵌套页表快速切换,将客户虚拟机运行环境分为两个域,即安全域和非安全域。使得内核拓展模块与内核之间的控制流切换无需VMM的干预,可以有效降低系统开销。同时保证了控制流完整性、代码完整性、内核栈的完整性,并可回避语义鸿沟问题。(3)基于Intel VT技术,实现了一个内核拓展模块隔离方案的原型系统,对网卡驱动程序实现了隔离。实验、测试了网卡驱动程序运行时的性能开销,实验结果表明,本方案在网络时延方面相比相关方案有了很大的提高。