RootKit
1.1 Rootkit的定义
- Rootkit的概念出现于二十世纪九十年代初,是计算机安全领域的一个术语,来自root和kit两个单词的组合,其中root表示Linux操作系统中超级用户的名
 称,拥有系统的最高权限;kit则表示工具套件的意思。顾名思义,rootkit就是用
 来保持系统最高权限的工具集。1.2 Rootkit的功能攻击者在安装rootkit之前,必须先获取目标系统的超级用户权限。Rootkit
 并不能帮助攻击者攻破系统,而是使攻击者能重新获取系统超级用户权限的技术。
- (1)保持对系统的访问权限:Rootkit通过预留后门来保持对目标系统永久访问。
- (2)攻击其它系统:二十世纪九十年代末期,rootkit技术中出现了用于攻击其
 它系统的工具,大体可分为本地攻击工具和远程攻击工具两种。本地攻击工具的主要目的是重新获取主机的管理员权限,其典型代表有本地 
 密码嗅探器和解密器。远程攻击工具的作用是将目标机作为一个跳板,攻击网络上的其它主机。例 
 如,当一个黑客成功攻陷了一台主机,并且想利用这台主机去攻击同一网段上的
 其他主机时,他就可以在这台主机上安装Sniffer工具并将网络适配卡(NIC)置为
 杂乱(promiscuous)模式,对以太网设备上传输的数据包进行侦听。黑客可设置
 Sniffer的监听条件,专门捕抓含有“login”或“password”关键字的数据包,通
 常这样的包里会有黑客感兴趣的某台主机的登录用户和密码。
- (3)隐藏攻击痕迹:为了避免引起管理员的怀疑,rootkit还应具备隐藏攻击信
 息的功能。一个典型的rootkit能够实现修改或删除日志文件、隐藏与rootkit相关
 的所有文件、隐藏攻击相关的进程(If Sniffer、后门守护进程、解密器)、隐藏攻
 击相关的通信链接等。1.3 Rootkit的攻击过程
- (1)收集目标主机的信息
- (2)获取目标主机的超级权限
- (3)在目标主机上安装rootkit
- (4)清除rootkit痕迹
- (5)操纵目标主机1.4 Rootkit的分类
- 根据对操作系统攻击对象的所处位置不同,可将rootkit分为五类(如图1.1):
 应用级rootkit、内核级rootkit、设备级rootkit、其它rootkit及混合型rootkit
(1)应用级rootkit又称为传统rootkit,是最早出现的一类rootkit,它通过替换
用户层的系统工具,如/bin/Is,/bin/ps,/bin/netstat来隐藏攻击行为。
- 表1.2内核级rootkit的攻击对象 - 攻击对象 - 对象描述 - 攻击对象 - 对象描述 - adt - 用于定时运行指定程序 - chattr - 修改ext2文件系统的文件属性 - chsh - 变更shell模式 - dir - 查看文件大小 - find - 查找文件 - ifconfig - 显示网卡状态 - locate - 列出符合指定条件的文件 - lsof - 列出打开状态的文件 - ls - 显示目录下内容 - login - 启动新会话 - md5sum - 生成或校验md5摘要消息 - netstat - 列出网络端口、路由表等信息 - ps - 列出正在运行的进程 - pstree - 显示进程树 - read - 读取文件描述符中信息 - su - 切换到超级用户 - write - 发送消息给其他用户 - top - 显示linux下的任务 
典型的应用级rootkit有TOrn、WOOtkit、lion蠕虫、Irk rootkit等。这类rootkit
需要替换的系统工具太多了,以至于入侵者一不小心就会遗漏掉一两个;且通过
现有的一些文件完整性工具很容易就能检测出来,因此应用级rootkit技术已逐渐
被黑客抛弃了。
(2)内核级rootkit是指入侵到操作系统内核层的的恶意软件。操作系统内核处
于整个系统的最底层,被认为是系统中最基本的部分,像文件系统、进程调度、
存储管理、系统调用等任务都是在系统内核中实现的。内核级rootkit通常修改或
替换内核中的数据结构或函数(如中断处理函数、系统调用、文件系统等),表
1.2给出了内核级rootkit常见的攻击目标。
- 表1.2内核级rootkit的攻击对象 - 攻击对象 - 对象描述 - 系统调用(System calls) - 用户层进程的函数接口 - 虚拟文件系统(Virtual file systeml - 通用的文件系统接口 - 调度程序(Schedulerl) - 进程调度机制 - 内核模块(Kernel modules) - 向内核注入源码承载体 - 中断处理函数(Interrupt handlers) - 软硬件中断的处理函数 - 驱动程序(Drivers) - 可控制系统中的硬件 
(3) 设备级rootkit是一种以计算机设备为目标的攻击技术,这些设备包括
BIOS、网卡、声卡、硬盘控制器等。所有这些设备都能通过程序与系统进行交互,
因此一旦这些设备上安装了rootkit,入侵者就很有可能通过它们干扰系统的正常
工作。例如,攻击者可以向硬盘控制器植入恶意代码,来伪造硬盘中的文件信息。
设备级rootkit最大的特点是,即使管理员对磁盘进行格式化或是重装系统,
这类rootkit仍会存在。
(4) 另外存在一些rootkit,其攻击对象不属于应用层、内核层或设备层,安装
在虚拟机监控器(VMM)下的rootkit就属于这一范畴。目前,还鲜少发现这类rootkit
的应用,因此在本文中将不对这类rootkit做过多介绍。
(5) 在实际应用中,同一个
rootkit的攻击目标有可能存在于多个层。例如一个rootkit可以在替换系统工具的 同时,对系统调用表进行修改,这类rootkit称为混合型rootkit。美国乔治理工大
学搭建的蜜网就曾捕获到一种名为r.tgz的混合型rootkit,它包含了应用层和内核
层rootkit。

 
                     
                        
                        