基于多维交叉视图的rootkit行为辨识方法

文档序号:6400145阅读:197来源:国知局
专利名称:基于多维交叉视图的rootkit行为辨识方法
技术领域
本发明涉及一种基于多维交叉视图的rootkit行为辨识方法,属于计算机与信息科学技术领域。
背景技术
rootkit是长期隐藏在系统内部的一组恶意代码,由于其常常注入到内核模块甚至硬件中,大大增加了恶意代码的隐蔽性,同时严重破坏了系统的完整性。其高权限、高隐蔽性等特点为检测和查杀带来了极大的困难。随着近年来rootkit技术在恶意代码中的推广和使用,可靠的rootkit检测方法和思路将为计算机安全提供有力的保障。rootkit行为辨识需要解决3个基本问题:检测是否存在rootkit ;辨识存在的rootkit利用何种方法隐藏检测项(即rootkit要隐藏的踪迹,如进程、文件、端口、驱动等);在可恢复的范围内对系统检测项数据进行恢复。综观现有的rootkit检测技术,通常使用方法可归为两类:1.交叉视图检测交叉视图一般采用两种检测方法,在不同层面上对rootkit进行检测,如内核层和用户层进行交叉视图。这种检测方法总会给定一个前提:即底层检测的结果为真实可靠的结果。但是rootkit可能处在更为底层的位置或采用针对性的技术绕过底层检测,所以在实际环境中这种检测结果不一定真实可靠。尽管可以利用硬件虚拟化技术做交叉视图,但是这种方法依然无法辨识rootkit采用何种方式隐藏了检测项,更不可能恢复相关系统数据。2.原始文件解析通过解析内核或驱动文件,进而与内存映像作对比检测。这种方法可以利用解析内核文件对被篡改的系统静态数据进行恢复。但这种方法主要适用于系统的静态数据检测,如系统函数,无法适用于系统的动态数据检测,如进程链表。综上所述,现有的rootkit检测方法无法保证检测的可靠性与全面性;无法辨识rootkit的行为特征,即不能指明rootkit使用的隐藏方法;仅能恢复受污染的系统静态数据。

发明内容
本发明的目的是为解决IOOtkit检测问题,提出一种基于多维交叉视图的rootkit行为辨识方法。本发明的设计原理为:首先利用多种rootkit检测方法对操作系统进行检测,构造相应维数的检测视图,每一维视图代表相应的检测结果;若某几维视图未出现检测项而在其他所有视图中都出现了检测项,说明rootkit针对这几种检测方法采用了相应的规避手段(即隐藏方法);然后通过获悉的规避手段确定rootkit的污染数据是否可以被恢复,对可以恢复的污染数据进行恢复操作;最后重新对操作系统进行检测,确保污染数据被成功恢复。本发明的技术方案是通过如下步骤实现的:步骤1,为生成多角度多层次的视图,首先利用针对操作系统的rootkit的检测方法ApA2……An (η的值取决于针对这种rootkit隐藏项的检测方法的种类)构造η维视图P1、P2......Pn°步骤2,若视图Pi (I < i < η)中未出现检测项而在其他所有视图中都出现了检测项,说明rootkit利用了针对检测方法Ai的规避手段Hi来隐藏检测项。若多个视图中均未出现检测项,说明rootkit采用了针对多种检测方法的规避手段Hy (Y是β的子集,其中β是由I到η构成的集合)。步骤3,在步骤2的基础上,通过得到的rootkit隐藏方法Hy确定rootkit的污染数据是否可以被恢复。设可恢复的隐藏方法的集合为0,若1与Φ存在交集,说明交集中的隐藏方法的隐藏项可以被恢复,对可恢复的系统污染数据进行恢复操作。步骤4,再次利用检测方法Ap A2……An对系统进行检测,确保可恢复的污染数据已经被成功恢复。有益效果相比于传统的交叉视图检测方式,本发明采用多维交叉视图检测方法,可以辨识rootkit的具体行为,即rootkit通过何种方式来隐藏检测项,并可对其进行恢复,同时大大增加了检测的可靠性与全面性。相比于原始文件解析的检测方式,本发明不仅可以检测内核文件的静态数据内存映像,也可以检测系统内存中的动态数据,并对这两种污染数据进行恢复。


