论文部分内容阅读
操作系统安全是计算机系统安全的基础保障和前提条件,而操作系统安全则主要依赖于系统内核的安全。然而,随着内核攻击的不断增多,内核安全形势日益严峻。在诸多内核攻击中,作为Rootkit攻击一类的内核非控制数据攻击的威胁越来越大。针对内核的非控制数据攻击是指通过篡改内核中的某些关键数据结构,诱发内核出现漏洞和产生一系列稳定性问题,从而严重影响操作系统乃至整个计算机系统的安全。本文在分析研究现有各类内核非控制数据攻击的基础上,设计与实现了内核非控制数据攻击原型,可作为安全人员研究开发内核非控制数据攻击检测方法测试工具集。为了增强Linux内核的安全性,本文从各种攻击方法的基本原理和构建机制出发,总结它们的共同特征,研究与探索内核关键数据结构变化特性,试图实现运行(在线)状态下内核数据结构变化的持续监控,以及对内核相关数据结构的一致性和不变性的检查,从而及时反馈系统所遭受的内核非控制数据攻击的相关信息。本文提出一种基于Kprobes内核调试机制和监视器内核线程的在线检测方法。前者作为系统原生的一种用于调试内核的机制,将实时监控内核关键函数的执行,并检查相关动态性数据结构的一致性。后者则通过设立专门的以后台方式运行在内核态的内核线程来实现静态性内核数据结构的持续监测和不变性验证。论文在Linux2.6.32.27内核版本上运用C语言设计与实现了相应的内核非控制数据攻击在线检测原型KNCDefender,进行了对应的一系列验证实验和性能测试实验。实验结果表明,本文提出的方法是完全轻量级的,并能够及时检测出针对内核的各种非控制数据攻击。上述工作的完成,可为安全人员防护内核非控制数据攻击提供有益的借鉴和参考。同时表明,在现有技术的基础上实现对内核非控制数据攻击的检测是可行和有效的。当然,限于时间和精力,相关在线检测方法与原型在不同Linux内核版本及平台的适应性和可移植性方面还有待于进一步研究改进。