共用方式為


已知問題 & WDAC 系統管理員秘訣

注意

Windows Defender 應用程式控制的某些功能僅在特定 Windows 版本上可用。 深入了解 應用程控功能可用性

本文涵蓋系統管理員的秘訣和訣竅,以及 Windows Defender 應用程控 (WDAC) 的已知問題。 在生產環境中啟用此組態之前,請先在實驗室中測試此設定。

WDAC 原則檔案位置

根據原則是否簽署,以及所使用的原則部署方法,在下列位置中可找到多個原則格式 WDAC 原則。

  • <OS 磁盘區>\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip
  • <EFI 系統分割區>\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip

{PolicyId GUID} 值是原則唯一的值,並以 PolicyId> 元素定義於原則 XML <中。

針對 單一原則格式 WDAC 原則,除了上述兩個位置之外,也請在下列位置尋找名為 SiPolicy.p7b 的檔案:

  • <EFI 系統分割區>\Microsoft\Boot\SiPolicy.p7b
  • <OS 磁盘區>\Windows\System32\CodeIntegrity\SiPolicy.p7b

注意

使用單一原則格式 GUID {A244370E-44C9-4C06-B551-F6016E563076} 的多個原則格式 WDAC 原則可能會存在於任何原則檔案位置下。

檔案規則優先順序順序

當 WDAC 引擎根據裝置上的作用中原則集評估檔案時,規則會以下列順序套用。 一旦檔案遇到相符專案,WDAC 就會停止進一步處理。

  1. 明確拒絕規則 - 即使建立其他規則來嘗試允許檔案,如果有明確的拒絕規則,也會封鎖該檔案。 拒絕規則可以使用任何 規則層級。 建立拒絕規則時,請使用最實際的規則層級,以避免封鎖超出您預期的程度。

  2. 明確允許規則 - 如果檔案有任何明確的允許規則存在,檔案就會執行。

  3. 然後,WDAC 會檢查 EA) (Managed Installer 擴充屬性 ,或檔案上的 Intelligent Security Graph (ISG) EA 。 如果其中一個 EA 存在,且原則啟用對應的選項,則允許檔案。

  4. 最後,如果原則啟用ISG選項,WDAC 會對ISG進行雲端呼叫,以取得檔案的信譽。

  5. 明確規則或根據ISG或MI不允許的任何檔案都會以隱含方式封鎖。

已知問題

如果有超過 32 個原則在作用中, (藍色畫面) 發生開機停止失敗

在您套用 2024 年 4 月 9 日或之後發行的 Windows 安全性更新之前,您的裝置僅限 32 個使用中原則。 如果超過原則數目上限,則參照 ci.dll 的裝置藍屏錯誤檢查值為 0x0000003b。 規劃 WDAC 原則時,請考慮此原則計數上限。 裝置上作用 中的任何 Windows 收件匣原則 也都會計入此限制。 若要移除最大原則限制,請安裝在 2024 年 4 月 9 日或之後發行的 Windows 安全性更新,然後重新啟動裝置。 否則,請減少裝置上的原則數目,保持低於 32 個原則。

注意: Windows 11 21H2 上並未移除原則限制,且將維持為 32 個原則。

稽核模式原則可能會變更某些應用程式的行為,或導致應用程式當機

雖然 WDAC 稽核模式是設計來避免對應用程式造成影響,但某些功能一律會開啟/一律使用任何開啟使用者模式程式代碼完整性的 WDAC 原則來強制執行, (UMCI) 選項為 0 Enabled:UMCI。 以下是稽核模式中的已知系統變更清單:

  • 某些腳本主機可能會封鎖程序代碼,或以較少的許可權執行程序代碼,即使在稽核模式中也一樣。 如需個別腳本主機行為的相關信息,請參閱使用 WDAC 強制執行腳本。
  • 選項 19 已啟用: 如果任何 UMCI 原則包含該選項,則一律會強制執行動態程式碼安全性。 請參閱 WDAC 和 .NET

.NET 原生映射可能會產生誤判封鎖事件

在某些情況下,寫入 Windows Defender 應用程控錯誤和警告的程式代碼完整性記錄包括針對 .NET 元件產生的原生映像的錯誤事件。 一般而言,原生映射區塊在功能上是良性的,因為封鎖的原生映像會回復到其對應的元件,而 .NET 會在下一個排程的維護期間重新產生原生映射。

不支援使用橢圓曲線密碼編譯 (ECC) 的簽章

以 WDAC 簽署者為基礎的規則僅適用於 RSA 密碼編譯。 不支援 ECC 演算法,例如 ECDSA。 如果 WDAC 根據 ECC 簽章封鎖檔案,對應的 3089 簽章資訊事件會顯示 VerificationError = 23。 您可以改為透過哈希或檔屬性規則來授權檔案,如果檔案也使用 RSA 以簽章簽署,則可以使用其他簽署者規則。

當 FilePath 規則允許時,MSI 安裝程式會被視為可在 Windows 10 上寫入的使用者

MSI 安裝程式檔案一律會偵測為可在 Windows 10 和 Windows Server 2022 及更早版本上寫入的使用者。 如果您需要使用 FilePath 規則來允許 MSI 檔案,您必須在 WDAC 原則中設定選項 18 Disabled:Runtime FilePath Rule Protection

WDAC 會封鎖直接從因特網啟動的 MSI 安裝

將 .msi 檔案直接從因特網安裝到受 WDAC 保護的計算機時失敗。 例如,此指令失敗:

msiexec -i https://download.microsoft.com/download/2/E/3/2E3A1E42-8F50-4396-9E7E-76209EA4F429/Windows10_Version_1511_ADMX.msi

因應措施是下載 MSI 檔案並在本機執行:

msiexec -i c:\temp\Windows10_Version_1511_ADMX.msi

使用自定義原則的慢速開機和效能

WDAC 會評估所有執行的進程,包括收件匣 Windows 進程。 如果您的原則不是以 WDAC 範本為基礎,或是不信任 Windows 簽署者,則可能會導致開機時間變慢、效能降低,而且可能會發生開機問題。 基於這些理由,您應該盡可能使用 WDAC 基底範本 來建立原則。

AppId 標記原則考慮

AppId 標記原則不是以 WDAC 基底範本為基礎,或不允許 Windows 內建簽署者,可能會導致開機時間大幅增加, (~2 分鐘) 。

如果您無法將 Windows 簽署者列入清單或建置 WDAC 基底範本,請將下列規則新增至原則以改善效能:

允許原則中的所有 dll。

允許 xml 原則中的所有 dll 檔案。

由於 AppId 標記原則會評估但無法標記 dll 檔案,因此此規則會縮短 dll 評估並改善評估效能。