查看: 6131|回复: 31
收起左侧

[讨论] 被诅咒的图片——图片病毒技术内幕

  [复制链接]
下页:_儁。
发表于 2012-5-28 08:44:14 | 显示全部楼层 |阅读模式
本帖最后由 下页:_儁。 于 2012-5-28 11:59 编辑

鉴于最近小A区反映好多图片报毒的问题,本人也遇到过好几次,连QQ群发的一张图片都报毒,
而且据群里人反映 ESET也会报毒,不清楚是否误报,但是报毒的大多是启发高的杀软。




    所以这些图片报毒难免引起一些惊恐,不过大家不用担心,首先图片病毒是个很老的东西了,
一般对现在的系统构不成什么威胁了,只要你打了最新的补丁,哪怕不小心浏览了图片病毒,
只要你机子上有安软,一般都能拦截的。


      想当年2005年的时候,国内爆发的图片带毒来袭,实在让所有人都擦了一把汗,然而我们都知道,
JPEG、GIF等格式图片不具备可以执行自身并散播病毒的条件,这不符合逻辑。回忆一下2004年9月
14日的事,微软发布了MS04-028安全公告:JPEG处理(GDI+)中的缓冲区溢出可能使代码得以执行。
没错,就是这个漏洞,它的术语叫GDI+,对应的动态链接库为GdiPlus.dll,这是一种图形设备接口,
能够为应用程序和程序员提供二维媒介图形、映像和版式,大部分Windows程序都调用这个DLL完成
JPEG格式图片的处理工作。但是现在,正是这个“公众人物”成了众矢之的。

  说到这里,有基础的读者应该明白了吧:并不是图片自己能传播病毒,而是系统负责图形处理工作
的模块会在处理图片时发生溢出导致图片内携带的恶意指令得以执行破坏。如果某个图片工具不调用这
个系统模块,而是使用自己的处理模块,那么同样包含恶意指令的图片就不能达到破坏目的。但是因为
这个系统模块是默认的处理模块,所以大部分程序在“JPEG病毒”面前纷纷落马。

  这个溢出是怎么产生的呢?这要从系统如何读取JPEG格式图形的原理说起,系统处理一个JPEG图片时,
需要在内存里加载JPEG处理模块,然后JPEG处理模块再把图片数据读入它所占据的内存空间里,也就是所
说的缓冲区,最后我们就看到了图片的显示,然而就是在图片数据进入缓冲区的这一步出了错——Windows
规定了缓冲区的大小,却没有严格检查实际容纳的数据量,这个带缺陷的边界检查模式导致了噩梦:入侵者
把一个JPEG图片的数据加工得异常巨大并加入恶意指令,那么这个图片在系统载入内存时候会发生什么情况
呢?图片数据会涨满整个JPEG处理模块提供的缓冲区并恰好把恶意指令溢出到程序自身的内存区域,而这部
分内存区域是用于执行指令的,即核心区,于是恶意指令被程序误执行了,入侵者破坏系统或入侵机器的行
为得以正常实施。有人也许会疑惑,入侵者都是神算子吗,他们为什么能准确的知道会是哪些数据可以溢出
执行?答案很简单,因为Windows在分配JPEG处理模块的空间时,给它指定的内存起始地址是固定的,入侵
者只要计算好这个空间大小,就能知道会有哪些数据被执行了,所以JPEG病毒迅速传播起来。

  所谓JPEG病毒,并不是JPEG图片能放出病毒,而是系统处理JPEG图片的模块自己执行了JPEG图片携
带的病毒,所以我们大可不必人心惶惶,只要补上了GDIPLUS.DLL的漏洞,那么即使你机器上的所有JPEG
图片都带有病毒数据,它们也无法流窜出来搞破坏,正如美国马萨诸塞州立大学助理教授奥斯汀所言:“病
毒不仅仅是可自我复制的代码,他们需要通过可执行代码的方式来进行传播。JPEG文件不能执行代码,他
们是由应用软件打开的数据文件。应用软件不会去查找数据文件中的可执行的代码,为此不会运行这些病
毒代码。”

  对于图片病毒的防范

  对于虚假图片文件的欺骗手法,只要用户补上了MIME和IFRAME漏洞,那么入侵者让你停留多久也无
济于事;至于BMP木马,它的防范是几乎不可避免,但是它有个最大的弱点,大部分情况下只能在Win9x
环境正常执行,用Win2000以上的用户不必草木皆兵了;而对于JPEG病毒来说更好办了,微软已经提供JPEG
模块的更新了,你倒是去补一下啊!即使真的一点也不会,买个防病毒软件在后台监视也OK了,但是为什么
国内用户却偏偏喜欢徒劳的恐慌?

  



   给大家一个案例看看——位图特性的悲哀

  他是一家公司的网络管理员,在服务器维护和安全设置方面有足够多的经验,因此他无需惧怕那些利
