惡意軟件沙盒規(guī)避技術(shù)與原理詳解
隨著黑客正在實施最新技術(shù)來繞過防護,網(wǎng)絡(luò)攻擊正變得越來越復(fù)雜。勒索軟件和0 day供擊是過去幾年中最普遍的威脅,如今逃避沙盒的惡意軟件將成為網(wǎng)絡(luò)攻擊者未來的主要武器。
沙盒技術(shù)被廣泛用于惡意軟件的檢測和預(yù)防,因此,黑客一直尋找方法讓他們的惡意軟件在沙盒中保持不活動狀態(tài)。這樣,逃避沙箱的惡意軟件可以繞過保護并執(zhí)行惡意代碼,而不會被現(xiàn)代網(wǎng)絡(luò)安全解決方案檢測到。
在本文中,我們描述了惡意軟件用來避免沙箱分析的技術(shù),并說明了用于檢測逃避沙箱的惡意軟件的現(xiàn)有方法。本文對于正在開發(fā)網(wǎng)絡(luò)安全解決方案的開發(fā)人員很有用。
在討論逃避沙箱的惡意軟件之前,讓我們定義什么是沙箱。沙箱是一種用于惡意軟件檢測的自動化技術(shù),已被傳統(tǒng)的防病毒程序和其他安全應(yīng)用程序廣泛使用。通過將潛在危險的程序放置在不會造成任何危害的受控虛擬環(huán)境中,安全軟件可以分析惡意軟件的行為并開發(fā)針對該惡意軟件的保護措施。
雖然沙箱技術(shù)被認(rèn)為是有效的,但網(wǎng)絡(luò)罪犯現(xiàn)在正在應(yīng)用新技術(shù),讓惡意軟件逃避沙箱。據(jù)估計,近98%的現(xiàn)代惡意軟件至少使用一種逃避技術(shù)。此外,超過32%的惡意軟件配備了六種或更多的方法來避免在防病毒沙盒中被檢測到。例如,Cerber勒索軟件運行28個進程來確定它是否已到達目標(biāo)環(huán)境。一些網(wǎng)絡(luò)安全專家甚至預(yù)測,到2020年,可能會出現(xiàn)第一個使用AI算法逃避虛擬環(huán)境的惡意軟件。
什么是逃避沙箱的惡意軟件?
逃避沙箱的惡意軟件是一種新型惡意軟件,可以識別出它自身是否在沙箱或虛擬機環(huán)境中。這些惡意軟件只有在被控環(huán)境之外才會執(zhí)行其惡意代碼。
第一個繞過沙盒保護的惡意軟件出現(xiàn)在1980年代。該惡意軟件使用逃避技術(shù),該技術(shù)允許病毒加密自己的代碼,因此安全專家無法讀取它。自那時以來,網(wǎng)絡(luò)犯罪分子已經(jīng)開發(fā)了500多種逃避技術(shù),并基于這些技術(shù)開發(fā)了多個當(dāng)代惡意軟件家族。
如今,加密的惡意軟件可以隱藏更復(fù)雜的威脅,旨在長時間攻擊受害者的系統(tǒng)。此外,還有全新類型的具有沙盒逃避技術(shù)的惡意軟件,它們甚至可以繞過那些使用機器學(xué)習(xí)算法的防護技術(shù)。
逃避沙箱的惡意軟件的真實示例
近年來,通過逃避沙盒的惡意軟件進行的攻擊越來越多。盡管他們以不同的方式攻擊計算機,但他們都使用了允許惡意軟件感知其環(huán)境的技術(shù)。以下是一些逃避沙箱的惡意軟件的示例:
- 2016年發(fā)布的Locky勒索軟件是逃避沙箱的經(jīng)典示例。Locky是通過感染了加密DLL文件的JavaScript代碼傳播的。該惡意軟件要求使用run32dll.exe來執(zhí)行DLL。但是,run32dll.exe在沙盒環(huán)境中不可用,所以,這使得惡意軟件無法被檢測到。另一個來自Locky家族的惡意軟件KeRanger,是在下載到系統(tǒng)三天后才開始起作用。
- 在2018年中,在中東發(fā)現(xiàn)了新版本的RogueRobin木馬。這種面向政府的惡意軟件是通過電子郵件在附加的RAR存檔中傳播的。一旦啟動,該惡意軟件使用一個虛擬機映像來驗證它運行的系統(tǒng)的BIOS版本、CPU內(nèi)核和物理內(nèi)存,并且不會在沙盒中運行。
- 在2019年,黑客利用HAWKBALL后門攻擊中亞的政府部門。該惡意軟件利用Microsoft Office漏洞傳遞有效負(fù)載并收集系統(tǒng)信息。它能夠執(zhí)行本機Microsoft命令,調(diào)查主機,甚至可以驗證其使用的進程是否已調(diào)試。
- 2019年3月,檢測到一個使用改進的沙盒規(guī)避技術(shù)的macOS惡意軟件的新樣本。與以前的版本相比,OSX_OCEANLOTUS.D具有帶有UPX字符串的Mach-O簽名,這使得它在虛擬環(huán)境中的靜態(tài)分析過程中不會被察覺。此外,該后門可執(zhí)行文件還會檢查它是否已連接到調(diào)試器,并收集了有關(guān)主機的數(shù)據(jù)。
如您所見,逃避沙箱的惡意軟件會使用不同的技術(shù)來混淆沙箱。讓我們更深入地了解惡意軟件是如何逃避反惡意軟件程序的,以及在沙盒分析過程中我們?nèi)绾螜z測惡意的惡意軟件。
最常見的沙盒規(guī)避技術(shù)
為了避免檢測,惡意軟件使用特殊的沙盒規(guī)避技術(shù),這些技術(shù)主要基于檢測用戶或系統(tǒng)的交互或獲得環(huán)境意識。
檢測用戶交互
用戶以不同的方式與計算機系統(tǒng)交互,但是在沙盒環(huán)境中沒有類似于人類的交互。因此,黑客可以讓惡意軟件等待用戶的特定動作,然后才展示惡意行為。以下是一些用戶操作可以激活逃避沙箱的惡意軟件的示例:
- 滾動文檔?,F(xiàn)代惡意軟件可以編程為只有在滾動到文檔中的特定位置后才能執(zhí)行。例如,只有在用戶將RTF文檔滾動到第二頁后,才會激活惡意軟件。為了檢測到這一點,該惡意軟件包含Microsoft Word文檔中使用的段落代碼。盡管RTF文件還包含段落標(biāo)記(./par),但惡意軟件代碼包含一系列段落,在執(zhí)行利用代碼之前,需要滾動這些段落。而沙盒環(huán)境不包含任何滾動動作,從而使惡意軟件保持休眠狀態(tài)。
- 移動并單擊鼠標(biāo)。對某些惡意軟件進行了編程,以檢查鼠標(biāo)移動和單擊的速度,如果速度可疑,則保持不活動狀態(tài)。例如,Trojan.APT.BaneChan僅在用戶單擊一定數(shù)量的鼠標(biāo)后激活。
檢測系統(tǒng)特征
可以對逃避沙箱的惡意軟件進行編程,以查找真實系統(tǒng)的某些功能,這些功能在沙箱或虛擬環(huán)境中不可用。
- 核心計數(shù)技術(shù)允許惡意軟件發(fā)現(xiàn)虛擬系統(tǒng)和物理系統(tǒng)之間的差異,例如CPU核心的數(shù)量。這就是為什么許多沙盒供應(yīng)商隱藏他們的實際配置,這樣黑客就無法檢測沙盒規(guī)范。
- 數(shù)字系統(tǒng)簽名。一些惡意軟件被設(shè)計用來查找系統(tǒng)的數(shù)字簽名,其中包含有關(guān)計算機配置的信息。
- 安裝程序。該技術(shù)允許惡意軟件通過在操作系統(tǒng)中查找活動進程來檢查防病毒程序的可用性。Client Maximus惡意軟件就是逃避沙箱的惡意軟件的一個示例,該應(yīng)用程序使用隱形驅(qū)動程序來應(yīng)用此技術(shù)。
- 操作系統(tǒng)重新啟動。惡意軟件可能會被設(shè)計為僅在系統(tǒng)重新啟動時激活。之所以使用此技術(shù),是因為某些沙箱無法在重新啟動后繼續(xù)保持運作狀態(tài)。雖然虛擬環(huán)境可能會嘗試通過登錄和注銷用戶來模擬重新啟動,但惡意軟件可以檢測到這一點,因為并非所有重新啟動觸發(fā)器都會執(zhí)行。
環(huán)保意識
開發(fā)出可感知環(huán)境的惡意軟件的網(wǎng)絡(luò)犯罪分子通常都知道沙盒的工作原理。因此,他們可以輕松地對病毒進行編程,以檢測它們是否在裸機環(huán)境中運行。

