•   您的位置:知识库首页 >> 电脑知识 >> 操作系统
  • Rootkit的介绍

    发布时间:2007-7-11  责任编辑:omega  浏览次数:

    Rootkit ,这个词并没有一个权威的定义。就我的理解,是这么一类工具软件,用于修改操作系统,以改变操作系统的表现行为。而这种改变,往往是不是操作系统设计时所期望的。举个例子,修改操作系统的进程列表,以便特定的进程无法被显示,就是一个典型的Rootkit的目的。


    历史


    Rootkit这个术语来自于Unix系统。最初,在Unix系统上, ls,ps,netstat等命令,大家从来就没有怀疑过结果的可靠性。例如,用last就可以知道最近的login历史,那么如果那位同志非法登陆了你的机器,就可以轻易监测到。不过,hacker的技术是日新月异,很快,就出现了工具可以隐藏login历史,接下来,一批工具可以修改ls,ps等等命令的结果。这些工具,当时被叫做trojan horses。后来,这些各类trojan horses工具被绑定在一起成了一个工具包(kit),就成为了Rootkit。最早的一个版本是出现在SunOS 4上。


    现状


    既然Rootkit出现已经不值一天两天,为什么说是一个新的威胁呢?这是因为随着互联网的普及,Windows系统上出现了越来越多的virus,spyware,worm。而最新的趋势是这些软件和Windows上的Rootkit绑定在一起。试想一想,如果一个spyware将自己的进程和registry信息用Rootkit给隐藏起来,普通用户可能就无法发现还有这么一个软件在运行。而且,各种anti-spyware软件恐怕也就不那么有效了。如果连系统中有什么在运行都无法确定,检测和清除有从何谈起呢?

    Windows系统上的Rootkit分为User mode和Kernel mode两种,取决于它是采用何种方式修改操作系统的。

    举个例子,对于一个典型的WIN32 API调用,例如CreateFile

    User Mode:

    Application --> Kernel32.dll --> NT.dll

    接着通过调用 INT 2EH进入

    Kernel Mode:

    --> KiServiceTable --> NTExecutives

    在这一调用系列中,Rootkit可以修改任何一处,最终目的都是一样的,控制特定的系统调用的返回结果。例如,如果修改了FindFirstFile/FindNextFile调用的结果,那么不管你用DIR命令,还是Explorer, 都看不到Rootkit想要隐藏的文件。

    以往,不管是User Mode的Rootkit,还是Kernel Mode的Rootkit,主要是hook/intercept API调用。最近的发展是,Kernel Mode的Rootkit直接修改关键的Kernel Mode的数据结构,例如把自己的PCB从系统的活动进程表中直接删除。这种Rootkit,要检测起来是非常难办的。

     

    介绍了Rootkit的工作原理,我们看看Rootkit主要用来隐藏什么系统资源:

    运行进程
    服务
    TCP/IP端口
    文件
    注册信息Registry
    用户帐号

    其中最常见的是运行进程,文件,和Registry。

    介绍完Rootkit是什么,那自然而然的一个问题是:如何检测Rootkit?

    最保险的检测Rootkit的办法是Offline OS检测。举个例子,系统自身启动,列出所有的文件,registry项,等等。然后用winPE从CD启动,再列出所有的文件,registry项。对比两个列表。在正常情况下应该是一样的。如果出现不一样的地方,就可以发现那些文件在用自身系统启动的情况下看不到。对这些文件可要注意了。

    这个办法的例子是Strider/Ghostbuster,MS Research开发的。

    另一种更方便的检测方法是API副作用检测。大家知道,Rootkit都或多或少的修改系统调用。那么,先通过正常的高层win32系统调用来列出系统的文件,进程,registry等等,然后再通过最底层的方式列出系统的文件,进程等等。对比两个列表,如果有不同的地方就要注意了。

    这个办法的例子是RootkitRevealer,Sysinternals开发的。有兴趣的可以从Sysinternals上下载。最近闹得沸沸扬扬的Sony的Rootkit就是用它发现的。这个办法使用起来要更方便一些,但不如第一个办法保险。

    至于删除Rootkit,可就比较麻烦了。User Mode的Rootkit还好办一些。Kernal Mode就难了。 如果有官方的工具和信息的话,就直接使用。如果没有的话,那只有重新安装系统才能真正确保删除Rootkit。


    【声明】:
      以上文章或资料除注明为YangChun.org自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。
      目前网站上有些文章未注明作者或出处,甚至标注错误,此类情况出现并非不尊重作者及出处网站,而是因为有些资料来源的不规范。如果有了解作者或出处的原作者或网友,请告知,本网站将立即更正注明,并向作者或出处单位道歉。
      被摘录的对象如有任何异议,请与本站联系,联系邮箱:WebMaster#YangChun.org,本站确认后将立即撤下。谢谢您的支持与理解!
    赞助商




    Google
     
    阳春热线-知识库
    本站郑重声明:所载文章、数据仅供参考,使用前务请核实,风险自负。
    Copyright © 2004-2007  YangChun.org  备案序号:粤ICP备05075203  阳春同乡会主办