一种基于内核虚拟机的rootkit检测机制及检测方法技术

技术编号:6602891 阅读:358 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于内核虚拟机的rootkit检测机制及检测方法,该机制对rootkit的攻击对象类型进行了抽象分类:静态代码段,静态数据段,动态分配函数,堆空间数据,并且针对不同类型提供了不同的保护和检测机制;而具体的rootkit敏感信息,则通过运行在客户机中的运行时模块来获取,通过增加语义处理通道实现内核虚拟机和客户机之间的信息交互,通过扩展对应的缺页异常处理程序和vmcall主动陷入机制,保证该机制下客户机正常执行。本发明专利技术能够有效的组织针对静态代码和数据段的攻击并且在很小开销下和安全环境下实现动态信息的隔离保存和检测恢复。

【技术实现步骤摘要】

本专利技术属于操作系统安全领域,特别是一种基于内核虚拟机(简称KVM)的 rootkit检测机制及检测方法。
技术介绍
随着计算机技术的应用深入,在计算机技术和研究领域,性能不再是主要的着力点,取而代之的是对系统高可靠和安全。一次计算机故障或者安全隐患,可能给运行在其上的应用带来无法估量的损失。Rootkit,作为一种运行在操作系统核心态的恶意代码,可以为上层的应用提供进程、文件、通信连接的隐藏功能。后门程序一旦利用Rootkit,则可以逃避系统管理员和监控程序,实现自己的目的,从而给关键应用带来危害。现有的针对Rootkit的检测机制,主要有两种手段。第一种手段依赖检测-恢复机制。具体地说,这种方式基本措施是,针对核心易受Rootkit攻击的关键数据段或者代码段,保存其副本,在内核中运行一个检测线程和恢复线程,检测线程定期去检测这些敏感区域,一旦发现异常,则立即启动恢复线程去恢复;第二种手段是定制或者修改内核,对于 rootkit常见于以可加载内核模块方式实现,可以在编译时强制禁用这项功能,但是系统扩展性较差,另外就是通过修改操作系统内核,通过修改内核中模块加载函数sys_init_ module扩充加载过程,这种手段通过执行完模块初始化函数后,再对敏感区域进行检测,一旦发现异常,记录信息并且将当前正在加载的内核模块卸载。在上述两种方案中,基于检测-恢复机制的手段是最常规的方法,缺点也很明显, 首先是不能防范rootkit的发生,定期检测具有一定的滞后性,并且检测线程带来了一定的时间开销,检测线程也易于受到rootkit的影响。第二种修改源代码的方式,由于其机制在加载模块中触发,相比第一种方法,具有一定的防范rootkit的能力,但是需要修改操作系统内核,耦合性不好,并且如果rootkit行为不是在模块加载过程中执行,仍然可以逃脱检测机制。
技术实现思路
本专利技术所要解决的技术问题是提供,将rootkit对象抽象成四类形式,通过扩展KVM虚拟机,实现对客户机不同类型的rootkit的形式分类进行防止或检测,在一定条件下,可以跟踪以及卸载产生恶意行为的客户机可加载内核模块。本专利技术基于内核虚拟机的rootkit检测机制,包括客户机和内核虚拟机;所述客户机包括获取客户机在运行时的相关信息并将该信息注入给内核虚拟机的运行时模块和接收内核虚拟机的反馈信息的监测线程;所述内核虚拟机包括解析运行时模块注入的信息的语义重构模块,以及为语义重构模块提供处理通道的管理模块和异常处理模块,其中,所述管理模块提供运行时影子页表遍历和设置机制,所述异常处理模块通过语义重构模块解析异常处理;所述客户机在运行时的信息分为静态内核代码,静态内核数据,动态分配函数空间以及堆空间关键数据,内核虚拟机的语义重构模块根据注入的不同类型的信息对应的分为静态代码段,静态数据段,动态分配函数空间以及堆空间关键数据,并根据注入的不同类型的信息建立不同的检测策略。作为本专利技术的优选实施例,所述客户机的运行时模块包括静态关键数据信息注入和检测线程、静态代码信息注入和检测线程,以及根文件系统信息注入线程;作为本专利技术的优选实施例,所述客户机的运行时模块通过vmcall的方式将接收的信息注入到内核虚拟机中;本专利技术基于内核虚拟机的rootkit检测机制方法,包括以下步骤(1)在客户机中加载一个运行时模块,采集客户机运行时的信息并将该信息注入给内核虚拟机,所述客户机运行时的信息分为静态内核代码,静态内核数据,动态分配函数空间以及堆空间关键数据;(2)在内核虚拟机中提供一个客户机的语义重构模块,解析从客户机的注入的信息,然后根据注入信息的类型建立不同的策略;(3)在内核虚拟机中提供一个管理模块和异常处理模块,为语义重构模块提供处理通道。在所述步骤(1)中,运行时模块以vmcall的方式将获取的信息注入到内核虚拟机中,然后客户机内的检测线程检测内核虚拟机反馈注入信息,然后通过注入的信息扫描可加载模块链表,卸载恶意模块;在所述步骤O)中,所述语义重构模块在建立不同的检测策略前,首先扩展内核虚拟机的hypercall机制,为客户机语义信息注入处理机制,hypercall判断当前异常触发参数信息,若为客户机注入的是定义值,则进入语义重构模块;所述hypercall根据客户机参数类型是否为GUEST_RUNTIME_INFOR而判定是否进入语义重构模块;所述步骤O)中所述的不同的检测策略如下若注入类型为静态内核代码段,通过扫描客户机影子页表,设置影子页表项写保护,并且一切客户机区间为不可信区间;若注入类型为静态内核数据,扫描客户机影子页表,设置影子页表项的写保护,并且根据运行时注入参数设置客户机信任区间,信任区间可以对该数据写操作,默认为内核代码段;若注入类型为动态代码函数,通过二进制扫描方式获取函数区间,隔离于客户机保存在内核虚拟机中,通过阈值触发来进行完整性检测;若注入类型为堆空间动态数据,获取与之相关的操作函数,将函数与数据保存在内核虚拟机中,通过阈值触发来进行完整性检测;所述阈值触发通过训练函数的执行间隔实现,若最近间隔序列调整大于预定阈值,则通过二次超时方式进行完整性检测。本专利技术基于内核虚拟机的rootkit检测机制及检测方法至少具有以下优点本专利技术将rootkit攻击对象抽象分类为四类静态代码段,静态数据段,动态分配函数,堆空间数据,针对不同类型提供了不同的保护和检测机制;而具体的rootkit敏感信息,则通过运行在客户机中的运行时模块来获取,通过增加语义处理通道实现内核虚拟机和客户机之间的信息交互,通过扩展对应的缺页异常处理程序和vmcall主动陷入机制,保证该机制下客户机正常执行。如此,本专利技术能够有效的组织针对静态代码和数据段的攻击并且在很小开销下和安全环境下实现动态信息的隔离保存和检测恢复。附图说明图1为本专利技术检测机制的整体结构框图;图2是基于可信代码区间和主机页表写保护的客户机内存区域保护策略流程示意图;图3是KVM缺页异常处理程序;图4是基于统计阈值二次触发的完整性检测算法流程。具体实施例方式本专利技术基于内核虚拟机的rootkit检测机制,首先,将Rootkit实现形式对象抽象为四种类型静态内核代码,静态内核数据,动态分配代码函数以及内核堆空间数据结构。在客户机中加载一个运行时模块和监测线程,其中,所述运行时模块的目的是为了获取客户机在运行时的相关信息。作为底层的虚拟机监控器KVM,其无法获取除系统级信息之外的客户机语义信息,因此,客户机的运行时模块是在运行时实现和底层客户机的语义交互。客户机的运行时模块在运行时获取的信息包括中断向量表,系统调用表,内核代码段信息,文件系统关键数据信息等。客户机的运行时模块作为一个标准的内核模块,以字符设备形式存在,并为客户机的用户层提供接口。所述客户机的运行时模块是通过vmcall的方式将运行时的客户机信息注入到 KVM。运行时模块将客户机运行时信息封装成不同的语义信息,通过同步指令vmcall注入 KVM,并且启动客户机监测线程,监测KVM反馈的信息。KVM提供扩展hypercall的调用功能,当传递参数为客户机运行时信息GUEST_ RUNTIME_INF0后,调用KVM语义重构模块。KVM语义重构模块负责接收本文档来自技高网
...

