admin管理员组

文章数量:1531666

2023年12月29日发(作者:)

2012年第02期 doi:10 3969 ̄.issn 1671-1122 2012 02 014 OWS RoO锄t 检测与取证技术研究 王宁,刘志军,麦永浩 (湖北警官学院,湖北武汉430034) 摘要:文章首先对近几年来Windows RootI ̄t检测技术的发展和研究进行了描述,接着对当前常用的 RootKit检测工具及其检测方法做了介绍,进而探讨了Windows RootKit的取证与分析方法,以期对当前计算 机取证人员有效解决Windows RootKit检测和取证提供一些借鉴。 关键词:WindowsRootI ̄t;RootKit检测;RootKit取证 中图分类号:TP393.08 文献标识码:A 文章编号:1671—1122(2012)02—0051—02 Windows RootKit Detection and Forensics WANG Ning,LIU Zhi-jun,MAI Yong—hao (日Ⅳ6 【 iversity ofPolice,Wuhan Hube 430034,China) Abstract:This paper irstf describes the development and research of Windows RootKit detecting technology these years.The following comes the introduction of today’S usual testing tools and methods.Next iS the detection and analysis ways of Windows RootKit.The expectation iS providing some reference for computer forensics personnel to solve effectively the Windows RootKit detection and forensics. Key words:Windows rootKit;rootKit detection;rootKit forensics 1 Windows RootKit概述 2005年10月,RootKit Revealer的作者Mark Russinovich发现Sony公司使用RootKit以保护其电子出版物不受盗版侵权。 Mark在他的Blog上指出Sony公司不仅在消费者毫不知情的情况下(既没有明确告知消费者,也没有在软件的服务条款中提及) 向消费者的电脑中安装了一个RootKit,而且知情的攻击者还可以利用这个RootKit隐藏自己的工具。随后,RootKit引起 『人们广 泛关注。 RootKit一般指能够持久且可靠、无法检测地存在于计算机上、可以修改操作系统,从而把自己及其他一些对象隐藏起来的 软件。当攻击者通过某种方式进入被入侵的系统并安装上RootKit,就可以欺骗目标计算机的操作系统,从而达到隐藏所有修改 并拥有操作系统控制权。Windows RootKit的核心技术就是隐藏技术,隐藏的内容包括文件、目录、进程、注册表项、网络端口、 设备驱动器、网卡模式等。 RootKit最早出现于Unix系统中,随着计算机技术的发展,现在多种操作系统平台中都出现了RootKit。其中Windows系统 上的RootKit技术,尤其受到广泛重视,RootKit也分为几种: 1)早期RootKit。工作原理是把系统中的一些程序替换成恶意的版本,当这些替换的程序运行时,就会自动隐藏特定的 对象。 如称为RootKit之父的Cabanas病毒。 2)用户模式RootKit。这种RootKit安装在系统当前用户的安全上下文环境中,替换、挂钩(Hook)或者修改某些操作系统 调用和DLL中的函数。 ● 收稿时间:2012—01一O5 基金项目:教育部人文社会科学研究项目[09YJCZH037]、教育部人文社会科学研究项目[11YJCZH168] 作者简介:王宁(1981一),女,讲师,硕士,主要研究方向:计算机取证;刘志军(1976一),男,信息安全教研室副主任,国家电子证据司法 鉴定人,博士,主要研究方向:电子证据及司法鉴定;麦永浩(1959一),男,教授,信息技术系副主任,电子取证重点实验室主任,博士后, 主要研究方向:计算机取证。 51 IL — 

