Ir al contenido
05 · Control de aplicacionesParte 4 de 4Intermedio

AppLocker paso a paso: scripts, instaladores y apps

Despliega AppLocker con seguridad: servicio Application Identity, modo auditoría, reglas de editor para EXE, scripts, MSI y apps empaquetadas, y carpetas con escritura.

Florian Amette9 min de lectura

La guía pilar de App Control recomienda App Control for Business como base para todo el dispositivo y reserva AppLocker para lo que todavía hace bien: reglas por usuario y por grupo, mejoras rápidas en sistemas donde App Control aún no está listo y el bloqueo de los clásicos puntos de ejecución con escritura para el usuario. Esta guía es el despliegue completo de AppLocker, colección por colección, con los datos de auditoría que evitan que rompa el negocio.

AppLocker no está en desuso. Recibe correcciones de seguridad pero no funciones nuevas, y lo aplica en modo usuario el servicio Application Identity. Ten presentes ambos hechos: es fácil de desplegar y fácil de socavar para cualquiera con derechos de administrador, por lo que va de la mano de retirar los derechos de administrador local.

Las cinco colecciones de reglas

ColecciónTipos de archivoLas reglas predeterminadas permiten
Reglas de ejecutables.exe, .comEveryone: %PROGRAMFILES%\*, %WINDIR%\*; Administrators: todos los archivos
Reglas de Windows Installer.msi, .msp, .mstEveryone: todos los instaladores con firma digital, %WINDIR%\Installer\*; Administrators: todos los archivos
Reglas de scripts.ps1, .bat, .cmd, .vbs, .jsEveryone: %PROGRAMFILES%\*, %WINDIR%\*; Administrators: todos los archivos
Reglas de aplicaciones empaquetadas.appx, .msix (instalación y ejecución)Everyone: todas las aplicaciones empaquetadas firmadas
Reglas de DLL (opcionales).dll, .ocxEveryone: %PROGRAMFILES%\*, %WINDIR%\*; Administrators: todos los archivos

Cada colección tiene su propia opción de aplicación. Una colección sin reglas no se aplica, y una con reglas pero sin opción de aplicación configurada sí se aplica. Ese segundo comportamiento sorprende a mucha gente: establece siempre el modo explícitamente.

Hay tres tipos de reglas: editor (firmante, producto, nombre de archivo, versión), ruta y hash de archivo. Prefiere las reglas de editor; sobreviven a las actualizaciones. Usa reglas de ruta solo para carpetas en las que los usuarios estándar no puedan escribir.

Paso 1: requisitos previos

  • Servicio Application Identity en Automatic. Usa Computer Configuration > Policies > Windows Settings > Security Settings > System Services > Application Identity. En las versiones actuales de Windows no puedes cambiar su tipo de inicio en la consola Servicios, así que la directiva es la vía fiable.
  • Edición compatible. Históricamente, AppLocker solo se aplicaba en las ediciones Enterprise, Education y Server. Desde KB5024351, Windows 10 2004 y posteriores y todas las versiones de Windows 11 lo aplican en todas las ediciones, incluida Pro. En compilaciones anteriores (incluido Windows Server 2019), las directivas entregadas por directiva de grupo solo funcionan en las ediciones Enterprise y Server, mientras que las entregadas por MDM funcionan en todas las ediciones.
  • Una unidad organizativa (OU) piloto con un conjunto representativo de usuarios: finanzas, desarrolladores, soporte técnico y un quiosco compartido si lo tienes.

Las reglas de AppLocker residen en Computer Configuration > Policies > Windows Settings > Security Settings > Application Control Policies > AppLocker. En los dispositivos administrados con Intune, la directiva de AppLocker se entrega mediante el CSP de AppLocker como opciones OMA-URI personalizadas que contienen el XML de la colección de reglas, un nodo por colección: ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/{Grouping}/EXE/Policy, con MSI, Script, StoreApps y DLL en lugar de EXE para las demás colecciones ({Grouping} es un nombre único, idealmente un GUID).

Paso 2: empezar en modo auditoría con valores predeterminados sensatos

En el nodo AppLocker, abre Configure rule enforcement y establece las reglas de ejecutables, Windows Installer, scripts y aplicaciones empaquetadas en Audit only. Después, en cada colección, haz clic con el botón derecho y elige Create Default Rules. Las reglas predeterminadas son un punto de partida, no un diseño; hacen falta dos cambios de inmediato.

Cierra las carpetas con escritura bajo %WINDIR%. La regla predeterminada «Everyone puede ejecutar cualquier cosa bajo %WINDIR%» incluye subcarpetas en las que los usuarios estándar pueden escribir, lo que las convierte en plataformas de lanzamiento. Ejemplos habituales:

  • C:\Windows\Tasks
  • C:\Windows\Temp
  • C:\Windows\tracing
  • C:\Windows\System32\spool\drivers\color
  • C:\Windows\System32\Tasks

