论文摘要
近年来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安全提供了有效的、易扩展的解决方法,为后续的研究提供了很好的架构。
论文目录
摘要ABSTRACT第一章 绪论1.1 引言1.2 国内外研究现状1.3 论文主要工作1.4 论文组织结构第二章 关于LKM的知识分析2.1 操作系统知识2.1.1 硬件基础2.1.2 Linux内核分析2.2 Linux操作系统的可加载内核机制2.2.1 LKM模块概述2.2.2 模块(Module)的载入2.2.3 模块(Module)的卸载2.2.4 Linux2.6系列内核的模块加载2.3 本章小结第三章 LKM攻击的分析与总结3.1 系统调用劫持calltable的劫持'>3.1.1 直接使用syscalltable的劫持calltable的劫持'>3.1.2 不导出syscalltable的劫持3.1.3 VFS调用的劫持3.2 IDT劫持3.2.1 一般中断劫持3.2.2 2.6内核下的改进3.3 LKM注入3.3.1 ELF文件格式3.3.2 注入的可行性分析3.3.3 .strtab节的修改3.3.4 代码插入的方法3.3.5 隐蔽性的保持3.3.6 2.6版内核下的改进3.4 模块隐藏机制3.5 安全性分析与总结3.5.1 模块的完整性3.5.2 模块信息管理3.5.3 模块的访问控制3.5.4 恶意模块检测3.6 本章小结第四章 LSM对LKM安全的分析4.1 LSM的原理4.1.1 LSM的基本设计思想4.1.2 透明安全字段(Opaque Security Field)4.1.3 安全钩子函数4.1.4 安全模块的注册与注销4.1.5 已实现的模型4.2 SELinux访问控制机制4.3 LSM框架对LKM安全的作用4.4 SELinux对LKM安全的作用4.5 LSM对LKM安全的不足4.6 LSM的扩展方法4.7 本章小结第五章 LKM安全的改进5.1 改进的目标5.2 扩展LSM框架5.3 Hooks放置的地点5.4 子模块的设计与实现5.4.1 整体模块设计方案5.4.2 各子模块功能说明5.5 实验测试5.5.1 实验环境5.5.2 功能测试5.6 本章小结第六章 结论6.1 全文总结6.2 今后的工作和展望致谢参考文献攻硕期间取得的研究成果
相关论文文献
标签:攻击论文; 安全改进论文;