内核是操作系统最核心的部件,是所有硬件和软件资源的管理者,内核的完整性是操作系统安全中最重要的问题之一。然而,现有的内核完整性保护技术主要基于虚拟机或者其他硬件设备,存在适用性有限和性能开销过大两点不足。本课题基于随机化方法研究内核完整性保护技术。研究主要分三部分首先对内核目标对象的可随机化性进行研究,并总结出可随机化规则;然后根据可随机化目标对象的分类和特点研究相应的随机化和去随机化等算法,并证明随机化和去随机化等算法的完备性;最后在Linux内核进行原型系统的实现,同时为了防止可能出现的针对随机化方案本身的攻击,进行了二次随机化技术的研究,并实现相应的工具。本课题一方面随机化针对性强且粒度较细,因而对内核完整性保护较好;另一方面适用性强且开销很小,仅在系统加载时有一定的开销,基本不增加运行时开销。本研究成果将促进操作系统整体安全的提高,并可以转化为实际高安全操作系统内核的设计和实现。
Operating System;Key Data Structure;Integrity of Kernel;Randomization;
操作系统安全是计算机系统安全和计算机网络安全的基础,AT&T 实验室的S.Bellovin 博士对CERT提供的安全报告进行过分析,结果表明很多安全问题的根源都在操作系统的安全脆弱性之中。而操作系统内核是操作系统最核心的部件,是所有硬件和软件资源的管理者,内核的完整性是操作系统安全中最重要的问题之一。而攻击者只要劫持了内核就能够轻易获取其他重要的计算机系统信息(例如root账户的password等),因而攻击者总是想方设法构造各种巧妙的、复杂的破坏内核完整性的攻击程序。针对内核完整性的攻击可以分为以下三类1)滥用(misuse)内核模块化(modularization)装载机制形式的内核完整性攻击。 2)利用内核代码自身漏洞形式的内核完整性攻击。3)DMA-capable外围设备直接DMA(Direct Memory Access)篡改内核内存形式的内核完整性攻击。现有的防御内核完整性攻击的工作,根据防御的不同阶段和方式,大致分为以下四个方面1)攻击分析技术。2)依靠感染后系统特定特征的攻击检测技术。3)阻止恶意代码执行的内核完整性保持技术。4)内核关键数据保护技术。然而,现有的内核完整性保护技术主要基于虚拟机或者其他硬件设备,存在适用性有限和性能开销过大两点不足。本课题基于随机化方法研究了内核完整性保护技术。主要工作包括首先对内核目标对象的可随机化性进行研究,并总结出可随机化规则;然后根据可随机化目标对象的分类和特点研究相应的随机化和去随机化等算法,并证明随机化和去随机化等算法的完备性;最后在Linux3.2.0内核进行原型系统的实现。同时为了防止可能出现的针对随机化方案本身的攻击,进行了二次随机化技术的研究,并实现相应的工具。本课题一方面随机化针对性强且粒度较细,因而对内核完整性保护较好;另一方面适用性强且开销很小,仅在系统加载时有一定的开销,基本不增加运行时开销。本研究成果将促进操作系统整体安全的提高,并可以转化为实际高安全操作系统内核的设计和实现。