你上网吗?你下载文件吗?你看电影吗?你用Office吗?你听音乐吗?也许你感觉这些问题比较小白,所有电脑用户,都要玩这些,没有例外。可你知道吗,当你用软件做这些操作时,威胁正一步一步冲你逼来——盗号病毒虎视眈眈地盯着你的电脑,试图远程入侵,企图盗取你的网银、网游等账号和密码。
现在,你心中很疑惑,为什么做这些操作会引来盗号病毒?因为DLL劫持漏洞,因为你使用的常用软件中就有该漏洞!例如浏览器有火狐(图1)、Opera等,下载软件有迅雷、风行、uTorrent(图2)等,播放软件有暴风影音、QQ音乐播放器、酷狗音乐、Winamp等,图片处理软件AutoCAD、Photoshop等,办公软件Office,QQ游戏……
可以毫不夸张地说,中国4亿网民,无人逃得过DLL劫持漏洞的危险,这也是为什么该漏洞也被称为世界末日漏洞的原因。糟糕的是,该漏洞的利用代码已经被公开了,利用该漏洞吧病毒已经在蔓延了。更可怕的是,如果病毒免杀了,安全软件将无力应对,就连启发式扫描也很难作为!
一个允许冒名顶替的漏洞
导致DLL劫持漏洞产生的原因,一点不复杂,就是部分程序在加载一些DLL文件时,只给出了文件名,而没有给出完整路径,系统不得不按照默认搜索顺序找出DLL文件(图3)。黑客就想,如果制造一个程序同名的DLL文件,采取技术手段确保它先于正常DLL文件被加载,不就可以激活病毒了吗?
打一个比喻:如果一封信件上指明了收信人的房门号,邮递员就会直接投递过去;反之邮递员就会挨家挨户敲门去询问,如果有不怀好意的人知道了邮递员敲门的顺序和收信人的姓名,就可以假冒他抢先一步接触邮递员得到信件,再伪造信件命令程序运行病毒。
看到这里,有的读者朋友可能会问:不对呀,这个原理很早就被人发现了,此前还有利用该原理的病毒呢!这不是在忽悠我们吗?不错,很早以前就有人发现了该漏洞的原理,微软还曾经给出了警告,不过一直被忽视了。
忽视的理由很简单,此前该漏洞的利用只能在本地,所以要触发漏洞,得先搞一个DLL文件到电脑里去,过程野蛮容易引起杀毒软件的警觉,导致病毒激活的成功率不高,当真是食之无味弃之可惜。
不过,现在发现了远程利用该漏洞的方法,不用想办法把DLL文件塞进用户的电脑,只要诱使用户访问特定的东东,就可以激活漏洞,这样一来该漏洞的价值体现出来——具备了大规模传播病毒的能力,这才引起安全厂商和微软的高度关注,才会推出应对方法。
安全小百科:DLL是“动态链接库”的简称,在Windows中,被广泛应用。如果程序给出了DLL文件所在的路径,系统就能直接找到;如果只给出DLL文件名,系统就会按照下面的顺序在某些目录中寻找它:
应用程序启动的目录
32位与16位系统目录
Windows目录
当前目录
PATH环境变量列举的目录
在后一种情况下,漏洞就产生了。只要恶意构造的同名DLL文件,抢先一步和系统对接上,恶意程序就可以成功运行。
网友评论