Rootkit呼唤安全技术革新

关于Rootkit我们谈得已经够多了,但如今,随着虚拟机的普及,它已经悄然进入了虚拟化的世界。比方说,安全研究人员可以用英特尔处理器中的虚拟机指令将Rootkit隐藏于虚拟化层中。当然,目前可能还没发现黑客们开发这种更加恶毒的软件。因为即使不依靠虚拟化,目前的Rootkit足以让一般的检测技术兴叹了。

  这里的意思并不是说黑客们在吃老本。用户和内核级的Rootkit仍在甚嚣尘上,更加深入地进入企业网络,将其自己隐藏于处理器中,并且利用多核处理器的漏洞为非作歹。

  Rootkit:万恶之恶

  虽然我们很难说Rootkit是如何猖狂,因为这种东西极难发现。但却不能忽视这样一个事实,即受到巨大经济利益的驱使,rootkit越来越频繁地被用于隐藏远程控制程序、键盘记录程序、垃圾邮件僵尸等恶意程序。

  举例来说,如2008年最臭名昭著的Rustock.c可以如同病毒一样传播,感染内核驱动程序,并且象孙悟空一样采取多种形态来避免特征检测,可以在80号端号上打开但隐藏一个双向的通信通道

  未来的rootkit的发展趋势是与恶意软件越多地结合,或者说将自己隐藏于恶意软件之中。

  这种隐藏技术的最严重后果便是rootkit不但能够轻易的将僵尸隐藏于系统的“视线”之外,还可以避开检测rootkit的最后一道防线-网络检测。

  而多数公司需要开放着80号端口,因为其雇员需要使用互联网。一些恶意用户使用这个通道传输数据。作为网管员应当知道,这个端口主要用作进入的而不是发出的通信,因为网管员应当依靠网关设备上的过滤器来扫描发出的HTTP数据通信。当然,这需要好好调教你的过滤器。

  恶意的通信还可以借助可接受的发出数据通信来传输。例如,它可依附于发出的DNS数据包上。因此,建议管理员密切监视三种通信,一是突发的通信,二是大文件通信,三是其它的异常通信。这三者可能表明有人正在远程执行控制命令。

  从传统上讲,检测系统上的rootkit要比检测隐藏于网络通信中的rootkit困难得多,因为多数rootkit要比反病毒软件有更高的特权。

  不过,我们应当注意这样一个有趣的事实:近来,Vmware公司用其新的VMsafe安全扩展增加了对反病毒的支持,这样就可以在虚拟机监视程序的保护下运行反病毒产品,其特权更高。

  可能很多人看过动画片《猫和老鼠》,其中的老鼠经常将猫玩得不亦乐乎。在安全领中,反恶意代码和rootkit之间的控制和反控制斗争也与此类似。Rootkit可以控制安全软件,并可以控制受感染的计算机。

  Rootkit检测工具可以吗?

  特定Rootkit的检测工具,如RootkitRevealer可以找到内核系统调用和直接磁盘检查的差异,并可以据此检测隐藏的文件、注册表键值及其它属性。例如,在Windows计算机上,可以查找任务管理器的进程列表与内部系统任务列表的差异。

  不过,要注意,这些工具的运行级别仍低于rootkit。运行于用户系统上的检测程序需要动态分析计算机,看看计算机是否撒谎。但最佳的方法是从一个完全干净的系统检测当前系统。或者用另外一个原来完全相同的系统对当前系统进行对比,找出其差异。

  Rootkit要求深度防御

  最新的内核级rootkit,将多种类型的恶意代码包装在内,它可以跳转到处理器,在BIOS检测时,再跳转到系统内核,在计算机被清除和恢复后也难于彻底根除。这种永久性rootkit已经成为最危险的rootkit,在两星期以前的黑帽大会上有研究人员已经清楚地演示了这一点。

  还有一种所谓的游戏僵尸,这种程序尤其喜欢多处理器,它可以运行多个线程,又能平衡负载。其中有些僵尸可通过自动的僵尸程序窃取虚拟币或虚拟货物,然后换卖真实的金钱。Rootkit可以从多个方面来利用固件的漏洞,如可借助于启动加载程序、设备驱动程序、闪速固件更新等。

  当今的安全技术并没有很好地理解硬件的安全问题,这是一个极危险的现象。无论从硬件上讲还是从软件上看,认为安全公司能够使系统完全避免攻击是是愚蠢的。我们要做的就是要让系统尽量安全。