Jump to content

沙盒是一種行之有效的檢測惡意軟件並阻止其執行的方法。然而,惡意行為者正在尋找方法來教他們的惡意軟件在沙箱中保持不活動狀態。逃避沙箱的惡意軟件可以繞過保護並執行惡意代碼,而不會被現代網絡安全解決方案檢測到。

在本文中,我們分析了惡意軟件用來避免沙箱分析的技術,並分享了我們在Apriorit 中使用的最佳實踐來構建可以檢測和阻止規避惡意軟件的沙箱。

本文對於致力於網絡安全解決方案並希望改進沙箱的開發人員來說非常有用。

什麼是沙箱和沙箱規避惡意軟件?在我們討論逃避沙箱的惡意軟件之前,讓我們先弄清楚什麼是沙箱。 NIST將沙箱定義為“允許不受信任的應用程序在高度受控的環境中運行的系統,其中應用程序的權限僅限於一組基本的計算機權限。”

沙盒解決方案可以是獨立工具,也可以是網絡安全軟件(例如防火牆或防病毒程序)的一部分。通過將潛在危險的程序放入不會造成任何損害的受控虛擬化環境中,安全軟件可以分析可疑代碼的行為並製定針對其的保護措施。

image.png

儘管沙盒技術被認為是有效的,但網絡犯罪分子現在正在應用讓惡意軟件逃避沙盒分析的技術。

逃避沙箱的惡意軟件可以識別它是否位於沙箱或虛擬機環境中。此類惡意軟件感染在脫離受控環境之前不會執行其惡意代碼。為了隱藏威脅,惡意軟件可以使用反沙箱技術,例如:

加密

環境掃描儀

用戶活動監控

人工智能(AI) 算法

ETC。

我們將在本文後面討論規避技術。現在,讓我們看幾個逃避沙箱的惡意軟件的示例,以了解此類威脅的嚴重性和可能的後果。

逃避沙箱的惡意軟件的真實示例沙箱規避是一種極其常見的攻擊技術,由具有規避能力的惡意軟件引發的網絡安全事故也經常成為新聞報導。

例如,2023 年發現的信息竊取惡意軟件Beep使用17 種規避技術來不被受害者的網絡安全系統檢測到。該惡意軟件可以混淆和反混淆惡意代碼、檢測其是否被跟踪、關閉調試器、隱藏其API 函數等等。在發現時,Beep 仍處於開發階段,因此該惡意軟件現在可能具有更多的沙箱規避功能。

另一種最近發現的惡意軟件Batloader也具有很多反沙箱功能。它可以停止安全軟件服務,避免防病毒解決方案的活動,並將自身偽裝成合法文件。

大多數逃避沙箱的惡意軟件並沒有登上新聞或成為著名網絡安全研究的焦點,僅僅是因為惡意軟件的類型太多。惡意行為者可以使用Python、自動代碼生成和人工智能算法等流行技術來快速開發具有規避功能的惡意軟件。甚至可以說服ChatGPT為您編寫規避惡意軟件。

有數十種沙箱規避技術可以嵌入惡意軟件中。讓我們仔細看看這些技術如何從網絡安全解決方案中隱藏惡意軟件。

最常見的沙箱規避技術MITRE ATTCK 是著名的網絡安全攻擊知識庫,定義了三種關鍵的惡意軟件沙箱規避技術。讓我們看看它們是如何工作的:

image.png

1. 系統檢查逃避沙箱的惡意軟件可以被編程來識別真實係統的一些在沙箱或虛擬環境中不可用的功能。

image.png

以下是惡意軟件如何利用系統信息逃離沙箱:

CPU 核心數量和硬件組件。惡意軟件可以發現虛擬系統和物理系統之間的差異(例如CPU 核心數量),並將其用於沙箱檢測。這就是為什麼許多沙箱供應商隱藏其實際配置,使黑客無法檢測沙箱規格。

數字系統簽名。某些惡意軟件旨在查找系統的數字簽名,其中包含有關計算機配置的信息。

已安裝的程序。該技術允許惡意軟件通過查找操作系統中的活動進程來檢查防病毒程序是否存在。

操作系統重新啟動。有些沙箱無法在操作系統重新啟動後繼續存在,因此可以將惡意軟件編程為僅在重新啟動後激活。儘管虛擬環境可能會嘗試通過登錄和註銷用戶來模擬重新啟動,但惡意軟件可以檢測到這一點,因為並非所有重新啟動觸發器都會執行。

