董师傅茶坊(29)
董师傅茶坊
万立夫(安全专家)
恶意程序为何钟情DLL文件
董师傅:随着微软的操作系统从Windows 9X逐渐过渡到Windows 2000/XP/2003,系统自带的任务管理器也一下子变得非常强大,这就使得以前在Windows 9X下就能够在任务管理器中“隐身”的木马面临前所未有的危机,这也促使木马作者开发全新的木马程序来躲避任务管理器和杀毒软件的检测,于是可以进行线程插入的DLL木马就应运而生了。本期,董师傅邀请到安全专家万立夫共同探讨这些问题。
随着Windows操作系统版本的不断升级,各种各样的恶意程序也不断地推陈出新。但是经过认真的观察,我们可以清晰地看到,很多恶意程序都和DLL文件有所关联,甚至很多恶意程序就是一个单独的DLL文件,比如木马程序、后门程序、恶性病毒、流氓软件等等。
万立夫:DLL文件的确是现在很多恶意软件非常喜欢的一种文化格式。为搞清为什么这么多恶意文件都钟情DLL文件,首先我们来了解什么是DLL文件。DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数(应用程序编程接口)都是在DLL中实现的,是Windows系统中很多驱动程序和应用程序运行时必需的文件。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。
因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们有了一个DLL木马,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马的DLL文件,如果那个进程是可信进程(如资源管理器),那么这个木马的DLL文件作为那个进程的一部分,也将成为被信赖的一员。
董师傅:同样是利用DLL文件,但是不同的恶意程序又采用了不同的插入方式,通常插入的方式分为自动插入和手动插入,而这两种方式又有很多的不同之处。有的直接挂着Rundll32进程即可运行,即使你杀了Rundll32进程,木马本体还是在的。利用这种方法除了可以用来启动木马之外,不少应用程序也采用了这种启动方式。
万立夫:的确,前面我说过,DLL不能独立运行,所以要想让木马跑起来,就需要一个EXE使用动态插入技术让DLL搭上其他正常进程的车,让被插入的进程调用这个DLL的DllMain函数,激发木马运行,最后启动木马的EXE结束运行,木马启动完毕。启动DLL木马的EXE是个重要角色,它被称为Loader,Loader可以是多种多样的,Windows的Rundll32.exe也被一些DLL木马用来做了Loader。
通过上面的介绍,我觉得这些利用DLL文件的恶意程序就像寄生虫一样,寄宿在某个重要的,或是可信的进程之中,这就是人们常说的线程插入技术。让木马的核心代码运行于别的进程的内存空间,这样不仅能很好地隐藏自己,也能更好地保护自己。
万立夫:的确,DLL木马的最高境界是动态插入技术,动态插入技术指的是将自己的代码嵌入正在运行的进程中的技术。从理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。
董师傅:DLL文件之所以被恶意程序利用,除了能很好地隐藏自己和保护自己外,更重要的是不容易被杀毒软件所杀。换成手工方式清除,也很难删除这些恶意文件本身,甚至进入安全模式也无法常规地清除。
万立夫:由于现在很多的DLL木马都会插入到正在运行的系统进程之中,这些进程都是系统的关键进程,因此达到不被杀毒软件查杀的目的。另外由于很多的DLL木马都可以设置插入的进程,比如iexplore.exe、svchost.exe等系统进程,而这些进程往往都是允许访问网络的,所以可以轻易地突破网络防火墙的拦截。
除此以外,一些特殊的DLL后门还可以使用端口复用、系统服务启动、多线程防护等技术,使得DLL木马的隐蔽性更高,也更加地不容易被杀。一句话,和DLL文件相关的恶意程序是很难被清除掉的。
董师傅:现在很多读者反映,通过杀毒软件对这些DLL木马进行查杀后,不是查杀不干净,就是开机就会出现某些DLL文件找不到的情况。如果要区别该DLL文件是系统DLL还是DLL木马,最常见的方法只有通过检测两个文件的MD5值来验证。
万立夫:这主要是由一种特殊的后门程序Rootkit造成的,Rootkit是一种集合了系统间谍程序、病毒以及木马等特性的一种恶意程序,它利用操作系统的模块化技术,作为系统内核的一部分进行运行,有些Rootkits可以通过替换系统原来的DLL文件,这样既可以保证相关软件的正常运行,又可以实现DLL木马的激活运行,正所谓“一举两得”。
可是当杀毒软件将它清除以后,虽然DLL木马被清除掉,但是由于原有的DLL文件被替换,这样那些需要该DLL支持的程序就不能正常运行,从而造成开机出现某些DLL文件找不到的情况。
要想避免这种情况发生,只有从其他正常干净的系统拷贝所需的DLL文件到系统的system32目录即可。如果是没清除干净的情况,我们则只要在注册表中找到这个DLL木马的残留项,清除之即可。
董师傅:利用DLL文件已经成为现在恶意程序的一种“时尚”,由于其独特的运行方式和隐蔽性,使得不少的用户束手无策、头疼不已。如果DLL文件注入到系统的关键进程,可以考虑使用IceSword对插入的DLL文件进行“强制解除”,这样恶意程序就别想死灰复燃了。最后的工作就是清除掉恶意程序在系统和注册表中的相关内容。
董师傅热线
关闭防火墙对电脑安全有影响吗
黄侪何:为了提高BT的下载速度,我关闭防火墙。而且在PPLive和PPStream中也有这样的要求。请问:这样做,对电脑的安全有没有影响?
A:只要设好管理员账户的口令,并且勤打补丁,如无特殊情况,基本上是没有什么危害的。但是董师傅并不建议你这么做,因为关闭防火墙其实并不能非常明显地提升速度,反而降低了对你电脑的安全保护。
如何删除酷桌面
俊俊:我的电脑老提示:“0x7c8248d9”指令引用的“0x01961000”内存不能为“read”,并且我电脑里面有一个叫“酷桌面”的软件,删除不了,怎么办?
A;可能是酷桌面导致系统频繁报错,删除酷桌面的方法:在系统启动时按F8进入安全模式,点击开始→控制面板→添加或删除程序,找到“Cool66”,并卸载。酷桌面的安装目录为C:\Program Files\Cool66,删除该目录后重启系统。
下载免费的超级兔子,安装后,重启系统,按F8进入安全模式,点击超级兔子IE修复专家,点击快速检测系统或者下一步,查找可疑程序和木马病毒。如果没用则删除这个文件夹:C:\Program Files\LetsCool。然后在开始运行中输入 msconfig,在启动选项卡中删除包含C:\Program Files\LetsCool的项目。
无法升级IE 6
何达:我用Win2000,想把IE5升级到IE6,安装时统时总是提示:尚有未完成的其他程序的安装,需要重起系统,现在要停止IE的安装。确切地说是 Windows Update的警告提示,原文如下:“以前的安装有尚未完成的操作,需要重新启动。建议在运行Internet Explorer安装程序之前重新启动计算机。现在安装程序将关闭。”请问如何解决?
A:微软知识库有确切的解决方案,在http://support.microsoft.com/kb/319585。简单说来是这样解决的:将资源浏览器设置为显示所有文件和文件夹,然后删除 Internet 临时文件,重新启动计算机,然后删除 C:\ Program Files\Windows Update\文件夹中除了V4以外的所有文件夹和文件,注意:如果找不到 V4 文件夹,则删除所有的子文件夹和文件。且跳过下面一步:删除V4文件夹除Iuhist.xml文件以外所有的文件夹和文件。
然后搜索并删除Windows Update ActiveX 控件——Iuctl.dll 和 Iuengine.dll;如果在 C:\Windows\System32\Dllcache 文件夹中找到了这些文件,请删除它们;如果在除 C:\Windows\System32 之外的任何其他文件夹中找到了这些文件,请删除它们。在删除这些文件的所有其他副本之后,从 C:\Windows\System32 文件夹中删除它们。访问 Windows Update Web 站点以安装 ActiveX 控件的新副本。然后重新安装IE 6。
星空急速无法上网
曹得勇:我用的是星空急速(宽带),无缘无故地登录不上去,我检查了所有外设连接,本地连接正常,网线也是好的,系统显示的是“734:ppp网络连接控制协议终止”。网络诊断为网络组件被损坏,请重新安装网络组件或重装系统,我该怎么办?
A:董师傅建议直接使用WinXP自带的 PPPoE拨号软件,据董师傅所知,很多用户反应星空急速存在很多问题,不能共享上网就是其中一例。选择其他PPPoE软件会解决你的问题,除了WinXP自带的PPPoE外,还有WinPoET、RASPPPoE等都很不错。
下载就会自动重启
封建国:我的电脑重装了WinXP,然而从此就下载不了软件了,一下载就会自动重启,但下载图片、MP3都没问题,这是为什么?
A:是不是你用IE直接下载?如果是的话就可能是中毒或者不慎安装了流氓软件,用专用的下载工具应该不会出现自动重新启动的现象。将杀毒软件的病毒库升级到最新版,最好到安全模式下查杀,并用恶意软件清理助手来清除恶意软件。
闪存会传播蠕虫病毒吗?
曾有为:今天在办公室电脑上重新安装了杀毒软件才发现有不少蠕虫。可是我发觉自己的电脑也有同样的病毒,数量也相同。记得我曾经用自己的闪存连入过办公室电脑,闪存会传播蠕虫吗?
A:能,确实有这样的病毒,例如,名为“不公平”的新型病毒(Worm/Unfair)被江民快速反病毒小组成功截获,与其他病毒不同的是,该病毒是能通过闪存传播的病毒。
该蠕虫是通过A盘(或是闪存)传播的。在蠕虫进入内存中的时候,通过向A盘(或是闪存)中复制蠕虫本身进行传播。
对软盘用户来说,如果A驱中有软盘存在,就会感觉到不断地有写软盘的动作,从而感觉系统异常。但对于使用闪存替代软盘的用户,蠕虫的传播就可能会悄然无息,所以闪存的用户更应该注意。另外,由于该蠕虫文件的图标是Word文档的图标, 很容易让人误认为是Word文件,而不会想到是病毒程序。
类似的病毒还有:“Reper”(Worm.Reper.a)蠕虫病毒,通过移动磁盘(软盘,闪存等)传播,并结束大量系统进程,直接降低系统安全性能。