论文部分内容阅读
微软最初设计的基于NT架构的操作系统,初衷是在满足用户对操作系统功能需求的基础上,为用户提供一个易于使用的系统界面。然而近年来随着互联网的普及和计算机的高速发展,针对Windows平台的病毒和木马技术的广泛关注与研究,使得Windows的主机安全性问题源源不断地暴露出来。如何对主机的安全进行防护、及时阻断病毒和木马对主机系统的攻击、最大程度地降低主机系统的安全风险,已经成为安全领域的一个重要研究内容。作为主机安全的攻击方和防御方,病毒、木马与安全软件产品都在使用不同层次的rootkit技术进行信息的窃取与防护。只有对这类攻击技术有着比较深入的认识与了解,才能进一步研究如何针对这类技术进行检测并作出主动防御的策略。本文一开始就首先介绍了被rootkit广泛使用的各种技术的原理,这些原理是作为本课题主动防御系统的铺垫,只有深入理解rootkit的相关技术原理才能够提出对应的检测和防御方案。接着研究并实现了基于rootkit的主动防御系统的检测模块和监控模块。根据rootkit技术多样性的特点提出了基于交叉对比的rootkit检测方法,克服了传统rootkit检测工具针对rootkit检测的单一性缺点。监控模块通过分析应用程序的行为,创新性地通过挂钩由用户层进入内核层的必经之路KiFastCallEntry内核函数,设计并实现了一个易修改、易分工和具备良好扩展性的主动防御监控框架。当发现可疑的系统服务被调用时利用自己建立的规则来进行拦截或者放行,这种策略不依赖于恶意程序的繁衍与变迁,可以使防御技术不受制于恶意程序,并且通过注册表的变动回调来保护自身不被病毒和木马破坏。通过在虚拟执行环境下进行的实验结果表明该框架具有非常良好的稳定性和扩展性。接下来对于进程主动防御、注册表主动防御和文件主动防御的研究和实现都是基于该框架的。论文的最后设计并实现了驱动防火墙,在rootkit加载驱动的时候设置一道屏障以防止rootkit对主动防御系统造成攻击,相比较于传统的反病毒反木马软件,该主动防御系统具有极强的健壮性。另一方面通过分析应用程序的行为,克服了传统反病毒反木马软件通过特征码扫描方法,只能发现已知病毒而不能发现未知病毒的缺点。