当前位置: 首页 > 专利查询>四川大学专利>正文

基于Xen虚拟化环境的内核级rootkit检测和处理方法技术

技术编号:10152919 阅读:182 留言:0更新日期:2014-06-30 19:23
基于Xen虚拟化环境的内核级rootkit检测和处理方法,所述Xen虚拟化环境包括管理域、虚拟机监控器和半虚拟化的客户机;管理域包括控制模块,虚拟机监控器包括安全链表维护模块、检测模块和敏感信息备份模块,客户机包括运行时维护模块和rootkit处理模块。还包括客户机启动过程中敏感信息备份、内核模块加载时安全链表更新、内核模块加载成功后交叉对比检测rootkit、内核敏感信息攻击性检测和在管理域对客户机中的rootkit进行处理的步骤。本发明专利技术同步构建用户视图并与内核视图和虚拟机监控器层视图进行交叉对比,避免误检与漏检;准确地提供内核态rootkit的数量与其在内存中的位置并对检测到的rootkit的攻击行为及时恢复避免扩散;还提供了在管理域统一处理检测到的内核态rootkit的方法。

【技术实现步骤摘要】
【专利摘要】,所述Xen虚拟化环境包括管理域、虚拟机监控器和半虚拟化的客户机;管理域包括控制模块,虚拟机监控器包括安全链表维护模块、检测模块和敏感信息备份模块,客户机包括运行时维护模块和rootkit处理模块。还包括客户机启动过程中敏感信息备份、内核模块加载时安全链表更新、内核模块加载成功后交叉对比检测rootkit、内核敏感信息攻击性检测和在管理域对客户机中的rootkit进行处理的步骤。本专利技术同步构建用户视图并与内核视图和虚拟机监控器层视图进行交叉对比,避免误检与漏检;准确地提供内核态rootkit的数量与其在内存中的位置并对检测到的rootkit的攻击行为及时恢复避免扩散;还提供了在管理域统一处理检测到的内核态rootkit的方法。【专利说明】
本专利技术涉及云计算平台上的恶意软件检测和处理
,具体来讲是一种。
技术介绍
云计算,是继互联网之后业界又一个突破性的发展,它通过Internet以服务的方式提供动态可伸缩的虚拟化资源供用户使用。云计算使资源的利用与信息的共享达到了空前的高度。而与此同时,系统的安全威胁也日益加剧,恶意软件常常对系统造成严重的危害,对用户造成巨大的损失。平台的安全,已成为了用户将资源与服务迁移到云计算平台上的顾虑。恶意软件在入侵系统后,常常会通过提高自身权限进行非授权操作,同时为了维持对系统的继续控制,会在系统中留有后门,如监听进程和网络连接等。当前,恶意软件更呈现出隐蔽性与伪装性,为安全软件的检测带来了极大的困难,rootkit便是这类恶意软件中危害十分严重的代表。rootkit主要分为两类:用户级rootkit和内核级rootkit,其常见的攻击行为包括隐藏攻击者的恶意进程、文件及网络连接,提供未授权的高级权限、监听、系统日志清除及系统后门等。用户级rootkit存在于操作系统的用户空间层,较易被检测到。内核级rootkit存在于内核空间中,通常以LKM的形式插入内核,与内核拥有同样的特权级,此类rootkit的攻击常常是通过修改内核关键数据实现,隐藏性强,难以被检测,本专利技术针对内核级rootkit进行检测。云计算的核心技术是虚拟化技术,由于虚拟机监控器(Virtual MachineMonitor,简称VMM)具有更小的可信计算基、强隔离性、可干涉性及高特权级等优势,虚拟化环境下的rootkit检测已经成为一种重要的恶意软件检测方式。Xen是一个开放源代码虚拟机监控器,由剑桥大学开发。当前基于虚拟化环境下的rootkit检测主要是通过交叉视图的对比,检测系统中隐藏的rootkit,但是由于当前方式中视图获取的异步性,特别是用户视图获取的异步性,常常导致rootkit的误检与漏检。当前的检测方式由于信息有限,往往只能检测出系统中存在有隐藏的rootkit或则存在rootkit数量,但却无法进一步获取rootkit在系统内存中的位置,为后续的处理带来了困难。
技术实现思路
本专利技术的目的是提供一种,利用以Xen为虚拟机监控器的虚拟化环境,实现对目标客户机中rootkit的检测。实现本专利技术目的的技术方案如下:一种,所述Xen虚拟化环境包括管理域、虚拟机监控器和半虚拟化的客户机,管理域包括控制模块,虚拟机监控器包括安全链表维护模块、检测模块和敏感信息备份模块,半虚拟化的客户机包括运行时维护模块和rootkit处理模块;还包括步骤1:在客户机启动过程中,内核敏感数据初始化完成,没有用户进程运行和内核模块加载时,敏感信息备份模块对内核中的敏感信息进行备份,包括客户机初始化时,客户机发起超级调用HYVERVISOR_set_trap_tabIe向虚拟机监控器注册虚拟机中断描述符表;虚拟机监控器调用do_Set_trap_table函数进行虚拟机中断描述符表注册;在do_set_trap_table函数中,添加敏感信息备份模块,敏感信息备份模块通过copy_from_guest函数读取内核敏感信息,对内核中的敏感信息进行备份;所述内核中的敏感信息包括系统调用表、中断描述表、系统调用处理例程头部和敏感系统调用头部;步骤2:客户机内核模块通过应用层工具进行加载时,运行时维护模块收集正在被加载内核模块的信息,进行安全链表更新操作,包括应用程序进行内核模块加载,触发内核的sys_init_module系统调用,在sys_init_module函数进一步调用load_module函数进行模块加载,运行时维护模块通过对sys_init_module函数与load_module函数的劫持,收集被加载内核模块的信息,调用超级调用向安全链表维护模块传递内核模块信息并发起安全链表更新请求;所述被加载内核模块的信息包括内核模块名称与内核模块控制结构体在内存中的位置;安全链表维护模块检查安全链表更新请求的合法性,如果合法则获取运行时维护模块所传递的内核模块信息并进行安全链表更新操作,如果不合法,则忽略此请求;步骤3:客户机内核模块加载成功后,运行时维护模块同步建立用户视图,并收集用户视图和内核视图信息,触发超级调用,陷入虚拟机监控器,与安全链表提供的安全链表视图交叉对比进行rootkit检测,包括运行时维护模块通过call_usermodehelper调用用户态程序Ismod产生用户态视图文件;运行时维护模块根据用户态视图文件在内核中分配内存,重构用户视图Vu ;运行时维护模块收集用户视图Vu和内核视图Vk的信息,触发超级调用向检测模块发起检测请求;检测模块进行隐藏性检测,如果存在内核模块E,其出现在Vk中却不在Vu中,则E为rootkit,查询安全链表中E的信息,记录到检测记录中;如果存在内核模块e,其出现在安全链表视图Vs中却不在Vk中,则e为rootkit,将e的信息记录到检测记录中;步骤4:检测模块进行内核敏感信息攻击性检测,包括检测模块读取客户机当前的IDT表信息,与虚拟机监控器中的敏感信息备份进行对比,查看客户机的IDT表内容是否被篡改;如果被篡改,则当前所加载内核模块为rootkit,检测模块恢复被篡改的内容并记录下此rootkit具体的攻击到检测记录中;检测模块检测系统调用处理例程的头部是否被篡改,检测系统调用处理例程中call指令后的系统调用表地址是否被篡改;如果被篡改则当前所加载内核模块为rootkit,检测模块恢复被篡改的内容并记录下此rootkit具体的攻击到检测记录中;检测模块检测敏感系统调用的头部是否被篡改,以及其在系统调用表中的地址是否正确;如果被篡改则当前所加载内核模块为rootkit,检测模块恢复被篡改的内容并记录下此rootkit具体的攻击到检测记录中;步骤5:在管理域对客户机中的rootkit进行处理,包括通过控制模块,查看虚拟机监控器中的检测记录,获取到客户机当前遭受rootkit攻击的情况,根据攻击情况,发出出信息恢复或rootkit卸载的处理命令;控制模块通过通信区域传递处理命令;rootkit处理模块监控通信区域的变化,当新的命令到达时,rootkit处理模块获取命令,分析命令,根据命令对rootkit进行处理,包括rootkit信息恢复:通过读取安全链表中的信息,在客户机内核中将rootkit缺失的链表信息进行恢复;以及rootki本文档来自技高网
...

