任昭绪
【摘要】本文设计一种内核完整性保护方法TWPos,同时具备探测和防护能力,即便内核受到攻击也能进行恢复。实验表明TWPos系统既能全面有效的防护,而且又不牺牲系统性能为代价,并且兼容多种OS系统、同时防零日攻击。
【关键字】rootkits,VMM,TWPos,SAPW,DRW,GOS,HOS
1 介绍
rootkits是攻击者向计算机系统植入的,能够隐藏自身踪迹并保留超级用户访问权限的恶意程序。仅仅采用探测方式是无法保护内核完整性,即便阻止rootkits注入保证内核完整性这种方式,也存在诸多弊端,因而无法有效的保护内核完整性。鉴于此,本文采用了一种将安全防护及探测安全漏洞并进行恢复结合起来确保内核完整性的方案,称为TWPos(Two-Way Protection OS),TWPos基于VMM管理,将TWPos保护的内核划分为两种保护措施:一部分内核采用安全认证保护方式(Safe Authentication Protection Way缩写SAPW);另一部分内核采用探测恢复方式(先探测内核完整性如果被攻击则进行恢复,Detection Recovery Way缩写DRW)。TWPos将保护的内核逻辑上划分为两个部分,采用SAPW方式保护的内核部分称为SAPW-K,采用DRW方式探测保护的内核部分称为DRW-K。对于内核完整性保护,用户既可以同时选择这两种方式,也可以选择两者之一。
2 TWPos设计
2.1 设计原则
TWPos设计不仅需要内核全面安全防护措施,而且在满足安全防护的同时,考虑系统性能、多操作系统的兼容,开发成本等。本篇论文从多个角度防护展开,并且设计时兼顾性能因素。
保护角度:内存及DMA完整性,扩展模块完整性,系统调用完整性等,也就是除CPU、内存控制器、系统内存芯片之外内核所有其他部分。
性能:内核作为一个载体,它运行的效率直接决定了这个系统的性能,因此在确保OS不被攻击的同时尽量降低对系统性能的影响。
兼容性:TWPos支持多系统,这些系统无论是开源OS系统还是商用OS系统,都不需要对GOS系统进行修改或者插入TWPos模块,就能进行防护。
我们引入VMM(Virtual Machine Monitoring)技术来实现完整性保护,将TWPos开发成为一个轻量级模块或者任务嵌入VMM系统中,也就是TWPos作为VMM中的一个安全部件,充分利用VMM一些功能特性,这样大大降低了开发成本。
2.2 设计原理
GOS访存: GOS任务访问物理内存的过程:GOS虚拟地址→GOS物理地址→VMM→物理内存,这过程需要通过VMM进行内存隐射至真正的物理内存。基于这种机制将TWPos作为VMM针对GOS的一个安全部件,被保护的GOS运行在VMM之上,那么GOS任务访问物理内存的过程:GOS虚拟地址→GOS物理地址→TWPos→VMM→物理内存。GOS任务访问物理内存时,必须通过TWPos,才能访问真正物理内存,TWPos作为安全保护的重要部件,通过保护GOS物理内存达到保护GOS内核的完整性。
内存管理:将TWPos加载VMM中,TWPos从HOS(Host OS)分配大块内存,并将分配的内存划分为三大部分:第一部分内存用作安全映射表(Safety Mapping Table缩写SMT);第二部分内存用作映射内存块(Mapping Memory Block缩写MMB);第三部分用作备份内存块(Backing Memory Block缩写BMB)。这三部分内存分别作为三种不同功能的用途:SMT安全映射表建立原始内存块(Original Memory Block缩写OMB)和MMB之间映射关系,当GOS任务访问OMB内存时,通过SMT映射至MMB内存,进行访问;MMB存放的内存都是从OMB通过安全认证之后的内存,确保内核完整性,任务可以安全的访问。BMB保存备份内存,当内核完整性受到破坏时,通过BMB对内核进行恢复,确保内核代码及数据的完整性。
加载、卸载模块:根据内核模块选择保护机制不同,加载和卸载内核模块操作方式也不同。如果加载模块选择SAPW方式:内核运行过程中需要插入或卸载认证的内核模块, TWPos对内核模块进行加载和卸载分别建立映射和解除映射关系。如果采用DRW方式:加载内核模块,TWPos将加载的内核模块备份至BMB内存,并将加载模块的内存块HASH,同时将HASH值存入BMB中;卸载内核模块,TWPos首先清除内核模块存入BMB内存的HASH值,再次将内核模块备份至BMB部分的内存清除。
保护机制:被保护内核加载至内存之后,但还未执行任务之前,TWPos根据用户不同需求,采用不同策略。
SAPW机制:根据用户认证将GOS的SAPW-K内核块映射至MMB内存中,同时在SMT映射表中建立它们之间的映射关系,并且将MMB访问置为只读模式(只允许读操作,不允许写操作)。当GOS任务访问SAPW-K内核物理内存时,查找SMT映射表关系,如果找到映射关系,则访问MMB对应的内存,如果找不到对应的映射关系则访问OMB内存。
DRW机制:如果用户采用DRW机制,将GOS的DRW-K內核块备份至BMB内存中,并将DRW-K内核块的每块进行HASH,同时HASH值存入BMB内存中。DRW启动ChkPrecess内核线程周期检查OMB是否被篡改或注入,如果被篡改或注入则通过BMB进行恢复。
4 TWPos实现
TWPos实现我们从三个方面着手:一方面内核启动过程中,根据用户保护策略,如果选择SAPW保护机制,将需要保护的SAPW-K内核建立安全保护的映射关系,并且兼容SAPW保护机制的内核模块的加载和卸载,加载过程需要建立安全保护的映射关系,卸载过程需要解除安全保护的映射关系;如果选择DRW机制,将DRW-K内核进行备份和HASH,加载和卸载内核模块如果采用DRW机制也需要进行同样处理。另一方面在建立SAPW保护之后,我们需要实现SAPW保护方法,对安全认证内核的访问首先访问SMT,获取对应的映射地址,然后再访问映射地址内存。最后,DRW-K内核,不安全因素的存在可能被利用(被篡改或注入或修改控制流程等)给系统带来无法估量的后果,因此DRW机制对DRW-K进行备份和HASH,一旦出现恶意攻击,通过备份进行恢复确保内核完整性。
5 评估
对TWPos评估分为两种方式:1)防护能力;2)性能影响。
实验环境:Dell PowerEdge T310、2.4G主频、Intel Xeon X3430、4GB内存,Xen hypervisor基于3.4.2版本,dom0系统为Fedora 12,使用64位Ubuntu、内核为2.6.24作为客户机OS。
防护能力:我们建立了保护评估模型,采用现有针对内核的rootkits攻击工具,攻击分为如下几种,攻击主要通过插入模块修改控制流程、通过修改物理内存及其调用表或者中断表进入注入或者修改。从而达到隐藏或者篡改操作系统目的。
性能评估:使用Lmbench作为测试性能工具,可以测试TWPos对应用的影响,这些影响主要由于应用访问内核内存导致性能有所下降,当然这些变化只对系统性能产生轻微的影响,不会导致系统性能严重下降。那充分说明TWPos这种方式不仅能够内核系统进行有效防护、而且对系统性能也不构成影响。因此这种对内核rootkits的防护及其防护过程中出现的遗留进行有效恢复都是非常有效的。
6 结论
通过上述评估TWPos能够避免rootkits攻击,并且对内核性能也未构成大的影响,是一种比较完善高效的保护机制,并且兼容多种OS系统。但是MPOS也存在不足,体现如下一些缺陷:
VM启动过程中,还未构建或者还未构建完TWPos时,系统已经受到了rootkits攻击,导致TWPos备份内存也被篡改或者注入了rootkits就算后期探测到rootkits攻击,利用备份内存进行恢复系统,系统还是存在rootkits无法被清除。
TWPos基于VMM系统的支撑,如果CPU不具有或者不支持VMM功能,那么TWPos不仅无法对系统形成保护,并且反而减低了系统性能。
尽管TWPos有上述一些缺陷,但是不影响TWPos对内核安全防护。既能保护内核代码、数据等完整性,又对系统性能不带来大的影响。
參考文献
[1] A. Seshadri, M. Luk, N. Qu, and A. Perrig. Secvisor: A tiny hypervisor to provide lifetime kernel code integrity for commodity oses. In SOSP 07: Proceedings of twenty-first ACM SIGOPS Symposium on Operating Systems Principles,pages 335–350, New York, NY, USA, 2007. ACM.
[2] R. Riley, X. Jiang, and D. Xu. Guest-transparent prevention of kernel rootkits with vmm-based memory shadowing. In RAID 08: Proceedings of the 11th International Symposium on Recent Advances in Intrusion Detection, pages 1–20, Berlin, Heidelberg, 2008. Springer-Verlag.
[3] A. Baliga, V. Ganapathy, and L. Iftode. Automatic inference and enforcement of kernel data structure invariants. In ACSAC 08: Proceedings of the 2008 Annual Computer Security Applications Conference, pages 77–86, Washington,DC, USA, 2008. IEEE Computer Society.
[4] A. Srivastava, I. Erete, and J. Giffin. Kernel data integrity protection via memory access control. Technical Report GTCS-09-04, Georgia Institute of Technology, 2009.