惡意探索保護可協助抵禦使用惡意探索感染裝置和散播的惡意程式碼。 惡意探索保護包含許多可套用至作業系統或個別應用程式的緩和措施。
重要事項
.NET 2.0 與某些惡意探索保護功能不相容,特別是匯出位址篩選 (EAF) 和匯入位址篩選 (IAF)。 如果您已啟用 .NET 2.0,則不支援使用 EAF 和 IAF。
惡意探索保護包含許多增強的緩和措施體驗工具組 (EMET) 功能。
必要條件
本節包含建議,幫助你成功部署漏洞防護。
設定應用程式當機監控 (事件ID 1000和/或事件ID 1001) 或當機 (事件ID 1002)
啟用 完整的使用者模式傾印 收集
請檢查哪些應用程式已經編譯為「控制流程守護」 (CFG) ,主要著重於減輕記憶體損毀漏洞。 用 dumpbin 工具看看它是否已經編譯成 CFG。 對於這些應用,你可以跳過啟用 DEP、ASRL、SEHOP 和 ACG 的執行。
請採取安全的部署措施。
警告
若不進行測試且不遵循安全部署措施,可能會導致終端用戶生產力下降。
安全部署措施
安全部署實務 (SDP) :安全部署流程與程序定義如何安全地對您的工作負載進行變更與部署。 實施 SDP 需要你從風險管理的角度來思考部署。 透過實施 SDP,您可以降低終端用戶在部署中生產力中斷的風險,並限制問題部署對使用者的影響。
例如,先從一小組 (開始,例如10到50) 的Windows裝置,並以此作為測試環境,找出21種緩解措施中哪些與漏洞防護不相容。 移除與應用程式不相容的緩解措施。 重申你目標的應用程式。 一旦你覺得保單準備好生產。
首先,請推送用戶驗收測試 (UAT) ,該小組由 IT 管理員、安全管理員及客服台人員組成。 接著是1%、5%、10%、25%、50%、75%,最後是100%的環境。
啟用漏洞防護緩解措施
您可以使用以下任一方法個別啟用每個緩和措施:
Windows 10 和 Windows 11 中預設會設定惡意探索保護。 您可以將每個緩和措施設定為開啟、關閉或設為預設值。 有些緩和措施有其他選項。 您可以將這些設定匯出為 XML 檔案,並部署到其他裝置。
您也可以將緩和措施設定為稽核模式。 稽核模式可讓您測試緩和措施如何運作 (並檢閱事件),而不會影響裝置的正常使用。
Windows 安全性應用程式
在工作列中選取防護盾圖示,或在 [開始] 功能表中搜尋 [安全性],以開啟 Windows 安全性應用程式。
選取 [應用程式和瀏覽器控制] 磚 (或左側功能表列上的應用程式圖示),然後選取 [惡意探索保護設定]。
請移至 [程式設定],然後選擇您想要套用緩和措施的應用程式。
- 如果您想要設定的應用程式已列出,請選取它,然後選取 [編輯]。
- 如果應用程式未被列出,請在列表頂端選擇 新增程式以自訂 ,然後選擇你想如何新增該應用程式。
- 使用 [依程式名稱新增],以將緩和措施套用至任何具有該名稱的執行中程式。 指定具副檔名的檔案。 您可以輸入完整路徑,限制只有該位置中具有該名稱的應用程式才套用緩和措施。
- 使用 [選擇確切的檔案路徑] 以使用標準的 Windows 檔案總管檔案選擇器視窗來尋找並選取您想要的檔案。
選取應用程式之後,您就會看到可套用的所有緩和措施清單。 選擇 審計 時,緩解措施僅在審計模式下生效。 如果你需要重新啟動程序或應用程式,或是需要重新啟動 Windows,系統會通知你。
針對您想要設定的所有應用程式和緩和措施,重複步驟 3-4。
在 [系統設定] 區段下,尋找您想要設定的緩和措施,然後指定下列其中一個設定。 未在 [程式設定] 區段個別設定的應用程式,會使用此處的設定。
- [預設開啟]:針對未在應用程式特定的 [程式設定] 區段設定此緩和措施的應用程式,啟用緩和措施
- [預設關閉]:針對未在應用程式特定的 [程式設定] 區段設定此緩和措施的應用程式,停用緩和措施
- [使用預設值]:根據 Windows 10 或 Windows 11 安裝所設定的預設設定,緩和措施會設定為啟用或停用;一律在每個緩和措施的 [使用預設值] 標籤旁指定預設值 ([開啟] 或 [關閉])
針對您想要設定的所有系統層級緩和措施重複步驟 6。 當您設定完成時,選取 [套用]。
如果你在 程式設定 區塊新增應用程式並設定個別緩解設定,這些設定會被保留在系統 設定 區段中指定的相同緩解配置之上。 下列矩陣和範例可說明預設值的運作方式:
| 在 [程式設定] 中啟用 | 在 [系統設定] 中啟用 | 行為 |
|---|---|---|
| 是 | 否 | 如 [程式設定] 中定義 |
| 是 | 是 | 如 [程式設定] 中定義 |
| 否 | 是 | 如 [系統設定] 中定義 |
| 否 | 否 | 預設值,如 [使用預設值] 選項所定義 |
範例 1:Mikael 在系統設定區段將 [資料執行防護] 設定為預設關閉
Mikael 將 test.exe 應用程式新增至 [程式設定] 區段。 在該應用程式的選項中,在 [資料執行防護 (DEP)] 下,Mikael 啟用 [覆寫系統設定] 選項,並且將開關設定為 [開啟]。 在 [程式設定] 區段下未列出其他應用程式。
結果是僅會針對 test.exe 啟用 DEP。 其他應用程式都不會有 DEP 的套用。
範例 2:Josie 在系統設定中將 [資料執行防護] 設定為預設關閉
Josie 將 test.exe 應用程式新增至 [程式設定] 區段。 在該應用程式的選項中,在 [資料執行防護 (DEP)] 下,Josie 啟用 [覆寫系統設定] 選項,並且將開關設定為 [開啟]。
Josie 也將 miles.exe 應用程式新增到 [程式設定] 區段,並將 [控制流程防護 (CFG)] 設定為 [開啟]。 Josie 沒有為 DEP 啟用 [覆寫系統設定] 選項或該應用程序的任何其他緩和措施。
結果是會針對 test.exe 啟用 DEP。 DEP 不會被啟用給其他應用程式,包括 miles.exe。 將為 miles.exe 啟用 CFG。
在工作列中選取防護盾圖示,或在 [開始] 功能表中搜尋 [Windows 安全性],以開啟 Windows 安全性應用程式。
選取 [應用程式和瀏覽器控制] 磚 (或左側功能表列上的應用程式圖示),然後選取 [惡意探索保護]。
請移至 [程式設定],然後選擇您想要套用緩和措施的應用程式。
- 如果您想要設定的應用程式已列出,請選取它,然後選取 [編輯]。
- 如果應用程式未被列出,請在列表頂端選擇 新增程式以自訂 ,然後選擇你想如何新增該應用程式。
- 使用 [依程式名稱新增],以將緩和措施套用至任何具有該名稱的執行中程式。 指定具副檔名的檔案。 您可以輸入完整路徑,限制只有該位置中具有該名稱的應用程式才套用緩和措施。
- 使用 [選擇確切的檔案路徑] 以使用標準的 Windows 檔案總管檔案選擇器視窗來尋找並選取您想要的檔案。
選取應用程式之後,您就會看到可套用的所有緩和措施清單。 選擇 審計 時,緩解措施僅在審計模式下生效。 如果你需要重新啟動程序或應用程式,或是需要重新啟動 Windows,系統會通知你。
針對您想要設定的所有應用程式和緩和措施,重複步驟 3-4。 當您設定完成時,選取 [套用]。
Intune
登入 Azure 入口網站,然後開啟 Intune。
請前往裝置配置>設定檔>,建立個人檔案。
命名設定檔,選擇 Windows 10 及以後版本,選擇配置檔類型的範本,並在範本名稱下選擇端點保護。
選擇設定>Windows Defender 漏洞保護>。
上傳具惡意探索保護設定的 XML 檔案:
選取 [確定] 儲存每個開啟的刀鋒視窗,然後選擇 [建立]。
選取設定檔的 [指派] 索引標籤、將原則指派給 [所有使用者及所有裝置],然後選取 [儲存]。
MDM
使用 ./Vendor/MSFT/Policy/Config/ExploitGuard/ExploitProtectionSettings 設定服務提供者 (CSP) 來啟用或停用惡意探索保護緩和功能,或使用稽核模式。
Microsoft Configuration Manager
端點安全性
在 Microsoft Configuration Manager 中,請前往「端點安全>攻擊面縮減」。
選擇 建立政策>平台,設定 檔則選擇 利用保護。 然後,選取 [建立]。
指定名稱和描述、然後選擇 [下一步]。
選擇 [選取 XML 檔案] 並瀏覽至惡意探索保護 XML 檔案的位置。 選取檔案,然後選擇 [下一步]。
視需要設定 [範圍標籤] 和 [指派]。
在 [檢閱與建立] 下,檢閱您的設定,然後選擇 [建立]。
資產與合規
在 Microsoft Configuration Manager 中,請前往Windows Defender Exploit Guard 的資產與合規>端點保護>。
選擇 「建立>漏洞防護政策」。
指定名稱和描述、選取 [惡意探索保護],然後選擇 [下一步]。
瀏覽至惡意探索保護 XML 檔案的位置,然後選取 [下一步]。
檢閱設定,然後選擇 [下一步] 來建立原則。
原則建立後,選取 [關閉]。
群組原則
在你的群組原則管理裝置上,打開群組原則管理主控台。 右鍵點擊你想設定的群組原則物件,然後選擇編輯。
在 [群組原則管理編輯器] 中,移至 [電腦設定] 然後選取 [系統管理範本]。
將樹擴展為 Windows 元件>Windows Defender 漏洞防護>Exploit Protection> 使用通用的漏洞防護設定。
選取 [啟用],然後輸入 XML 檔案的位置,然後選擇 [確定]。
PowerShell
您可以使用 PowerShell 動詞 Get 或 Set 來搭配 Cmdlet ProcessMitigation 使用。 使用 Get 功能會列出裝置上啟用的緩解措施的當前設定狀態。 新增 -Name cmdlet 和應用程式執行檔,就能看到該應用程式的緩解措施:
Get-ProcessMitigation -Name processName.exe
重要事項
尚未設定的系統層級緩和措施會顯示 NOTSET 的狀態。
- 對於系統層級設定,
NOTSET表示已套用該緩和措施的預設設定。 - 對於應用層級設定,
NOTSET表示將套用該緩和措施的系統層級設定。 可以在 Windows 安全性中查看每個系統層級緩和措施的預設設定。
使用 Set 以下列格式設定每個緩和措施:
Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>
其中:
-
<範圍>:
-
-Name表示應將緩和措施套用至特定應用程式。 在此旗標之後指定應用程式的可執行檔。-
-System表示應在系統層級套用緩和措施。
-
-
-
<動作場面>:
-
-Enable以啟用緩和措施 -
-Disable以停用緩和措施
-
-
<緩解措施>:
- 緩和措施的 Cmdlet 以及任何子選項 (以空格環繞)。 每個緩和措施會以逗號分隔。
例如,若要使用 ATL Thunk 模擬來啟用 [資料執行保護 (DEP)] 緩和措施,以及針對資料夾 C:\Apps\LOB\tests中名為 testing.exe 的可執行檔,以及防止該可執行檔建立子處理序,您可以使用下列命令:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation
重要事項
以逗號分隔每個緩和措施選項。
如果您想要在系統層級套用 DEP,請使用下列命令:
Set-Processmitigation -System -Enable DEP
若要停用緩和措施,您可以將 -Enable 取代為 -Disable。 不過,針對應用程式層級的緩和措施,此動作會強制僅針對該應用程式停用緩和措施。
如果您需要將緩和措施還原回系統預設值,您也需要包含 -Remove Cmdlet,如下列範例所示:
Set-Processmitigation -Name test.exe -Remove -Disable DEP
下表列出要與 -Enable 或 -Disable Cmdlet 參數一起使用的個別 [緩和措施] (以及 [稽核] (若可用))。
| 緩和措施類型 | 適用於 | 緩和措施 Cmdlet 參數關鍵字 | 稽核模式 Cmdlet 參數 |
|---|---|---|---|
| 控制流量防護 (CFG) | 系統與應用程式層級 |
CFG, StrictCFG, SuppressExports |
稽核無法使用 |
| 資料執行防護 (DEP) | 系統與應用程式層級 |
DEP, EmulateAtlThunks |
稽核無法使用 |
| 強制執行映像隨機化 (強制 ASLR) | 系統與應用程式層級 | ForceRelocateImages |
稽核無法使用 |
| 隨機記憶體配置 (由下而上 ASLR) | 系統與應用程式層級 |
BottomUp, HighEntropy |
稽核無法使用 |
| 驗證例外狀況鏈結 (SEHOP) | 系統與應用程式層級 |
SEHOP, SEHOPTelemetry |
稽核無法使用 |
| 驗證堆積完整性 | 系統與應用程式層級 | TerminateOnError |
稽核無法使用 |
| 任意程式碼防護 (ACG) | 僅應用程式層級 | DynamicCode |
AuditDynamicCode |
| 封鎖低完整性映像 | 僅應用程式層級 | BlockLowLabel |
AuditImageLoad |
| 封鎖遠端映像 | 僅應用程式層級 | BlockRemoteImages |
稽核無法使用 |
| 封鎖不信任的字型 | 僅應用程式層級 | DisableNonSystemFonts |
AuditFont, FontAuditOnly |
| 程式碼完整性防護 | 僅應用程式層級 |
BlockNonMicrosoftSigned, AllowStoreSigned |
AuditMicrosoftSigned, AuditStoreSigned |
| 停用擴充點 | 僅應用程式層級 | ExtensionPoint |
稽核無法使用 |
| 停用 Win32k 系統呼叫 | 僅應用程式層級 | DisableWin32kSystemCalls |
AuditSystemCall |
| 不允許子處理序 | 僅應用程式層級 | DisallowChildProcessCreation |
AuditChildProcess |
| 匯出位址篩選 (EAF) | 僅應用程式層級 |
EnableExportAddressFilterPlus, EnableExportAddressFilter[1] |
審計功能不可用 [2] |
| 匯入位址篩選 (IAF) | 僅應用程式層級 | EnableImportAddressFilter |
審計功能不可用 [2] |
| 模擬執行 (SimExec) | 僅應用程式層級 | EnableRopSimExec |
審計功能不可用 [2] |
| 驗證 API 引動過程 (CallerCheck) | 僅應用程式層級 | EnableRopCallerCheck |
審計功能不可用 [2] |
| 驗證控制代碼使用方式 | 僅應用程式層級 | StrictHandle |
稽核無法使用 |
| 驗證映像相依性完整性 | 僅應用程式層級 | EnforceModuleDepencySigning |
稽核無法使用 |
| 驗證堆疊完整性 (StackPivot) | 僅應用程式層級 | EnableRopStackPivot |
審計功能不可用 [2] |
[1]:請使用以下格式啟用 DLL 的 EAF 模組以啟用程序:
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
[2]:此緩解措施無法透過 PowerShell 指令執行執行(cmdlet)進行審核。
自訂通知
如需在觸發規則並封鎖應用程式或檔案時自訂通知的詳細資訊,請參閱 Windows 安全性。
移除漏洞保護緩解措施
若要重設 (撤銷或移除) 漏洞防護緩解措施,請參閱 漏洞保護參考資料。
另請參閱
提示
想要深入了解? Engage 與 Microsoft Security 社群互動,加入我們的技術社群:適用於端點的 Microsoft Defender Defender 技術社群。