Añádelas como excepciones en las reglas de ruta de %WINDIR% para ejecutables y scripts. Busca otras en tu compilación con AccessChk de Sysinternals contra los grupos Users y Everyone, ya que la lista varía según la versión y el software instalado.

Deniega a los usuarios estándar los binarios de elusión conocidos. Las reglas predeterminadas permiten todos los binarios firmados de Windows, incluidos los que ejecutan código arbitrario: mshta.exe, wscript.exe, cscript.exe, regsvr32.exe, msbuild.exe e installutil.exe son ejemplos frecuentes. Añade reglas de denegación de editor para los que tus usuarios no necesitan, con ámbito en los usuarios estándar en lugar de Everyone para que las herramientas de administración sigan funcionando.

Paso 3: recoger datos de auditoría y construir reglas a partir de ellos

Deja el piloto en auditoría de dos a cuatro semanas, lo suficiente para cubrir los procesos de cierre de mes. AppLocker registra en Applications and Services Logs > Microsoft > Windows > AppLocker:

RegistroPermitidoAuditoría (se bloquearía)Bloqueado
EXE and DLL800280038004
MSI and Script800580068007
Packaged app-Execution802080218022
Packaged app-Deployment802380248025

Genera reglas candidatas directamente desde los eventos de auditoría en un dispositivo piloto:

