摘要 | 第1-5页 |
ABSTRACT | 第5-11页 |
第1章 绪论 | 第11-15页 |
·研究背景 | 第11-12页 |
·rootkit 定义 | 第11页 |
·rootkit 发展历史 | 第11-12页 |
·研究现状 | 第12-13页 |
·反rootkit 现状 | 第12页 |
·虚拟机与反rootkit 研究 | 第12-13页 |
·论文主要工作 | 第13页 |
·论文组织结构 | 第13-15页 |
第2章 Linux 系统调用与LKM | 第15-24页 |
·Linux 系统调用 | 第15-20页 |
·系统调用概述 | 第15-16页 |
·系统调用服务函数、系统调用号和系统调用表 | 第16页 |
·软件中断int/iret 方式 | 第16-18页 |
·sysenter/sysexit 方式 | 第18-20页 |
·Linux 内核模块 | 第20-22页 |
·可加载内核模块机制 | 第20-21页 |
·可加载内核模块结构 | 第21-22页 |
·本章小结 | 第22-24页 |
第3章 rootkit 的攻击原理 | 第24-47页 |
·应用级 rootkit 攻击原理 | 第24页 |
·binary kit | 第24页 |
·library kit | 第24页 |
·内核级 rootkit | 第24页 |
·攻击系统调用 | 第24-32页 |
·攻击系统调用表 | 第24-26页 |
·攻击系统调用入口函数 | 第26-30页 |
·攻击系统调用服务函数 | 第30-32页 |
·攻击中断描述符表 | 第32页 |
·攻击异常表__ex_table | 第32-39页 |
·Linux 内核中的异常表__ex_table 出现的背景 | 第33-34页 |
·缺页异常 | 第34-35页 |
·异常表__ex_table 的实现 | 第35-37页 |
·异常表__ex_table 在缺页异常的使用 | 第37-38页 |
·利用异常表__ex_table 的攻击思路 | 第38-39页 |
·通过调试寄存器攻击 | 第39-46页 |
·x86 处理器上的调试寄存器 | 第39-42页 |
·攻击原理 | 第42-46页 |
·内核级 rootkit 存在形式 | 第46页 |
·本章小结 | 第46-47页 |
第4章 原型系统设计与实现 | 第47-59页 |
·总体思路 | 第47-50页 |
·X86 上半虚拟化解决方案lguest | 第47-48页 |
·影子页表 | 第48页 |
·总体框架 | 第48-49页 |
·被监控部分写保护的实现 | 第49页 |
·被监控内存区域的组织 | 第49-50页 |
·增加类型为 LHCALL_MARKRO 的 hypercall | 第50-51页 |
·hypercall LHCALL_MARKRO 的增加 | 第51页 |
·hypercall LHCALL_MARKRO 发出的时机 | 第51页 |
·Linux 系统进程内核堆栈的获取 | 第51-52页 |
·IDTR、GDTR 寄存器写操作的监控 | 第52-53页 |
·重要全局数据的处理 | 第53-54页 |
·__mointor__属性修饰符的引入 | 第53-54页 |
·.monitor 段的引入 | 第54页 |
·函数调用链的获取 | 第54-56页 |
·写操作合法验证算法 | 第56-58页 |
·指令模拟 | 第58页 |
·指令模拟的原因 | 第58页 |
·指令模拟的实现 | 第58页 |
·本章小结 | 第58-59页 |
第5章 原型系统验证及性能评价、优化 | 第59-66页 |
·原型系统软硬件环境 | 第59页 |
·反已有 rootkit 实验结果 | 第59-60页 |
·calltrace 算法在 lguest 中的性能优化 | 第60-61页 |
·优化原理 | 第60页 |
·精确时间测量方法 | 第60页 |
·性能优化效果 | 第60-61页 |
·原型系统整体性能 | 第61-64页 |
·virtbench 性能测试程序 | 第61-62页 |
·内核配置选项CONFIG_FRAME_POINTER 对性能影响 | 第62-63页 |
·原型系统virtbench 性能测试结果与分析 | 第63-64页 |
·本章小结 | 第64-66页 |
第6章 全文总结 | 第66-68页 |
·工作总结 | 第66-67页 |
·后续工作展望 | 第67-68页 |
参考文献 | 第68-71页 |
在读期间发表的学术论文与取得的研究成果 | 第71-72页 |
致谢 | 第72页 |