创建 WDAC AppId 标记策略

注意

Windows Defender 应用程序控制 (WDAC) 的某些功能仅在特定 Windows 版本上可用。 详细了解 Windows Defender 应用程序控制功能可用性

使用 WDAC 向导创建策略

可以使用 Windows Defender 应用程序控制 (WDAC) 向导和 PowerShell 命令创建应用程序控制策略并将其转换为 AppIdTagging 策略。 WDAC 向导可在 WDAC 向导安装程序站点下载。 这些 PowerShell 命令仅在 AppId 标记指南中列出的受支持平台上可用。

  1. 使用模板创建新的基本策略:

    从“策略创建者”任务开始,选择“多个策略格式”和“基本策略”。 选择要用于策略的基模板。 以下示例演示从 默认 Windows 模式 模板开始,并基于这些规则生成。

    配置策略基和模板。

    注意

    如果你的 AppId 标记策略基于基本模板生成或不允许 Windows 内置进程,你会注意到显著的性能回归,尤其是在启动期间。 因此,强烈建议基于基本模板进行构建。 有关此问题的详细信息,请参阅 AppId 标记已知问题

  2. 使用向导切换设置以下规则选项:

    配置策略规则选项。

  3. 创建自定义规则:

    选择该按钮将 + Custom Rules 打开“自定义规则”面板。 向导支持五种类型的文件规则:

    • 发布者规则:基于签名证书层次结构创建规则。 此外,原始文件名和版本可以与签名证书结合使用,以增强安全性。
    • 路径规则:基于文件或父文件夹路径的路径创建规则。 路径规则支持通配符。
    • 文件属性规则:基于文件的不可变属性(如原始文件名、文件说明、产品名称或内部名称)创建规则。
    • 包应用名称规则:基于 appx/msix 的包系列名称创建规则。
    • 哈希规则:基于文件的 PE Authenticode 哈希创建规则。

    有关创建新策略文件规则的详细信息,请参阅 创建策略文件规则部分中提供的准则。

  4. 转换为 AppId 标记策略:

    向导生成策略文件后,在文本编辑器中打开该文件,并删除整个“Value=131”SigningScenario 文本块。 剩下的唯一签名方案应该是“Value=12”,即用户模式应用程序部分。 接下来,在提升的提示符中打开 PowerShell 并运行以下命令。 替换方案的 AppIdTagging Key-Value 对:

     Set-CIPolicyIdInfo -ResetPolicyID -FilePath .\AppIdPolicy.xml -AppIdTaggingPolicy -AppIdTaggingKey "MyKey" -AppIdTaggingValue "MyValue"
    

    如果成功,则 PowerShell 命令将返回 policyID GUID。

使用 PowerShell 创建策略

使用此方法,可以直接使用 WDAC PowerShell 命令创建 AppId 标记策略。 这些 PowerShell 命令仅在 AppId 标记指南中列出的受支持平台上可用。 在提升的 PowerShell 实例中:

  1. 基于签名证书链和应用程序版本的组合,为策略创建 AppId 规则。 在下面的示例中,级别已设置为 SignedVersion。 可以在 AppId 规则中使用任何 WDAC 文件规则级别

     $rule = New-CiPolicyRule -Level SignedVersion -DriverFilePath <path_to_application>
    
  2. 创建 AppId 标记策略。 替换方案的 AppIdTagging Key-Value 对:

     New-CIPolicy -rules $rule -FilePath .\AppIdPolicy.xml -AppIdTaggingPolicy -AppIdTaggingKey "MyKey" -AppIdTaggingValue "MyValue"
    
  3. 设置策略的规则选项:

     Set-RuleOption -Option 0 .\AppIdPolicy.xml  # Usermode Code Integrity (UMCI)
     Set-RuleOption -Option 16 .\AppIdPolicy.xml # Refresh Policy no Reboot
     Set-RuleOption -Option 18 .\AppIdPolicy.xml # (Optional) Disable FilePath Rule Protection
    

    如果使用文件路径规则,可能需要设置选项 18。 否则,就没有必要了。

  4. 在策略上设置名称和 ID,这对将来的调试非常有用:

     Set-CIPolicyIdInfo -ResetPolicyId -PolicyName "MyPolicyName" -PolicyId "MyPolicyId" -AppIdTaggingPolicy -FilePath ".\AppIdPolicy.xml"
    

    如果成功,则 PowerShell 命令将返回 policyID GUID。

针对本地测试进行部署

在上述步骤中创建 AppId 标记策略后,可以在将策略广泛部署到终结点之前,将策略部署到本地计算机进行测试:

  1. 根据部署方法,将 xml 转换为二进制文件:

     Convertfrom-CIPolicy .\policy.xml ".\{PolicyIDGUID}.cip"
    
  2. (可选)部署它以用于本地测试:

     	copy ".\{Policy ID}.cip" c:\windows\system32\codeintegrity\CiPolicies\Active\
     	./RefreshPolicy.exe
    

    可从 Microsoft 下载中心下载 RefreshPolicy.exe。

后续步骤

有关调试 AppId 标记策略和广泛部署的详细信息,请参阅 调试 AppId 策略部署 AppId 策略