论文部分内容阅读
随着计算机技术和网络的发展,软件面临着越来越多的安全问题,人们对可信软件的需求也随之变得愈加强烈。可信软件的构建是当前国际上信息安全领域的研究热点。一般来说,软件包括应用软件和基础软件,应用软件往往依赖于基础软件,因此,建立基础软件的可信性是确保整个软件系统可信的根本所在。操作系统是最常见的基础软件,研究操作系统的可信性可以立足于建立操作系统安全敏感部分的可信性,一种建立操作系统安全敏感部分的可信性的方法是:利用完整性度量支撑机制对操作系统的安全敏感部分进行监测。度量机制是完整性度量支撑机制的核心组件。为使完整性度量支撑机制得到的监测结果令人信服,度量机制必须受到保护。因此,如何保护完整性度量支撑机制中的度量机制,对完整性度量支撑机制的正常工作乃至可信软件的构建都至关重要。 本文提出一种基于CPU虚拟化功能的保护机制,以完整性度量支撑机制中的度量机制为受保护对象,防止度量机制遭到恶意或无意篡改。将保护机制分成页表项管理模块和监控器模块,分别用以防御度量机制可能面临的两类篡改攻击。首先,当度量机制内存权限为可写时,其他软件可以直接篡改度量机制,针对这种情况,页表项管理模块修改度量机制的内存权限,保证其他软件运行时度量机制内存权限为不可写;其次,当度量机制内存权限为不可写时,其他软件可以先通过修改页表项使度量机制的内存权限变为可写,再实施篡改攻击,针对这种情况,监控器模块充分利用了CPU虚拟化功能,截获操作系统中的修改页表项行为,以禁止其他软件修改度量机制对应的页表项。 引入CPU虚拟化功能的原因是:要防止其他软件篡改度量机制,就需要截获操作系统中的修改页表项行为,在当前软件手段无法实现有效或高效的截获的情况下,希望通过挖掘现代硬件功能来解决这个问题,CPU虚拟化正是符合我们需求的硬件功能。 本文的主要贡献如下: 第一,提出一种基于CPU虚拟化功能的保护机制,以完整性度量支撑机制中的度量机制为受保护对象,防止度量机制遭到恶意或无意篡改; 第二,基于本文所提的保护机制,开发了相应的原型系统VIsolator,并进行了保护功能测试和性能测试,测试结果表明VIsolator能够有效地防止一个真实的度量系统遭到篡改。