2012年第02期 3)内核模式RootKit。现在的Windows RootKit所使用的 FU RootKit、FUTo。但是这些工具不能对未知的基于DKOM 的RootKit检测。 技术也从用户模式向内核模式发展,内核模式RootKit不仅能 拦截底层的API调用,而且还会操作内核数据结构。 2 Windows RootKit的检测技术 Windows RootKit检测技术总是伴随着Rootkit技术的发 展而发展的,检测技术的发展也迫使Windows RootKit技术不 断更新。近几年来,Windows RootKit的作者为避免其编写的 RootKit被检测出来,也在不断寻找新的破坏操作系统及其内 核的方法,如挂钩技术(Hook)、DKOM技术等。 1)挂钩技术的检测 挂钩技术就是为RootKit自身的程序替换正常程序,并过 滤由系统返回的信息,挂钩技术分为用户空间挂钩和内核挂钩。 用户级API Hook常见的方式有:修改程序导入地址表(Import Address Table,IAT);修改函数输出表(Export Address Table, EAT);内核级API Hook常见的方式有:修改系统服务描述 SSDT(System Service Dispatch Table);修改中断IDT(Interrupt Descriptor Table);驱动IRP句柄劫持;修改函数跳转。 早期的RootKit会篡改某一内核代码区或覆盖某一已知 的数据区来安装挂钩,这些已知的数据区包括服务描述表 SSDT,程序导人地址表IAT,中断描述符表IDT。当前的检 测工具如VICE、SVV(System Virginity Verifier)和IceSword 能进行所有代码区和已知数据区的完整性检测,能较好地检 测这些早期的挂钩技术。 为躲避检测,近几年挂钩技术目标转向未知数据区的 操作,尤其是在内核数据结构中改写函数指针。HookFinder、 K—Tracer、PoKeR系统采用事后分析的方法,来研究钩子放 在数据区的哪个区域。有大量的内核对象和函数指针存在 于内存中,事后分析方法有一定的缺陷,SBCFI、Gibraltar、 HookSafe和SFPD系统采用主动分析方法,强调检测操作系 统并研究这些函数指针在什么地方,如何被钩子使用的,从 而制定新的Hook检测策略。 2)直接内核操作技术(DKOM)的检测 DKOM(Direct Kernel Object Manager)是不使用Windows API直接操作内核数据结构的进程。Rootkit经常会修改内 核数据结构来达到隐藏的目的。DKOM技术最早用于FU RootKit,其后FUTo进一步扩展了FU的DKOM功能。例如, FU Rootkit把某个进程的EPROCESS从Windows内核维护一 个当前运行进程的双向链表ActiveProcessLinks中摘除,该进 程则被隐藏。 当前,一些著名的检测工具如GMER、RootKit Unhooker 能有效地检测这些已知的基于DKOM的Windows RootKit,如 Rootkit的写作者们正热衷于未知的基于DKOM的R00tKit 的探索,当前一些Rootkit的研究者也从检测手段、检测模型、 原型系统设计等方面进行探讨。如在检测手段上利用各个内 核链表结构中的一些进程EPROCESS结构差异对多种方法 获得的进程EPROCESS交叉对比;如对目录、设备、驱动及 PsLoadedModuleList的人口地址数据结构进行分析后得出的原 型系统设计方案。 3)其他Windows RootKit技术的检测 除了以上主流Windows RootKit技术外,还有基于内存补 丁的RootKit技术、虚拟机RootKit技术、内存映射技术、dll 插入技术等 】,目前,这些检测工具能有效地进行检测。 3 Windows RootKit检测工具 由于Windows RootKit的检测较为复杂,目前对检测 Windows RootKit还没有形成标准化的方法,检测手段也多样 化,现有产品中用到的检测方法主要有如下几种: 1)特征检测法。该检测方法通过在内核内存中搜索含有 特征码的内存块来检测Windows RootKit,但它通常只能检测 出已知特征码的Windows RootKit。这种方法目前被杀毒软件 广泛使用。 2)行为检测法。也称启发式检测,这是一种通过发现非 常规系统行为寻找Windows RootKit痕迹的检测方法。这种方 法的主要缺陷在于挂钩会频繁调用处理函数,对操作系统性 能有较大影响。比较有名的检测工具有PatchFinder和VICE等。 3)差异分析检测法。通过比较可信任的原始数据与由 API调用返回受污染的内容,然后比较两者之间的结果差 异。如Russinovich使用RootKit Revealer工具发现Sony DRM Rootkit。 4)完整性校验的检测。RootKit未安装之前,建立一个 原始的基线指纹,以这个可信任的指纹列为准,通过重新计 算和比较来达到识别RootKit。该检测方法对于简单的Rootkit 有效,对于复杂的Rootkit无能为力。比较著名的检测工具有 Tripwire、System Virginity Verifer、IceSword等。 5)交叉视图(Cross—View)的检测。通过比较不同途径 所枚举到的系统信息,根据其中的差异发现Windows RootKit 的痕迹。比较有名的检测工具有:MS Strider GhostBuster、 Klister、Blacklight等。 4 Windows RootKit取证分析 Windows RootKit不仅能修改操作系统,而且能隐藏一些 下转第57页 

