Share via


Permitir aplicaciones Win32 de línea de negocio en dispositivos de modo S administrados por Intune

Nota

Algunas funcionalidades de Windows Defender Control de aplicaciones (WDAC) solo están disponibles en versiones específicas de Windows. Para obtener más información, consulte Windows Defender disponibilidad de características de Application Control.

Puede usar Microsoft Intune para implementar y ejecutar aplicaciones Win32 críticas y componentes de Windows que normalmente están bloqueados en modo S, en los Windows 10 administrados por Intune en dispositivos en modo S. Por ejemplo, PowerShell.exe.

Con Intune, puede configurar dispositivos en modo S administrados mediante una directiva complementaria Windows Defender Application Control (WDAC) que expanda la directiva base del modo S para autorizar las aplicaciones que usa su organización. Esta característica cambia la posición de seguridad del modo S de "Microsoft ha comprobado todas las aplicaciones" a "Microsoft o su organización ha comprobado todas las aplicaciones".

Para obtener información general y una breve demostración de esta característica, vea este vídeo:

Proceso de autorización de directivas

Diagrama básico del flujo de autorización de directivas.

Los pasos generales para expandir la directiva base del modo S en los Windows 10 administrados por Intune en dispositivos en modo S son generar una directiva complementaria, firmar esa directiva, cargar la directiva firmada en Intune y asignarla a grupos de usuarios o dispositivos. Dado que necesita acceso a los cmdlets de PowerShell para generar la directiva complementaria, debe crear y administrar las directivas en un dispositivo en modo que no sea S. Una vez que la directiva se haya cargado en Intune, antes de implementar la directiva de forma más amplia, asígnela a una sola Windows 10 de prueba en el dispositivo en modo S para comprobar el funcionamiento esperado.

  1. Genere una directiva complementaria con herramientas WDAC.

    Esta directiva expande la directiva base del modo S para autorizar más aplicaciones. Cualquier cosa autorizada por la directiva base del modo S o la directiva complementaria puede ejecutarse. Las directivas complementarias pueden especificar reglas de ruta de acceso de archivos, publicadores de confianza y mucho más.

    Para obtener más información sobre cómo crear directivas complementarias, consulte Implementación de varias directivas WDAC. Para obtener más información sobre el tipo correcto de reglas que se van a crear para la directiva, consulte Implementación de reglas de directiva WDAC y reglas de archivo.

    Las instrucciones siguientes son un conjunto básico para crear una directiva complementaria del modo S:

    • Cree una nueva directiva base con New-CIPolicy.

      New-CIPolicy -MultiplePolicyFormat -ScanPath <path> -UserPEs -FilePath "<path>\SupplementalPolicy.xml" -Level FilePublisher -Fallback SignedVersion,Publisher,Hash
      
    • Cámbiela a una directiva complementaria mediante Set-CIPolicyIdInfo.

      Set-CIPolicyIdInfo -SupplementsBasePolicyID 5951A96A-E0B5-4D3D-8FB8-3E5B61030784 -FilePath "<path>\SupplementalPolicy.xml"
      

      Para las directivas que complementan la directiva base del modo S, use -SupplementsBasePolicyID 5951A96A-E0B5-4D3D-8FB8-3E5B61030784. Este identificador es el identificador de directiva del modo S.

    • Coloque la directiva en modo de aplicación mediante Set-RuleOption.

      Set-RuleOption -FilePath "<path>\SupplementalPolicy.xml>" -Option 3 -Delete
      

      Este comando elimina el calificador "modo de auditoría".

    • Puesto que va a firmar la directiva, debe autorizar el certificado de firma que use para firmar la directiva. Opcionalmente, también autorice uno o varios firmantes adicionales que se puedan usar para firmar actualizaciones de la directiva en el futuro. El siguiente paso del proceso general, Firmar la directiva, lo describe con más detalle.

      Para agregar el certificado de firma a la directiva WDAC, use Add-SignerRule.

      Add-SignerRule -FilePath <policypath> -CertificatePath <certpath> -User -Update
      
    • Conviértalo a .bin mediante ConvertFrom-CIPolicy.

      ConvertFrom-CIPolicy -XmlFilePath "<path>\SupplementalPolicy.xml" -BinaryFilePath "<path>\SupplementalPolicy.bin>
      
  2. Firme la directiva.

    Las directivas de modo S complementarias deben estar firmadas digitalmente. Para firmar la directiva, use la infraestructura de clave pública (PKI) personalizada de la organización. Para obtener más información sobre cómo firmar mediante una ENTIDAD de certificación interna, consulte Creación de un certificado de firma de código para WDAC.

    Después de firmarla, cambie el nombre de la directiva a {PolicyID}.p7b. Obtenga el policyID del XML de directiva complementario.

  3. Implemente la directiva complementaria firmada mediante Microsoft Intune.

    Vaya al portal de Microsoft Intune, vaya a la página Aplicaciones cliente y seleccione Directivas complementarias del modo S. Cargue la directiva firmada en Intune y asígnela a grupos de usuarios o dispositivos. Intune genera tokens de autorización para el inquilino y dispositivos específicos. Intune, a continuación, implementa el token de autorización correspondiente y la directiva complementaria en cada dispositivo del grupo asignado. Juntos, estos tokens y directivas expanden la directiva base del modo S en el dispositivo.

