使用參照電腦建立 WDAC 原則

注意

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

本節概述使用已使用您想要允許之軟體設定的參照計算機,建立 Windows Defender 應用程控 (WDAC) 原則的程式。 您可以將此方法用於專用於特定功能用途的固定工作負載裝置,並與維護相同功能角色的其他裝置共用通用組態屬性。 固定工作負載裝置的範例可能包括 Active Directory 網域 控制器、安全 管理員 工作站、藥物混合設備、製造裝置、收款機、ATM 等。這種方法也可用來在系統上「在磁碟」開啟 WDAC,而且您想要將對用戶生產力的潛在影響降到最低。

注意

本主題所述的某些 Windows Defender 應用程控選項僅適用於 Windows 10 1903 版和更新版本,或 Windows 11。 使用本主題來規劃您自己的組織 WDAC 原則時,請考慮受管理的用戶端是否可以使用所有這些功能或部分功能,並評估對用戶端上可能無法使用之任何功能的影響。 您可能需要調整此指導方針,以符合您特定組織的需求。

一般 Windows Defender 應用程控部署案例中所述,我們將使用 Lamna Healthcare Company (Lamna) 範例來說明此案例。 Lamna 正嘗試採用更強的應用程式原則,包括使用應用程控來防止垃圾或未經授權的應用程式在其受管理的裝置上執行。

Alice Pena 是負責推出 WDAC 的 IT 小組負責人。

使用參考裝置建立自定義基底原則

Alice 先前已為組織完全受控的用戶裝置建立原則。 她現在想要使用 WDAC 來保護 Lamna 的重要基礎結構伺服器。 Lamna 對基礎結構系統的映射處理做法是建立「黃金」映射作為理想系統外觀的參考,然後使用該映射來複製更多公司資產。 Alice 決定使用這些相同的「黃金」映射系統來建立 WDAC 原則,這會為每種類型的基礎結構伺服器產生個別的自定義基底原則。 如同映像處理,她必須根據模型、部門、應用程式集等,從多部黃金計算機建立原則。

注意

確定參照電腦沒有病毒和惡意程式碼,然後安裝任何您想要在建立 WDAC 原則之前掃描的軟體。

建立這個原則之前,已安裝軟體應用程式的每個部分都應驗證為可信任的。

我們建議您檢閱參照電腦上可能載入任意 DLL 和執行可能導致電腦變得更容易受到威脅之程式碼或指令碼的軟體。 範例包括以開發或編寫腳本為目標的軟體,例如 msbuild.exe (Visual Studio 的一部分,以及如果您不想要執行腳本,可以移除的 .NET Framework) 。 您可以移除或停用參照電腦上的這類軟體。

Alice 識別下列關鍵因素,以抵達 Lamna 重要基礎結構伺服器的「信任圈」:

  • 所有裝置都執行 Windows Server 2019 或更新版本;
  • 所有應用程式都會集中管理和部署;
  • 沒有互動式使用者。

根據上述內容,Alice 會定義原則的虛擬規則:

  1. 授權的「Windows 運作」 規則:

    • Windows
    • WHQL (第三方核心驅動程式)
    • Windows 市集簽署的應用程式
  2. 掃描檔案的規則,這些 檔案 會授權在裝置上找到的所有既存應用程式二進位檔