2012年第O2期 现成本。该方案所用的运算主要包括G 中的点的加法、数乘, Hash函数运算、双线性对的运算,方案每执行一次,签名接 收者和签名者之间需要两轮交互,整个签名过程中,双方只需 进行1次Hash函数运算,2次G 中的点的加法,3次G 中的 点的数乘,2次双线性对运算,但两次双线性对可以提前运算, 的安全性能,同时,由于双线性对的应用,该方案具有计算 效率高的优点。 (责编张岩) 参考文献: [1]Chaum D.Bhnd signatures for untraceable electronic cashU]Advances in Cryptology—CRYPTO’82,1983,199—203 另外还有1次G:中的逆运算,具有密钥短、安全性高、计算 效率高的特 。 【2]Shamir A.Identity—based cryptosystem and signatures[j].In proceedings ofCRYPT0 1984,1985,47-53 [3]Boneh D,Franklin M.Identiy tbased encryption from weil paringsU].In 4结束语 本文利用双线性在密码学应用中的优点,构造了一个新 proceedings ofCRYPTO 2001,2001,213—229. 【4]Libert B.Quisquater J New identity—based sincrgytion schemes from paringsU].In proceedings ofthe IEEE information theory workshop 2003, 2003,155—158. 型的基于身份的盲签名方案,将基于身份的签名和盲签名结合 起来,有效地保护了消息发送方的隐私权,提高了整个系统 上接第52页 [5]Hess F.Eficifent identiy—basted sinatgure schemes based on parings[J]. In selected areas in cryptography 2002,2003,310—324. 病毒、木马、黑客工具等,对系统和网络构成了严重威胁。在 计算机犯罪或安全事件调查中,被调查的系统若存在某个 RootKit,如果计算机取证人员缺乏相应的RootKit检测技巧和 计算机取证意识,就会被误导从而作出错误的估计,相当大 量的资源就会被投入到错误的方向。同时,在不能确定问题 根源的情况下,系统可能被擦除后重新安装,而出现后来在使 用时系统重新被感染的情况。 4)镜像文件加载成虚拟文件系统的分析。如Mount Image Pro(MIP)工具使用只读方式加载镜像文件,所以操作过程中不 会对其中文件造成改动。加载之后,运行各种反病毒工具对镜 像中的文件和目录进行扫描。由于被分析的系统、镜像中进程和 服务、Ro ̄KK都不会运行,可以对获取镜像的RootKit进行分析[31o 5)基于注册表Services键“最后修改时间”的快速分析。 检查注册表每个ControlSet键的Services键,按照最后修 在国内,当前计算机取证领域及电子证据司法实践中,如 何制定Windows RootKit的取证原则,如何设计取证方法,如 何进行有效的Windows RootKit分析等方面还缺乏一定的研究 和实践。在Windows RootKit取证分析方面,建议如下: 1)开机检测和后期检测的并用。有的文献也称开机检测 和后期检测为动态取证与静态取证 ],除了需要隐藏外,任 何RootKit要处在运行状态,而开机检测只对一个运行的系统 改(Last Write)时间对列表中的键进行排序,列表中大多数项 目会与系统安装时间吻合。而内核模式RootKit安装时,很可 能是零散的一两个子键,大多数情况下很容易被发现。由于 Microsoft公司并没有公开发布用户模式下修改注册表最后修改 时间的API,因此可以确定该时间就是RootKit及其驱动安装 的时间,从而达到对RootKit的检测和分析。 6)分析系统物理内存。开机时获取系统物理内存镜像, 在获取内存镜像后,搜索所有的EPROCESS块,将镜像中 的活动进程信息与开机系统的进程列表进行比对,可以找到 RootKit隐藏的进程,能有效地检测RootKit的存在并进行分析。 进行检测,分析其中是否存在RootKit,后期检测是针对系统 的镜像进行分析。RootKit的开机检测与后期检测侧重点不同, 通过综合分析的方式有助于对RootKit的取证与分析。 2)行为检测和差异分析方法的结合。基本思路是使用不 同的方法对同一信息进行查询,然后比较查询结果之间的差 异,从而检测出RootKit的存在或者RootKit所隐藏的东西。 例如执行一个高级查询和一个底层查询(尽可能的底层),然 后比较两者查询结果的差异。 3)多种检测工具的运用。目前有大量免费和商业的采用 行为检测或差异分析的RootKit检测工具,但这些工具多不提 供工作原理细节,其检测内容、输出格式、易操作性等方面 5结束语 采用上述方法和技术分析,我们得出较为有效的Windows RootKit取证鉴定的方法和依据,对于在Windows环境下进 行电子取证有借鉴意义,在此基础上,针对井发Windows RootKit取证工具的研究也将进一步展开。 (责编杨晨) 参考文献: 也不同。如Helios使用行为分析方式,但系统中需安装.Net2.0 应用框架;RootKit Revealer可检测RootKit隐藏的文件和注册 [1]龚广,李舟军等.Windows内核级Rootkits隐藏技术的研究U】 计算机科学,2010,37(04):59—62. [2]胡永涛,康学斌,李柏松.Windows Rootkit病毒进化与检测Ⅱ] 信息网络安全,2009,(09):27—29 表;GMER能检测隐藏的进程、服务、SSDT、IDT及IRP调 用的驱动程序。每种检测工具都有一定的误差率,多种检测 工具的运用可以增加对RootKit存在的正确判断。 【3】Halfan Carvey.Windows取证分析【M】.王智慧,崔孝晨,陆道宏 北京:科学出版社,2009.12. 57 r_ 

本文标签: 检测系统取证技术