惡意軟件沙盒規(guī)避技術(shù)與原理詳解
隨著黑客正在實(shí)施最新技術(shù)來繞過防護(hù),網(wǎng)絡(luò)攻擊正變得越來越復(fù)雜。勒索軟件和0 day供擊是過去幾年中最普遍的威脅,如今逃避沙盒的惡意軟件將成為網(wǎng)絡(luò)攻擊者未來的主要武器。
沙盒技術(shù)被廣泛用于惡意軟件的檢測(cè)和預(yù)防,因此,黑客一直尋找方法讓他們的惡意軟件在沙盒中保持不活動(dòng)狀態(tài)。這樣,逃避沙箱的惡意軟件可以繞過保護(hù)并執(zhí)行惡意代碼,而不會(huì)被現(xiàn)代網(wǎng)絡(luò)安全解決方案檢測(cè)到。
在本文中,我們描述了惡意軟件用來避免沙箱分析的技術(shù),并說明了用于檢測(cè)逃避沙箱的惡意軟件的現(xiàn)有方法。本文對(duì)于正在開發(fā)網(wǎng)絡(luò)安全解決方案的開發(fā)人員很有用。
在討論逃避沙箱的惡意軟件之前,讓我們定義什么是沙箱。沙箱是一種用于惡意軟件檢測(cè)的自動(dòng)化技術(shù),已被傳統(tǒng)的防病毒程序和其他安全應(yīng)用程序廣泛使用。通過將潛在危險(xiǎn)的程序放置在不會(huì)造成任何危害的受控虛擬環(huán)境中,安全軟件可以分析惡意軟件的行為并開發(fā)針對(duì)該惡意軟件的保護(hù)措施。
雖然沙箱技術(shù)被認(rèn)為是有效的,但網(wǎng)絡(luò)罪犯現(xiàn)在正在應(yīng)用新技術(shù),讓惡意軟件逃避沙箱。據(jù)估計(jì),近98%的現(xiàn)代惡意軟件至少使用一種逃避技術(shù)。此外,超過32%的惡意軟件配備了六種或更多的方法來避免在防病毒沙盒中被檢測(cè)到。例如,Cerber勒索軟件運(yùn)行28個(gè)進(jìn)程來確定它是否已到達(dá)目標(biāo)環(huán)境。一些網(wǎng)絡(luò)安全專家甚至預(yù)測(cè),到2020年,可能會(huì)出現(xiàn)第一個(gè)使用AI算法逃避虛擬環(huán)境的惡意軟件。
什么是逃避沙箱的惡意軟件?
逃避沙箱的惡意軟件是一種新型惡意軟件,可以識(shí)別出它自身是否在沙箱或虛擬機(jī)環(huán)境中。這些惡意軟件只有在被控環(huán)境之外才會(huì)執(zhí)行其惡意代碼。
第一個(gè)繞過沙盒保護(hù)的惡意軟件出現(xiàn)在1980年代。該惡意軟件使用逃避技術(shù),該技術(shù)允許病毒加密自己的代碼,因此安全專家無法讀取它。自那時(shí)以來,網(wǎng)絡(luò)犯罪分子已經(jīng)開發(fā)了500多種逃避技術(shù),并基于這些技術(shù)開發(fā)了多個(gè)當(dāng)代惡意軟件家族。
如今,加密的惡意軟件可以隱藏更復(fù)雜的威脅,旨在長(zhǎng)時(shí)間攻擊受害者的系統(tǒng)。此外,還有全新類型的具有沙盒逃避技術(shù)的惡意軟件,它們甚至可以繞過那些使用機(jī)器學(xué)習(xí)算法的防護(hù)技術(shù)。
逃避沙箱的惡意軟件的真實(shí)示例
近年來,通過逃避沙盒的惡意軟件進(jìn)行的攻擊越來越多。盡管他們以不同的方式攻擊計(jì)算機(jī),但他們都使用了允許惡意軟件感知其環(huán)境的技術(shù)。以下是一些逃避沙箱的惡意軟件的示例:
· 2016年發(fā)布的Locky勒索軟件是逃避沙箱的經(jīng)典示例。Locky是通過感染了加密DLL文件的JavaScript代碼傳播的。該惡意軟件要求使用run32dll.exe來執(zhí)行DLL。但是,run32dll.exe在沙盒環(huán)境中不可用,所以,這使得惡意軟件無法被檢測(cè)到。另一個(gè)來自Locky家族的惡意軟件KeRanger,是在下載到系統(tǒng)三天后才開始起作用。
· 在2018年中,在中東發(fā)現(xiàn)了新版本的RogueRobin木馬。這種面向政府的惡意軟件是通過電子郵件在附加的RAR存檔中傳播的。一旦啟動(dòng),該惡意軟件使用一個(gè)虛擬機(jī)映像來驗(yàn)證它運(yùn)行的系統(tǒng)的BIOS版本、CPU內(nèi)核和物理內(nèi)存,并且不會(huì)在沙盒中運(yùn)行。
· 在2019年,黑客利用HAWKBALL后門攻擊中亞的政府部門。該惡意軟件利用Microsoft Office漏洞傳遞有效負(fù)載并收集系統(tǒng)信息。它能夠執(zhí)行本機(jī)Microsoft命令,調(diào)查主機(jī),甚至可以驗(yàn)證其使用的進(jìn)程是否已調(diào)試。
· 2019年3月,檢測(cè)到一個(gè)使用改進(jìn)的沙盒規(guī)避技術(shù)的macOS惡意軟件的新樣本。與以前的版本相比,OSX_OCEANLOTUS.D具有帶有UPX字符串的Mach-O簽名,這使得它在虛擬環(huán)境中的靜態(tài)分析過程中不會(huì)被察覺。此外,該后門可執(zhí)行文件還會(huì)檢查它是否已連接到調(diào)試器,并收集了有關(guān)主機(jī)的數(shù)據(jù)。
如您所見,逃避沙箱的惡意軟件會(huì)使用不同的技術(shù)來混淆沙箱。讓我們更深入地了解惡意軟件是如何逃避反惡意軟件程序的,以及在沙盒分析過程中我們?nèi)绾螜z測(cè)惡意的惡意軟件。
最常見的沙盒規(guī)避技術(shù)
為了避免檢測(cè),惡意軟件使用特殊的沙盒規(guī)避技術(shù),這些技術(shù)主要基于檢測(cè)用戶或系統(tǒng)的交互或獲得環(huán)境意識(shí)。
檢測(cè)用戶交互
用戶以不同的方式與計(jì)算機(jī)系統(tǒng)交互,但是在沙盒環(huán)境中沒有類似于人類的交互。因此,黑客可以讓惡意軟件等待用戶的特定動(dòng)作,然后才展示惡意行為。以下是一些用戶操作可以激活逃避沙箱的惡意軟件的示例:
· 滾動(dòng)文檔。現(xiàn)代惡意軟件可以編程為只有在滾動(dòng)到文檔中的特定位置后才能執(zhí)行。例如,只有在用戶將RTF文檔滾動(dòng)到第二頁(yè)后,才會(huì)激活惡意軟件。為了檢測(cè)到這一點(diǎn),該惡意軟件包含Microsoft Word文檔中使用的段落代碼。盡管RTF文件還包含段落標(biāo)記(./par),但惡意軟件代碼包含一系列段落,在執(zhí)行利用代碼之前,需要滾動(dòng)這些段落。而沙盒環(huán)境不包含任何滾動(dòng)動(dòng)作,從而使惡意軟件保持休眠狀態(tài)。
· 移動(dòng)并單擊鼠標(biāo)。對(duì)某些惡意軟件進(jìn)行了編程,以檢查鼠標(biāo)移動(dòng)和單擊的速度,如果速度可疑,則保持不活動(dòng)狀態(tài)。例如,Trojan.APT.BaneChan僅在用戶單擊一定數(shù)量的鼠標(biāo)后激活。
檢測(cè)系統(tǒng)特征
可以對(duì)逃避沙箱的惡意軟件進(jìn)行編程,以查找真實(shí)系統(tǒng)的某些功能,這些功能在沙箱或虛擬環(huán)境中不可用。
· 核心計(jì)數(shù)技術(shù)允許惡意軟件發(fā)現(xiàn)虛擬系統(tǒng)和物理系統(tǒng)之間的差異,例如CPU核心的數(shù)量。這就是為什么許多沙盒供應(yīng)商隱藏他們的實(shí)際配置,這樣黑客就無法檢測(cè)沙盒規(guī)范。
· 數(shù)字系統(tǒng)簽名。一些惡意軟件被設(shè)計(jì)用來查找系統(tǒng)的數(shù)字簽名,其中包含有關(guān)計(jì)算機(jī)配置的信息。
· 安裝程序。該技術(shù)允許惡意軟件通過在操作系統(tǒng)中查找活動(dòng)進(jìn)程來檢查防病毒程序的可用性。Client Maximus惡意軟件就是逃避沙箱的惡意軟件的一個(gè)示例,該應(yīng)用程序使用隱形驅(qū)動(dòng)程序來應(yīng)用此技術(shù)。
· 操作系統(tǒng)重新啟動(dòng)。惡意軟件可能會(huì)被設(shè)計(jì)為僅在系統(tǒng)重新啟動(dòng)時(shí)激活。之所以使用此技術(shù),是因?yàn)槟承┥诚錈o法在重新啟動(dòng)后繼續(xù)保持運(yùn)作狀態(tài)。雖然虛擬環(huán)境可能會(huì)嘗試通過登錄和注銷用戶來模擬重新啟動(dòng),但惡意軟件可以檢測(cè)到這一點(diǎn),因?yàn)椴⒎撬兄匦聠?dòng)觸發(fā)器都會(huì)執(zhí)行。
環(huán)保意識(shí)
開發(fā)出可感知環(huán)境的惡意軟件的網(wǎng)絡(luò)犯罪分子通常都知道沙盒的工作原理。因此,他們可以輕松地對(duì)病毒進(jìn)行編程,以檢測(cè)它們是否在裸機(jī)環(huán)境中運(yùn)行。
為了檢查其環(huán)境,可以對(duì)惡意軟件進(jìn)行編程以檢測(cè)安裝在受感染系統(tǒng)上的設(shè)備,或者查找僅屬于虛擬環(huán)境的指示器,例如虛擬機(jī)監(jiān)控程序調(diào)用,某些文件名和沙盒的典型進(jìn)程。
此外,這種惡意軟件可以在將沙箱命名為“樣本”或“惡意軟件”時(shí)對(duì)其進(jìn)行檢測(cè)。此外,病毒在發(fā)現(xiàn)諸如vmusrvc.exe,boxservice.exe或vmtoolsd.exe之類的進(jìn)程時(shí),可以檢測(cè)到它處于虛擬環(huán)境中。
例如,旨在挖掘Monero加密貨幣的BlackSquid惡意軟件使用了多種方法來感知其環(huán)境。特別是,此惡意軟件檢查了常見的沙箱用戶名和寄存器斷點(diǎn)以獲取硬件斷點(diǎn)。它還驗(yàn)證了磁盤驅(qū)動(dòng)器模型,設(shè)備驅(qū)動(dòng)程序和動(dòng)態(tài)鏈接庫(kù)。
其他規(guī)避技術(shù)
規(guī)避沙盒的其他流行技術(shù)包括計(jì)時(shí)和數(shù)據(jù)混淆。
基于計(jì)時(shí)的技術(shù)
在某些情況下,惡意軟件會(huì)使用基于計(jì)時(shí)的技術(shù)來逃避沙箱。沙盒通常僅在有限的時(shí)間段內(nèi)分析惡意軟件,基于計(jì)時(shí)的技術(shù)很樂意濫用此功能。
以下是三種常見的基于時(shí)間的沙盒規(guī)避技術(shù):
· 睡眠。當(dāng)惡意軟件使用長(zhǎng)時(shí)間睡眠調(diào)用時(shí),它可以在執(zhí)行前成功離開沙盒。
· 定時(shí)。在某些情況下,惡意軟件可以編程為在特定日期和特定時(shí)間執(zhí)行。
· 暫停代碼。惡意軟件可能包含惡意代碼,這些惡意代碼執(zhí)行無用的CPU周期以延遲實(shí)際代碼,直到沙盒完成測(cè)試為止。
混淆內(nèi)部數(shù)據(jù)
有一些沙盒規(guī)避技術(shù)可讓惡意軟件更改或加密其代碼和通訊,以使沙盒無法對(duì)其進(jìn)行分析。
· 快速通量。這項(xiàng)技術(shù)是基于改變DNS名稱和IP地址,并被那些想要隱藏網(wǎng)絡(luò)釣魚和惡意軟件發(fā)送地址的僵尸網(wǎng)絡(luò)廣泛使用。它允許惡意軟件繞過安全解決方案創(chuàng)建的惡意網(wǎng)站黑名單。例如,Necurs僵尸網(wǎng)絡(luò)通過使用域名生成算法來更改網(wǎng)站地址,該算法每四天創(chuàng)建一個(gè)新的域名。
· 數(shù)據(jù)加密。某些惡意軟件(例如Trojan Dridex)也可以加密API調(diào)用,以使傳統(tǒng)的惡意軟件沙箱無法讀取它們。Andromeda僵尸網(wǎng)絡(luò)使用多個(gè)密鑰來加密與服務(wù)器的通信。
如何檢測(cè)逃避沙箱的惡意軟件
我們描述的規(guī)避技術(shù)可以讓開發(fā)人員更深入地了解如何檢測(cè)規(guī)避沙盒的惡意軟件。以下是一些原則,您可以在您的安全解決方案中實(shí)現(xiàn),以防止沙盒規(guī)避惡意軟件。
· 動(dòng)態(tài)改變睡眠時(shí)間。沙盒通常會(huì)分析惡意軟件幾秒鐘,而長(zhǎng)時(shí)間的分析會(huì)大大增加檢測(cè)睡眠時(shí)間的惡意軟件的機(jī)會(huì)。然而,這種方法可能不會(huì)有效,因?yàn)樗枰嗟臅r(shí)間。相反,您可以讓沙盒動(dòng)態(tài)更改其時(shí)間設(shè)置,以欺騙惡意軟件并刺激其執(zhí)行。
· 模擬人機(jī)交互。沙盒環(huán)境默認(rèn)情況下不會(huì)模擬互動(dòng),但是您可以添加一些類似于用戶的互動(dòng),以更好地分析惡意軟件。但是,請(qǐng)記住,現(xiàn)代惡意軟件技術(shù)可能很狡猾,可以檢測(cè)到虛假的鼠標(biāo)單擊或移動(dòng)。
· 添加真實(shí)的環(huán)境和硬件工件。在沙箱中檢索硬件信息將幫助您檢測(cè)惡意軟件,以檢查硬盤大小,最近使用的組件,CPU編號(hào),操作系統(tǒng)版本,內(nèi)存容量以及其他系統(tǒng)和硬件特性。
· 除了動(dòng)態(tài)分析外,還要進(jìn)行靜態(tài)分析。沙盒技術(shù)是動(dòng)態(tài)惡意軟件分析的一種形式,它可以在安全的環(huán)境中檢查惡意軟件的行為。雖然逃避沙箱的惡意軟件會(huì)不執(zhí)行任何操作,但您可以對(duì)其進(jìn)行完全靜態(tài)的代碼分析。靜態(tài)分析將檢查文件中是否存在逃避技術(shù)或加密的代碼段。
· 使用指紋分析。指紋技術(shù)允許您分析惡意軟件文件并找到惡意代碼的指標(biāo)。指紋也可以用來檢測(cè)惡意軟件的規(guī)避特征。
· 使用基于行為的分析。基于行為的分析提供了旨在檢測(cè)和打擊規(guī)避技術(shù)的功能。在此分析過程中,沙箱與惡意軟件本身進(jìn)行交互以查找可能的執(zhí)行路徑。而且,它模擬過程交互看起來很像主機(jī)。一旦檢測(cè)到沙盒規(guī)避技術(shù),沙盒便會(huì)抵消其惡意代碼。
· 自定義您的沙箱。通過將其他用于惡意軟件檢測(cè)的創(chuàng)新功能添加到沙箱中,可以顯著提高其檢測(cè)惡意軟件的效率。例如,您可以使用包含多種環(huán)境和迭代分析的多沙盒陣列。檢查計(jì)算機(jī)系統(tǒng)API以外的惡意軟件通信也很有效。您還可以在沙盒中添加一項(xiàng)功能,該功能可以在運(yùn)行時(shí)搜索和驗(yàn)證惡意代碼的痕跡。
· 添加內(nèi)核分析。盡管大多數(shù)沙箱解決方案都在用戶模式下運(yùn)行,但某些類型的惡意軟件旨在將惡意代碼注入內(nèi)核空間(rootkit或驅(qū)動(dòng)程序),從而逃避沙箱攻擊。例如,早期版本的Turla惡意軟件已加載并利用了易受攻擊的VirtualBox驅(qū)動(dòng)程序,并禁用了對(duì)簽名驅(qū)動(dòng)程序加載的檢查。因此,通過在解決方案中添加內(nèi)核分析,可以防止惡意軟件進(jìn)入內(nèi)核。
· 實(shí)施機(jī)器學(xué)習(xí)。基于機(jī)器學(xué)習(xí)算法的惡意軟件分析可以在惡意代碼執(zhí)行之前有效地檢測(cè)沙盒逃避技術(shù)。機(jī)器學(xué)習(xí)算法可以分析惡意軟件不活動(dòng)或睡眠的每種行為,以此作為逃避技術(shù)的信號(hào)。此外,它還可以收集數(shù)以百萬計(jì)的其他信號(hào),以共同檢測(cè)惡意代碼。
· 將內(nèi)容解除防護(hù)和重建(CDR)視為一種額外的安全措施層。CDR通常被認(rèn)為是沙盒的對(duì)立面,但它可以作為其他安全解決方案的附加組件。此技術(shù)從文件中刪除所有活動(dòng)內(nèi)容,并為用戶提供經(jīng)過清理的文檔。它允許您立即防止隱藏在文檔中的惡意軟件,但也有可能導(dǎo)致包含腳本(如用JavaScript編寫的Office宏)的損壞文件,即使它們不是惡意的。
結(jié)論
規(guī)避沙盒的惡意軟件旨在避免被基于沙盒技術(shù)的保護(hù)程序檢測(cè)到。這意味著傳統(tǒng)的惡意軟件檢測(cè)方法對(duì)這些惡意軟件無效。
本文翻譯自:https://www.apriorit.com/dev-blog/545-sandbox-evading-malware如若轉(zhuǎn)載,請(qǐng)注明原文地址