JPEG病毒如何發(fā)作?都是內(nèi)存地址惹
2004年9月14日,微軟發(fā)布了安全公告 MS04-028,其作用是修補(bǔ)“JPEG 處理時(shí) (GDI+) 的緩沖區(qū)溢出可能允許執(zhí)行代碼”的漏洞,也就是近一陣的“JPEG病毒”所利用的。查閱本站的相關(guān)報(bào)道請(qǐng)點(diǎn)擊【這里】,以下是瑞星官方網(wǎng)站的部分報(bào)道:
瑞星公司日前發(fā)布紅色(一級(jí))安全警報(bào)。警報(bào)顯示,微軟Windows系統(tǒng)出現(xiàn)重大漏洞,瑞星互聯(lián)網(wǎng)功防實(shí)驗(yàn)室已經(jīng)在互聯(lián)網(wǎng)上監(jiān)測(cè)到針對(duì)該漏洞的攻擊代碼,可以認(rèn)為,一種高危的新型病毒――-圖片病毒極有可能在近期出現(xiàn)。
專家表示,所有Windows用戶都有可能被這種新型病毒攻擊,這類病毒可以用任何方式攻擊用戶電腦系統(tǒng),包括格式化硬盤、刪除文件等等。所有帶有 JPG圖片的郵件、網(wǎng)頁(yè)都有可能成為這類新型病毒的傳播渠道。這類病毒有可能通過(guò)以下形式發(fā)作:1.群發(fā)郵件,附帶有病毒的JPG圖片文件;2.采用惡意網(wǎng)頁(yè)形式,瀏覽網(wǎng)頁(yè)中的JPG文件甚至網(wǎng)頁(yè)上自帶的圖片即可被病毒感染;3.通過(guò)即時(shí)通信軟件(如MS N、QQ等)的自帶頭像等圖片或者發(fā)送圖片文件進(jìn)行傳播。
那么,這個(gè)“JPEG病毒”是如何發(fā)作的呢?危害性又有多大?小編在這里為您粗略的解釋一下,同時(shí)歡迎大家進(jìn)行討論。
要解釋這個(gè)病毒的發(fā)作原理,首先要從內(nèi)存講起。Windows管理的內(nèi)存中,包括應(yīng)用程序空間以及核心空間,如下圖所示:

在打開(kāi)JPEG文件的時(shí)候,需要將文件中的相關(guān)部分裝載到應(yīng)用程序空間中的紅色區(qū)域進(jìn)行處理。這本來(lái)是一件很美好的事情,但是微軟的操作系統(tǒng)和很多應(yīng)用軟件都有一個(gè)特點(diǎn)——對(duì)JPEG的操作模塊在內(nèi)存中的位置非常固定,現(xiàn)在這個(gè)特點(diǎn)可能要再一次將蓋茨搞得身敗名裂……
不僅JPEG操作模塊的地址固定,Windows核心內(nèi)存空間的起始地址也是非常固定的,而這又會(huì)導(dǎo)致什么嚴(yán)重的后果呢?下面就需要引出另一個(gè)概念——溢出。<
剛才提到內(nèi)存的應(yīng)用程序空間中有對(duì)JPEG操作的模塊,打開(kāi)我們?cè)诖蜷_(kāi)*.jpg文件的時(shí)候,系統(tǒng)就要將文件中的相關(guān)數(shù)據(jù)裝載到這個(gè)模塊中,而如果有人故意把這些相關(guān)數(shù)據(jù)部分做得異常的大,會(huì)怎么樣呢?
如果軟件方面比較完善的話,會(huì)對(duì)這個(gè)區(qū)域有保護(hù)措施,不允許這些超出范圍的數(shù)據(jù)從模塊中“溢出來(lái)”,否則的話這些溢出的數(shù)據(jù)會(huì)一直向著內(nèi)存中其他部分延伸,可能造成藍(lán)屏等癥狀。
但是,微軟在這里恰恰沒(méi)有保護(hù)措施!以至于攻擊者可以做到將任意長(zhǎng)度的數(shù)據(jù)、代碼從JPEG操作模塊中一直覆蓋到核心空間,而核心空間有一個(gè)特點(diǎn):允許執(zhí)行極高權(quán)限的代碼。這樣一來(lái)攻擊者就能夠做到完全控制目標(biāo)主機(jī),刪文件、格硬盤……

但利用單純的溢出漏洞,要想做到這一點(diǎn)也不是那么容易,因?yàn)楣粽卟恢来罅康漠惓4a要多長(zhǎng)才合適。如果在進(jìn)入核心空間之前就執(zhí)行惡意代碼,是沒(méi)有足夠權(quán)限的。而我們剛才提到,微軟的操作系統(tǒng)和很多應(yīng)用軟件的相關(guān)地址非常固定,因此攻擊者可以輕易的計(jì)算出所需的代碼長(zhǎng)度,并“嚴(yán)絲合縫”地在核心空間處執(zhí)行。<
其實(shí)溢出漏洞早已不是什么新鮮事物,關(guān)鍵就是這次配合上了極其規(guī)律的內(nèi)存地址分布,這問(wèn)題就嚴(yán)重了。不知道大家是否了解,前一段大出風(fēng)頭的“沖擊波”病毒也是利用了類似的漏洞組合而發(fā)作的。
沖擊波的病毒編寫者是根據(jù)Win2000操作系統(tǒng)的內(nèi)存特點(diǎn)來(lái)編寫的代碼,因此沖擊波在Win2000下會(huì)完美發(fā)作,導(dǎo)致IE無(wú)法打開(kāi)新窗口、剪貼板失效等等癥狀。而由于WinXP下的內(nèi)存分布與Win2000有所不同,因此沖擊波在WinXP下會(huì)表現(xiàn)為RPC操作不成功,默認(rèn)情況下導(dǎo)致系統(tǒng)重啟而不會(huì)進(jìn)行其他破壞。
漏洞既然出來(lái)了,我們就得趕快補(bǔ)上。這次比較特殊的是不僅Windows系列操作系統(tǒng)需要補(bǔ)丁,而且微軟的Office系列軟件以及Visual Studio等諸多軟件都要打上相關(guān)補(bǔ)丁,所以請(qǐng)大家趕快到微軟的【相關(guān)頁(yè)面】下載補(bǔ)丁程序進(jìn)行安裝。<
關(guān)注我們


