微信扫一扫 分享朋友圈

已有 4489 人浏览分享

开启左侧

关门杀“马”(2)— 木马病毒程序隐藏与监测

[复制链接]
4489 3
 目前,大多数的木马病毒程序为达到下次随计算机启动而自动加载的目的,一般都会将自身隐藏于系统的一些启动项中,利用Windows系统在启动过程中会自动加载某些特定位置所指向的程序的特点,达到每次跟随系统启动而加载的目的。木马病毒最常见的几种隐藏方式有以下几种:

  1、 Win.ini文件

  在Win.ini文件中的[Windows]字段中,包含“Load=”和“Run=”两项,通常情况下此两处均应为空,如果发现后面跟的路径与文件名是不熟悉的文件,很有可能就是木马程序了。当然,也有一些木马病毒会将自己伪装成大家十分熟悉的名字,而诱使你上当,如“AOL Trojan”木马,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。

  2、 System.ini文件

  在System.ini文件的[386Enh]字段中,可以通过增加“Driver=路径程序名”的方式,使指定的程序随Windows的启动而自动加载。

  3、 启动加载文件

  Windows 98/ME在启动时,也会加载Winstart.bat和Autoexec.bat文件中的程序,当系统以命令行方式启动时,会加载Dosstart.bat和Autoexec.bat文件中的程序。由于现在很少有程序会通过这三个文件自动加载,所以通常只要将这三个文件内容清空即可。当然,通过这种方式启动的木马病毒程序也十分少见,毕竟这里并不是利于藏身的好地方。

  4、 隐藏真实程序扩展名

  由于大量的宣传,用户已经逐渐了解到随意执行一些程序,可能会对计算机系统带来灾难性的后果。因此,当用户不能确定一个程序的来源与功能时,可能不会轻易地执行它,而数据文件包括文档文件的打开是相对安全的,因此可能会毫不犹豫地打开它。然而,有些木马病毒正是通过将自己的.exe、.com等程序文件扩展名隐藏起来,伪装成一个.txt或.jpg的数据文件来欺骗用户,当用户双击打开这种文件时,一个潘多拉盒子也就被打开了。在Windows系统的默认情况下,已知文件类型的扩展文件名是不显示出来的,为了了解一个文件的真实后缀名,建议用户取消“隐藏已知文件类型的扩展名”前的复选框。设置方法为:打开“我的电脑”,点击“工具->文件夹选项”,在打开的对话框中点击“查看”,取消“隐藏已知文件类型的扩展名”前的复选框即可。

  5、注册表

  注册表内浩如烟海的分支与数据,在Windows系统流行近十年后的今天仍然给人一种神秘的印象。正是由于注册表数据繁杂、重要,任何的错误修改都有可能导致系统的故障,用户往往不敢或很少主动去操作注册表,因而这里也成为木马病毒最好的藏身所在。注册表中有许多地方能够让木马病毒实现自动加载,目前,大多数查杀木马病毒的程序都将注册表视为一个检测的重点区域。

  1) 随系统启动加载

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRun

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRunOnce

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRunOnceEx

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRunServices

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionRunServicesOnce

  HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRun

  HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRunOnce

  2) 通过文件关联加载

  通过文件关联启动的木马病毒有着很强的迷惑性,它的原理是利用Windows提供的双击某一数据文件时,自动打开此数据文件相应的处理程序这一功能,将处理程序偷梁换柱成木马病毒程序,每当用户双击该数据文件希望自动打开处理程序时,启动的恰恰是木马病毒。例如,当用户双击一个.txt文本文件时,可能木马病毒就会替代Windows的记事本程序而自动加载到内存中运行。木马病毒常见的关联加载选项如下:

  HKEY_CLASSES_ROOT xtfileshellopencommand 关联TXT文件

  HKEY_CLASSES_ROOTdllfileshellopencommand 关联DLL文件

  HKEY_CLASSES_ROOTexefileshellopencommand 关联EXE文件

  HKEY_CLASSES_ROOTcomfileshellopencommand 关联COM文件

  HKEY_CLASSES_ROOTatfileshellopencommand 关联BAT文件

  HKEY_CLASSES_ROOThtafileshellopencommand 关联HTA文件

  HKEY_CLASSES_ROOTpiffileshellopencommand 关联PIF文件

  HKEY_LOCAL_MACHINEsoftware xtfileshellopen command 关联TXT文件

  HKEY_LOCAL_MACHINEsoftwaredllfileshellopen command 关联DLL文件

  HKEY_LOCAL_MACHINEsoftwareexefileshellopen command 关联EXE文件

  HKEY_LOCAL_MACHINEsoftwarecomfileshellopen command 关COM联文件

  HKEY_LOCAL_MACHINEsoftwareatfileshellopen command关联BAT文件

  HKEY_LOCAL_MACHINEsoftwarehtafileshellopen command关联HTA文件

  HKEY_LOCAL_MACHINEsoftwarepiffileshellopen command关联PIF文件

  在上述十四处位置中,“COMMAND”子键的默认键值均应为“%d” %*,如果被改为VirusFileName.exe“%d” %*,则双击以上扩展名文件时,木马病毒VirusFileName将立即自动启动。

  3) Active-X控件

  如果存在:HKEY_LOCAL_MACHINEsoftwareMicrosoft ActiveSetupInstalled componentskeynamestubpath子键,那么该子键的默认值如果是“C:pathtofileVirusFileName.exe”,VirusFileName.exe文件将先于外壳程序和其他任何通过Run键运行的程序执行,这将意味着该木马病毒程序会先于一些杀毒软件进入内存,而导致杀毒软件的失效。

  木马病毒的检测

  木马病毒一般利用注册表来加载自身,但是通过对注册表的扫描来检测木马是十分困难的。因为木马病毒的文件名可以千变万化,往往同一种木马其文件名可能完全不同,要有效地检测出木马病毒,必须通过动静结合的方法来实现。

  静态检测法

  目前,实践表明比较有效的静态检测法是首先建立一个完善的病毒特征库,通过提取疑似程序相同部位数据对比病毒特征库中的记录,相同则报警发现病毒,不同则通过检测。但是这种方法的缺点就是检测速度比较慢,如果文件个数较少尚可,一旦文件个数较多则会加大时间开销。这种方法之所以时间开销较大,主要是在特征字符串比较上所开销的时间较多,对于能够寄生在宿主文件中的文件型病毒和蠕虫病毒而言,为保证准确检测病毒,这种特征字符串的比较是必须的,而目前几乎所有的木马病毒都不具备寄生能力,而是以独立文件形式存在,这样就完全可以采用校验码的方法来更快速地实现木马病毒的检测。

  校验码检测法是通过对典型木马病毒的可执行文件进行逐字节相加,将得到的16进制数据以排序方式保存在病毒特征库中,检测病毒时只要对疑似文件做同样的逐字节相加操作,然后在病毒特征库中折半查找,如果找到相同的检测码表明被检测文件是木马程序,没有找到则可以通过检测。

  同时,为了保证检测的准确性,还可以使用诸如比较文件大小是否相同等一些简单辅助手段来检测。

  动态检测法

  实践表明仅仅采用静态检测法还很难阻止木马病毒的侵扰,如果木马病毒已经在系统中处于活动状态,那么它可以自行恢复被删除的木马程序文件和启动项,下次开机仍然能得到运行。因此,动态检测法就自然成为静态检测法的有效补充手段了,通过动态检测并清除正在运行中的木马病毒,结合静态删除木马程序文件与启动项,达到彻底清除木马病毒的目的。

  动态检测法是指对内存中正在运行的进程进行检测,以发现是否有木马病毒正在运行。要想发现运行中的木马程序并不是一件简单的事,因为几乎所有的木马病毒为了防止被检测出来都运用了一些隐藏技术,能够有效地躲避一般的程序包括Windows的任务列表的查看。如果不能查看到内存中运行的木马进程,也就无法对其进行清除,所以找到系统中激活的木马进程是十分关键的。

  木马病毒分成服务器端与客户端,在其工作过程中服务器端接受客户端的请求,并将结果返回到客户端中,在工作过程中双方必然要进行通信,因此几乎所有的木马病毒都要利用端口技术来完成通信任务。在同一个系统中相互进行通信的每个进程都要分配一个唯一的端口号,端口号不能重复,也就是端口号与进程之间具有一一对应的关系,这一点正如人类的指纹一样,通过对端口号的甄别可以达到识别运行中的不同进程的目的。

  但是如何能够区分利用端口进行通信的进程是用户合法进程还是木马进程呢?目前,大多数杀毒软件通过在系统中搜索被打开的端口号,并与已知的木马病毒特征端口号加以比较来判断是否有木马正在活动。这种方法对付使用静态端口号的木马病毒十分有效,但是新出现的一些木马病毒为了躲避杀毒软件的检测,使用了一种动态端口号技术,这种技术允许木马的使用者自行指定工作端口号。例如,较新版本的冰河就可以由用户自行指定运行时的端口号。这就使静态检测端口号的方法无法有效检测出木马病毒。

  要对付这样的木马病毒必须使用动态的端口检测表技术,我们称其为—黑白端口检测技术。这种技术是利用黑白两张端口表来对使用端口的进程进行过滤检查,如果进程使用的端口号在白表中,表明是合法进程,其通信不受任何阻碍;但是如果进程使用的端口号出现在黑表中,表明该进程很可能是非法进程,必须将该进程杀死。要达到有效检测木马病毒的目的,创建合适的黑白端口表十分重要。黑白端口表的创建可以分成两部分,预先可以先将已知的木马病毒通常使用的端口号设置到黑表中;将已知的合法进程如:数据库系统、IE、Outlook、FTP、Telnet等常用的端口号放入白表中,使用顺利通过访问。在系统运行过程中一旦发现有进程要求使用端口号进行通信,而该端口号又不在黑白表中,即向用户发出询问,由用户根据实际情况来决定将该端口号放入白表或黑表中。一般来说,如果用户正在启动一个网络程序,此时发出端口号查询是正常的,可以将该端口号记录在白表中;但是如果用户没有进行任何操作,而突然出现端口号查询就必须仔细检查到底是何进程需要通信,如果进程的文件名十分陌生,为安全起见可以先将其放入黑表中,如果以后发现的确是合法进程,可以通过手工的方法将端口号从黑表中移动到白表中。
水窝回馈窝友承诺

评论 3

LiveOnLove  注册会员  发表于 2008-8-25 20:25 | 显示全部楼层
..............................
handsome911_199  V3+  发表于 2008-9-10 23:20 | 显示全部楼层
我有卡巴斯基,别无所求
可口可乐  V3+  发表于 2008-9-26 21:19 | 显示全部楼层
什么东西啊 看看先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

关注

21

粉丝

0

主题
精彩推荐
热门资讯
网友晒图
图文推荐
  • 微信公众平台

  • 扫描访问手机版

  • QQ: 455494158

    客服电话

    上海:189-1713-1515 北京:189-1196-2030

    电子邮件

    chenuany@126.com

    在线时间:8:00-21:00