為了檢查其環(huán)境,可以對惡意軟件進行編程以檢測安裝在受感染系統(tǒng)上的設(shè)備,或者查找僅屬于虛擬環(huán)境的指示器,例如虛擬機監(jiān)控程序調(diào)用,某些文件名和沙盒的典型進程。
此外,這種惡意軟件可以在將沙箱命名為“樣本”或“惡意軟件”時對其進行檢測。此外,病毒在發(fā)現(xiàn)諸如vmusrvc.exe,boxservice.exe或vmtoolsd.exe之類的進程時,可以檢測到它處于虛擬環(huán)境中。
例如,旨在挖掘Monero加密貨幣的BlackSquid惡意軟件使用了多種方法來感知其環(huán)境。特別是,此惡意軟件檢查了常見的沙箱用戶名和寄存器斷點以獲取硬件斷點。它還驗證了磁盤驅(qū)動器模型,設(shè)備驅(qū)動程序和動態(tài)鏈接庫。
其他規(guī)避技術(shù)
規(guī)避沙盒的其他流行技術(shù)包括計時和數(shù)據(jù)混淆。
基于計時的技術(shù)
在某些情況下,惡意軟件會使用基于計時的技術(shù)來逃避沙箱。沙盒通常僅在有限的時間段內(nèi)分析惡意軟件,基于計時的技術(shù)很樂意濫用此功能。

