WDAC 管理员提示 & 已知问题

注意

Windows Defender 应用程序控制的某些功能仅适用于特定 Windows 版本。 详细了解 应用程序控制功能可用性

本文介绍管理员的提示和技巧,以及 Windows Defender 应用程序控制 (WDAC) 的已知问题。 在生产环境中启用此配置之前,请在实验室中测试此配置。

WDAC 策略文件位置

在以下位置找到多个策略格式 WDAC 策略,具体取决于策略是否签名,以及使用的策略部署方法。

  • <OS Volume>\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip
  • <EFI 系统分区>\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip

{PolicyId GUID} 值是策略唯一的,并在策略 XML <中使用 PolicyId> 元素定义。

对于 单策略格式 WDAC 策略,除了上述两个位置外,还可以在以下位置查找名为 SiPolicy.p7b 的文件:

  • <EFI 系统分区>\Microsoft\Boot\SiPolicy.p7b
  • <OS Volume>\Windows\System32\CodeIntegrity\SiPolicy.p7b

注意

任何策略文件位置下都可能存在使用单一策略格式 GUID 的多 {A244370E-44C9-4C06-B551-F6016E563076} 策略格式 WDAC 策略。

文件规则优先顺序

当 WDAC 引擎根据设备上的活动策略集评估文件时,将按以下顺序应用规则。 文件遇到匹配项后,WDAC 将停止进一步处理。

  1. 显式拒绝规则 - 如果文件存在任何显式拒绝规则,即使创建了其他规则来尝试允许它,也会阻止该文件。 拒绝规则可以使用任何 规则级别。 在创建拒绝规则时,请实际使用最具体的规则级别,以避免阻止超出你的意图。

  2. 显式允许规则 - 如果存在文件的任何显式允许规则,该文件将运行。

  3. 然后,WDAC 检查文件中 的托管安装程序扩展属性 (EA) 智能安全图 (ISG) EA 。 如果任一 EA 存在并且策略启用相应的选项,则允许该文件。

  4. 最后,如果策略启用了 ISG 选项,WDAC 对 ISG 进行云调用,以获取有关该文件的信誉。

  5. 显式规则不允许或基于 ISG 或 MI 的任何文件将被隐式阻止。

已知问题

如果超过 32 个策略处于活动状态,则启动停止失败 (蓝屏)

在应用 2024 年 4 月 9 日或之后发布的 Windows 安全更新之前,你的设备限制为 32 个活动策略。 如果超过最大策略数,则设备蓝屏引用 ci.dll,bug 检查值为 0x0000003b。 规划 WDAC 策略时,请考虑此最大策略计数限制。 设备上处于活动状态的任何 Windows 收件箱策略 也会计入此限制。 若要删除最大策略限制,请安装 2024 年 4 月 9 日或之后发布的 Windows 安全更新,然后重启设备。 否则,请减少设备上的策略数,以保持低于 32 个策略。

注意: 未在 Windows 11 21H2 上删除策略限制,仍将限制为 32 个策略。

审核模式策略可能会更改某些应用的行为或导致应用崩溃

尽管 WDAC 审核模式旨在避免对应用造成影响,但某些功能始终启用/始终通过任何 WDAC 策略强制实施,该策略启用用户模式代码完整性 (UMCI) 选项 0 Enabled:UMCI。 下面是审核模式下的已知系统更改列表:

  • 某些脚本主机可能会阻止代码或以较少的权限运行代码,即使在审核模式下也是如此。 有关单个脚本主机行为的信息,请参阅 使用 WDAC 执行 脚本。
  • 选项 19 Enabled: 如果任何 UMCI 策略包含该选项,则始终强制实施动态代码安全性。 请参阅 WDAC 和 .NET

.NET 本机映像可能会生成误报块事件

在某些情况下,编写 Windows Defender 应用程序控制错误和警告的代码完整性日志包括为 .NET 程序集生成的本机映像的错误事件。 通常,本机映像块在功能上是良性的,因为被阻止的本机映像回退到其相应的程序集,并且 .NET 在其下一个计划的维护时段重新生成本机映像。

不支持使用椭圆曲线加密 (ECC) 签名

基于 WDAC 签名的规则仅适用于 RSA 加密。 不支持 ECC 算法,例如 ECDSA。 如果 WDAC 阻止基于 ECC 签名的文件,则相应的 3089 签名信息事件显示 VerificationError = 23。 如果文件也使用 RSA 签名,则可以改为通过哈希或文件属性规则或其他签名者规则来授权文件。

当 FilePath 规则允许时,MSI 安装程序被视为 Windows 10 上的用户可写安装程序

在 Windows 10 和 Windows Server 2022 及更早版本上,MSI 安装程序文件始终被检测为用户可写。 如果需要允许使用 FilePath 规则的 MSI 文件,则必须在 WDAC 策略中设置选项 18 Disabled:Runtime FilePath Rule Protection

WDAC 阻止直接从 Internet 启动的 MSI 安装

将 .msi 文件直接从 Internet 安装到受 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 标记策略注意事项

不是基于 WDAC 基本模板构建或不允许 Windows 内置签名者的 AppId 标记策略可能会导致启动时间显著增加, (大约 2 分钟) 。

如果无法将 Windows 签名者列入允许列表或基于 WDAC 基本模板生成,请将以下规则添加到策略以提高性能:

允许策略中的所有 dll。

允许 xml 策略中的所有 dll 文件。

由于 AppId 标记策略评估但无法标记 dll 文件,因此此规则会缩短 dll 评估并改进评估性能。