系統工件。虛擬機在其內存、進程和文件中包含特定的工件。惡意軟件可以查找虛擬機(VM) 指令以及與I/O 端口的通信等工件,以檢測其是否在沙箱內啟動。

2. 基於用戶活動的檢查用戶以不同的方式與計算機交互,但在沙箱環境中不存在類似人類的交互。因此,黑客可以教惡意軟件等待特定的用戶操作,然後才表現出惡意行為。以下是依賴用戶操作的沙箱檢測技術的一些示例:

image.png

滾動文檔。現代惡意軟件可以被編程為僅在用戶到達文檔中的特定位置後才執行。 Microsoft Word 文檔中編寫的惡意軟件可能包含用於檢測滾動的特殊段落代碼。沙箱環境不包含任何滾動運動,允許惡意軟件保持休眠狀態。

移動並單擊鼠標。某些惡意軟件經過編程,可以檢查鼠標移動和點擊的速度,如果速度快得可疑、沒有檢測到足夠的鼠標點擊或用戶沒有採取特定操作,則保持不活動狀態。

擁有瀏覽器歷史記錄、緩存和書籤。每天上網的真實用戶會將其歷史記錄和緩存保存在他們的計算機上。沙箱不會有這些,因為它會定期清理瀏覽緩存以刪除潛在的惡意軟件並確保沙箱的正確操作。惡意軟件可以檢查系統是否具有此類信息,如果沒有找到任何信息,則處於休眠狀態。

將文件保存到特定目錄。惡意軟件可以檢查系統是否允許將自定義文件保存到桌面和根文件夾。不建議將文件保存在這些目錄中,因此沙箱不會這樣做。但儘管系統建議,大多數實際用戶仍將文件保存到桌面和根目錄。

3.基於時間的逃避在某些情況下,惡意軟件使用基於計時的技術來逃避沙箱。沙箱通常會在有限的時間內分析惡意軟件,而基於計時的技術很樂意濫用此功能。

以下是三種常見的基於時間的沙箱檢測方法:

image.png

延長睡眠時間。當惡意軟件使用延長睡眠時,它可以在執行之前成功離開沙箱。

邏輯炸彈。在某些情況下,惡意軟件可以被編程為在特定日期和特定時間執行。

停止代碼。惡意軟件可能包含執行無用CPU 週期的代碼,以延遲惡意代碼的執行,直到沙箱完成測試。

額外的沙箱規避機制在開發惡意軟件時,惡意行為者會嘗試實施盡可能多的規避技術和機制,以確保其代碼的成功。以下是他們用來增強上述技術的關鍵附加機制:

加密和混淆。加密的惡意軟件通常包含解密循環和主體。解密循環對包含惡意代碼的主體進行加密和解密。

IP 地址和DNS 名稱的更改。此機制可幫助惡意軟件隱藏網絡釣魚和惡意軟件傳遞地址。它允許惡意軟件繞過安全解決方案創建的網站黑名單。

隱寫術和多語言。這些類型的惡意軟件將惡意代碼隱藏在代碼的被動部分(例如圖像)中。可以將代碼放置在圖像的元數據和圖像本身中。這種規避方法對於基於瀏覽器的攻擊特別有用。

寡態、多態、變質。惡意軟件可以篡改其解密器,使沙箱更難檢測到惡意代碼。例如,它可以為每種感染和代碼類型創建新的解密器(寡態性),為每個新解密器稍微修改惡意代碼(多態性),或者根據沙箱的屬性使用突變引擎修改惡意代碼(變態性) 。

數據包碎片。安全解決方案通常等待整個流量數據包到達,然後對其進行分析。惡意軟件可以利用此數據包分段協議並僅將惡意代碼作為數據包的一部分發送。

各種各樣的沙箱規避技術和機制使得在安全環境中包含惡意軟件成為一項棘手的任務。在Apriorit,我們可以根據解決方案的性質通過多種方式解決這一挑戰。讓我們看一下我們用來確保惡意軟件遏制的一些最佳實踐。

開發可靠沙箱的最佳實踐我們描述的規避技術可以幫助開發人員更深入地了解沙箱中的惡意軟件檢測。這就是為什麼我們Apriorit 在開髮沙箱時結合了各種網絡安全檢查和防禦措施。以下是您可以在安全解決方案中實施的一些原則,以保護其免受沙箱規避惡意軟件的侵害:

