WMF檔案格式漏洞

WMF文件格式漏洞是一個源於微軟Windows操作系統的漏洞,被一個計算機安全郵件列表Bugtraq於2005年12月27日公開[1]頁面存檔備份,存於網際網路檔案館),在24小時內就成為一些惡意程序,例如間諜軟件木馬程序的載體。

微軟於1月6日發布了針對Windows 2000Windows XP版本中不當處理WMF函數SETABORTPROC的補丁,並且在1月16日發布了針對Windows Vista的補丁,但是其他的操作系統仍舊會受到該漏洞的威脅。

該漏洞源於Windows的核心模塊gdi32.dll處理WMF格式的方式,允許在計算機上不經過用戶許可即執行代碼。因此該漏洞成為惡意代碼的載體,通常被用來暗中下載其他惡意軟件。1月9日,Bugtraq報告另外兩個WMF函數ExtCreateRegion和ExtEscape也有同樣的漏洞,但是微軟聲稱這兩個漏洞只會造成性能問題 。

影響的系統

微軟的安全建議說一些被硬件實現的數據執行保護功能保護的計算機對已知的攻擊免疫[2]頁面存檔備份,存於網際網路檔案館) 。

因為該漏洞是WMF文件的特性之一,該漏洞的已知影響範圍從Windows 98Windows Vista,但是甚至連Windows 3.0和非Windows的操作系統都可能受影響。但是,因為只有Windows XP和啟用了圖像預覽功能的Windows ME默認會打開WMF文件,所以這個系統比其他系統更加容易受到攻擊。更舊的Windows版本和非Windows操作系統並不默認支持打開WMF文件,但是ACDSee這樣的第三方程序可能使系統受到影響。

非Windows的操作系統不直接受到影響,但是一些模擬Windows行為的模擬器在打開WMF文件的時候可能會受到攻擊。有報告說LinuxBSD操作系統中可以在WINE上運行的Cedega程序有這個漏洞[3] 。Wine的代碼已經更新以修正這個問題[4]

弱點

微軟的安全公告[5]頁面存檔備份,存於網際網路檔案館) 聲稱,這個漏洞存在於圖形呈現引擎處理特製的WMF圖像的方式中,可能允許執行任意代碼,控制受影響的系統。

傳播和感染

計算機大多被附帶特殊處理(感染)過的WMF文件的電子郵件所感染,但也可能以下列方式被感染:

  • 瀏覽一個被感染的站點或者預覽被感染的電子郵件。如果瀏覽器自動下載並顯示WMF文件(有可能並非以.WMF為擴展名)的話,感染過的WMF文件中的代碼可能被執行。在一些瀏覽器提示下載和打開感染過的WMF文件時,如果用戶選擇確認,那麼惡意代碼也可能被執行。一些允許在帖子內容中插入圖像的論壇因此停止了允許插入圖像的功能。
  • 在Windows資源管理器中預覽感染過的WMF文件。
  • 在一些軟件,比如即時通訊軟件中點擊收到的消息中的鏈接。

其他方法也可能被用於傳播感染過的WMF文件。

2005年12月31日,反病毒軟件商McAfee表示,這種惡意程序感染了他們的超過6%的用戶。根據Secunia的報告,「該漏洞來源於對包含特殊處理過的SETABORTPROC轉義記錄WMF文件的錯誤處理。這樣的記錄允許用戶定義的代碼在呈現WMF文件失敗時被執行。」

補丁

因為這個WMF文件格式漏洞的影響範圍仍舊在增加,而且這個漏洞並無特定的代碼特徵,所以需要一個可以治本的補丁來阻止惡意代碼的傳播。

微軟公司已經於1月6日發布了針對Windows 2000以上版本SETABORTPROC函數不當處理漏洞的補丁[6]頁面存檔備份,存於網際網路檔案館) 。該補丁原計劃於1月10日發布,但是測試工作提前完成了。

Ilfak Guilfanov也在他的網站上發布了一個第三方的針對SETABORTPROC函數的補丁[7],聲稱對於WinXP (SP1,SP2)和Win2000系統,可以移除這個gdi32中的缺陷,但是這是通過注入代碼到系統模塊實現的,可能在產生諸如打印包含WMF圖像的文檔失敗的問題。在被廣泛報道之後,這個網站因為過載而在2006年1月3日暫時關閉,而在2006年1月4日成為了一個簡潔的網頁。這個補丁在一個鏡像站點[8] 也可以下載。

針對這個漏洞,用戶可以考慮採取以下步驟:

  • 安裝微軟發布的官方補丁。
  • 如果使用的是硬件(例如AMD的64位CPU)實現的數據執行保護,打開所有程序的數據執行保護。
  • 設置WMF文件的默認關聯程序為一個不可能執行WMF指令的程序,例如記事本
  • 通過設置Internet選項中的默認安全設置為高來關閉下載。
  • 確保防毒軟體為最新版本,並且考慮頻繁地手動檢查更新。
  • 在網絡內通過過濾文件頭來禁止發送WMF文件。
  • 儘可能減少用戶的權限。
  • 禁用Google Desktop的索引功能,直到該問題被解決。
  • 使用非Windows的操作系統,例如LinuxFreeBSD或者Unix
  • 在可能自動顯示WMF文件的程序,例如Internet Explorer[9]頁面存檔備份,存於網際網路檔案館) 和Outlook[10]頁面存檔備份,存於網際網路檔案館) 中關閉圖像的顯示。使用非Internet Explorer的瀏覽器會減輕一點風險,但是不能識別改名為其他擴展名的惡意WMF文件。
  • 使用非Windows的操作系統進行高危操作,例如進行聊天或者瀏覽可以在帖子中插入圖像的論壇。
  • 在Windows中禁用索引服務

外部連結