论文部分内容阅读
DeviceloControl机制是Windows系统下内核态与用户态进行通信的重要机制。本文对该机制下的内核驱动漏洞进行研究,包括漏洞的检测技术以及利用技术。对内核DeviceloControl漏洞的检测,目前已公开的主流研究采用动态fuzzing测试技术,是一种黑盒测试方法,缺乏对内核驱动内部信息的深入了解,测试盲目性较强。另外,传统的研究中也缺乏对漏洞模式的分析和总结。对内核DeviceloControl漏洞的利用研究,由于内核的特殊性,与传统漏洞利用技术存在较大的不同。随着最新漏洞利用缓解技术的出现,对利用技术研究也提出了更高的挑战。本文针对以上问题进行研究,主要工作包括:一、对已公开Windows内核DeviceloControl漏洞进行分析,总结并提出WTVTA (写污点值到污点地址)漏洞模式,将传统的静态污点分析技术引入对内核驱动的分析中,定义内核驱动中污点输入及其传播规则,并提出基于WTVTA模式的静态漏洞检测算法。通过对MS11-062漏洞驱动进行测试,验证了算法的有效性。二、设计实现了一个新的内核驱动测试框架,提出一种启发式的静态搜索算法获取所有测试接口,将测试程序部署在虚拟机中,控制台程序与测试程序进行通信以对测试流程进行监控。在测试过程中,收集内核驱动执行流程中的动态信息,指引后续测试用例的生成。本文选取4款国内外知名杀毒软件进行真实内核驱动的测试,实验结果表明提出的测试方法在接口覆盖率、测试用例有效性以及测试效率上均优于传统测试技术,并成功发现4个未公开的内核驱动安全漏洞。三、研究WTVTA模式漏洞的利用方法,包括控制流程的劫持以及内核ShellCode的构造技术。同时对目前最新的漏洞利用缓解技术进行研究,分析多种缓解技术如何互相配合以截断传统的利用途径。在此基础上,提出新的漏洞利用技术以对抗利用缓解技术,实现有效的提权利用。