以下是三種常見的基于時間的沙盒規(guī)避技術(shù):
- 睡眠。當(dāng)惡意軟件使用長時間睡眠調(diào)用時,它可以在執(zhí)行前成功離開沙盒。
- 定時。在某些情況下,惡意軟件可以編程為在特定日期和特定時間執(zhí)行。
- 暫停代碼。惡意軟件可能包含惡意代碼,這些惡意代碼執(zhí)行無用的CPU周期以延遲實際代碼,直到沙盒完成測試為止。
混淆內(nèi)部數(shù)據(jù)
有一些沙盒規(guī)避技術(shù)可讓惡意軟件更改或加密其代碼和通訊,以使沙盒無法對其進行分析。
- 快速通量。這項技術(shù)是基于改變DNS名稱和IP地址,并被那些想要隱藏網(wǎng)絡(luò)釣魚和惡意軟件發(fā)送地址的僵尸網(wǎng)絡(luò)廣泛使用。它允許惡意軟件繞過安全解決方案創(chuàng)建的惡意網(wǎng)站黑名單。例如,Necurs僵尸網(wǎng)絡(luò)通過使用域名生成算法來更改網(wǎng)站地址,該算法每四天創(chuàng)建一個新的域名。
- 數(shù)據(jù)加密。某些惡意軟件(例如Trojan Dridex)也可以加密API調(diào)用,以使傳統(tǒng)的惡意軟件沙箱無法讀取它們。Andromeda僵尸網(wǎng)絡(luò)使用多個密鑰來加密與服務(wù)器的通信。
如何檢測逃避沙箱的惡意軟件
我們描述的規(guī)避技術(shù)可以讓開發(fā)人員更深入地了解如何檢測規(guī)避沙盒的惡意軟件。以下是一些原則,您可以在您的安全解決方案中實現(xiàn),以防止沙盒規(guī)避惡意軟件。
- 動態(tài)改變睡眠時間。沙盒通常會分析惡意軟件幾秒鐘,而長時間的分析會大大增加檢測睡眠時間的惡意軟件的機會。然而,這種方法可能不會有效,因為它需要更多的時間。相反,您可以讓沙盒動態(tài)更改其時間設(shè)置,以欺騙惡意軟件并刺激其執(zhí)行。
- 模擬人機交互。沙盒環(huán)境默認(rèn)情況下不會模擬互動,但是您可以添加一些類似于用戶的互動,以更好地分析惡意軟件。但是,請記住,現(xiàn)代惡意軟件技術(shù)可能很狡猾,可以檢測到虛假的鼠標(biāo)單擊或移動。
- 添加真實的環(huán)境和硬件工件。在沙箱中檢索硬件信息將幫助您檢測惡意軟件,以檢查硬盤大小,最近使用的組件,CPU編號,操作系統(tǒng)版本,內(nèi)存容量以及其他系統(tǒng)和硬件特性。
- 除了動態(tài)分析外,還要進行靜態(tài)分析。沙盒技術(shù)是動態(tài)惡意軟件分析的一種形式,它可以在安全的環(huán)境中檢查惡意軟件的行為。雖然逃避沙箱的惡意軟件會不執(zhí)行任何操作,但您可以對其進行完全靜態(tài)的代碼分析。靜態(tài)分析將檢查文件中是否存在逃避技術(shù)或加密的代碼段。
- 使用指紋分析。指紋技術(shù)允許您分析惡意軟件文件并找到惡意代碼的指標(biāo)。指紋也可以用來檢測惡意軟件的規(guī)避特征。
- 使用基于行為的分析?;谛袨榈姆治鎏峁┝酥荚跈z測和打擊規(guī)避技術(shù)的功能。在此分析過程中,沙箱與惡意軟件本身進行交互以查找可能的執(zhí)行路徑。而且,它模擬過程交互看起來很像主機。一旦檢測到沙盒規(guī)避技術(shù),沙盒便會抵消其惡意代碼。
- 自定義您的沙箱。通過將其他用于惡意軟件檢測的創(chuàng)新功能添加到沙箱中,可以顯著提高其檢測惡意軟件的效率。例如,您可以使用包含多種環(huán)境和迭代分析的多沙盒陣列。檢查計算機系統(tǒng)API以外的惡意軟件通信也很有效。您還可以在沙盒中添加一項功能,該功能可以在運行時搜索和驗證惡意代碼的痕跡。
- 添加內(nèi)核分析。盡管大多數(shù)沙箱解決方案都在用戶模式下運行,但某些類型的惡意軟件旨在將惡意代碼注入內(nèi)核空間(rootkit或驅(qū)動程序),從而逃避沙箱攻擊。例如,早期版本的Turla惡意軟件已加載并利用了易受攻擊的VirtualBox驅(qū)動程序,并禁用了對簽名驅(qū)動程序加載的檢查。因此,通過在解決方案中添加內(nèi)核分析,可以防止惡意軟件進入內(nèi)核。
- 實施機器學(xué)習(xí)?;跈C器學(xué)習(xí)算法的惡意軟件分析可以在惡意代碼執(zhí)行之前有效地檢測沙盒逃避技術(shù)。機器學(xué)習(xí)算法可以分析惡意軟件不活動或睡眠的每種行為,以此作為逃避技術(shù)的信號。此外,它還可以收集數(shù)以百萬計的其他信號,以共同檢測惡意代碼。
- 將內(nèi)容解除防護和重建(CDR)視為一種額外的安全措施層。CDR通常被認(rèn)為是沙盒的對立面,但它可以作為其他安全解決方案的附加組件。此技術(shù)從文件中刪除所有活動內(nèi)容,并為用戶提供經(jīng)過清理的文檔。它允許您立即防止隱藏在文檔中的惡意軟件,但也有可能導(dǎo)致包含腳本(如用JavaScript編寫的Office宏)的損壞文件,即使它們不是惡意的。
結(jié)論
規(guī)避沙盒的惡意軟件旨在避免被基于沙盒技術(shù)的保護程序檢測到。這意味著傳統(tǒng)的惡意軟件檢測方法對這些惡意軟件無效。
本文翻譯自:https://www.apriorit.com/dev-blog/545-sandbox-evading-malware