论文部分内容阅读
在安全领域,软件完整性提供了一个不同于以往的角度对软件当前的运行状态进行评估。软件完整性代表着软件的可信赖程度(trustworthiness)。而软件从文件系统上载入到内存时,软件程序文件的完整代表软件的初始运行状态是可信赖的,而在软件的运行中,如何将这种信赖传递下去,是目前研究的一大挑战。一般的认为,在运行状态下的软件完整性包含两部.分:(1)软件的运行状态的完整;(2)软件的控制流的完整。前者表示:软件在运行的状态下,代码、静态数据、动态数据和栈,必须保证不被未经授权的修改。后者表示:软件运行时的执行路径要与软件静态代码所反应的流程图一致,即软件的行为不能被非授权用户通过任何方式改变和操控。把软件划分为可信的和非可信的,有利于区别的对待不同可信度的软件,这样对构建软件完整性保护机制才能更具针对性。完整性保护包含保护策略与保护机制两部分内容,前者明确规范系统怎样才算是完整,而后者要明确系统完整性保护的具体实现方式。保护机制与保护策略的分离是一种常见做法,即先根据具体系统构建出适合的保护机制,再在此基础上实施具体的保护策略。保护机制决定了完整性保护粒度和性能代价,而保护策略则规定了保护的具体规则。说一个软件是完整的,是指它满足某一给定的完整性保护策略。操作系统内核位于可信软件体系的底层,是可信计算基的重要组成部分,而可信理论认为,信任是从可信计算基开始,建立一条信任链,一级认证一级,一级信任一级,把这种信任扩展到整个计算机系统,从而确保整个计算机系统的可信。可见而内核的完整性攸关整个系统的完整性。本文主要针对可信软件保护机制方面的研究,对可信软件的完整性保护机制进行了深入的探讨,并重点介绍了内核完整性保护机制的相关工作。根据对各种软件完整性保护机制的分析研究,发现利用虚拟机监控器实现引用验证机制是一种实施完整性保护机制的趋势。随后对虚拟化技术和Xen虚拟机监控器研究学习,找到并论证了Xen虚拟机监控器适合用于构建内核的完整性保护的引用验证机制。随后,本文设计了一种基于Xen虚拟机监控器的内核完整性保护机制,这是一种基于引用验证机的监控方案。具体的,通过将非可信内核扩展模块的内存映射并隔离在Xen的非权限域里,然后借助Xen的事件通道和授权表这两个通信机制来模拟内核与非权限域之间的交互过程。如此,就可以在两者间进行中介,以实现对非可信内核扩展模块的任何可能破坏内核的行为进行监控。最后,本文给出了所设计方案的流程实现以验证这种设计的可行性。