PowerShell
Get-AppLockerFileInformation -EventLog -EventType Audited `
  -LogPath "Microsoft-Windows-AppLocker/EXE and DLL" |
  New-AppLockerPolicy -RuleType Publisher, Hash -User Everyone -Optimize -Xml |
  Out-File .\candidate-exe.xml

O desde una carpeta de referencia:

PowerShell
Get-AppLockerFileInformation -Directory "C:\Program Files (x86)\Contoso" -Recurse |
  New-AppLockerPolicy -RuleType Publisher, Hash -User Everyone -Optimize -Xml |
  Out-File .\contoso.xml

Revisa cada candidata antes de importarla. Los datos de auditoría de un usuario que ejecutó cualquier descarga generarán una regla que permite esa descarga. Limita el ámbito de las reglas a grupos cuando tenga sentido: las herramientas de ingeniería para GG-Engineering, no para Everyone.

Importa las reglas revisadas en la GPO con Set-AppLockerPolicy -XmlPolicy .\contoso.xml -Ldap "LDAP://CN={GPO-GUID},CN=Policies,CN=System,DC=corp,DC=example" -Merge.

Paso 4: scripts, instaladores y aplicaciones empaquetadas

Scripts. Aplicar las reglas de scripts tiene un efecto secundario importante: PowerShell se ejecuta en modo de lenguaje restringido para los scripts y sesiones interactivas que la directiva no permite. Eso bloquea la mayor parte del PowerShell ofensivo, pero también rompe los scripts de administración ejecutados desde carpetas con escritura para el usuario. Guarda los scripts de administración en una ruta solo para administradores o fírmalos, y permite explícitamente los scripts de inicio de sesión: añade reglas de ruta para \\corp.example\SYSVOL\* y \\corp.example\NETLOGON\* (solo si en esos recursos compartidos únicamente pueden escribir los administradores, como debe ser). Consulta la guía de registro de PowerShell y CLM para los detalles.

Windows Installer. La regla predeterminada «todos los MSI firmados» permite a los usuarios ejecutar cualquier instalador firmado, lo que es amplio pero se apoya en que la mayoría de los MSI requieren elevación. Endurécela con reglas de editor para tu catálogo de software si los usuarios nunca deben instalar nada por su cuenta.

Aplicaciones empaquetadas. La regla predeterminada permite todos los paquetes MSIX firmados, incluidas todas las aplicaciones de la Store. Si quieres controlar qué aplicaciones de la Store pueden ejecutarse, sustituye la predeterminada por reglas de editor por paquete; genéralas a partir de las aplicaciones instaladas con Get-AppxPackage | Get-AppLockerFileInformation.

Paso 5: aplicar por anillos

Cambia las colecciones de una en una a Enforce rules, empezando por los ejecutables, después los scripts y después los instaladores y aplicaciones empaquetadas. En cada anillo, sigue vigilando los eventos 8003, 8006, 8021 y 8024 en los dispositivos que siguen en auditoría, y 8004, 8007, 8022 y 8025 en los dispositivos con la directiva aplicada.

Reglas por usuario en dispositivos compartidos

Aquí es donde AppLocker todavía supera a App Control, que aplica la misma directiva a todos los usuarios de un dispositivo. En equipos compartidos como recepciones, terminales de planta, aulas de formación o puestos de enfermería, puedes dar reglas distintas a poblaciones distintas sobre el mismo hardware:

  • Cuentas de quiosco y de turno: una lista corta de reglas de editor para la aplicación de negocio y el navegador, nada más. Ninguna regla de scripts aparte de los scripts de inicio de sesión.
  • Grupos de TI local y soporte técnico: sus herramientas de soporte además de lo anterior.
  • Administradores: la regla predeterminada «todos los archivos», ya que los protegen otros controles.

Dirige cada regla a un grupo en lugar de a Everyone, y mantén los grupos en Active Directory o Microsoft Entra ID para que los cambios de pertenencia no requieran cambiar la directiva. Combínalo con un shell restringido o con el acceso asignado cuando el dispositivo sea un verdadero quiosco.

Qué se rompe

  • Instaladores por usuario: las aplicaciones que se instalan en %LOCALAPPDATA% (habitual en herramientas de conferencias, chat y desarrollo) se bloquean por defecto. Proporciona una versión para todo el equipo mediante tu herramienta de despliegue.
  • Actualizadores automáticos que dejan nuevos ejecutables en rutas con escritura para el usuario.
  • Scripts de inicio de sesión de SYSVOL o NETLOGON cuando se aplican las reglas de scripts sin las reglas de ruta anteriores.
  • Complementos y macros de Office que llaman a scripts en carpetas temporales.
  • Herramientas de soporte remoto del centro de soporte descargadas sobre la marcha. Preinstala una aprobada.

Verificarlo

PowerShell
Get-Service AppIDSvc | Select-Object Status, StartType
Get-AppLockerPolicy -Effective -Xml | Out-File .\effective.xml
Test-AppLockerPolicy -XmlPolicy .\effective.xml -Path "$env:LOCALAPPDATA\Temp\test.exe" -User CORP\jdoe
$ExecutionContext.SessionState.LanguageMode   # ConstrainedLanguage para un usuario estándar cuando se aplican las reglas de scripts

Test-AppLockerPolicy devuelve Allowed, Denied o DeniedByDefault por archivo y usuario, lo que lo hace útil en las revisiones de cambios. Reenvía los id. de eventos de bloqueo a tu SIEM; una ráfaga de eventos 8004 de un mismo usuario suele significar que alguien ejecutó la carga útil de un phishing.

Lista de comprobación

  • Servicio Application Identity en Automatic por GPO en todos los dispositivos objetivo
  • Modo de aplicación establecido explícitamente para cada colección
  • Reglas predeterminadas creadas, con excepciones para las carpetas con escritura bajo %WINDIR%
  • Reglas de denegación para los binarios de elusión que los usuarios estándar no necesitan
  • De dos a cuatro semanas de datos de auditoría revisadas antes de aplicar
  • Reglas de editor preferidas, con ámbito en grupos cuando sea posible
  • Reglas de scripts aplicadas con SYSVOL/NETLOGON permitidos y scripts de administración firmados
  • Eventos de bloqueo (8004, 8007, 8022, 8025) reenviados y con alertas

AppLocker es la capa rápida y por usuario. Para un control que los administradores locales no puedan desactivar sin más, combínalo con App Control y un instalador administrado; el área de control de aplicaciones enumera la serie completa.

Preguntas frecuentes

¿Por qué mis reglas de AppLocker no tienen ningún efecto?

Casi siempre porque el servicio Application Identity no se está ejecutando. AppLocker evalúa las reglas a través de AppIDSvc; si está detenido, no se aplica ni se audita nada. Establécelo en Automatic mediante el nodo System Services de un objeto de directiva de grupo, porque en las versiones actuales de Windows el servicio no se puede reconfigurar desde la consola Servicios, y después confirma que aparecen eventos en los registros de AppLocker.

¿Debo activar las reglas de DLL?

Al principio no. Las reglas de DLL exigen que también se permita cada biblioteca que cargue cada aplicación permitida, lo que multiplica el conjunto de reglas y añade un pequeño coste de rendimiento a cada carga. Consigue primero aplicar las reglas de ejecutables, scripts, instaladores y aplicaciones empaquetadas. Plantéate las reglas de DLL más adelante para dispositivos de función fija, o pasa a App Control for Business, que cubre las DLL de forma más eficiente.

¿Se aplica AppLocker a los administradores?

Las reglas se aplican a quien tengan como destino, pero las reglas predeterminadas permiten a los miembros de BUILTIN\Administrators ejecutarlo todo, y un administrador puede detener el servicio o cambiar la directiva local de todos modos. AppLocker es un control para usuarios estándar. Protege a los administradores con cuentas separadas, un modelo por niveles y App Control for Business, que un administrador local no puede desactivar sin más cuando la directiva está firmada.

AppLocker paso a paso: scripts, instaladores y apps

Guías relacionadas

Firewall de Windows

Firewall de Windows a escala con GPO e Intune

Gestione el Firewall de Windows en todo el parque: cómo se combinan las reglas de GPO e Intune, por qué prevalece el bloqueo y cómo revisar el almacén activo.

Intermedio