image.png

1. 模擬真實環境與真實用戶的真實環境相比,虛擬機的運行方式有所不同。現代惡意軟件可以識別差異,例如不頻繁的重新啟動和特定於虛擬機的指令,以及檢測虛假的鼠標點擊和移動。檢索沙箱中的硬件信息將幫助您檢測惡意軟件,該惡意軟件會檢查硬盤大小、最近的文件、CPU 核心數量、操作系統版本、內存容量以及其他系統和硬件特徵。

您還可以配置沙箱以動態更改睡眠持續時間和惡意軟件分析的周期。雖然沙箱通常會分析惡意軟件幾秒鐘,但長時間的分析會隨著睡眠持續時間的增加而顯著增加檢測到惡意軟件的機會。請注意,這種惡意軟件檢測方法需要大量時間。

2、靜動態結合分析沙盒技術是動態代碼分析的一種形式,因為它檢查安全環境中的惡意軟件行為。知道這一點後,許多惡意軟件開發人員嘗試通過將代碼置於睡眠狀態或使其採取盡可能少的操作來逃避動態分析。

要檢測此類惡意軟件,請將靜態代碼分析添加到您的沙箱中。靜態分析檢查潛在惡意軟件是否存在規避技術或加密代碼片段,而不考慮文件活動。此方法對於檢測具有延遲執行腳本的惡意軟件非常有效。但是,您不能僅僅依靠靜態分析來阻止惡意軟件。

3. 實施人工智能人工智能算法可以提高沙箱的準確性,並在執行之前檢測到更多威脅。與傳統的基於規則的網絡安全機制相比,人工智能可以學習檢測零日威脅,適應新的規避技術,並根據其早期行為識別惡意軟件。

您可以添加專注於網絡安全的AI 算法:

模擬真實用戶行為,使惡意軟件認為它位於沙箱之外

分析潛在惡意文件的行為

增強靜態和動態分析

4. 分析文件簽名基於簽名的檢測分析進入系統的每個軟件的獨特數字足跡或簽名。每個防病毒解決方案都有一個已知惡意軟件簽名的內置數據庫。如果新軟件的簽名與該數據庫中的記錄匹配,沙箱會自動刪除或隔離該軟件。

然而,簽名檢查無法阻止動態變化的惡意軟件。為了檢測此類威脅,請考慮實施循環冗餘校驗的計算。校驗和有助於驗證正在分析的文件自進入系統以來沒有發生更改。

5、採用內容解除和重構技術內容解除和重建(CDR) 是一種網絡安全技術,可從文件中刪除任何可疑代碼。為了確定代碼是否可疑,CDR 使用系統策略和定義。這項技術通常被認為是沙箱的對立面,但它可以作為其他安全解決方案的附加技術。

CDR 從文件中刪除所有活動內容,並向用戶提供經過清理的文檔。它允許您立即阻止隱藏在文檔中的惡意軟件,但存在損壞包含腳本(例如用JavaScript 編寫的Office 宏)的文件的風險,即使它們不是惡意的。

6.讓時間過得更快延遲惡意代碼的執行是惡意軟件的基本規避策略之一。沙箱不是全天候(24/7)活動的,因此即使是最簡單的惡意軟件也可以通過讓自己休眠幾個小時來逃避安全檢查。因此,當沙箱處於活動狀態時,它可能會將惡意文件誤認為是安全文件。

檢測逃逸惡意軟件的一種方法是在沙箱激活時更改虛擬機的時間配置。這樣,您就能夠誘騙惡意軟件喚醒並執行其惡意代碼。另一種選擇是讓虛擬機內的時間過得更快,並簡單地等待惡意軟件的休眠期結束。

7. 在單獨的環境中部署沙箱即使是最安全的沙箱也可能在某些時候崩潰並讓惡意軟件進入您的環境。為了防止這種情況發生,請將沙箱部署在與主沙箱不同的環境中。例如,您可以使用雲部署、訪問受限的遠程端點或其他虛擬機。

結論逃避沙箱的惡意軟件旨在逃避基於沙箱技術的保護程序的檢測。這意味著傳統的惡意軟件檢測方法無法有效對抗此類惡意軟件。要開發可以檢測和阻止惡意軟件的沙箱,您需要結合各種網絡安全技術、方法和工具。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...