Nota

Al actualizar la directiva complementaria, asegúrese de que el nuevo número de versión sea estrictamente mayor que el anterior. Intune no permite usar el mismo número de versión. Para obtener más información sobre cómo establecer el número de versión, vea Set-CIPolicyVersion.

Proceso estándar para implementar aplicaciones a través de Intune

Diagrama básico para implementar aplicaciones a través de Intune.

Para obtener más información sobre el procedimiento existente de empaquetado de catálogos firmados e implementación de aplicaciones, consulte Administración de aplicaciones Win32 en Microsoft Intune.

Opcional: proceso para implementar aplicaciones mediante catálogos

Diagrama básico para implementar aplicaciones mediante catálogos.

Su directiva complementaria se puede usar para relajar significativamente la directiva base del modo S, pero hay ventajas de seguridad que debe tener en cuenta al hacerlo. Por ejemplo, puede usar una regla de firmante para confiar en un firmante externo, pero que autorice todas las aplicaciones firmadas por ese certificado, lo que puede incluir también las aplicaciones que no quiere permitir.

En lugar de autorizar a los firmantes externos a su organización, Intune tiene funcionalidad para facilitar la autorización de aplicaciones existentes mediante catálogos firmados. Esta característica no requiere volver a empaquetar ni tener acceso al código fuente. Funciona para aplicaciones que pueden estar sin firmar o incluso aplicaciones firmadas cuando no desea confiar en todas las aplicaciones que pueden compartir el mismo certificado de firma.

El proceso básico consiste en generar un archivo de catálogo para cada aplicación mediante el Inspector de paquetes y, a continuación, firmar los archivos de catálogo mediante una PKI personalizada. Para autorizar el certificado de firma de catálogo en la directiva complementaria, use el cmdlet Add-SignerRule de PowerShell, como se muestra anteriormente en el paso 1 del proceso de autorización de directivas. Después, use el proceso Estándar para implementar aplicaciones a través de Intune descrito anteriormente. Para obtener más información sobre cómo generar catálogos, consulte Implementación de archivos de catálogo para admitir WDAC.

Nota

Cada vez que se actualiza una aplicación, debe implementar un catálogo actualizado. Intente evitar el uso de archivos de catálogo para aplicaciones que se actualizan automáticamente y indique a los usuarios que no actualicen las aplicaciones por sí mismos.

Directiva de ejemplo

La siguiente directiva es un ejemplo que permite a los depuradores de kernel, PowerShell ISE y Editor del Registro. También se muestra cómo especificar los certificados de firma de código y firma de directiva de la organización.

