论文部分内容阅读
随着黑客技术发展,rootkits对操作系统安全造成了巨大威胁。借助虚拟机监控器可以有效检测rootkits攻击,虽然rootkits可以获得操作系统内核级别权限,但是虚拟机监控器权限要高于操作系统内核。然而对于如何利用虚拟机监控器保护内核数据问题,目前相关研究并没有很好解决,特别是保护动态改变的内核数据。直接内核对象操作攻击可以将特定内核对象从内核数据中删除或添加,或者修改内核数据区重要字段。目前一些研究提出用访问控制策略等方法保护内核数据,但这些研究提出方法的rootkits检测能力并不全面,可用性不强,性能及可靠性不高。 为了更好保护内核数据,本论文提出一种基于轻量级虚拟机监控器的内核数据防御体系,新体系由被动防御和主动防御构成。被动防御借助了基于轻量级虚拟机监控器的虚拟机自省架构,用于检测被rootkits隐藏的进程、模块、文件等。主动防御借助了基于模块白名单的内核数据访问控制策略,在虚拟机监控器拦截客户操作系统对内核数据写请求,新策略判断此写请求是否合法:如果合法,允许写操作执行,反之,拒绝写请求。新策略中,提出可疑行为内核模块追踪算法用于定位发起非法写请求的rootkits。 本论文主要贡献包括: 第一,提出一种基于轻量级虚拟机监控器的内核数据防御体系。新体系结合被动防御和主动防御,相对同类研究,新体系提供了更高性能,更强可靠性,以及更全面rootkits检测能力。 第二,提出一种基于轻量级虚拟机监控器的虚拟机自省架构。新架构在轻量级虚拟机监控器上解决了虚拟机自省技术中语义鸿沟问题,新架构包含进程、模块链表和文件系统重构,以及寄存器、内存访问拦截,用于检测rootkits。虚拟机自省新架构具有更高运行效率,更强可靠性。 第三,提出一种基于模块白名单的内核数据访问控制策略。新策略有效保护内核静态数据和动态数据,检测直接内核对象操作、系统调用劫持等攻击。特别地,对于将攻击代码放置在其初始化过程中的LKM(Loadable kernel module)rootkits,提出的可疑行为内核模块追踪算法通过追踪函数调用帧栈可以找出发起对内核数据发起写请求的LKM,并结合模块白名单判断该LKM是否为rootkits。 第四,借助Intel VT-X虚拟化框架中扩展页表技术,提供内核变量和结构体粒度内核数据保护。目前相关研究大多采用影子页表技术,相比扩展页表技术,会造成更多性能开销。 为验证本论文提出内核数据防御体系,将其实现名为Hypro的系统。以具有代表性rootkits实验证明Hypro具有全面rootkits检测能力,能检测出同类研究无法检测的rootkits。以Lmbench等程序性能测试证明Hypro相对于其他同类研究具有更低性能开销。