论文部分内容阅读
Bootkit可以说是现阶段最顽固的恶意代码,它是Rootkit技术的一种,虽然功能上并不异于Rootkit,但是Bootkit把自身的栖息地由传统的操作系统文件扩展到了硬件BIOS、MBR等位置,同时将自身的启动提前到了与Windows系统内核启动相同的级别,甚至还要更早的阶段,这样Bootkit就能较早的取得对计算机的控制权,从而实现更强的隐藏和控制功能,可以说Bootkit是高级的Rootkit。现阶段Bootkit技术还不是很成熟,正处于研发阶段,尚未造成严重的危害,但是现有的Bootkit样本已经展现出其强大的危害性。Windows操作系统广泛应用于我们的生活中,其未开源的特性,导致用户无法重新编译系统文件以增强安全性,加之系统漏洞百出,这势必使得其变成了Bootkit攻击的重要目标。因此研究Windows Bootkit检测及防御技术具有重大意义。本文以现有Windows Bootkit样本作为切入点,分析了其实现技术和原理,结合传统Windows Rootkit检测技术,本文从实时监控、多样性检测和自身保护三方面考虑设计并实现了一种检测防御Windows Bootkit的方法。该方法通过分析虚拟机内存捕捉当前线程,从而能够快速的监视虚拟机内程序运行,并利用改进的最近邻聚类算法检测内存是否存在Bootkit。若存在,对内存填充零以清除Bootkit。并且通过实验验证了本文中方法的高效性和可靠性。本文中检测方法采用聚类分析法解决了普通检测技术单一性的问题,能适应Windows Bootkit的多变复杂性,能比较全面的检测出各种现有的Windows Bootkit,具有通用性的一面;检测程序运行于宿主机对虚拟机内存进行分析,捕捉当前线程进而获得虚拟机内部程序运行的所有情况,达到实时监控的目的;因为检测程序和Bootkit运行在不同系统中,这样使得Bootkit无法对检测程序进行破坏攻击,并且避免了检测程序调用被Bootkit修改的系统函数造成检测结果错误的情况,很好的实现了自我保护的机制。