图1为本发明基于多维交叉视图的rootkit行为辨识方法的原理图。
具体实施例方式为了更好的说明本发明的目的和优点,下面结合实施例对本发明方法的实施方式做进一步详细说明。以windows操作系统中rootkit隐藏进程作为检测项来说明本发明的实施方式。设A1是基于硬件虚拟化通过cr3寄存器获取隐藏进程的检测方法,其获取的交叉视图SP1 ;设A2是基于截获SwapContext线程调度函数获取隐藏进程的检测方法,其获取的交叉视图为P2,对应的规避方法为H2 ;设A3是基于HSC (截获系统调用)的隐藏进程检测方法,其获取的交叉视图为P3,对应的规避方法为H3;设A4是基于内存搜索的隐藏进程检测方法,其获取的交叉视图为P4,对应的规避方法为H4 ;设A5是基于线程调度表遍历的隐藏进程检测方法,其获取的交叉视图为P5,对应的规避方法为H5 ;设八6是基于PspCidTable句柄表遍历的隐藏进程检测方法,其获取的交叉视图为P6,对应的规避方法为H6 ;设A7是基于csrss.exe进程中的句柄表遍历的隐藏进程检测方法,其获取的交叉视图为P7,对应的规避方法为H7 ;设A8是基于进程双向链表遍历的隐藏进程检测方法,其获取的交叉视图为P8,对应的规避方法为H8;设A9是基于内核态函数遍历的隐藏进程检测方法,其获取的交叉视图为P9,对应的规避方法为H9 ;设Altl是基于用户态函数遍历的隐藏进程检测方法,其获取的交叉视图为P1Q,对应的规避方法为H1(l。由H2到H9构成可恢复的隐藏方法的集合φ。注意,暂未发现对应于A1的规避方法;若H4大面积擦除,擦除信息不易恢复;H1(I不易定位要进行恢复的位置,所以 Φ 仅由4、!13、!15、!16、!17、!18、!19构成。具体流程为:步骤1,利用A1到Altl十种隐藏进程检测方法对操作系统进行检测,从而构造十维视图P1到P10。步骤2,以十维视图为输入,识别进程隐藏方式。由于A1未发现规避手段,所以把P1设为可信视图。步骤2.1,对比P1和P2,若P2 为P1子集,P1与P2的差即为隐藏进程,说明rootkit采用了 H2规避手段,即截获SwapContext函数来隐藏进程。步骤2.2,对比P1和P3,若P3为P1子集,P1与P3的差即为隐藏进程,说明rootkit采用了 H3规避手段,即截获系统调用或中断描述符表或全局描述符表来隐藏进程。步骤2.3,对比P1和P4,g P4为P1子集,P1与P4的差即为隐藏进程,说明rootkit采用了 H4规避手段,即擦除内存信息来隐藏进程。步骤2.4,对比P1和P5,若P5为P1子集,P1与P5的差即为隐藏进程,说明rootkit采用了 H5规避手段,即截获SwapContext函数来隐藏进程。步骤2.5,对比P1和P6,若P6为P1子集,P1与P6的差即为隐藏进程,说明rootkit采用了 H6规避手段,即擦除PspCidTable句柄表相关句柄来隐藏进程。步骤2.6,对比P1和P7,若P7为P1子集,P1与P7的差即为隐藏进程,说明rootkit采用了 H7规避手段,即擦除csrss.exe进程中的句柄表相关句柄来隐藏进程。步骤2.7,对比P1和P8,若P8为P1子集,P1与P8的差即为隐藏进程,说明rootkit采用了 H8规避手段,即摘除隐藏进程链表节点来隐藏进程。步骤2.8,对比P1和P9,若P9为P1子集,P1与P9的差即为隐藏进程,说明rootkit采用了 H9规避手段,即截获内核态遍历进程函数来隐藏进程。步骤2.9,对比P1和Pltl,若Pltl为P1子集,P1与Pltl的差即为隐藏进程,说明rootkit采用了 Hltl规避手段,即截获用户态遍历进程函数来隐藏进程。步骤2.10, rootkit采用的所有隐藏方法构成集合Hy。步骤3,以Hy为输入,与可恢复的隐藏方法的集合Φ求交集,若交集不为空,说明交集中的隐藏方法对应的隐藏进程的数据可以被恢复,对可恢复的系统污染数据进行恢复操作。步骤3.1,若Hy与Φ的交集包含H2,贝U利用内核文件恢复SwapContext函数。步骤3.2,若化与Φ的交集包含H3,则利用内核文件检测系统调用、中断描述符表和全局描述符表,对被修改项进行恢复操作。步骤3.3,若Hy与Φ的交集包含H5,则利用内核文件恢复SwapContext函数。步骤3.4,若Hy与Φ的交集包含H6,则在PspCidTable句柄表中添加相应句柄。步骤3.5,若Hy与Φ的交集包含H7,贝U在csrss.exe进程中的句柄表中添加相应句柄。步骤3.6,若Hy与Φ的交集包含H8,则在进程链表中插入相应节点。步骤3.7,若化与Φ的交集包含H9,则利用内核文件检测内核态进程遍历函数,若被截获,则对其进行恢复操作。注意在恢复之前进行检测是防止规避方法H8对视图P9造成的影响,H8可同时影响P9、P10两张视图。步骤4,再次利用检测方法A1到Altl对系统进行检测,确保可恢复的污染数据已经被成功恢复。测试结果实验使用了 H2到Hltl九种进程隐藏方法,有效检测出了每种隐藏方法隐藏的进程,并能够对H2、H3、H5、H6、H7、H8、H9七种隐藏方法所污染的数据进行恢复。实验证明针对H2到H10的九种进程隐藏方法,本发明可以有效识别出rootkit具体采用的哪几种隐藏方式,准确率达到百分之百,并能够对部分隐藏方法所污染的数据进行恢复。
权利要求
1.基于多维交叉视图的rootkit行为辨识方法,其特征在于所述方法包括如下步骤: 步骤1,为生成多角度多层次的视图,首先利用针对操作系统的rootkit的检测方法ApA2......An (η的值取决于针对这种rootkit隐藏项的检测方法的种类)构造η维视图P1'P2……Pn (即每种检测方法对应的检测结果)。
步骤2,若视图Pi (l^i^ η)中未出现检测项而在其他所有视图中都出现了检测项,说明rootkit利用了针对检测方法Ai的规避手段Hi来隐藏检测项。若多个视图中均未出现检测项,说明rootkit采用了针对多种检测方法的规避手段化(Y是β的子集,其中β是由I到η构成的集合。检测方法、规避手段、视图的对应关系由下角标决定)。所述检测项为IOOtkit要隐藏的踪迹,如进程、文件、端口、驱动等。
步骤3,在步骤2的基础上,通过得到的rootkit隐藏方法Hy确定rootkit的污染数据是否可以被恢复。设可恢复的隐藏方法的集合为0,若1与Φ存在交集,说明交集中的隐藏方法的隐藏项可以被恢复,对可恢复的系统污染数据进行恢复操作。
步骤4,再次利用检测方法Ap A2……An对系统进行检测,确保可恢复的污染数据已经被成功恢复。
2.根据权利要求1所述的基于多维交叉视图的rootkit行为辨识方法,其特征在于:步骤I中检测方法Al为基于硬件虚拟化的检测方法,其得到的视图P1定义为准确视图,并以此为标准进行与其它视图的对比检测。
3.根据权利要求1所述的基于多维交叉视图的rootkit行为辨识方法,其特征在于:步骤2利用两个集合进行交 叉视图进而辨识rootkit的具体行为,而非传统的两个视图进行交叉视图。
4.根据权利要求1所述的基于多维交叉视图的rootkit行为辨识方法,其特征在于:步骤3利用集合的概念,对两个集合的交集进行恢复操作。
5.根据权利要求1所述的基于多维交叉视图的rootkit行为辨识方法,其特征在于:步骤4利用重复检验,确保数据恢复成功。
全文摘要
本发明涉及一种基于多维交叉视图的rootkit行为辨识方法,属于计算机与信息科学技术领域。本发明首先利用多种rootkit检测方法对操作系统进行检测,构造相应维数的检测视图,每一维视图代表相应的检测结果;若某几维视图未出现检测项而在其他所有视图中都出现了检测项,说明rootkit针对这几种检测方法采用了相应的规避手段(即隐藏方法);然后通过获悉的规避手段确定rootkit的污染数据是否可以被恢复,对可以恢复的污染数据进行恢复操作;最后重新对操作系统进行检测,确保污染数据被成功恢复。本发明可以对rootkit的具体行为和隐藏方法进行识别,不仅适用于桌面计算机的各种操作系统,也适用于手机、平板电脑等移动计算平台系统。
文档编号G06F21/56GK103150508SQ20131007501
公开日2013年6月12日 申请日期2013年3月8日 优先权日2013年3月8日
发明者罗森林, 闫广禄, 潘丽敏, 郭亮, 张驰 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1