Error al crear una regla hash de AppLocker para un archivo en Windows: 0x800700C1: no es una aplicación Win32 válida

En este artículo se describe un problema en el que no se puede crear una regla hash de AppLocker para un archivo en Windows.

Se aplica a: Windows 10: todas las ediciones, Windows Server 2012 R2
Número de KB original: 2749690

Síntomas

Supongamos que intenta crear una regla hash de AppLocker para un archivo en un equipo Windows. Sin embargo, no puede crear la regla y recibe el siguiente mensaje de error:

0x800700C1: no es una aplicación Win32 válida

Causa

Este problema se produce porque la función verificación de firma de Windows Authenticode ahora comprueba los archivos ejecutables portátiles (PE). Los archivos PE se consideran no firmados si se cumple una de las condiciones siguientes:

  • Windows puede identificar el contenido que no cumple la especificación authenticode en el archivo. Esta condición se aplica a algunos instaladores de terceros.
  • Se agregó contenido adicional al archivo después de aplicar la firma.

Las reglas hash de AppLocker para archivos PE se basan en el hash SHA2 Authenticode del archivo. Si un archivo PE cumple cualquiera de las dos condiciones mencionadas anteriormente, el hash Authenticode del archivo no es de confianza. AppLocker no puede procesar el hash authenticode de dichos archivos. Por lo tanto, no puede crear reglas de publicador o hash para estos archivos.

Solución

Los archivos que tienen contenido que no cumple con las especificaciones de Windows Authenticode o los archivos que se cambiaron después de aplicar la firma pueden ser dañinos para el equipo. Por lo tanto, se recomienda reemplazar estos archivos mediante los archivos que cumplen los requisitos de seguridad de Windows. Para ello, es posible que tenga que trabajar con el autor de software original para publicar un nuevo archivo que cumpla los requisitos.

Si decide seguir trabajando con estos archivos, puede crear reglas basadas en rutas de acceso de AppLocker para controlar estos archivos.

Más información

En equipos basados en Windows 8 y Windows Server 2012, o en equipos basados en Windows 7 y Windows Server 2008 R2 que tengan instalada la actualización de seguridad MS12-024, no se puede crear un hash o una regla de publicador para archivos sin firmar. Solo puede crear reglas basadas en rutas de acceso para estos archivos. Además, si la directiva de AppLocker contiene una regla hash o de publicador basada en dicho archivo, esa regla ya no funciona para ese archivo. La siguiente directiva de AppLocker es un ejemplo de este comportamiento:

<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>  

En este ejemplo, la directiva de AppLocker tiene dos reglas. La primera regla ("Permitir calculadora") es una regla hash que permite ejecutar Calculator.exe. La segunda regla ("Denegar Contoso") es una regla de editor que bloquea cualquier archivo que pertenezca al juego Ataque de zombies publicado por Contoso. Dado que Calculator.exe y Zombies.exe cumplen una de las dos condiciones mencionadas anteriormente, se produce un error en la comprobación de la firma de Windows Authenticode. Antes de aplicar MS12-024, la regla "Permitir calculadora" permite Calculator.exe y la regla "Denegar Contoso" bloquea Zombies.exe. Sin embargo, después de aplicar MS12-024, AppLocker no puede procesar el hash SHA2 Authenticode para Calculator.exe y considera Zombies.exe como un archivo sin firmar. Por lo tanto, no se desencadena ninguna de las reglas y se produce un comportamiento inesperado.

Referencias

Para obtener más información sobre el formato de firma de archivo ejecutable portátil de Windows Authenticode, vea Información general sobre el formato de firma de archivo ejecutable portátil de Windows Authenticode.