用浏览器漏洞实现的病毒。这天他在一个技术论坛里看到一个网友发的关于AMD某些型号的处理器存在运
算瑕庇的帖子,并给出一个测试页面连接,根据官方描述,如果你用的CPU存在瑕庇,那么你会看到页面
上的测试图片显示得破损错乱。他心里一惊:自己用的CPU正是这个型号。他马上点击了页面连接。

  看着页面上乱七八糟的一幅图片,他心里凉了一截:这台机器的CPU居然有问题,而他还要用这台机器
处理公司的重要数据的!他马上去管理部找负责人协商,把显示着一幅胡里花哨图片的机器晾在一边。

  管理部答应尽快给他更换一台机器,让他把硬盘转移过去,因为上面有重要的业务资料。他回来时看到
那幅图片还在耀武扬威,他厌恶的关闭了页面,照例打开存放资料的文件夹,他的脑袋一下子空白了:资料
不见了!谁删除了?他慌乱的查找硬盘每个角落,可那些文件却像蒸发了一样。许久,他终于反应过来了:
机器被入侵了!他取下硬盘直奔数据恢复公司而去。

  事后他仔细分析了原因,因为机器已经通过了严格的安全测试而且打了所有补丁,通过网页漏洞和溢出
攻击是不可能的了,唯一值得怀疑的只有那个所谓的瑕庇测试网页了,他迅速下载分析了整个页面代码,看
着页面源代码里后缀名为“.BMP”的IMG标记和一堆复杂的脚本代码,他知道自己是栽在了BMP木马的手上。

  那幅“测试瑕庇”的图片,无论到什么机器上都是一样有“瑕庇”,因为它根本不是图片文件,而是一个以
BMP格式文件头部开始的木马程序。

  为什么看似温顺的图片文件也变成了害人的凶器?这要从位图(Bitmap)格式说起,许多朋友应该都知
道流传了很久的被称为“图片藏字”的“密文”传播方式,即在位图文件尾部追加一定量的数据而不会对原位图
文件造成太大破坏,这是位图格式的限制宽松而造成的。系统判断一个位图文件的方法并不是严格盘查,而
是仅仅从文件头部的54字节里读取它的长宽、位数、文件大小、数据区长度就完成了图片的识别,宽松的盘
查机制使得BMP木马得以诞生。


       不过先要澄清一点概念,BMP木马并不是在BMP位图文件屁股后追加的EXE文件,而是一个独立的EXE可
执行文件,但是它的文件PE头部已经用位图文件头部替换了,由于系统的盘查机制,这个EXE文件就被浏览器
认成位图文件了。既然是位图,在浏览器的程序逻辑里,这是需要下载到Internet高速缓存文件夹然后显示在
页面上的文件,但是因为这个文件本来就不是位图,它被强制显示出来以后自然会变成一堆无意义的垃圾数据,
在用户眼里,它就成了一幅乱七八糟的图像。但这不是引起木马危机的原因,要留意的是这些文字:“需要下载到Internet高速缓存文件夹”!这说明浏览器已经请狼入室了——木马已经在硬盘上安家了,但是目前它还在沉睡中,
因为它的文件头部被改为位图格式,导致它自身已经不能运行,既然不能运行,理所当然就不能对系统构成危害,
那么这只狼在硬盘呆多久也是废物一个,入侵者当然不能任由它浪费,因此他们在做个页面给浏览器下载木马
的同时,也会设置页面代码让浏览器帮忙脱去这只狼的外衣——把位图格式头部换成可执行文件的PE头部,然
后运行它。经过这些步骤,一只恶狼进驻了系统。

  
       这个无法修补的漏洞十分可怕,用户很难知道他们正在浏览的页面是否正在偷偷下载着木马数据,
因为即使他们打好了所有补丁也无济于事,木马是被IE“合法”下载的,不属于代码漏洞,而且单靠程序本
身也很难判断这个图像是不是木马程序,机器靠二进制完成处理工作,而不是视网膜成象交给大脑判断。
但是,由于这也是需要下载文件的入侵方式,它能否下载完毕以及用户愿不愿意去看页面就要取决于入侵
者的社会工程学了,在任何一个页面里放出一个乱七八糟的图片或者来一个隐藏的图片框都不是最明智的
选择,除非利用一些“暇庇声明”或更能引起人的兴趣的伎俩。那家公司的网管之所以会这么不设防,就是
因为攻击者偷用了人们的“心理盲区”,因为人们对安全、漏洞、病毒、暇庇等内容会特别敏感,所以入侵
者发个专业暇庇案例就欺骗了一大堆人,这次是拿真实的事件:AMD某些型号CPU会导致图像显示出问题
的暇庇来做鱼饵,下一次又该拿什么了呢?





        对于一些论坛呀贴吧呀的大部分用户来说,有时候上网浏览过程中莫名其妙的报毒或者中招,可是整个
