在沙箱中執行 Microsoft Defender 防病毒軟體
適用於:
- Microsoft Defender XDR
- 適用於端點的 Microsoft Defender 方案 2
- 適用於企業的 Microsoft Defender
- 適用於端點的 Microsoft Defender 方案 1
- Microsoft Defender 防毒軟體
平臺:
- Windows
想要體驗適用於端點的 Microsoft Defender 嗎? 注册免費試用版。
本文說明如何在沙盒環境中執行 Microsoft Defender 防病毒軟體,以增強防止竄改的保護。
Microsoft Defender 自 2018 年 10 月 26 日開始,具有內建防病毒軟體功能的防病毒軟體可以在 Windows 上的沙箱內執行。 這是第一個具備這項功能的完整防病毒軟體解決方案,並持續引導業界提高安全性。
開始之前,您必須符合下列需求:
- Microsoft Defender 防病毒軟體 (作用中模式)
- Windows 11 或 Windows 10 1703 版或更新版本
- Windows Server 2022 或 Windows Server 2019 或 Windows Server 2016 或更新版本
Microsoft 內部和外部的安全性研究人員先前已識別出攻擊者可以利用 Microsoft Defender 防病毒軟體內容剖析器中弱點的方式,以啟用任意程式代碼執行。 為了檢查整個系統中的惡意內容和成品,防病毒軟體會以高許可權執行, (本機系統、NT Authority\SYSTEM) ,使其成為攻擊的目標。
雖然在最新版的 Windows 10 或更新版本上,從沙箱提升許可權非常困難,而且在沙盒中執行 Microsoft Defender 防病毒軟體可確保在不太可能發生入侵的情況下,惡意動作僅限於隔離的環境,保護系統其餘部分免於傷害。 這是 Microsoft 持續投資的一部分,透過安全性創新讓攻擊者保持領先。
新式反惡意代碼產品會檢查許多輸入,例如磁碟上的檔案、記憶體中的數據流和實時的行為事件。 其中許多功能都需要完整存取有問題的資源。 第一個主要沙盒處理工作與將防病毒軟體的檢查功能分層 Microsoft Defender元件,這些元件絕對必須以完整許可權和可沙盒化的元件來執行。 沙盒化元件的目標是要確保它們包含最高的風險功能,例如掃描不受信任的輸入、擴充容器等等。 同時,我們必須將兩層之間的互動數目降至最低,以避免產生顯著的效能成本。
資源使用量也是另一個需要大量投資的問題,具特殊許可權的程式和沙盒程式都需要存取安全情報更新、其他偵測和補救元數據。 為了避免重複,並保留強式安全性保證,以避免不安全的方式來共享狀態,或在進程之間傳遞數據/內容產生顯著的運行時間成本,我們使用模型,其中大部分的保護數據都裝載在運行時間只讀的記憶體對應檔案中。 這表示保護數據可以裝載到多個進程,而不會產生任何額外負荷。
您可以遵循下列步驟,藉由設定全電腦環境變數來啟用沙箱處理:
在 PowerShell 或 CMD 中以系統管理員身分執行下列命令:
setx /M MP_FORCE_USE_SANDBOX 1
重新開機裝置。 重新啟動之後,除了下列資料夾中的 MsMpEng.exe 之外,
MsMpEngCP.exe
您還會看到新的程式:路徑 程序 描述 C:\ProgramData\Microsoft\Windows Defender\Scans MsMpEngCP.exe 反惡意代碼服務可執行文件內容程式 C:\Users\All Users\Microsoft\Windows Defender\Scans MsMpEngCP.exe 反惡意代碼服務可執行文件內容程式 注意
中的
MsMpEngCP.exe
CP 是內容程式。
若要停用 Microsoft Defender 防病毒軟體的沙盒功能,請在PowerShell或 CMD 中以系統管理員身分執行下列命令:
setx /M MP_FORCE_USE_SANDBOX 0
Microsoft Defender 防病毒軟體會執行進程內後援,以在特殊許可權/父進程中裝載內容掃描,以提供保護。
以低許可權執行的內容程式,也會積極地使用所有可用的風險降低原則來減少表面攻擊。 它們可啟用和防止新式惡意探索防護技術的運行時間變更,例如數據執行防護 (DEP) 、ASLR) (位址空間配置隨機化,以及控制流程防護 (CFG) 。 它們也會停用 Win32K 系統呼叫和所有擴充點,並強制只載入已簽署和信任的程式代碼。
已啟用沙箱的 MDAV 效能
效能通常是沙盒處理的主要考慮,特別是因為反惡意代碼產品位於許多重要路徑,例如同步檢查檔案作業和處理,以及匯總或比對大量的運行時間事件。 為了確保效能不會降低,我們必須將沙箱與具特殊許可權進程之間的互動次數降至最低。 同時,請只在關鍵時刻執行這些互動,例如,執行 I/O 時,其成本不會很大。
Microsoft Defender 防病毒軟體會進行協調,以避免不必要的 I/O,例如,將每個檢查檔案的讀取數據量降至最低,對於維持良好的效能至關重要,特別是在舊硬體 (旋轉磁碟、遠端資源) 上。 因此,維護模型非常重要,沙箱可以視需要要求數據進行檢查,而不是傳遞整個內容。
已啟用沙箱的 MDAV 可靠性
注意
將句柄傳遞至沙盒 (以避免傳遞實際內容) 成本不是一個選項,因為有許多案例,例如即時檢查、AMSI 等,其中沒有沙盒可以使用的「可共用」句柄,而不需要授與大量許可權,這會降低安全性。
沙箱處理的另一個重要考慮與進程間通訊機制有關,以避免死結和優先順序反轉等潛在問題。 通訊不應透過節流呼叫端或限制可處理的並行要求數目,而造成任何潛在的瓶頸。 此外,沙盒程式不應自行觸發檢查作業。 所有檢查都應該在不觸發更多掃描的情況下進行。 這需要完全控制沙箱的功能,並確保不會觸發任何非預期的作業。 低許可權 AppContainers 是實作強式保證的絕佳方式,因為以功能為基礎的模型將允許更細緻的控制來指定沙盒程式可以執行的動作。
已啟用沙箱的 MDAV 補救
最後,從安全性觀點來看,重大挑戰與內容補救或威脅有關。 由於動作的敏感性 (嘗試將二進位檔還原至原始的感染內容) ,我們需要確保這會以高許可權來發生,以減輕內容程式 (沙箱) 可能遭到入侵,而且可能以非預期的方式用來修改偵測到的二進位檔的情況。
如果在進程停止前後有相關聯的 Windows 錯誤報告 (WER) 事件,請收集支援診斷記錄和任何相關的傾印/損毀資訊。