| 摘要 | 第1-5页 |
| Abstract | 第5-10页 |
| 第1章 绪论 | 第10-17页 |
| ·网络安全现状 | 第10页 |
| ·网络信息安全 | 第10-11页 |
| ·安全操作系统 | 第11-15页 |
| ·安全操作系统的定义 | 第11-12页 |
| ·安全操作系统的发展过程 | 第12-13页 |
| ·典型的Linux安全操作系统 | 第13-15页 |
| ·论文的工作与目标 | 第15页 |
| ·论文的组织结构 | 第15-17页 |
| 第2章 Linux内核实现机制 | 第17-32页 |
| ·动态可加载内核模块 | 第17-21页 |
| ·什么是动态可加载内核模块 | 第17-18页 |
| ·内核模块的特点 | 第18页 |
| ·如何使用内核模块 | 第18-21页 |
| ·系统调用 | 第21-26页 |
| ·系统调用的安全意义 | 第21-22页 |
| ·系统调用源代码分析 | 第22-25页 |
| ·系统调用的实现流程 | 第25-26页 |
| ·Linux文件系统 | 第26-31页 |
| ·VFS文件系统 | 第26-27页 |
| ·VFS文件系统的结构 | 第27-31页 |
| ·VFS与具体文件系统的对应 | 第31页 |
| ·本章小结 | 第31-32页 |
| 第3章 隐藏功能模块 | 第32-44页 |
| ·隐藏功能模块的必要性 | 第32页 |
| ·内核模块的实现机制 | 第32-40页 |
| ·数据结构 | 第32-35页 |
| ·实现函数 | 第35-40页 |
| ·利用匹配模块名字的方法实现隐藏LKM | 第40-41页 |
| ·利用删除模块链表节点的方法实现隐藏LKM | 第41-42页 |
| ·测试结果 | 第42-43页 |
| ·本章小结 | 第43-44页 |
| 第4章 监控特权命令 | 第44-54页 |
| ·监控特权命令chattr的必要性 | 第44-45页 |
| ·文件系统的隐藏属性 | 第45-46页 |
| ·替换系统调用 | 第46-49页 |
| ·通过System.map和vmLinux取得sys_call_table地址 | 第47-48页 |
| ·通过中断向量取得sys_call_table地址 | 第48-49页 |
| ·chattr命令执行流程 | 第49-51页 |
| ·替换sys_ioctl()系统调用 | 第51-52页 |
| ·测试结果 | 第52-53页 |
| ·本章小结 | 第53-54页 |
| 第5章 监管用户连接记录 | 第54-71页 |
| ·日志系统对Linux系统安全的重要性 | 第54页 |
| ·Linux日志系统实现机制 | 第54-62页 |
| ·用户连接日志 | 第54-57页 |
| ·进程统计日志子系统 | 第57-58页 |
| ·错误日志子系统 | 第58-62页 |
| ·监管用户连接记录 | 第62-69页 |
| ·过滤用户连接记录 | 第62-64页 |
| ·清除用户连接记录 | 第64-69页 |
| ·测试结果 | 第69-70页 |
| ·本章小结 | 第70-71页 |
| 第6章 总结 | 第71-73页 |
| ·总结 | 第71页 |
| ·展望 | 第71-73页 |
| 参考文献 | 第73-75页 |
| 致谢 | 第75页 |