论文部分内容阅读
Windows Rootkit最早可追溯到DOS时代的木马程序,当时DOS系统的安全机制本身很不完善,因此Rootkit作为恶意软件的辅助工具并未受到攻击者的重视。1999年,以GregHoglund发布NT Rootkit为开端,内核态Rootkit开始出现并迅速发展成熟。随着恶意软件开始大量使用,内核态Rootkit开始显示其威力,它使恶意软件对系统管理员和防护软件不可见,给计算机安全带来了很大威胁,一段时期内未出现有效的应对手段。2005年前后,独立软件开发者和反病毒软件厂商开始提供反Rootkit工具,并不断推出新的检测方法,但Rootkit编写者总能通过分析检测工具的原理而采取规避措施,并不断尝试进入检测软件下层和系统底层。近年来一些隐藏性很高的Rootkit原型的出现表明,Rootkit将持续给计算机系统安全带来重大威胁。
本文试图通过对现有Rootkit技术的研究和已有检测方法的分析,提出一个可靠的检测方法。本文的主要贡献和创新点如下:
1.分析了当前Rootkit技术的特点,并据此对Rootkit进行了分类。根据Rootkit技术原理的不同,可将其分为:破坏代码完整性、破坏数据完整性、利用合法系统机制三类。根据Rootkit运行层次的不同,又分为:用户层、内核层、启动层、虚拟层四类。Rootkit技术越来越复杂,同时不断向系统核心和底层发展。
2.分析了新一代Windows操作系统引入的相关增强安全机制,及其对Rootkit的防护效果。由于未引入新的安全边界,因此目前的实践表明,这些机制难以有效阻止Rootkit。
3.分析了当前已有Rootkit检测方法,并进行了总结分类,按照其检测目标分为检测Rootkit特征、检测系统完整性和系统信息交叉验证三类。
4.分析了当前已经出现的一些知名Rootkit检测工具,其中有些工具能够检测特定类型的Rootkit,有些检测效果较好但代价高昂,总体来说尚未有检测手段能够较完整可靠的评估系统的完整性状况,检测系统中的Rootkit。
5.基于对Rootkit特点的分析和检测软件优缺点的总结,提出了Rootkit检测的几个难点,其中最核心的问题是Rootkit拥有内核态权限。为应对该问题,本文通过对Windows系统中用户态--内核态安全边界的分析,提出了可信域概念,并从中提出了系统可信的检测条件,同时本文从监控机制的角度探讨了监控系统所应满足的条件,综合上述分析,本文提出了基于构造父可信域的的Windows内核监控系统模型,该模型试图通过控制系统内核的行为来控制和检测系统中的Rootkit行为。
6.近年来出现的硬件辅助虚拟化技术和本文提出的监控系统的要求相符,因此本文采用该技术设计了硬件辅助Rootkit检测系统,系统包含代码完整性保护和系统信息获取两大部分,其中后者包括利用硬件辅助虚拟化获取进程列表,枚举过滤驱动和内核回调函数,解析文件系统和注册表储巢检测隐藏文件和注册表内容几个模块,系统从代码完整性、数据完整性和合法系统机制三个方面控制和检测Rootkit。本文实现并测试了系统信息获取部分,测试表明系统能够准确检测已有Rootkit,达到预期目标。