Rootkit是一种特殊的
恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和
网络链接等信息,比较多见到的是Rootkit一般都和
木马、后门等其他恶意程序结合使用。
rootkit是什么
在悬念迭起的中外谍战片里,对战双方中的一派势力通常会派遣特工人员潜伏到对手阵营中。这名卧底人员良好的伪装使得对手对此长时间毫无察觉;为了能够长期潜伏他不贸然采取高风险行为以免过早暴露自己;他赢得敌人的信任并因此身居要职,这使得他能够源源不断地获取重要情报并利用其独特渠道传送回去。
从某种意义上说这位不速之客就是Rootkit——持久并毫无察觉地驻留在目标计算机中,对系统进行操纵、并通过隐秘渠道收集数据的程序。Rootkit的三要素就是:隐藏、操纵、收集数据。
“Rootkit”中root术语来自于unix领域。由于unix主机系统管理员账号为root账号,该账号拥有最小的安全限制,完全控制主机并拥有了管理员权限被称为“root”了这台电脑。然而能够“root”一台主机并不意味着能持续地控制它,因为管理员完全可能发现了主机遭受入侵并采取清理措施。因此Rootkit的初始含义就在于“能维持root权限的一套工具”。
简单地说,Rootkit是一种特殊的
恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和
网络链接等信息,比较多见到的是Rootkit一般都和
木马、后门等其他恶意程序结合使用。Rootkit通过加载特殊的驱动,修改系统
内核,进而达到隐藏信息的目的。
NSA安全和
入侵检测术语字典( NSA Glossary of Terms Used in Security and Intrusion Detection)对rootkit的定义如下:A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operating systems.
rootkit并不一定是用作获得系统root访问权限的工具。实际上,rootkit是攻击者用来隐藏自己的踪迹和保留root访问权限的工具。通常,攻击者通过远程攻击获得root访问权限,或者首先密码猜测或者密码强制破译的方式获得系统的访问权限。进入系统后,如果他还没有获得
root权限,再通过某些安全漏洞获得系统的root权限。接着,攻击者会在侵入的主机中安装rootkit,然后他将经常通过rootkit的后门检查系统是否有其他的用户登录,如果只有自己,攻击者就开始着手清理
日志中的有关信息。通过rootkit的
嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统。
rootkit的历史
最早Rootkit用于善意用途,但后来Rootkit也被
骇客用在入侵和攻击他人的
电脑系统上,电脑病毒、
间谍软件等也常使用Rootkit来隐藏踪迹,因此Rootkit已被大多数的防毒软件归类为具危害性的
恶意软件。Linux、Windows、Mac OS等
操作系统都有机会成为Rootkit的受害目标。
Rootkit出现于二十世纪90年代初,在1994年2月的一篇安全咨询报告中首先使用了rootkit这个名词。这篇安全资讯就是CERT-CC的CA-1994-01,题目是Ongoing Network Monitoring Attacks,最新的修订时间是1997年9月19日。从出现至今,rootkit的技术发展非常迅速,应用越来越广泛,检测难度也越来越大。
典型特征及危害
rootkit介绍Rootkit是一种奇特的程序,它具有
隐身功能:无论静止时(作为文件存在),还是活动时,(作为进程存在),都不会被察觉。换句话说,这种程序可能一直存在于我们的计算机中,但我们却浑然不知,这一功能正是许多人梦寐以求的——不论是计算机
黑客,还是
计算机取证人员。
黑客可以在入侵后置入Rootkit,秘密地窥探敏感信息,或等待时机,伺机而动;取证人员也可以利用Rootkit
实时监控嫌疑人员的不法行为,它不仅能搜集证据,还有利于及时采取行动!
Rootkit 的目的在于隐藏自己以及不被其他软件发现。它可以通过阻止用户识别和删除攻击者的软件来达到这个目的。Rootkit 几乎可以隐藏任何软件,包括文件服务器、
键盘记录器、Botnet 和 Remailer。许多 Rootkit 甚至可以隐藏大型的文件集合并允许攻击者在您的计算机上保存许多文件,而您无法看到这些文件。
Rootkit攻击方式多针对类似敏感数据剽窃这样的环节,那么某企业或政府组织“中央服务器”一类设备自然是植入Rootkit的首选目标,可这样的主机设备往往防护严密,不能轻易得手。我们知道数据并不是静止的存放在服务器中,它往往在机构的网络中流动。机构中级别较高的人员常会拥有对这些设备数据的读写权限,但他们所拥有的个人电脑的防护级别却通常比中央服务器要低,这就会给剽窃数据的黑客以可趁之机——将Rootkit程序植入相关人员的个人电脑,并默默的安家,不时地传回重要数据。
原理
针对SunOS和Linux两种
操作系统的rootkit最多。所有的rootkit基本上都是由几个独立的程序组成的,一个典型rootkit包括:
1 以太网嗅探器程序,用于获得网络上传输的用户名和密码等信息。
2
特洛伊木马程序,例如:inetd或者login,为攻击者提供
后门。
3 隐藏攻击者的目录和进程的程序,例如:ps、netstat、rshd和ls等。
4 可能还包括一些日志清理工具,例如:zap、zap2或者z2,攻击者使用这些清理工具删除wtmp、utmp和lastlog等日志文件中有关自己行踪的条目。
一些复杂的rootkit还可以向攻击者提供telnet、shell和finger等服务。
还包括一些用来清理/var/log和/var/adm目录中其它文件的一些脚本。
攻击者使用rootkit中的相关程序替代系统原来的ps、ls、netstat和df等程序,使系统
管理员无法通过这些工具发现自己的踪迹。接着使用日志清理工具清理
系统日志,消除自己的踪迹。然后,攻击者会经常地通过安装的后门进入系统查看
嗅探器的
日志,以发起其它的攻击。如果攻击者能够正确地安装rootkit并合理地清理了
日志文件,
系统管理员就会很难察觉系统已经被侵入,直到某一天其它系统的管理员和他联系或者
嗅探器的日志把
磁盘全部填满,他才会察觉已经大祸临头了。但是,大多数攻击者在清理
系统日志时不是非常小心或者干脆把系统日志全部删除了事,警觉的
系统管理员可以根据这些异常情况判断出系统被侵入。不过,在系统恢复和清理过程中,大多数常用的命令例如ps、df和ls已经不可信了。许多rootkit中有一个叫做FIX的程序,在安装rootkit之前,攻击者可以首先使用这个程序做一个系统
二进制代码的
快照,然后再安装替代程序。FIX能够根据原来的程序伪造替代程序的三个
时间戳(atime、ctime、mtime)、date、permission、所属用户和所属用户组。如果攻击者能够准确地使用这些优秀的
应用程序,并且在安装rootkit时行为谨慎,就会让
系统管理员很难发现。
如何发现rootkit及其应对措施
很显然,只有使你的网络非常安全让攻击者无隙可乘,才能使自己的网络免受rootkit的影响。
Rootkit 本身不会像
病毒或
蠕虫那样影响计算机的运行。攻击者可以找出目标系统上的现有
漏洞。
漏洞可能包括:开放的
网络端口、未打
补丁的系统或者具有脆弱的
管理员密码的系统。在获得存在漏洞的系统的访问权限之后,攻击者便可手动安装一个 Rootkit。这种类型的偷偷摸摸的攻击通常不会触发自动执行的网络安全控制功能,例如
入侵检测系统。
找出 Rootkit 十分困难。有一些
软件包可以检测 Rootkit。这些软件包可划分为以下两类:基于签名的检查程序和基于行为的检查程序。基于签名(特征码)的检查程序,例如大多数病毒扫描程序,会检查
二进制文件是否为已知的 Rootkit。基于行为的检查程序试图通过查找一些代表 Rootkit 主要行为的隐藏元素来找出 Rootkit。一个流行的基于行为的 Rootkit 检查程序是 Rootkit Revealer.
在发现系统中存在 Rootkit 之后,能够采取的补救措施也较为有限。由于 Rootkit 可以将自身隐藏起来,所以您可能无法知道它们已经在系统中存在了多长的时间。而且您也不知道 Rootkit 已经对哪些信息造成了损害。对于找出的 Rootkit,最好的应对方法便是擦除并重新安
装系统。虽然这种手段很严厉,但是这是得到证明的唯一可以彻底删除 Rootkit 的方法。
防止 Rootkit 进入系统一个有效办法是启用安全引导,同时也应当安装病毒扫描程序、定期更新软件、在
主机和网络上安装
防火墙,以及
强密码策略等等。