论文部分内容阅读
近年来Linux操作系统由于其出色的性能和稳定性,开放源代码特性带来的灵活性和扩展性,获得了空前蓬勃的发展,越来越多的商用产品开始采用Linux作为其软件平台。为了解决整体式内核结构的可扩充性问题,Linux引入了可加载内核模块(Loadable Kernel Module(LKM))的机制,这使Linux操作系统更加模块化。但是,Linux内核对模块的安全问题未做全面的考虑,即使发展到2.6版本,内核也没有预留专门的安全接口供安全模块使用。这给LKM安全带来很大的隐患。一直以来,利用LKM的核心态病毒成为最活跃的黑客研究领域。LKM模块的安全机制没有因为其可扩展内核模块、运行于内核态的特殊性而加以强调。因此一般的检测工具无法同Linux安全操作系统兼容,扩展性不强,不能根据操作系统加载LKM模块的行为特性,适时有效的检测模块安全以及阻止恶意模块。本文根据当前LKM安全研究对Linux内核安全的重要性,结合随着Linux内核版本对安全特性的改变,研究LKM攻击方法,总结LKM的安全特性,分析与利用安全操作系统研究成果,提出LKM安全方面的改进方案。其主要的工作包括:1、分析与总结LKM攻击中所使用的特殊操作的知识;2、分析与实现LKM攻击的方法,如:系统调用劫持、IDT劫持、LKM注入、模块隐藏等,并给出针对2.6内核下改进的解决方案;3、总结LKM安全的缺陷与核心问题;4、分析与总结LSM框架以及SELinux的原理以及它们对LKM安全的作用;5、总结LSM安全模块对LKM安全的不足,并实现在SELinux下扩展LSM安全模块的详细方法;6、根据LKM安全的特点,结合LSM的扩展,实现LKM安全的改进方案。总之,本文分析与总结的LKM安全的内容,为LKM安全的检测与防御提供了很好的依据。同时,提出的LKM安全改进方案,为LKM安全提供了有效的、易扩展的解决方法,为后续的研究提供了很好的架构。