面向Linux系统的Rootkit检测技术研究与实现
摘要 | 第3-4页 |
Abstract | 第4页 |
1 绪论 | 第8-14页 |
1.1 研究背景与意义 | 第8-9页 |
1.2 国内外研究现状 | 第9-10页 |
1.3 本论文的主要工作与研究内容 | 第10-11页 |
1.4 本文的组织结构 | 第11页 |
1.5 本章小结 | 第11-14页 |
2 LinuxRootkit技术基础及原理 | 第14-24页 |
2.1 Linux系统架构 | 第14页 |
2.2 Linux内核 | 第14-15页 |
2.3 用户态和内核态 | 第15-18页 |
2.3.1 CPU特权级 | 第15-16页 |
2.3.2 用户态和内核态区分 | 第16-17页 |
2.3.3 用户态和内核态的切换 | 第17-18页 |
2.4 COFF文件格式 | 第18-19页 |
2.5 LD_PRELOAD | 第19-20页 |
2.5.1 定义 | 第19页 |
2.5.2 避免 | 第19-20页 |
2.6 KVM | 第20-21页 |
2.6.1 定义 | 第20-21页 |
2.6.2 拦截I/O | 第21页 |
2.6.3 KVM的加载 | 第21页 |
2.7 LKM | 第21-23页 |
2.7.1 LKM的概念 | 第21-22页 |
2.7.2 为何需要LKM | 第22页 |
2.7.3 基本结构 | 第22页 |
2.7.4 LKM的加载过程 | 第22-23页 |
2.7.5 LKM对安全性的影响 | 第23页 |
2.8 本章小结 | 第23-24页 |
3 LinuxRootkit技术分析与实现 | 第24-36页 |
3.1 系统调用劫持 | 第24-27页 |
3.1.1 系统调用 | 第24页 |
3.1.2 内核符号表 | 第24-25页 |
3.1.3 修改系统调用表 | 第25-27页 |
3.1.4 重定向系统调用表 | 第27页 |
3.2 进程隐藏 | 第27-29页 |
3.3 文件隐藏 | 第29-30页 |
3.4 模块隐藏 | 第30页 |
3.5 端口隐藏 | 第30-32页 |
3.6 提升ROOT权限 | 第32-33页 |
3.7 结果验证与分析 | 第33-35页 |
3.7.1 实验环境 | 第33页 |
3.7.2 实验步骤及结果 | 第33-35页 |
3.8 本章小结 | 第35-36页 |
4 Rootkit检测 | 第36-46页 |
4.1 文件特征与校验检测 | 第36-38页 |
4.2 符号执行分析 | 第38页 |
4.3 特征库扫描检测法 | 第38-39页 |
4.4 内核数据结构检测 | 第39-41页 |
4.5 已加载的系统模块检测 | 第41-42页 |
4.6 结果验证与分析 | 第42-44页 |
4.6.1 实验环境 | 第42页 |
4.6.2 实验步骤及结果 | 第42-44页 |
4.7 本章小结 | 第44-46页 |
5 总结与展望 | 第46-48页 |
5.1 工作总结 | 第46页 |
5.2 工作展望 | 第46-48页 |
致谢 | 第48-50页 |
参考文献 | 第50-52页 |