Rootkit的类型
至少有五种类型的rootkit:固件(firmware)rootkit、虚拟化rootkit、内核级rootkit、库级rootkit、应用程序级rootkit等。
1.固件(firmware)rootkit
固件(firmware)rootkit使用设备或平台固件来创建顽固的恶意软件镜像。这种rootkit可以成功地隐藏在固件中,因为人们通常并不检查固件代码的完整性.
2.虚拟化rootkit
这种rootkit通过修改计算机的启动顺序而发生作用,其目的是加载自己而不是原始的操作系统。一旦加载到内存,虚拟化rootkit就会将原始的操作系统加载为一个虚拟机,这就使得rootkit能够截获客户操作系统所发出的所有硬件请求。如Blue Pill即是一例。
3.内核级rootkit
内核级rootkit增加了额外的代码,并能够替换一个操作系统的部分功能,包括内核和相关的设备驱动程序。现在的操作系统大多并没有强化内核和驱动程序的不同特性。这样,许多内核模式的rootkit是作为设备驱动程序而开发的,或者作为可加载模块,如Linux中的可加载模块或Windows中的设备驱动程序,这类rootkit极其危险,因为它可获得不受限制的安全访问权。如果代码中有任何一点错误,那么内核级别的任何代码操作都将对整个系统的稳定性产生深远的影响。
内核级的rootkit极其危险,因为它难于检测。其原因在于它与操作系统处于同一级别,如此一来,它就可以修改或破坏由其它软件所发出的任何请求。这种情况下,系统自身不再值得信任,一种可接受的检测方法是使用另外一个可信任的系统及其安装的检测软件,并将受感染的系统加载为一个数据源进行检测。
4.库级rootkit
库级rootkit可以用隐藏攻击者信息的方法来补丁、钩住(即所谓的hook)、替换系统调用。从理论上讲,这种rootkit可以通过检查代码库(在windows平台中就是DLL即动态链接库)的改变而发现其踪迹。事实上,与一些应用程序和补丁包一起发行的多种程序库都使得检测这种rootkit相当困难。
5.应用级rootkit
应用级rootkit可以通过具有特洛伊木马特征的伪装代码来替换普通的应用程序的二进制代码,也可以使用钩子、补丁、注入代码或其它方式来修改现有应用程序的行为。