什么是rootkit ? Rootkit基本是由几个独立程序组成,一个典型rootkit包括: 以太网嗅探器程程序,用于获得网络上传输的用户名和密码等信息。 特洛伊木马程序,为攻击者提供后门。 隐藏攻击者目录和进程的程序。还包括一些日志清理工具,攻击者用其删除wtmp、utmp和lastlog等日志文件中有关自己行踪的条目。 复杂的rootkit还可以向攻击者提供telnet、shell和finger等服务。还包括一些用来清理/var/log和/var/adm目录中其它文件的脚本。 最近最让IT管理员头痛的是什么呢?——毫无疑问是rootkit。这种可恶的程序是一批工具集,黑客用它来掩饰对计算机网络的入侵并获得管理员访问权限。一旦黑客获得管理员访问权限,就会利用已知的漏洞或者破解密码来安装rootkit。然后rootkit会收集网络上的用户ID和密码,这样黑客就具有高级访问权限了。 rootkit还有监控网络数据和按键的功能;为黑客在系统上开“后门”;修改日志文件;攻击网络上的其他计算机;修改系统上已有的工具防止被检测出来。 那么如何发现rootkit呢?看看三位Windows安全专家对用户的rootkit问题提供了什么解决方案吧。 用户的问题: 我是一家大型非营利机构的IT管理员。由于我们缺乏资金和人手,我们的许多用户需要用管理员访问权限来完成工作。最近,越来越多的用户抱怨他们的管理员应用程序崩溃了。他们的一些管理软件不再工作,例如,一些系统上的抗病毒软件神秘的失效了。有的在试图使用应用程序时蓝屏死机,有的计算机莫名其妙地重启或发送错误信息。用普通的间谍软件和特洛伊木马扫描工具没有发现任何问题。是什么在捣鬼?我们需要重装所有出现问题的计算机吗? =========================================================== 专家教你清除rootkit:诊断 Kurt Dillard:缺少细节,但是,有一些关键的信息。以前一直很可靠的各种计算机系统频繁出现操作系统崩溃的问题意味着受到感染的计算机中的某些东西被改变了。另一个重要的线索是杀毒软件自动关闭自己。最后一个线索是,标准的安全工具不能发现任何恶意软件表明如果这些计算机中有新的软件,这种软件正在偷偷地运行。这种文件隐藏起来了看不到,但是,仍在运行。如果惟一奇怪的事情是数不清的系统崩溃,我会怀疑操作系统最新使用的补丁、设备驱动程序或者一个安全应用程序有问题。这些症候结合在一起暗示某些恶意的东西在起作用。然而,它也许不是一个rootkit。你必须要做额外的研究以便发现正在发生的是什么。 Lawrence Abrams:当你的计算机开始出现异常情况时,我想到的第一件事情就是你的计算机被间谍软件、病毒、特洛伊木马、蠕虫或者其它形式的恶意软件感染了。如果在你使用杀毒软件和/或者反间谍软件进行扫描之后继续存在这个问题,那么,这个时候就该使用某些工具进行深入的分析了。需要检查的是计算机的启动程序,看看是否存在当前杀毒软件定义中没有的新的恶意软件。某些检测故障的软件程序是: HijackThis:这是一种通用的主页劫持者检测和清除工具,能够连续不断地更新。 WinPFind:这个工具软件可以扫描硬盘中的普通位置,查找与已知的恶意软件使用的方式相匹配的文件。 Silent Runners:这个软件工具检查Windows是如何启动的并且创建一个文本文件以便进行研究或者作为一个基准储存起来。如果没有检测到任何东西,设法用安全模式运行这个程序和你的杀毒/反间谍软件。很多与蠕虫一起发布的普通的rootkit在安全模式不能够运行。因此,故障排查软件在安全模式下可以看到这些恶意软件。 如果在安全模式下发现新的记录和文件,计算机很可能受到了在Windows正式模式下看不到的普通rootkit的感染。另一方面,如果你在安全模式下运行同一个工具软件之后仍没有发现任何可疑的现象,但是这个恶意软件的行为继续存在,你可以推测你正在应付一个更高级的rootkit。 Kevin Beaver:考虑到安装的应用程序的奇怪行为,你很可能正在对付某种类型的恶意软件,最有可能是rootkit或者以远程接入特洛伊木马。这些恶意软件能够让黑客从外部偷偷进入没有保护措施的计算机。了解这个事情的惟一方法是运行能够扫描或者监视异常行为和rootkit的存在的其它扫描软件。这种工具可以是Sana安全公司的“Primary Response”,或者Finjan软件公司的各种解决方案以及Sysinternals公司的“RootkitRevealer”。 我还建议同时运行至少二种或者三种反间谍软件工具。也许还会有一些工具软件你没有用到。除了Spybot–Search & Destroy等常用的解决方案和Lavasoft Ad-Aware安全软件之外还有一些工具。我很幸运地使用了冠群国际的PestPatrol和微软的AntiSpyware等工具软件。监视老系统活动的另外两个工具是监视和封锁出站通讯的个人防火墙(不是Windows防火墙)以及能够监视可疑的系统进出的网络通信的网络分析器。当然,只有你的系统连接到网络的时候后一种选择才是可用的。 ============================================================ 专家教你清除rootkit:立即行动 Kurt Dillard:首先,将受影响的系统从网络断开是一个好主意。接下来,你需要决定你愿意投入多少时间。你愿意收集可能用来提出犯罪指控的证据吗?收集证据非常耗费时间,而且你必须要认真遵循适当的证据收集程序来做。你要确定这个事件的根源以便采取具体措施堵住被利用的任何安全漏洞吗?这也需要耗费很多时间。或者像我们大多数人一样,你没有那样多的时间,只是想尽快摆脱故障使系统恢复正常?无论你选择什么办法,我都希望你在事件发生之间制定一个具体的事件反应计划。如果你没有这个计划,你要确定写出一个适合你的机构的业务需求的书面计划。 收集能够用于法庭上的信息系统的证据需要严格的程序,把发生的一切事情都存档保存并且保护原始的数据。我建议,你应该在事件发生之前与你们机构的法律代表和一些业内专家合作制定一个计划。你要使用逐个字节拷贝的工具等软件(也就是Guidance软件公司的EnCase、AccessData公司的FTK Imager或者X-Ways软件技术公司的WinHex等工具软件),在安全的地方存储受到影响的系统,对这些工具软件创建的数据做适于法庭使用的整理工作。 找出发生问题的细节可能需要很多时间。但是,这项工作是令人着迷和有教育意义的。有一些rootkit检测工具: ·RootkitRevealer(成名的和令人尊敬的安全专家Mark Russinovich和Bryce Cogswell制作的) ·Blacklight(知名安全软件厂商F-Secure公司制作的) ·Klister(卑鄙的内核模式rootkitFU的作者制作的–你自己需要决定是否让你的网络信赖这个程序员) 这些工具都有自己独特的功能和缺陷。我喜欢使用RootkitRevealer。但是,恶意软件作者不断地更新他们的工具以便避开最新的检测应用程序,因此,我最喜欢的工具也许也不能检测出所有的恶意软件。你也许需要手工执行微软研究院2004年发布的工具软件“Strider GhostBuster”的白皮书中解释的那些程序。简言之,你要在系统启动的时候拍下系统的快照,收集每个硬盘的目录列表等信息。然后,你使用替代的操作系统启动计算机,用你在干净的操作系统中所看到的东西与被攻破的操作系统中的东西进行比较。 如果你没有时间了,在使受到影响的计算机系统脱离网络之后,你可以直接进入恢复阶段。 Lawrence Abrams:如果你发现的rootkit看起来像是与各种恶意软件捆绑在一起的普通的rootkit,那么,断开这台计算机的网络连接作为你的第一个措施应该是足够的。这将阻止其传播以及可能下载和安装更多的恶意软件。 另一方面,如果你确定那就是目标rootkit,是一个人专门攻破这台计算机并且安装的rootkit,那么,你应该按照你们的机构对付入侵的政策去做。遗憾的是,大多数公司对于这类事件没有政策。如果你可能采取法律行动的话,最低限度你要立即制作一个可在法院使用的硬盘的镜像,把原始的计算机保存起来以便在法庭上当作证据。如果你不打算采取法律行动,你就可以直接进入恢复阶段。 Kevin Beaver:我首先的建议是断开计算机的网络连接,不过,这只能在你能够承受这种损失的情况下才可以这样做(也就是说,如果这样做不影响主要的业务经营的话)。这样做有助于阻止任何恶意软件传播或者影响其它的网络计算机。第二,安装/运行我在诊断阶段提到的应用程序。你可能需要运行这些程序来监视系统的行动。然而,一旦系统受到感染,检测程序要发现异常或者正常的行为都是很困难的,如果不是不可能的话。这主要取决于具体的工具的工作情况。 =========================================================== 专家教你清除rootkit:恢复系统 Kurt Dillard:遗憾的是“用核打击让站点进入轨道”是最有力的恢复方法。一旦黑客攻破了你的计算机,你永远不会确定你发现并清除了每个一被修改的地方。 如果你拥有最新的备份,按下列步骤执行: 1.把硬盘从被感染的计算机中拆下来安装到另一台干净的计算机中。 2.从干净的系统备份数据。 3.删除受影响的计算机的操作系统,并且使用已知的良好的介质重新为受影响的计算机安装操作系统。 4.采取在预防措施阶段中介绍的步骤尽最大努力保证系统的安全。 5.把数据恢复到重建的计算机中。 6.使用最新的杀毒软件和反间谍软件全面扫描恢复的数据。 7.不要存储任何可执行文件。最佳方法是故意删除二进制、脚本、ActiveX控件等任何可执行文件。 Lawrence Abrams:从rootkit的影响中恢复过来是很棘手的。如果rootkit是通过普通的没有针对性的恶意软件安装的,清除这种侵犯你的计算机的恶意软件应该比恢复你的计算机还要困难。 另一方面,如果你对付的是Hacker Defender、HE4Hook、Vanquish或者FU等rootkit,那么,那就是黑客故意把这些rootkit安装到目标计算机中的。记住这个问题,你绝对想不到这些rootkit在你的计算机中安装了什么或者修改了什么。黑客也许会通过注册表修改安全设置,用黑客版本的文件替换你系统中的重要文件,或者以其它方式控制受害者的计算机或者网络。在这种情况下,我总是建议备份数据和重新安装操作系统。在你把数据复制到新安装的计算机之前,扫描一下数据,检查是否被感染。 如果重新安装计算机不是一种选择,你可以使用rootkit检测程序查找属于rootkit的文件。这类工具软件包括Blacklight、RootkitRevealer和Flister等。由于这些文件在rootkit程序之外很可能看不到,你可以使用可启动的Linux发布版软件如KNOPPIX、启动盘或者通过一个网络共享(不建议这样做)清除那些文件。 最后,如果你有资源重新安装计算机,那可能是你最佳的选择。 Kevin Beaver:如果你没有检测到任何rootkit,但是,异常的行为继续出现,你的最佳和最安全的选择是重新格式化和重新安装系统。在进行这种操作之前,你要确保备份一切必要的文件。由于目前大多数恶意软件(特别是rootkit)不感染二进制或者文本文件,这样做是很安全的。恶意软件主要感染可执行文件和操作系统以及应用程序使用的支持库文件。如果你能够清洁系统(如果发现了rootkit就很难做到),你需要经常扫描系统并且监视其它的可疑行为。再说一次,一定要使用我在诊断阶段所提到的那些工具。 ============================================================ 专家教你清除rootkit:预防措施 Kurt Dillard: 你可以采取很多应对措施。下面是最有效的五个措施: 1.避免使用具有管理员权限的账户登录。你可以使用Windows内置的工具RunAs或者MakeMeAdmin等工具软件做到这一点。 2.运行一个为你的整个网络设置的防火墙以及分配给每个端口的防火墙软件,如Windows防火墙(包括Windows XP SP2)。 3.保持你的Windows和其它软件都是用最新的补丁和服务包。如果你只有少量的系统,你可以使用“Automatic Updates”(自动更新)等工具。如果你有很多系统,你可以使用Windows服务器更新服务。 4.使用拥有最新签名库的流行的杀毒软件。要了解更多的杀毒软件厂商,请参阅微软杀毒合作伙伴网页。 5.使用最新的间谍软件保护工具,如微软的Windows反间谍软件。 要了解更多的有关减小受到这种恶意软件攻击的风险的想法,可以参考我最近发表的技术指南。 Lawrence Abrams:安全方面最重要的步骤是尽一切努力阻止用户使用管理员的权限登录网络。可以理解的是,使用当前的Windows结构,这不可能总做到。当恶意软件感染一台计算机的时候,这个恶意软件将以登录用户同样的安全级别运行。因此,如果用户具有管理员权限,这个恶意软件也将拥有管理员权限。这种权限就给予恶意软件全面访问你的计算机的权利。 使用阻止其它恶意软件的最佳做法同样可以防止rootkit(无论是有针对性的蠕虫携带的还是病毒式的蠕虫携带的)。 1.使用防火墙封锁经常被黑客攻破的Windows TCP端口,如20、21、23、80、135、139、443和445端口。通过从源头封锁这些端口,你首先会减少被黑客攻破的风险。最佳的做法的是封锁每一个端口,仅把一个端口映射到一台需要打开端口的机器上。最近的蠕虫利用的程序中的安全漏洞就是使用这些端口。如果一台计算机需要使用上述端口,防火墙应该确定哪一台计算机可以通过这个端口远程接入这台计算机,而不是把端口完全敞开。 2.而且,每一台计算机都应该一直拥有最新的安全更新,并且运行每一天都更新的杀毒软件。病毒软件的新的定义是经常发布的,拥有这些最新的定义是非常重要的。 3.除了杀毒软件之外,你至少还需要两种反间谍软件工具,如在计算机上安装Spybot-Search and Destroy、Webroot软件公司的Spy Sweeper或者Lavasoft公司的Ad-Aware等工具软件。使用最新的更新每天或者每个星期扫描一次能够自动发挥最新的病毒定义的优势。 4.最后一条,但是不是最不重要的一条。要教育用户采取良好的做法。用户应该知道不要点击互联网广告、陌生人从即时消息中发来的链接或者陌生人发来的电子邮件的附件。如果一个新的蠕虫开始传播,IT工作人员应该立即发出电子邮件通知所有的用户,解释这种附件、配置或者措词。 拥有可随时使用的防火墙、反恶意软件工具、最新的安全更新和为用户提供的良好的互联网指南,你应该能够避免受到这些类型的恶意软件的感染。 Kevin Beaver: 只要计算机是由人类操作的或者是连接到网络的,就没有办法绝对保证安全。然而,你可以安装反间谍软件、rootkit检测工具和监视异常情况的软件来保证系统的安全。最理想的是,如果你受到过一次攻击并且不想再次受到这种攻击,你最好安装上述的全部三类安全软件。此外,这句话也许是老生常谈,但是还是要强调一下。你要确保你严格执行所有的操作系统和应用程序都使用最新的安全补丁的规定。 (完)