页面就只有一个JPEG图片的连接,其他恶意代码和程序根本不存在。入侵者靠什么破坏了看帖用户的机
器?难道竟是这个JPEG图片?

  答案恐怕让人难以接受,的确就是这幅JPEG图片让用户感染了病毒。尽管病毒研究一直未曾停止,可是
发展到这个地步,实在让人不能承受:再下去是不是打开一个文本文件都会被感染病毒?


       在网上见过很多什么神奇的图片呀,还有什么测试人的心理的图片,反正总之是一些看着很晕乎的图片,至于这些图片只是恶搞呢,还是有别的居心我就不清楚了,不过还是希望大家注意。

        因为IE浏览器的功能很强大,它可以自动识别并打开特定格式的文件而不用在乎它是什么文件后缀名,
因为IE对文件内容的判断并不是基于后缀名的,而是基于文件头部和MIME。当用户打开一个文件时,IE读取
该文件的头部信息并在本机注册表数据库内查找它对应的MIME格式描述,例如打开一个MIDI文件,IE先读取
文件前面一段数据,根据MIDI文件的标准定义,它必须包含以“RIFF”开头的描述信息,根据这段标记,IE在注
册表定位找到了“x-audio/midi”的MIME格式,然后IE确认它自己不具备打开这段数据的能力,所以它根据注册
表里的文件后缀名信息找到某个已经注册为打开后缀名为“.MID”的文件,然后提交给此程序执行,我们就看到
了最终结果。

  正是因为这个原理,所以IE很容易受伤。入侵者通过伪造一个MIME标记描述信息而使网页得以藏虫,在这
里也是相同的道理,你打开的实际上是一个后缀名改为图片格式的HTML页面,它包含上述两个漏洞的病毒文
件和一个高度和宽度都设置为100%的图片IMG标记,所以在你看来,这只是一个图片文件,然而,图片的背
后却是恶毒的木马。木马程序体积都比较大,下载需要一定时间,入侵者为了确保受害者打开页面的时间可以
使整个木马文件下载完毕,就采用了社会工程学,让受害者不会在很短的时间内关闭页面(就是那种神奇的图
片呀,测试心理的图片呀,测试你左脑还是右脑发达的一张替换着左右旋转的图片),当木马偷渡下载执行后
,“图片”的诅咒就应验了。

    不过大家放心,现在的IE9已经很安全了,chrome也不错。



      纵观这一系列图片病毒的原理和手法,我们可以发现“社会工程学”这个身影的扩大化趋势。
如何避免被骗,这只能看你自己了。


     总之呢,是想让大家稍微了解下图片病毒,其次呢大家也不用恐慌,现在的恶意技术层出不穷,
对于我们普通用户来说,我们能做的也只是电脑上安装一些安全防护软件,定时打补丁和更新软件,
养成良好的上网习惯。


对于一些老病毒呢,大家如果怀疑自己的机子上有藏着的,可以使用一下金山的专杀工具,

地址 http://www.duba.net/download/3/

这些工具一般人找不到哦。很老的。





引用楼下3000+ 于 2012-5-28 10:59 的评论

学无止境!关于位图说点肤浅的感受,一孔之见,谨供参考~~

(觉得图省事的话,在浏览器的全局过滤里添加 *.bmp 黑名单也是一个选择;不过,就是牺牲了网页里的bmp 图片了。话说回来——觉得网页的常用图片一般是gif、jpg和png,这些也够用了,而bmp 位图不具有优势——在网页上,因为它占位大、压缩率少甚至没有,不利于传输,也把网页档案变大了,so一般专业的网页编辑是不大使用到这格式的,别有用心的另说。)

PS: 良好的上网习惯+非IE内核的浏览器

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 2人气 +2 收起 理由
毛豆小新 + 1 很给力!
qynubf + 1 科普文章!

查看全部评分

潘中医
发表于 2012-5-28 09:07:09 来自手机 | 显示全部楼层
感谢大神讲解,最后给的地址碉堡了。
真小读者
发表于 2012-5-28 09:08:09 | 显示全部楼层
多谢科普
xp-AntiSpy
发表于 2012-5-28 09:10:21 | 显示全部楼层
多谢科普 .....
细细的票根
发表于 2012-5-28 09:11:26 | 显示全部楼层
图片还是要看的,不然还叫互联网吗?
wwqq
发表于 2012-5-28 09:22:39 | 显示全部楼层
一直用谷歌浏览器。,不过还没遇到这种情况。。。还是被灭了?
悠闲的小强
发表于 2012-5-28 09:27:15 | 显示全部楼层
技术贴 学习了
qynubf
发表于 2012-5-28 09:40:12 | 显示全部楼层
科普文章,学习了!
仯釕↘①訜執著
发表于 2012-5-28 10:15:39 | 显示全部楼层
你好既然在小A区发过就不要在其他版区在发一遍  
大漠X孤烟
发表于 2012-5-28 10:18:11 来自手机 | 显示全部楼层
学习了~
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-22 11:15 , Processed in 0.142349 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表