Rootkit的检测、排除、预防

Rootkit是一种可以以管理员身份拜候计算机或计算机网络的程序.典型情形下,黑客们会通过操纵已知的漏洞或口令破解而得到用户级拜候,从而将rootkit安装到计算机上.Rootkit安装今后,它将准许攻击者掩盖其入侵行为,并得到对计算机的root级或特权级的拜候,在大概的情形下还可以得到对网络上别的计算机的拜候.

rootkit的威胁

普通来说,Rootkit自身并非恶意软件,它是恶意软件用来躲藏自己的一种手段.但经黑客改革的rookkit大概包含特工软件和别的的程序,如监督网络通信和用户击键的程序,也可以在系统中构建一个后门便于黑客利用,还可以改正日记文件,攻击网络上的别的计算机,大概改变现有的系统工具以用躲避检测.

黑客操纵多种技术来操作操作系统,后来果就是用户无法操纵普通的杀毒软件来找到其踪影,更别说排除了.

比方,用户无法在资源管理器中操纵普通的文件查看程序来查找特工文件,也不能通过任务管理器或别的的大都进程查看器来查看.一样地,在系统的启动文件夹内或别的的启动位置中都无法找到别的.即便用趋向科技的HijackThis这款工具也很艰难.

黑客们日益热衷于用rooktit躲藏特工软件或病毒等,这关于用户而言并非一个好消息,因为用户们更简单蒙受这种传染.

检测rootkit的存在并非一件简单的事.大都反特工软件或反病毒扫描程序无法检测这种代码,固然一些产品具有了这种功效,但用户需求越发专业的rootkit检测工具.

Rootkit的范例

至少有五种范例的rootkit:固件(firmware)rootkit、虚拟化rootkit、内核级rootkit、库级rootkit、利用程序级rootkit等.

1.固件(firmware)rootkit

固件(firmware)rootkit利用设备或平台固件来成立顽固的恶意软件镜像.这种rootkit可以成功地躲藏在固件中,因为人们普通并不查抄固件代码的完好性.

2.虚拟化rootkit

这种rootkit通过改正计算机的启动次序而发生作用,其目的是加载自己而不是原始的操作系统.一旦加载到内存,虚拟化rootkit就会将原始的操作系统加载为一个虚拟机,这就使得rootkit可以截获客户操作系统所发出的全部硬件恳求.如BluePill便是一例.

3.内核级rootkit

内核级rootkit增添了额外的代码,并可以替换一个操作系统的部份功效,包含内核和相关的设备驱动程序.目前的操作系统大多并没有强化内核和驱动程序的差别特点.这样,很多内核情势的rootkit是作为设备驱动程序而开辟的,大概作为可加载模块,如Linux中的可加载模块或Windows中的设备驱动程序,这类rootkit极端危险,因为它可得到不受限制的安全拜候权.假如代码中有任何一点错误,那么内核级别的任何代码操作都将对整个系统的安定性产生深远的影响.

内核级的rootkit极端危险,因为它难于检测.其缘由在于它与操作系统处于同一级别,如此一来,它便可以改正或破坏由别的软件所发出的任何恳求.这种情形下,系统自身不再值得信任,一种可承受的检测办法是利用别的一个可托任的系统及其安装的检测软件,并将受传染的系统加载为一个数据源举行检测.

4.库级rootkit

库级rootkit可以用躲藏攻击者信息的办法来补钉、钩住(即所谓的hook)、替换系统调用.从理论上讲,这种rootkit可以通过查抄代码库(在windows平台中就是DLL即动态链接库)的改变而发现其踪影.事实上,与一些利用程序和补钉包一同发行的多种程序库都使得检测这种rootkit相当艰难.

5.利用级rootkit

利用级rootkit可以通过具有特洛伊木马特点的假装代码来替换普通的利用程序的二进制代码,也可以利用钩子、补钉、注入代码或别的方法来改正现有利用程序的行为.

Rootkit的检测

通过对上述rootkit种类的简单解析,我们认为在一个被猜疑传染了rootkit的计算机上检测rootkit是不坚固的或不可托的.Rootkit可以篡改多种工具和别的全部程序赖以运行的库文件,因此rootkit检测的基本问题是,假如当前系统已经被rootkit破坏,那么它就不再值得信任.具体而言,管理员的一些操作,如列示正在运行的程序列表、列示一个文件夹内的全部文件等都未必是最初的计划者所盼望的.总之,在一个活动的计算机上运行rootkit检测程序要想施展作用只能成立在这样一个假定的底子上:所检测到的rootkit并没有采纳躲藏自己的机制.

检测rootkit的最好办法是关闭被猜疑传染rootkit的计算机,然后用别的一个干净的硬盘或别的媒体启动计算机,再用相关的检测软件实施查抄.因为一个没有运行的rootkit是无法躲藏自己的,所以我们可以利用一些通用的反恶意软件工具(如瑞星等国产安全程序套件)配合专门的反rootkit工具来查抄和排除rootkit.但是,正如并非全部的反病毒软件都能检测和排除全部的病毒一样,这种检测办法能否有效也值得进一步探究.

目前有很多检测rootkit的工具,如linux平台的chkrootkit、rkhunter、OSSEC、zeppoo等.Windowws平台的工具我们下面将有介绍,但就目前来看,很多rootkit编写者已经将一些检测程序加入到躲避文件列表中,也就是说它们将采纳某种办法躲避检测.因此下面笔者所触及的检测工具的效用并非绝对的.

检测Windows平台rootkit的四大利器

假如可以找到一个未受传染的测试系统的副本,将其作为参考,那么履行一个文件到文件的对比可以作为一种检测办法.在这种情形下,rookkit及其装载文件便可以被简单地检测到.

但是事实上这种情形是很少碰到的,因为很多人没有其系统的参考副本,更何况系统是动态改变的,系统中总要发生一些合理的改变,而这种改变使得文件的对比更为艰难.

实际情形下,rootkit的检测程序常常是在大概受传染的系统内部着手工作的.此时检测rootkit就成为一种艰难的任务.更何况rootkit的开辟者们意识到了一些新技术的利用,便不断地开辟其产品的新版本,目的是躲避新的检测办法.事实上,检测与躲避检测也就成为猫和老鼠的捉迷藏游戏.

这种情形也就要求用户不该当范围于这样一种见解:某个特定的rootkit检测程序是最好的.事实上,笔者倡议用户要采取几种检测程序.用户还该当及时进级检测程序,因为道和魔的斗争是不断进级改变的.

目前有很多rootkit检测程序都可以利用,但大都都是针对特定rootkit程序的,笔者将为您举荐四个通用的、并不针对某种rootkit的检测程序,并且举荐你最好利用多个工具,这样就增添了检测到大都最新rootkit的机率.要知道,rootkit扫描程序不像防病毒软件那样”一山不容二虎”.

总体而言,内核情势的rootkit可以掌握系统的任何方面,因此经过API返回的信息(包含注册表和文件系统的数据)都有大概遭到破坏.固然对比一个系统的在线扫描和离线扫描(如启动进入到一个基于CD的操作系统即光盘启动)对比坚固,但rootkit可以针对这种工具躲避检测.这样说来,不大概存在一个统一的绝对坚固的rootkit扫描器.

© 版权声明
THE END
喜欢就支持一下吧
点赞6
分享
评论 抢沙发

请登录后发表评论