若要建立 WDAC 原則,Alice 會依序在提升許可權的 Windows PowerShell 會話中執行下列每個命令:

  1. 初始化變數。

    $PolicyPath=$env:userprofile+"\Desktop\"
    $PolicyName="FixedWorkloadPolicy_Audit"
    $LamnaServerPolicy=$PolicyPath+$PolicyName+".xml"
    $DefaultWindowsPolicy=$env:windir+"\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml"
    
  2. 藉由掃描系統的已安裝應用程式,使用 New-CIPolicy 來建立新的 WDAC 原則:

    New-CIPolicy -FilePath $LamnaServerPolicy -Level SignedVersion -Fallback FilePublisher,FileName,Hash -ScanPath c:\ -UserPEs -MultiplePolicyFormat -OmitPaths c:\Windows,'C:\Program Files\WindowsApps\',c:\windows.old\,c:\users\ 3> CIPolicyLog.txt
    

    注意

    • 使用 -Level 參數指定的主要檔案規則層級所未發現的任何應用程式,都可以新增 -Fallback 參數來擷取。 如需檔案規則層級選項的詳細資訊,請參閱 Windows Defender 應用程控檔案規則層級
    • 若要指定 WDAC 原則只掃描特定磁碟機,可加入 -ScanPath 參數,後面接著路徑。 如果沒有此參數,此工具預設會掃描 C 磁碟驅動器。
    • 當您指定 -UserPEs 參數 (將使用者模式可執行檔納入掃描) 時,規則選項 \[0 啟用:UMCI\] 會自動新增至 WDAC 原則。 如果您未指定 -UserPI,則原則在使用者模式可執行檔中會是空的,而且只會有內核模式二進位檔的規則,例如驅動程式。 換句話說,允許清單不會包含應用程式。 如果您建立這樣的原則,稍後再新增規則選項 \[0 啟用:UMCI\] 時,所有啟動應用程式的嘗試都會讓 Windows Defender 應用程式控制產生回應。 在稽核模式下,回應是記錄一個事件,而在強制模式下,回應則是封鎖應用程式。
    • 若要建立 Windows 10 1903 和更新版本的原則,包括補充原則的支援,請使用 -MultiplePolicyFormat
    • 若要指定要從掃描中排除的路徑清單,請使用 -OmitPaths 選項並提供以逗號分隔的路徑清單。
    • 先前的範例包括 3> CIPolicylog.txt,其會將警告訊息重新導向至文字檔案 CIPolicylog.txt
  3. 將新原則與WindowsDefault_Audit原則合併,以確保所有 Windows 二進位檔和核心驅動程式都會載入。

    Merge-CIPolicy -OutputFilePath $LamnaServerPolicy -PolicyPaths $LamnaServerPolicy,$DefaultWindowsPolicy
    
  4. 為新原則提供描述性名稱和初始版本號碼:

    Set-CIPolicyIdInfo -FilePath $LamnaServerPolicy -PolicyName $PolicyName
    Set-CIPolicyVersion -FilePath $LamnaServerPolicy -Version "1.0.0.0"
    
  5. 修改合併的原則以設定原則規則:

    Set-RuleOption -FilePath $LamnaServerPolicy -Option 3 # Audit Mode
    Set-RuleOption -FilePath $LamnaServerPolicy -Option 6 # Unsigned Policy
    Set-RuleOption -FilePath $LamnaServerPolicy -Option 9 # Advanced Boot Menu
    Set-RuleOption -FilePath $LamnaServerPolicy -Option 12 # Enforce Store Apps
    Set-RuleOption -FilePath $LamnaServerPolicy -Option 16 # No Reboot
    Set-RuleOption -FilePath $LamnaServerPolicy -Option 17 # Allow Supplemental
    Set-RuleOption -FilePath $LamnaServerPolicy -Option 19 # Dynamic Code Security
    
  6. 如果適當,請新增更多簽署者或檔案規則,以進一步自定義貴組織的原則。

  7. 使用 ConvertFrom-CIPolicy 來將 WDAC 原則轉換成二進位格式:

    [xml]$LamnaServerPolicyXML = Get-Content $LamnaServerPolicy
    $PolicyId = $LamnaServerPolicyXML.SiPolicy.PolicyId
    $LamnaServerPolicyBin = $PolicyPath+$PolicyId+".cip"
    ConvertFrom-CIPolicy $LamnaServerPolicy $LamnaServerPolicyBin
    
  8. 將基底原則 XML 和相關聯的二進位檔上傳至原始檔控制解決方案,例如 GitHub 或檔管理解決方案,例如 Office 365 SharePoint

Alice 現在有 Lamna 重要基礎結構伺服器的初始原則,已準備好在稽核模式中部署。

建立自定義基底原則,將使用者對使用中用戶端裝置的影響降到最低

Alice 先前已為組織的完全受控裝置建立原則。 Alice 已在 Lamna 的裝置建置程式中包含完全受控的裝置原則,因此所有新裝置現在都會從啟用 WDAC 開始。 她準備將原則部署至已在使用中的系統,但擔心造成用戶生產力中斷。 為了將該風險降至最低,Alice 決定對這些系統採取不同的方法。 她將繼續將稽核模式中的完全受控裝置原則部署到這些裝置,但在強制執行模式中,她將會將完全受控裝置原則規則與透過掃描裝置中所有先前安裝的軟體所建立的原則合併。 如此一來,每個裝置都會被視為自己的「黃金」系統。

Alice 識別下列重要因素,以抵達 Lamna 完全受控使用中裝置的「信任圈」:

  • Lamna 完全受控裝置所描述的所有專案;
  • 用戶已安裝需要繼續執行的應用程式。

根據上述內容,Alice 會定義原則的虛擬規則:

  1. 完全受控裝置原則中包含的所有專案
  2. 掃描檔案的規則,這些 檔案 會授權在裝置上找到的所有既存應用程式二進位檔

對於 Lamna 現有的使用中裝置,Alice 會部署腳本以及完全受控裝置原則 XML (不是已轉換的 WDAC 原則二進位檔) 。 腳本接著會在用戶端本機上產生自定義原則,如上一節所述,但腳本不會與 DefaultWindows 原則合併,而是與 Lamna 的完全受控裝置原則合併。 Alice 也會修改上述步驟,以符合此不同使用案例的需求。