ipiscrh
2007-03-03, 01:35 AM
WinRAR 最近被發現的漏洞,是屬於 buffer overflow 的問題。
任何一種軟體都是從原始程式碼經過編譯或解譯過程之後,轉換成執行檔,因此其中所
執行的功能,就僅限於原始程式碼的範圍而已。原始程式碼中沒有的功能,執行檔中絕
對不會有。。不過,如果軟體有 buffer overflow 漏洞,這個軟體就會誤把外界輸入
的資料當作程式執行,跳出了原始程式碼所設定範圍。這個時候,只要外界精心打造特
殊的執行碼,並包裝成輸入資料餵給軟體讀進去,軟體就會執行外界輸進去的執行碼了
。這種執行碼就沒有什麼限制,各式各樣的可能都有,端看製造者的想像力、軟體的執
行環境以及其他一些可能存在的小限制而已,從讓電腦當機、綁架電腦、竊取電腦內的
資料、側錄程式、到植入後門或木馬程式都有可能。
WinRAR 的漏洞既然屬於 buffer overflow 類型,那麼我們就可以把執行碼包裝成資料
餵給 WinRAR 執行。什麼是 WinRAR 的輸入資料?當然就是我們要解開的壓縮檔案了。
舉例來說,有心人士可以刻意把木馬程式包裝成資料放在壓縮檔內,當 WinRAR 讀入這
個壓縮檔時,裡面經過特殊處理的資料會觸發其 buffer overflow 漏洞,使 WinRAR
軟體跳出原始程式碼的範圍,改成執行潛藏在壓縮檔內的木馬程式,使木馬程式活化,
電腦就中了這個木馬程式了。
建議可以採取以下幾種應變措施:
1. 將 WinRAR 更新到 3.6 Beta 7,此版本已經修正以上所提的漏洞。
2. 改用其他壓縮軟體,網路上可以找到其他能夠解開 WinRAR 所提供壓縮格式的軟體。
3. 依照發現此漏洞的 Hustle Labs 所述,此項漏洞發生在 WinRAR 處理 LHA 格式的
檔案時,因此如果不會用到 LHA 格式,可以將 WinRAR 安裝目錄內的 lzh.fmt 刪除
或改名,這樣 WinRAR 就不會處理 LHA 格式的壓縮檔,應該就不會觸發此漏洞。
4. 將新版 WinRAR 安裝好之後,把新版 WinRAR 安裝目錄內的 lzh.fmt 複製到舊版
WinRAR 安裝目錄內,蓋掉原有的 lzh.fmt。
-本篇文章由張富吉先生在資安人論壇 (http://www.informationsecurity.com.tw/isdoctor/qna_detail.asp?post_id=60)中發表-
任何一種軟體都是從原始程式碼經過編譯或解譯過程之後,轉換成執行檔,因此其中所
執行的功能,就僅限於原始程式碼的範圍而已。原始程式碼中沒有的功能,執行檔中絕
對不會有。。不過,如果軟體有 buffer overflow 漏洞,這個軟體就會誤把外界輸入
的資料當作程式執行,跳出了原始程式碼所設定範圍。這個時候,只要外界精心打造特
殊的執行碼,並包裝成輸入資料餵給軟體讀進去,軟體就會執行外界輸進去的執行碼了
。這種執行碼就沒有什麼限制,各式各樣的可能都有,端看製造者的想像力、軟體的執
行環境以及其他一些可能存在的小限制而已,從讓電腦當機、綁架電腦、竊取電腦內的
資料、側錄程式、到植入後門或木馬程式都有可能。
WinRAR 的漏洞既然屬於 buffer overflow 類型,那麼我們就可以把執行碼包裝成資料
餵給 WinRAR 執行。什麼是 WinRAR 的輸入資料?當然就是我們要解開的壓縮檔案了。
舉例來說,有心人士可以刻意把木馬程式包裝成資料放在壓縮檔內,當 WinRAR 讀入這
個壓縮檔時,裡面經過特殊處理的資料會觸發其 buffer overflow 漏洞,使 WinRAR
軟體跳出原始程式碼的範圍,改成執行潛藏在壓縮檔內的木馬程式,使木馬程式活化,
電腦就中了這個木馬程式了。
建議可以採取以下幾種應變措施:
1. 將 WinRAR 更新到 3.6 Beta 7,此版本已經修正以上所提的漏洞。
2. 改用其他壓縮軟體,網路上可以找到其他能夠解開 WinRAR 所提供壓縮格式的軟體。
3. 依照發現此漏洞的 Hustle Labs 所述,此項漏洞發生在 WinRAR 處理 LHA 格式的
檔案時,因此如果不會用到 LHA 格式,可以將 WinRAR 安裝目錄內的 lzh.fmt 刪除
或改名,這樣 WinRAR 就不會處理 LHA 格式的壓縮檔,應該就不會觸發此漏洞。
4. 將新版 WinRAR 安裝好之後,把新版 WinRAR 安裝目錄內的 lzh.fmt 複製到舊版
WinRAR 安裝目錄內,蓋掉原有的 lzh.fmt。
-本篇文章由張富吉先生在資安人論壇 (http://www.informationsecurity.com.tw/isdoctor/qna_detail.asp?post_id=60)中發表-