[資安] 沙箱繞過技術

[譯]常見沙箱繞過技術
https://mp.weixin.qq.com/s/IDVJEYuzbbjF0oZlsgEL2w

延遲執行:
有許多惡意軟體都使用基於時間的繞過技術,主要是利用已知的Windows API來延遲惡意程式碼的執行,常用的API有NtDelayExecution, CreateWaitTableTImer, SetTimer。這些技術在沙箱識別出來之前非常流行。

GetTickCount:
沙箱可以識別出惡意軟體並通過加速代碼執行的方式來進行應對,可以使用多種方法來進行加速檢查。其中一種方法就是使用Windows API GetTickCount和一行檢查使用時間的代碼。

API洪泛:
一種更加流行的方法是在迴圈中調用垃圾API來引入延遲,即所謂的API flooding。

Inline Code:
因為沙箱無法很好地處理行內代碼,因此會產生DOS條件。另一方面,許多沙箱無法檢測此類行為。

硬體檢測:
惡意軟體廣泛使用的另一類繞過技術就是對硬體進行指紋操作,尤其是對實體記憶體的大小、可用HD大小/類型和可用CPU核數進行檢查。這些方法在Win32/Phorpiex, Win32/Comrerop, Win32/Simda和相關的惡意軟體家族中非常流行。

CPU檢查:
惡意軟體作者還在不斷地添加新的方法來繞過沙箱系統。另一個檢查就是檢查執行的處理器的溫度。Win32/Dyreza這樣主流的惡意軟體都使用CPU數作為繞過的方法。許多惡意軟體家族最初都使用簡單的基於API的方法。之後,大多數惡意軟體開始使用WMI和基於PEB訪問的方法。

用戶交互:
一種惡意軟體廣泛使用的繞過沙箱的方法就是利用“自動分析系統(沙箱)無法與人類交互”。一般的沙箱都不會類比使用者行為,惡意軟體可以加入自動分析系統和其他真實系統的差別的代碼來實現。事實上有多款惡意軟體已經通過監控windows事件和停止執行來識別沙箱。

環境檢查:
惡意軟體還會對目標環境進行指紋處理,這樣就可以利用沙箱的錯誤配置。開始的時候,使用Red Pill 技術就可以檢測虛擬環境,直到沙箱開始加固架構。惡意軟體作者開始使用新的技術,比如檢查主機名稱或註冊表來驗證安裝的程式。


#沙箱, 繞過, 技術

留言