【技术保护点】
1.一种基于内核虚拟机的rootkit检测机制,其特征在于:包括客户机和内核虚拟机;所述客户机包括获取客户机在运行时的相关信息并将该信息注入给内核虚拟机的运行时模块和接收内核虚拟机的反馈信息的监测线程;所述内核虚拟机包括解析运行时模块注入的信息的语义重构模块,以及为语义重构模块提供处理通道的管理模块和异常处理模块,其中,所述管理模块提供运行时影子页表遍历和设置机制,所述异常处理模块通过语义重构模块解析异常处理;所述客户机在运行时的信息分为静态内核代码,静态内核数据,动态分配函数空间以及堆空间关键数据,内核虚拟机的语义重构模块根据注入的不同类型的信息对应的分为静态代码段,静态数据段,动态分配函数空间以及堆空间关键数据,并根据注入的不同类型的信息建立不同的检测策略。

【技术特征摘要】
1.一种基于内核虚拟机的rootkit检测机制,其特征在于包括客户机和内核虚拟机;所述客户机包括获取客户机在运行时的相关信息并将该信息注入给内核虚拟机的运行时模块和接收内核虚拟机的反馈信息的监测线程;所述内核虚拟机包括解析运行时模块注入的信息的语义重构模块,以及为语义重构模块提供处理通道的管理模块和异常处理模块,其中,所述管理模块提供运行时影子页表遍历和设置机制,所述异常处理模块通过语义重构模块解析异常处理;所述客户机在运行时的信息分为静态内核代码,静态内核数据,动态分配函数空间以及堆空间关键数据,内核虚拟机的语义重构模块根据注入的不同类型的信息对应的分为静态代码段,静态数据段,动态分配函数空间以及堆空间关键数据,并根据注入的不同类型的信息建立不同的检测策略。2.如权利要求1所述的一种基于内核虚拟机的rootkit检测机制,其特征在于所述客户机的运行时模块包括静态关键数据信息注入和检测线程、静态代码信息注入和检测线程,以及根文件系统信息注入线程。3.如权利要求1或2所述的基于内核虚拟机的rootkit检测方法,其特征在于所述客户机的运行时模块通过vmcall的方式将接收的信息注入到内核虚拟机中。4.一种基于内核虚拟机的rootkit检测方法,其特征在于包括以下步骤(1)在客户机中加载一个运行时模块,采集客户机运行时的信息并将该信息注入给内核虚拟机,所述客户机运行时的信息分为静态内核代码,静态内核数据,动态分配函数空间以及堆空间关键数据;(2)在内核虚拟机中提供一个客户机的语义重构模块,解析从客户机的注入的信息,然后根据注入信息的类型建立不同的策略;(3)在内核虚拟机中提供一个管理模块和异常处理模块,为语义重构模块提供处理通道。5.如权利要求4所述的基于内核虚拟机的...

【专利技术属性】
技术研发人员:张兴军吴忠远王恩东董渭清董小社胡雷钧张东郑豪吴楠彭义勇宋鸿雁卫进
申请(专利权)人:西安交通大学山东高效能服务器和存储研究院
类型:发明
国别省市:87

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1