操作系统内核受到攻击,会对操作系统以及应用程序造成重大的威胁,为了保证操作系统内核的完整性,
操作系统是计算机硬件和软件的纽带,是应用软件运行的基础环境,而内核的安全性是操作系统安全的核心问题,若操作系统内核受到攻击,会对操作系统以及应用程序造成重大的威胁。
文献[1]中指出了可信验证包括启动验证和运行时验证两种类型,启动验证来源于认证启动[2],认证启动保证了操作系统开机启动时是安全可信的,如果开机启动时不能够保证操作系统的安全性,则开机启动之后的验证将不再有意义。如何在开机启动时保护操作系统的完整性,防止恶意程序攻击内核系统是可信计算[3] [4]亟待解决的问题。
本文通过在UEFI BIOS 启动的过程中, 基于TCM [5]芯片的加密和认证等功能,完成对操作系统内核文件的完整性度量,从而保证了操作系统内核的完整性和安全性。
IMA [6] (IBM integrity measurement)提出了一种有效的度量方法, 该方法是在加载动态链接库或内核模块时,对用到的一些关键数据和信息进行度量,并将度量的结果扩展到通过TPM 来保护的信任链中。
IMA 架构要求任何软件在加载的时候都要被度量,而用户可能只关心某一部分的完整性,对于这些用户来说IMA 度量会有冗余,会降低系统的效率[2]。
而本文提出的基于UEFI [7]的操作系统完整性度量方法只是对操作系统的内核进行完整性度量,而且适用于一台计算机装一个或者多个操作系统的情况。该方法是以硬件芯片作为起点,度量在BIOS 中执行, 增加了其自身的安全性, 相对于那些在应用层做度量的方法更安全。
而且将被检测的对象分离开, 更能够有效的防止篡改和不可旁路性,在实现技术上,通过一台安全管理服务器来管理度量初始值的安全性,更简单方便。
UEFI (United Extensible Firmware Interface)是Intel 联合业界采用开源方式共同制定推出的规范[8]。
UEFI BIOS 定义了操作系统和平台固件之间的接口标准,是运行在操作系统和硬件之间的一个新的模型[9]。UEFI 较BIOS 有可编程性好,可扩展性好,安全性高等优点,所以能够很快速的取代传统BIOS, 成为新一代的趋势。
2. 基于UEFI的操作系统完整性度量的总体设计 基于UEFI 的操作系统完整性度量主要包括两部分,一部分是需要度量的客户机,另一部分是进行安全管理的服务器。整个系统的流程图如图1 所示,客户机首先在UEFI BIOS 启动的时候获取操作系统的内核以及版本,对操作系统内核做Hash 运算,然后判断本地存储的OsKernalFile 文件是否被篡改,如果被篡改,则将OsKernalFile 文件里的内容清空后向服务器发送请求,要求服务器发送该版本的安全内核文件;如果没有被篡改,再查看本机中是否存储该操作系统的安全内核Hash 值以及该Hash 值是否失