<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy" PolicyType="Supplemental Policy">
  <VersionEx>10.0.0.0</VersionEx>
  <PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
  <!--Standard S mode GUID-->
  <BasePolicyID>{5951A96A-E0B5-4D3D-8FB8-3E5B61030784}</BasePolicyID>
  <!--Unique policy GUID-->
  <PolicyID>{52671094-ACC6-43CF-AAF1-096DC69C1345}</PolicyID>
  <!--EKUS-->
  <EKUs />
  <!--File Rules-->
  <FileRules>
    <!--Allow kernel debuggers-->
    <Allow ID="ID_ALLOW_CBD_0" FriendlyName="cdb.exe" FileName="CDB.Exe" />
    <Allow ID="ID_ALLOW_KD_0" FriendlyName="kd.exe" FileName="kd.Exe" />
    <Allow ID="ID_ALLOW_WINDBG_0" FriendlyName="windbg.exe" FileName="windbg.Exe" />
    <Allow ID="ID_ALLOW_MSBUILD_0" FriendlyName="MSBuild.exe" FileName="MSBuild.Exe" />
    <Allow ID="ID_ALLOW_NTSD_0" FriendlyName="ntsd.exe" FileName="ntsd.Exe" />
    <!--Allow PowerShell ISE and Registry Editor-->
    <Allow ID="ID_ALLOW_POWERSHELLISE_0" FriendlyName="powershell_ise.exe" FileName="powershell_ise.exe" />
    <Allow ID="ID_ALLOW_REGEDIT_0" FriendlyName="regedit.exe" FileName="regedit.exe" />
  </FileRules>
  <!--Signers-->
  <Signers>
    <!--info of the certificate you will use to do any code/catalog signing-->
    <Signer ID="EXAMPLE_ID_SIGNER_CODE" Name="Example Code Signing Certificate Friendly Name">
      <CertRoot Type="TBS" Value="<value>" />
    </Signer>
    
    <!--info of the certificate you will use to sign your policy-->
    <Signer ID="EXAMPLE_ID_SIGNER_POLICY" Name="Example Policy Signing Certificate Friendly Name">
      <CertRoot Type="TBS" Value="<value>" />
    </Signer>
  </Signers>
  <!--Driver Signing Scenarios-->
  <SigningScenarios>
    <SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_KMCI" FriendlyName="Example Name">
      <ProductSigners />
    </SigningScenario>
    <SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_UMCI" FriendlyName="Example Name">
      <ProductSigners>
        <AllowedSigners>
          <AllowedSigner SignerId="EXAMPLE_ID_SIGNER_CODE" />
        </AllowedSigners>
        <FileRulesRef>
          <FileRuleRef RuleID="ID_ALLOW_CBD_0" />
          <FileRuleRef RuleID="ID_ALLOW_KD_0" />
          <FileRuleRef RuleID="ID_ALLOW_WINDBG_0" />
          <FileRuleRef RuleID="ID_ALLOW_MSBUILD_0" />
          <FileRuleRef RuleID="ID_ALLOW_NTSD_0" />
          <FileRuleRef RuleID="ID_ALLOW_POWERSHELLISE_0" />
          <FileRuleRef RuleID="ID_ALLOW_REGEDIT_0" />
        </FileRulesRef>
      </ProductSigners>
    </SigningScenario>
  </SigningScenarios>
  <!--Specify one or more certificates that can be used to sign updated policy-->
  <UpdatePolicySigners>
    <UpdatePolicySigner SignerId="EXAMPLE_ID_SIGNER_POLICY" />
  </UpdatePolicySigners>
  <!--Specify one or more codesigning certificates to trust-->
  <CiSigners>
    <CiSigner SignerId="EXAMPLE_ID_SIGNER_CODE" />
  </CiSigners>
  <!-- example remove core isolation a.k.a. Hypervisor Enforced Code Integrity (HVCI) options, consider enabling if your system supports it-->
  <HvciOptions>0</HvciOptions>
  <Settings>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
      <Value>
        <String>Example Policy Name</String>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
      <Value>
        <String>Example-Policy-10.0.0.0</String>
      </Value>
    </Setting>
  </Settings>
</SiPolicy>

Eliminación de directivas

Para revertir a los usuarios a una directiva de modo S sin modificar, quite un usuario o usuarios del grupo de Intune de destino que recibió la directiva. Esta acción desencadena la eliminación de la directiva y el token de autorización del dispositivo.

También puede eliminar una directiva complementaria a través de Intune.

<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy" PolicyType="Supplemental Policy">
  <VersionEx>10.0.0.1</VersionEx>
  <PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
  <BasePolicyID>{5951A96A-E0B5-4D3D-8FB8-3E5B61030784}</BasePolicyID>
  <PolicyID>{52671094-ACC6-43CF-AAF1-096DC69C1345}</PolicyID>
  <Rules>
  </Rules>
  <!--EKUS-->
  <EKUs />
  <!--File Rules-->

  <!--Signers-->
  <Signers>
    <!--info of the certificate you will use to sign your policy-->
    <Signer ID="EXAMPLE_ID_SIGNER_POLICY" Name="Example Policy Signing Certificate Friendly Name">
      <CertRoot Type="TBS" Value="<value>" />
    </Signer>
  </Signers>
  <!--Driver Signing Scenarios-->
  <SigningScenarios>
    <SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_KMCI" FriendlyName="KMCI">
      <ProductSigners>
      </ProductSigners>
    </SigningScenario>
    <SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_UMCI" FriendlyName="UMCI">
      <ProductSigners>
      </ProductSigners>
    </SigningScenario>
  </SigningScenarios>
  <UpdatePolicySigners>
    <UpdatePolicySigner SignerId="EXAMPLE_ID_SIGNER_POLICY" />
  </UpdatePolicySigners>
  <!-- example remove core isolation a.k.a. Hypervisor Enforced Code Integrity (HVCI) options, consider enabling if your system is supported-->
  <HvciOptions>0</HvciOptions>
  <Settings>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
      <Value>
        <String>Example Policy Name - Empty</String>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
      <Value>
        <String>Example-Policy-Empty-10.0.0.1</String>
      </Value>
    </Setting>
  </Settings>
</SiPolicy>

Erratas

Si un Windows 10 en el dispositivo en modo S con un token de autorización de directiva y una directiva complementaria se revierte de la actualización 1909 a la compilación 1903, no volverá al modo S bloqueado hasta la siguiente actualización de directiva. Para lograr un cambio inmediato a un estado de modo S bloqueado, los profesionales de TI deben eliminar los tokens de %SystemRoot%\System32\CI\Tokens\Active.