论文部分内容阅读
操作系统内核漏洞普遍存在,并且安全补丁时效性差,使得操作系统内核甚至是整个计算机系统难免处于持续严重的安全威胁之中。Linux安全模块作为Linux安全模型实现的基础框架,在Linux操作系统安全方面起着至关重要的作用。基于上述事实,保证Linux安全模块的功能在内核受到攻击的情况下不被破坏或绕过,从而保障用户态安全策略能够继续实施,对操作系统安全有重要意义。现有的内核保护方案都针对某一种特定的攻击行为或一类具有特定语义的结构,只能从代码、数据或控制流中的一个方面对内核进行保护,不能达到对Linux安全模块功能复杂的保护要求。而简单地组合已有保护方案虽然能够达到保护要求,但是由于这些方案的保护范围仍然是整个内核,因而在性能上有过多开销。 针对上述问题,本文开展了以下工作: 首先,本文提出了新的思路,即将操作系统内核结构化为关键保护结构和非关键保护结构,使得保护范围从整个内核缩减至关键保护结构,对关键保护结构提供全面的保护,使得操作系统内核能以较小的代价获得较强的安全能力。鉴于Linux安全模块在操作系统安全方面的重要作用和地位,本文将Linux安全模块作为关键保护结构的基础,研究与之相关的内核结构,并把这些结构也作为关键保护结构。 再者,本文提出了以扩展页表的权限设置为基础结合内核页表的权限设置的内核结构保护的基本方法,以及根据各种关键保护结构的自身特点研究相应的具体保护方法,确保在内核有漏洞的情况下,这些保护结构都是安全的。 最后,本文研究了包括非传统的Hypervisor架构和延时启动在内的轻量级Hypervisor相关技术,减小了可信计算基的大小,从而降低了可信计算基自身出现安全问题的可能性,并解决了保护过程遇到的诸多如内核自修改代码这样的实际问题。 本文对最终的保护方案进行了实验与评估,结果表明该方案是有效可行的、低性能损耗的并具有广泛的适用性。