Rootkit木马隐藏技术分析与检测技术综述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

负责指令传递和解释。由于内核和外壳负责的任务不同,它 病毒系统的查杀,因此这里不作过多说明。内核级的实现技
们的处理环境也不同,因此处理器提供了多个不同的处理环 境,把它们称为运行级别 (ring),ring 让程序指令能访问的计
术包括内核挂钩和直接操作内核对象 (DKOM,Direct Kernel Object Manipulation) 等方式 [3]。DKOM 是内核级进程隐藏常用
Rootkit 是指其主要功能为隐藏其他程序进程的软件,可能是 一个或一个以上的软件组合,从广义而言,Rootkit 也可视为一项 技术。Rootkit 最早是用于善意用途,如取证人员利用 Rootkit 技 术实时监控嫌疑人员的不法行为,帮助搜集证据等,但后来被黑 客用在入侵和攻击他人的计算机上,一些计算机病毒和间谍软件 也常使用 Rootkit 来隐藏踪迹。从互联网上查询到的资料中记载 最早是在 1994 年 2 月的一篇安全咨询报告中首先使用了 Rootkit 这 个 名 词。 这 篇 安 全 咨 询 就 是 CERT-CC 的 CA-1994-01, 题 目 是《Ongoing Network Monitoring Attacks》[1]。从出现至今,Rootkit 的技术发展非常迅速,应用越来越广泛,检测难度也越来越大。
Rootkit 主要运行在 Windows 操作系统内核状态下。为下 面介绍内容便于理解,这里先简要介绍一下 Windows 内核工
信息安全与通信保密 · 2010.11 61
百度文库
学术研究
Academic Research
作流程。Windows 操作系统由内核 (kernel) 和外壳 (shell) 两部 两种,它们是通过修改系统进程的相关信息或挂靠到系统信
学术研究
Academic Research
Rootkit 木马隐藏技术分析与检测技术综述
刘 喆 1,2,张家旺 2
(1 北京交通大学,北京 100044;2 国家保密科学技术研究所,北京 100044)
[ 摘 要 ] 对 Rootkit 技术和 Windows 操作系统内核工作流程作了简要介绍,对 Rootkit 木马的隐藏技术进行了分析,内
Windows 系统会捕获这个调用,然后进入 ring0 系统级调用对 程 活 动 链 表。 双 向 链 表 的 典 型 例 子 就 是 进 程 和 线 程 链。 内
应的内核函数,从而实现用户级和系统级指令操作分离,确 部 变 量 PsActiveProcessHead 是 一 个 LIST_ENTRY 结 构,
和 SSDT 表内核调用挂钩 3 种 Rootkit 隐藏木马的检测技术作了概要性综述。
[ 关键词 ] Rootkit 技术;系统服务描述符表 (SSDT);隐藏
[ 中图分类号 ] TP393
[ 文献标识码 ] A
[ 文章编号 ] 1009-8054(2010) 11-0061-05
Overview on Concealment and Detection of Windows Rootkit Trojan LIU Zhe1,2,ZHANG Jia-wang2
的操作系统底层驱动和内核模块方面技术较多,且权限多为系统 dll/advapi32.dll 导出的 API 最终调用的都是这类系统服务;
级权限,因此常规检测工具和杀毒软件一般很难将其检测出。
后 者 对 应 的 是 USER 和 GDI 系 统 服 务, 访 问 接 口 由 User32.
2 Rootkit 木马隐藏技术分析
(1Beijing Jiaotong University,Beijing 100044,China;
2Institute of National Scientific Security Technology,Beijing 100044,China)
[Abstract] The paper gives a brief introduction of Rootkit technology and the Windows kernel working process, discusses the concealing technology of Rootkit Trojan,including deleting the process objects in the doubly-linked list,the implementation process,document and registry hiding of SSDT kernel hooking,port hiding,etc,and briefly analyzes the two ways to shield the Windows XPand2003 SSDT's reading attribution by changing the registry and the CR0 register's writing protection. Finally,the paper gives an overview on the detection method against the three types of Rootkit Trojan,concealment,including the deletion of process objects in the doubly-linked list,the change of kernel's executing path and SSDT kernel hooking technology. [Keywords] Rootkit technology;SSDT(system services descriptor table);concealment
收稿日期:2010-09-26 作者简介:刘喆,1983 年生,男,产品与系统检测工程师, 研究方向:信息安全;张家旺,1981 年生,男,网络攻 防研究工程师,研究方向:信息安全。
的目的。鉴于上述原因,在 Windows 操作系统下研究发现和检 测 Rootkit 木马程序有着重要的实际意义。
1 Rootkit 技术简介
(Windows 2K 通过 int 2Eh 中断来实现系统调用,Windows XP NtQuerySystemInformation,即 ZwQuerySystemInformation 函
后使用 SysEnter 来实现系统调用,但同时 int 2Eh 中断仍保存 ), 数 来 执 行。 这 个 Native Api( 本 机 API) 枚 举 进 程 要 通 过 进
Rootkit 木马程序正是利用 Windows 操作系统内核模块或驱 务 并 对 结 果 作 相 应 处 理。 系 统 中 存 在 2 个 SSDT, 位 于 文
动程序来实现隐藏,使之难以被发现和清除。如 Rootkit 木马程 件 ntoskrnl.exe 中,分别由指针 KeServiceDescriptorTable 和
级别的指令都需要传递给内核来执行,当用户在 ring3 级调 这一技术手段做一简要技术分析。
用函数后,操作系统通过执行中断操作将指令传递给内核,
在 Windows 操 作 系 统 中 查 看 进 程 一 般 都 是 通 过 任 务
即 ring0 级。在调用 sysenter 或 int 2Eh 指令执行中断操作后 管 理 器 (taskmgr.exe)。 任 务 管 理 器 枚 举 进 程 信 息 是 依 靠
容包括删除进程双向链表中的进程对象实现进程隐藏、SSDT 表内核挂钩实现进程、文件和注册表键值隐藏和端口隐藏
等 Rootkit 木马的隐藏机理,同时还对通过更改注册表和修改寄存器 CR0 的写保护位两种方式屏蔽 WindowsXP 和 2003
操作系统 SSDT 表只读属性的技术手段做了简要分析。最后对采用删除进程双项链表上的进程对象、更改内核执行路径
Windows 内核模式
服 务 描 述 符 表,SSDT 中 存 放 了 所 有 系 统 服 务 函 数 的 入 口
Hal.dll
Ntoskml.exe
图 1 Windows 内核工作流程
Bootvid.dll
地 址。 系 统 服 务 调 度 程 序 通 过 查 找 SSDT 来 调 用 相 应 的 系 统 服 务。 因 此,Rootkit 可 以 将 SSDT 中 的 系 统 服 务 地 址 替 换 为 自 己 代 码 的 地 址。 这 样, 当 调 用 系 统 服 务 时, 实 际 运行的是 Rootkit 代码,由 Rootkit 代码调用真正的系统服
分组成,内核在操作系统中处于核心枢纽的地位,如:进程 任进程的方式来实现隐藏。用户级的实现技术包括注册为服
管理、文件访问、安全控制及内存管理等方面的功能均由内 务、修改动态链接库、应用程序的接口挂钩及远程线程注入
核负责;外壳是基于内核提供的交互功能而存在的界面,它 等方式。现在木马在用户级进行进程隐藏的方式很难绕过防
Gdi32.dll
Kemel32.dll Ntdll.dll
Rpcrt4.dll
就是说,进程是否被调度处理与进程双向活动链表无关,不 会被 CPU 忽略,因此进程仍然会被执行 [4]。 2.2 SSDT 表挂钩实现进程、文件和注册表隐藏
INT2Eh
SSDT 的全称是 System Services Descriptor Table 系统
0 引言
随着中国信息化建设的大力推进和网络技术的飞速发展, 网络安全问题已经严重威胁到社会、单位和个人隐私的安全, 这其中木马作为各种入侵的重要环节之一,也就成为安全问题 的研究重点之一。随着 Windows 操作系统核心模块和各种驱动 程序模块接口对程序员的不断公开,木马隐藏技术所使用的系 统指令已经由用户级指令转移到系统级指令,使得普通的木马 查杀手段很难发现,需特别说明的是木马通过 Rootkit 技术隐 藏自身的趋势非常明显,Rootkit 主要运行在系统内核态下,其 通过修改系统内核的函数调用进行一些过滤操作达到隐藏自身
保系统内核安全,工作流程如图 1 所示。
在 ntoskrnl.exe 的数据段中,指定了系统进程列表的第一个
TestApp.exe
Windows 用户模式进程 Notepad.exe Iexplore.exe
Explorer.exe
User32.dll
Advapl32.dll
成 员。 如 果 将 进 程 对 象 从 进 程 双 向 链 表 中 移 除, 那 么 调 用 NtQuerySystemInformation 来枚举进程的任务管理器 taskmgr. exe 中就不会看到目标进程了。同时,因为 Windows 的任务调 度分配器 (dispatcher scheduler) 使用的是另一个数据结构,也
序可以使用某个驱动程序来隐藏所有的文件操作,使用另一个驱 KeServiceDescriptorTableShadow 导出,对应了 2 类不同的系
动程序来隐藏注册表键。有时还可以将代码分散在多个驱动程序 包中,便于代码管理 [2],由于是运行在系统内核状态下,涉及到
统服务。前者对应系统服务,功能代码在 ntoskrnl.exe 中实现, 用户模式下的访问接口由 NTDLL.dll 提供,通常 kernel32.
dll/Gdi32.dll 提供,功能代码在 Win32k.sys 中实现。Rootkit 主 要 关 注 的 是 对 进 程、 文 件 及 注 册 表 等 的 操 作, 对 应 的 系
2.1 删除进程双向链表上的进程对象实现进程隐藏
统服务属于第 1 类,需修改 KeService Descriptor Table 导出
算机资源依次逐级递减,目的在于保护计算机免遭意外损害。 的技术,木马程序通过使用该技术在内核级的进程双向链表
Windows 操作系统内核运行于 ring0 级别,拥有系统所有 中删除要隐藏的进程信息来实现进程隐藏,达到自我保护的
管理功能,而普通用户运行于外壳层,即 ring3 级别,这个 目的。下面对删除进程双向链表上的进程对象实现进程隐藏
相关文档
最新文档