Windows でファイルの AppLocker ハッシュ規則を作成するときにエラーが発生する: 0x800700C1: 有効な Win32 アプリケーションではありません

この記事では、Windows でファイルの AppLocker ハッシュ規則を作成できない問題について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 2749690

現象

Windows コンピューター上のファイルの AppLocker ハッシュ規則を作成しようとするとします。 ただし、ルールを作成することはできません。次のエラー メッセージが表示されます。

0x800700C1: 有効な Win32 アプリケーションではありません

原因

この問題は、Windows Authenticode Signature Verification 関数がポータブル実行可能ファイル (PE) ファイルを検証したために発生します。 次のいずれかの条件が満たされている場合、PE ファイルは署名されていないと見なされます。

  • Windows では、ファイル内の Authenticode 仕様に準拠していないコンテンツを識別できます。 この条件は、一部のサード パーティ製インストーラーに適用されます。
  • 署名が適用された後、追加のコンテンツがファイルに追加されました。

PE ファイルの AppLocker ハッシュ規則は、ファイルの SHA2 Authenticode ハッシュに基づいています。 PE ファイルが前述の 2 つの条件のいずれかを満たしている場合、ファイルの Authenticode ハッシュは信頼されません。 AppLocker は、このようなファイルの Authenticode ハッシュを処理できません。 そのため、このようなファイルの Publisher または Hash ルールを作成することはできません。

解決方法

Windows 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 ポリシーに 2 つの規則があります。 最初のルール ("電卓の許可") は、Calculator.exe の実行を許可するハッシュ 規則です。 2 つ目のルール ("Deny Contoso") は、Contoso によって発行された Attack of Zombies ゲームに属するすべてのファイルをブロックする発行元ルールです。 Calculator.exe と Zombies.exe の両方が前に説明した 2 つの条件のいずれかを満たしている場合、Windows Authenticode Signature の検証は失敗します。 MS12-024 を適用する前に、Calculator.exe は "電卓の許可" 規則によって許可され、Zombies.exe は "Deny Contoso" ルールによってブロックされます。 ただし、MS12-024 を適用した後、AppLocker は Calculator.exe の SHA2 Authenticode ハッシュを処理できないため、Zombies.exe は署名されていないファイルと見なされます。 そのため、どちらのルールもトリガーされないため、予期しない動作が発生します。

関連情報

Windows Authenticode ポータブル実行可能ファイル署名形式の詳細については、「 Windows Authenticode ポータブル実行可能ファイル署名形式に関する一般的な情報」を参照してください。