论文部分内容阅读
Linux操作系统由于其开源和免费的特点受到大家的青睐,同样其遭受的攻击也层出不穷,木马是其中威胁较大的一个,木马侵入电脑后首先并不进行破坏性的操作,但是在内部监控计算机的运行,通过事先留下的后门来传输信息以达到窃取用户信息的目的。在木马程序中最难以被用户检测到的就是更加深入操作系统内核的木马,内核层级木马是一种与内核Rootkit技术相结合的特洛伊木马。由于Rootkit处于系统的底层,具有系统最高的权限而且能够很容易的修改内核中的重要数据结构,很多软件即使查杀也只能针对一种或者几种Rootkit,井不能对所有Rootkit进行查杀,所以内核Rootkit由于其特殊性质目前已经成为计算机安全领域重点研究的课题。内核Rootkit主要是以内核模块(LKM)的形式加载到系统内核中,通过对内核的系统调用表等内核关键数据进行更改,从而实现隐藏自身及相关恶意目的。最近的研究发现Rootkit已经不仅仅通过修改内核关键数据,而且修改非控制型数据同样可以达到恶意目的,例如污染嫡池使系统无法获取有效的随机数、添加恶意二进制代码等攻击,之前Rootkit检测技术无法检测这样的Rootkit攻击,一方面因为他们只把重点放在控制数据修改的检测上,另一方面因为需要能深刻理解内核数据结构语义的专家,给出详细的内核完整性技术规范,才能检测到非控制型数据结构的修改。针对以上分析,本文提出了一种新型内核Rootkit检测技术RKdetect,通过在训练阶段系统抓取整个系统内核内存的页面,提取出数据结构并推测出不变量存储在文件系统中,在执行阶段将Rootkit植入系统之后周期性的去捕获内核内存推断不变量,并与训练阶段得到的不变量作比较查看是否发生改变,如果发生改变则存在Rootkit。本文采用观察机和目标机的模式,观察机主要完成数据结构提取、不变量推测、监控目标机、Hadoop集群搭建等功能并且在推测不变量时采用MapReduce编程,目标机主要完成相应观察机请求抓取内核内存页返回观察机。该方法能广泛应用于病毒、木马、Rootkit的检测中,对计算机的安全研究有着很大的意义。最后,为了证明RKdetect能很好的检测出普遍存在的Rootkit,本文实现了该技术,并将不同的Rootkit用来实验,结果证明了RKdetect的有效性和普遍适用性,取得了很好的效果。