本文介绍无法为 Windows 中的文件创建 AppLocker 哈希规则的问题。
原始 KB 数: 2749690
现象
假设你尝试为 Windows 计算机上的文件创建 AppLocker 哈希规则。 但是,无法创建规则,并且会收到以下错误消息:
0x800700C1:无效的 Win32 应用程序
原因
出现此问题的原因是 Windows 验证码签名验证函数现在验证可移植可执行文件 (PE) 文件。 如果满足以下条件之一,则 PE 文件被视为未签名:
- Windows 可以识别不符合文件中 Authenticode 规范的内容。 此条件适用于某些第三方安装程序。
- 应用签名后,文件添加了其他内容。
PE 文件的 AppLocker 哈希规则基于文件的 SHA2 Authenticode 哈希。 如果 PE 文件满足前面提到的两个条件之一,则不信任文件的 Authenticode 哈希。 AppLocker 无法处理此类文件的 Authenticode 哈希。 因此,无法为此类文件创建发布服务器或哈希规则。
解决方法
应用签名后更改的内容的文件对计算机有害。 因此,建议使用符合 Windows 安全要求的文件替换此类文件。 为此,可能需要使用原始软件作者发布符合要求的新文件。
如果决定继续使用此类文件,则可以创建基于 AppLocker 路径的规则来控制这些文件。
详细信息
在 Windows 8 和基于 Windows Server 2012 的计算机或安装了安全更新 MS12-024 的 Windows 7 和基于 Windows Server 2008 R2 的计算机上,无法为未签名的文件创建哈希或发布者规则。 只能为此类文件创建基于路径的规则。 此外,如果 AppLocker 策略包含基于此类文件的哈希或发布者规则,则该规则不再适用于该文件。 以下 AppLocker 策略是此行为的一个示例:
<AppLockerPolicy Version="1">
<RuleCollection Type="Exe" EnforcementMode="Enforced">
<FileHashRule Action="Allow" UserOrGroupSid="S-1-1-0" Description="" Name="Allow Calculator" Id="7509591f-7552-4ed0-ac56-7b727cd1f9cf">
<Conditions>
<FileHashCondition>
<FileHash Type="SHA256" SourceFileLength="53344" SourceFileName="calculator.exe" Data="0x2E8950C38FE3DD02D9F9A012BA9481E7E4704838BB5208E3F7086B6935520A93"/>
</FileHashCondition>
</Conditions>
</FileHashRule>
<FilePublisherRule Id="a3ab2d94-c20d-4039-8f2b-6caaff04e816" Name="Deny Contoso" Description="Deny Games" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePublisherCondition PublisherName="Contoso" ProductName="Attack of Zombies" BinaryName="*">
<BinaryVersionRange LowSection="*" HighSection="*" />
</FilePublisherCondition>
</Conditions>
</FilePublisherRule>
...
...
</AppLockerPolicy>
在此示例中,AppLocker 策略有两个规则。 第一个规则(“允许计算器”)是允许Calculator.exe运行的哈希规则。 第二条规则(“拒绝 Contoso”)是一个发布者规则,阻止属于 Contoso 发布的僵尸游戏攻击的任何文件。 由于Calculator.exe和Zombies.exe都满足前面提到的两种条件之一,因此 Windows 验证码签名验证失败。 在应用 MS12-024 之前,“允许计算器”规则允许Calculator.exe,Zombies.exe被“拒绝 Contoso”规则阻止。 但是,应用 MS12-024 后,AppLocker 无法处理Calculator.exe的 SHA2 Authenticode 哈希,并将Zombies.exe视为未签名的文件。 因此,这两个规则都不会触发,并且会发生意外行为。
参考
有关 Windows Authenticode 可移植可执行文件签名格式的详细信息,请参阅 有关 Windows Authenticode 可移植可执行文件签名格式的常规信息。