Permitir el registro de objetos COM en una directiva de control de aplicaciones de Windows Defender

Se aplica a:

  • Windows 10
  • WindowsServer 2016
  • WindowsServer 2019

Importante

Parte de la información hace referencia a la versión preliminar del producto, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí.

El modelo de objetos componentes (com) de Microsoft es un sistema orientado a objetos, independiente de la plataforma y orientado a objetos para crear componentes de software binario que pueden interactuar. COM especifica un modelo de objetos y los requisitos de programación que permiten a los objetos COM interactuar con otros objetos.

Capacidad de configurar objetos COM en la Directiva de WDAC

Antes de la actualización de Windows 10 1903, el control de aplicaciones de Windows Defender (WDAC) aplicó una lista de permitidos integrada para el registro de objetos COM. Aunque este mecanismo funciona con la mayoría de los escenarios de uso de aplicaciones comunes, los clientes han proporcionado comentarios que existen casos en los que es necesario permitir objetos COM adicionales. La actualización de 1903 a Windows 10 introduce la posibilidad de especificar objetos COM permitidos a través de su GUID en la Directiva de WDAC.

Nota: para agregar esta funcionalidad a otras versiones de Windows 10, puede instalar las siguientes o actualizaciones posteriores:

Obtener GUID del objeto COM

Obtenga el GUID de la aplicación para permitir de una de las siguientes maneras:

  • Buscar evento de bloqueo en el visor de eventos (registros de aplicaciones y servicios > Microsoft > Windows > AppLocker > MSI y script) y extraer GUID
  • Crear una directiva de auditoría (mediante New-CIPolicy – Audit), posiblemente con un proveedor específico y usar información de los eventos de bloqueo para obtener GUID

Configuración de directiva de autor para permitir o denegar el GUID del objeto COM

Tres elementos:

  • Proveedor: plataforma en la que se está ejecutando el código (los valores son PowerShell, WSH, IE, VBA, MSI o un carácter "AllHostIds").
  • Clave: GUID para el programa con el que se ejecuta, con el formato clave ={33333333-4444-4444-1616-161616161616}""
  • ValueName: debe establecerse en "EnterpriseDefinedClsId"

Un atributo:

  • Value: debe ser "true" para permitir y "false" para denegar.
    • Tenga en cuenta que deny solo funciona en directivas básicas, no en las directivas básicas
  • La configuración debe colocarse en el orden de los valores ASCII (primero por proveedor, después clave y, a continuación, ValueName)

Ejemplos

Ejemplo 1: permite el registro de todos los GUID de objetos COM en cualquier proveedor

<Setting Provider="AllHostIds" Key="AllKeys" ValueName="EnterpriseDefinedClsId">
  <Value>
    <Boolean>true</Boolean>
  </Value>
</Setting>

Ejemplo 2: bloquea un objeto COM específico para que no se registre a través de Internet Explorer (IE)

<Setting Provider="IE" Key="{00000000-4444-4444-1616-161616161616}" ValueName="EnterpriseDefinedClsId">
  <Value>
    <Boolean>false</Boolean>
  </Value>
</Setting>

Ejemplo 3: permite que un objeto COM específico se registre en PowerShell

<Setting Provider="PowerShell" Key="{33333333-4444-4444-1616-161616161616}" ValueName="EnterpriseDefinedClsId">
  <Value>
    <Boolean>true</Boolean>
  </Value>
</Setting>