當前位置:
首頁 > 最新 > 分析惡意軟體的加殼技巧

分析惡意軟體的加殼技巧

前情提要

惡意軟體作者通常會使用一些技巧來規避檢測和分析,最流行的方法之一就是使用加殼工具對惡意軟體進行加殼包含。加殼工具是一種壓縮、加密、和/或修改惡意文件格式的工具。加殼也可以被用於合法目的,比如為了防止程序被破解或複製。所有這些技巧都可以起到降低被反惡意軟體產品檢測到的機會,有助於逃避安全人員的分析或提升分析難度。

惡意軟體被加殼之後,安全人員更加難以識別惡意軟體的行為,所需的分析時間也相應的有所增加。脫殼是針對此類惡意軟體的第一個挑戰,然而加殼工具多種多樣,複雜度也不盡相同。

加殼的類型

加殼可以起到簡單的保護二進位代碼的作用,攻擊者更傾向於使用加殼器而非直接在代碼內實現保護。一些先進的惡意軟體由有組織的網路犯罪團體進行編碼並維護,可能會使用到定製的加殼工具,或者在惡意文件內部實施複雜的防護措施。

對加殼器而言,stub(包含解壓或解密程序的一段代碼)扮演了載入的角色,在惡意軟體之前被執行。

圖1:加殼器加密/壓縮數據過程圖

首先,原始文件被傳遞到加殼程序中,以一個新的.exe被存儲在一個Packed Section (加殼部分)中,一旦文件被運行,存儲在加殼文件中的壓縮 stub 程序將解壓縮對應的Packed Section,然後將原始.exe文件載入到內存中。

在這種情況下,原始入口點(即程序啟動的內存地址)被遷移到 packed Section中,分析人員檢索到它才能恢復原始文件。

其他的加殼程序類似於一個代理器,對導入地址表(import address table ,IAT)進行保護。IAT鉤子主要使用的IAT表進行API HOOK, 程序運行過程中,IAT被動態解析並在需要的時候被利用,惡意軟體使用這種保護增加其被脫殼的難度。事實上在IAT不完整的情況下內存轉儲也無法正常工作。沒有完整的 IAT,很難正確的分析惡意軟體。

圖2:加殼器混淆API的過程

加殼 Stub 扮演著代理的角色,攔截每次API 調用。調用請求從 API 轉換到Stub中,並由有效載荷運行。

在這種情況下,惡意軟體分析員必須通過定位函數並跟蹤返回程序來修復導入的情況。Stub將重新執行原始的 API,在某些情況下,API的地址位於 EIP 註冊表。

虛擬化代碼也是一種有效的加殼技術,使用了虛擬化代碼、模擬處理器的行為去運行原文件。這種技術相當於在執行代碼和它的行為之間增加了一個抽象層。原始代碼被轉換成虛擬機的位元組碼。對惡意軟體分析員而言,這種技術是最難分析的技術之一。

圖3:代碼虛擬化過程示意圖

原始文件在轉換時顯示為 X86 彙編語言。文件被虛擬化保護後,轉換後的代碼存儲在虛擬機的位元組碼中。

為了消除這種保護,惡意軟體分析員必須研究虛擬軟體的行為、檢索位元組碼,用於分析原始文件。

其他還有一些結合了反調試或反沙箱技術,以及增加更多功能以保護惡意軟體的加殼技術。某些惡意軟體會使用多層防護措施以抵抗檢測和分析。為了分析這類惡意軟體,分析員必須除掉每一層保護殼,直到恢復原始文件為止。最快的恢復技術是運行惡意軟體並直接從內存中轉儲。不過實踐起來會有很多困難,因為很多加殼器附帶了反轉儲技術。

使用加殼器依然是抵禦反惡意軟體產品的有效途徑,攻擊者偏好使用加殼器對自己的惡意軟體進行保護。單純的依靠手工分析很難成功,需要結合有效的工具,在不同模式下不斷的調試,才能更加有效的對惡意軟體進行脫殼並進一步的分析。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 MottoIN 的精彩文章:

TAG:MottoIN |

您可能感興趣

手機預裝惡意軟體威脅分析
新的無宏技術分發惡意軟體
黑客將惡意軟體加密挖掘惡意軟體注入網站
微軟:加密貨幣挖礦類惡意軟體 已成為一項增長的威脅
應用軟體智能分析技術
惡意軟體分析之——勒索即服務
微軟:加密貨幣挖礦類惡意軟體,已成為一項增長威脅
在野兩年惡意軟體分析
軟體技術必看
共享軟體中惡意代碼插入技術研究
蜜罐捕捉惡意軟體樣本溯源分析
新的R2D2技術可以保護文件免受擦除類惡意軟體的攻擊
硬體缺陷真能用軟體補?盤點軟體填過的硬體坑
惡意軟體監控之利用PyREBox進行惡意軟體分析
研究員可通過惡意軟體添加或刪除CT掃描結果中的癌症節點
圖片加密軟體
人類意識之謎 大腦是硬體,靈魂是軟體
淺析養鴿的硬體必要性與軟體的重要性!
智能音箱硬體和軟體介紹上硬體結構解析農步祥
從技術角度分析「搶票軟體的加速」有多快?