【技术保护点】
一种基于Xen虚拟化环境的内核级rootkit检测和处理方法,所述Xen虚拟化环境包括管理域、虚拟机监控器和半虚拟化的客户机,其特征在于,管理域包括控制模块,虚拟机监控器包括安全链表维护模块、检测模块和敏感信息备份模块,半虚拟化的客户机包括运行时维护模块和rootkit处理模块;还包括步骤1:在客户机启动过程中,内核敏感数据初始化完成,没有用户进程运行和内核模块加载时,敏感信息备份模块对内核中的敏感信息进行备份,包括客户机初始化时,客户机发起超级调用HYVERVISOR_set_trap_table向虚拟机监控器注册虚拟机中断描述符表;虚拟机监控器调用do_set_trap_table函数进行虚拟机中断描述符表注册;在do_set_trap_table函数中,添加敏感信息备份模块,敏感信息备份模块通过copy_from_guest函数读取内核敏感信息,对内核中的敏感信息进行备份;所述内核中的敏感信息包括系统调用表、中断描述表、系统调用处理例程头部和敏感系统调用头部;步骤2:客户机内核模块通过应用层工具进行加载时,运行时维护模块收集正在被加载内核模块的信息,进行安全链表更新操作,包括应用程序进行内核模块加载,触发内核的sys_init_module系统调用,在sys_init_module函数进一步调用load_module函数进行模块加载,运行时维护模块通过对sys_init_module函数与load_module函数的劫持,收集被加载内核模块的信息,调用超级调用向安全链表维护模块传递内核模块信息并发起安全链表更新请求;所述被加载内核模块的信息包括内核模块名称与内核模块控制结构体在内存中的位置;安全链表维护模块检查安全链表更新请求的合法性,如果合法则获取运行时维护模块所传递的内核模块信息并进行安全链表更新操作,如果不合法,则忽略此请求;步骤3:客户机内核模块加载成功后,运行时维护模块同步建立用户视图,并收集用户视图和内核视图信息,触发超级调用,陷入虚拟机监控器,与安全链表提供的安全链表视图交叉对比进行rootkit检测,包括运行时维护模块通过call_usermodehelper调用用户态程序lsmod产生用户态视图文件;运行时维护模块根据用户态视图文件在内核中分配内存,重构用户视图Vu;运行时维护模块收集用户视图Vu和内核视图Vk的信息,触发超级调用向检测模块发起检测请求;检测模块进行隐藏性检测,如果存在内核模块E,其出现在Vk中却不在Vu中,则E为rootkit,查询安全链表中E的信息,记录到检测记录中;如果存在内核模块e,其出现在安全链表视图Vs中却不在Vk中,则e为rootkit,将e的信息记录到检测记录中;步骤4:检测模块进行内核敏感信息攻击性检测,包括检测模块读取客户机当前的IDT表信息,与虚拟机监控器中的敏感信息备份进行对比,查看客户机的IDT表内容是否被篡改;如果被篡改,则当前所加载内核模块为rootkit,检测模块恢复被篡改的内容并记录下此rootkit具体的攻击到检测记录中;检测模块检测系统调用处理例程的头部是否被篡改,检测系统调用处理例程中call指令后的系统调用表地址是否被篡改;如果被篡改则当前所加载内核模块为rootkit,检测模块恢复被篡改的内容并记录下此rootkit具体的攻击到检测记录中;检测模块检测敏感系统调用的头部是否被篡改,以及其在系统调用表中的地址是否正确;如果被篡改则当前所加载内核模块为rootkit,检测模块恢复被篡改的内容并记录下此rootkit具体的攻击到检测记录中;步骤5:在管理域对客户机中的rootkit进行处理,包括通过控制模块,查看虚拟机监控器中的检测记录,获取到客户机当前遭受rootkit攻击的情况,根据攻击情况,发出出信息恢复或rootkit卸载的处理命令;控制模块通过通信区域传递处理命令;rootkit处理模块监控通信区域的变化,当新的命令到达时,rootkit处理模块获取命令,分析命令,根据命令对rootkit进行处理,包括rootkit信息恢复:通过读取安全链表中的信息,在客户机内核中将rootkit缺失的链表信息进行恢复;以及rootkit卸载:利用客户机中的应用层工具实现对rootkit的卸载。...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈兴蜀任益张磊陈林曾雪梅
申请(专利权)人:四川大学
类型:发明
国别省市:四川;51

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

1