Root Kit的检测与防御
2010-08-15李宗峰
李宗峰
(菏泽医学专科学校,山东 菏泽 274030)
Root Kit的检测与防御
李宗峰
(菏泽医学专科学校,山东 菏泽 274030)
木马;用户模式;安全
近几年,网络应用迅速发展,如网络购物和网上支付,用户通过网上银行就可以在网络上完成支付,网络在方便了人们的生活的同时,一些有经济价值的信息也成为黑客的目标。黑客是通过木马控制目标计算机操作系统软件的关键组件,用来获取访问权并隐藏在系统中并窃取目标用户计算机上的银行帐户和密码。Root Kit即是特洛伊木马后门工具之一。
1 什么是Rootkit
rootkit是攻击者用来隐藏木马的踪迹和保留root访问权限的工具。通常,攻击者利用系统漏洞通过远程攻击获得root访问权,或者通过密码猜测或者密码强制破译的方式获得系统的访问权。当攻击者进入系统后,如果他还没有获得root权限,也能通过某些安全漏洞获得系统的root权。随后,攻击者会在被入侵的用户计算机中安装rootkit,然后他将经常通过rootkit的后门检查系统是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息。通过rootkit的嗅探器获得其它计算机用户密码之后,攻击者就会利用这些信息入侵其它的系统[1]。
Rootkit的特点:在攻击者进入系统之后安装Rootkit,其的作用是隐藏攻击者在系统中的存在。Root Kit具有多种隐藏攻击者在系统中存在的功能,使系统管理员不能发现这些攻击者,而且大多数Root Kit允许攻击者登录到系统中,而不生成任何系统日志。另外,它们还允许攻击者隐藏使用系统中的文件、进程和网络。
Root Kit不会让攻击者一开始就获得目标系统的根或管理员权限。攻击者必须以某种其他方式取得超级用户特权,例如通过缓冲区溢出攻击或者通过猜测口令的方法。不过,一旦获得超级用户访问权,Root Kit就允许攻击者一直都可以对系统进行raot访问。攻击者首先需要以根或管理员身份闯入系统来安装Root Kit,在安装并配置Root Kit后,攻击者就可以离开这个系统。以后随时都可以回来,使用Root Kit潜入目标系统并隐藏他们的踪迹。
rootkit基本上都是由几个独立的程序组成的,一个典型rootkit包括:1)以太网嗅探器程程序,用于获得网络上传输的用户名和密码等信息。2)特洛伊木马程序,例如:inetd或者login,为攻击者提供后门。3)隐藏攻击者的目录和进程的程序,例如:ps、netstat、rshd和ls等。4)可能还包括一些日志清理工具,例如:zap、zap2或者z2,攻击者使用这些清理工具删除wtmp、utmp和lastlog等日志文件中有关自己行踪的条目。
Root Kit中的每个组件负责一种功能,所以每个Root Kit就有了多种破坏能力,其中一些包含目标系统中十几个,甚至更多不同程序的替换程序。它们通常还包含各种辅助工具,这些工具允许攻击者调整那些被替换程序的特征,包括程序大小和上次修改日期等,从而使得这些程序看上去像是正常的。有了这些工具,Root Kit就彻头彻尾地变成套特洛伊木马后门工具了——为了给攻击者提供最大便利而打包并协调在一起[2]。
Root Kit可以运行在两个不同的层次上,这取决于它替换或者修改了目标系统中的哪种软件。Root Kit可以修改系统中现有的二进制可执行程序或者库文件,换言之,它可以修改用户和管理员运行的程序。我们称这种工其为“用户模式Root Kit”(user mode Root Kit),因为它控制了操作系统的这些用户级组件。或者,Root Kit可以直接进攻系统致命处,也就是操作系统的核心,即内核本身,我们将这种类型的Root Kit称为“内核模式Root Kit”(kernel-mode Root Kit)。
RooKit在 Windows中的实现:一直以来,用户模式Root Kit都把重点主要放在了 UNⅨ系统。由于这个缘故, Root Kit一词的显著特征是root(UNIX的超级用户账号)[3]。Wndows中的用户模式Root Kit像UNIX上的一样,修改关键性操作系统软件以使攻击者获得访问权并臆藏在计算机中。在Windows系统中,用户模式Root Kit技术应用于某些工具中。RooKit在Windows中的实现过程如下。
首先,Windows上的用户模式Root Kit可以与现有的Microsoft操作系统组件相结合以破坏组件的安全性。Microsoft为了通过第三方工具扩展 Windows的内置功能性,己经在Windows上开发了多种接口。用户模式Root Kit可以将自身插入到现有Micmsoft程序之间定义的接口来利用它们,而无须覆盖Windows代码。比较典型的例子是“FakeGⅢA”。
其次,Wmdows上的用户模式Root Kit可以仅覆盖Windows计算机上的现有可执行文件和库文件,如同UNIX上的用户模式Root Kit。为了完成这个任务,攻击者必须首先使防止修改wndows中各种关键性操作系统文件的wFP这一功能失效。比较典型的例子是CodeRedⅡ蠕虫。
最后,攻击者可以使用一套很流行的技术把代码注入到运行进程并覆盖其功能性来实现 Root Kit。这些用户模式Root Kit不是在操作硬盘上的文件.而是使用所谓Du。注入和API挂钩(API hooHng)的技术把代码直接加入运行进程的内存中。比较典型的例子是“AFxWindowsRnxKit”。
如何应对rootkit:预防Wirldows系统中用户模式Root Kit和使用UNⅨRoot Kit一样,攻击者也需要有超级用户权限以实现每一种Windows Root Kit技术。所以,需要强化和修补系统以确保攻击者不能获取计算机上的管理员或系统特权。强化系统,可以采用很多种指南和程序。以免费版的Win2K Pro Gold Template为例,来看一下 Windows安全模板(Security Template)特性。Windows 2000/XP/2003都支持安全模板的概念,它是一个包含系统各种安全设置的文件。安全模板可用于集合设置的账户权限、注册表值、口令控制和日志记录等,还有其他许多Windows安全配置选项的进置。通过在很多系统中应用相同的模板文件,能够确保贯穿环境的整体安全级达到一个标准的基线。
Win2K Pro Gold Template针对Windows 2000工作站,为大多数机构提供了一个适当的安全基线。对于安全配置,它起着起点和参考点的作用。可以根据你的环境对它进行调节,加强或者放松其约束。
检测Windows系统中的用户模式Root Kit。预防是必要的,但是任何预防都不是完全不可攻克的。内置的WFP工具如果出现任何对话框或记录入口,要注意是否关键系统文件已被修改。
尽管WFP提供了某种保护以防止文件被修改,但你还需要为关键系统使用额外的文件完整性检测工具。这些工具依据于己知有效文件和设置的加密散列查找关键系统文件上的变化。Fcheck就是一个在Windows上实现这样功能的免费工具。此外,Tripwire工具的商业版也可运行在Windows系统。并且Tripwire对Windows系统还有一个额外的优点,即查找对重要注册表设置进行的修改,例如系统中控制 WFP的SFCDisable和其他众多的安全配置项。还有几个其他商业版文件完整性检测工具可用于Windows系统,包括 GFI LAN-guardSystem Integrity Monitor和Ionx Data Senfind。
除了文件完整性检测程序,Symantec等反病毒软件也可以检测很多用户模式Rooter,不过需要在它们加载到系统中且在安装之前[4]。大多数防病毒方案都有针对Windows的几种不同用户模式Root Kit的签名。例如,第1次把AFx WindowsRoot Kit移到用户的计算机上用于测试时,防病毒工具可能行为完全反常,它阻止程序受到访问。只有停止了防病毒工具,才能安装AFX工具。所以通过使用防病毒工具,可以挡住那些掌握用户模式Root Kit的偶然攻击者。所以攻击者在安装Rooter前,会首先停止防病毒工具或者修改其签名基准。
此外,要准备第三方工具的CD—ROM。这些第三方工具可以用来分析系统,包括那些查找异常端口使用的程序,例如Fport和 TCPView工具。应对 Windows系统中的用户模式Root Kit
在系统被Root Kit感染后,系统需要从头开始重建。除了使用基本的操作系统安装,另外还要准备所有的补丁程序和Hotfixes。重建系统如果仅使用基本的安装包,而不对其进行修补,攻击者将很可能使用其首次进入系统时所用的漏洞再次直接攻入系统。在系统完全恢复之后,要使用基于网络和基于主机的入侵检测系统监视它,而且密切监视计算机的日志。这样如果木马再来,就能迅速检测到[5]。
[1] 林卫亮.Win32平台下内核Rootkit检测技术的研究与应用[D].中国优秀硕士学位论文全文数据库,2009,(10):48.
[2] 孙迪.面向Rootkit技术的木马检测方法研究[D].中国优秀硕士学位论文全文数据库,2009,(08):52.
[3] 王东利,栾国森.Windows环境下Rootkit隐藏技术研究[J]电脑知识与技术,2008,(S2):37.
[4] 罗粮,周熙.Root Kit在Linux下的工作原理及其检测[J]计算机安全,2007,(03):28.
[5] 颜仁仲,钟锡昌,张倪.一种自动检测内核级Rootkit并恢复系统的方法[J]计算机工程,2006,(10):83.
TP393
A
1008-4118(2010)03-0094-02
2010-04-10
10.3969/j.issn.1008-4118.2010.03.58