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 的蓝屏,检查值为 0x0000003b。 规划 WDAC 策略时,请考虑此最大策略计数限制。 设备上处于活动状态的任何 Windows 收件箱策略 也会计入此限制。 若要删除最大策略限制,请安装 2024 年 4 月 9 日或之后发布的 Windows 安全更新,然后重启设备。 否则,请减少设备上的策略数,以保持低于 32 个策略。

注意:策略限制未在 21H2 Windows 11中删除,并将限制为 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 Server 2022 及更早版本上,MSI 安装程序文件始终被检测为用户可写Windows 10。 如果需要允许使用 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 评估并改进评估性能。