Son las 9:12 AM. Un usuario escribe: “Este instalador funcionaba ayer.” El servicio de asistencia lo intenta de nuevo. Mismo resultado: bloqueado. No hay alerta de malware, no aparece un aviso claro de SmartScreen, y el historial de Defender parece limpio. La empresa oye “Windows está roto.” Tú oyes “cambio de política,” que es más preciso y menos divertido.
Intelligent App Control (IAC) es la puerta más reciente de Microsoft para “ejecutar solo software conocido y bueno”. Cuando funciona, es deliciosamente aburrido. Cuando no funciona, es una interrupción de producción con suéter de punto.
Qué es IAC (y qué no es)
Intelligent App Control es una característica de Windows que bloquea la ejecución de aplicaciones que no alcanzan un umbral de “conocido y bueno”. Piensa en ella como una puerta de ejecución construida alrededor de la integridad del código y la reputación, no como un escáner que busca patrones de “conocido-malo”.
IAC está pensado primero para entornos de consumo y pequeñas y medianas empresas, pero aparece en conversaciones empresariales porque se comporta como un control de lista blanca simplificado. No reemplaza a WDAC en flotas gestionadas estrictamente. No es AppLocker con mejor marketing. Y definitivamente no es “Defender pero más estricto”.
Lo que hace IAC
- Evita la ejecución de ejecutables desconocidos o no confiables en función de la política y las señales de confianza.
- Se apoya en la integridad del código y la reputación para decidir qué es aceptable.
- Reduce el riesgo del “primer uso” de herramientas descargadas, instaladores ad-hoc y droppers tipo living-off-the-land que dependen de ejecución de código arbitrario.
Lo que IAC no hace
- No “limpia” malware. Si algo ya se ejecutó y persistió, eso es otro problema.
- No garantiza seguridad absoluta. El software firmado puede ser malicioso. El software reputado puede verse comprometido. A los atacantes les encantan las cadenas de suministro.
- No sustituye al parcheo ni al principio de menor privilegio. Los complementa.
Broma #1: La lista blanca es como un portero con una libreta. No detiene peleas dentro del club, pero impide que la mayoría de extraños entren con fuegos artificiales.
Por qué Microsoft lo lanzó: el modelo de amenaza
Los endpoints Windows siguen siendo donde la mayoría de organizaciones sangran. No porque Windows sea especialmente maldito, sino porque en los endpoints la gente hace clic, ejecuta e instala cosas. A los atacantes no les hace falta elegancia cuando tienen facturas disfrazadas de PDF.
IAC apunta a un modo de fallo brutalmente común: ejecución de código desconocido. No “malware conocido”, no “malware detectado”, sino “un binario que nunca habíamos visto antes ejecutándose con contexto de usuario, y a veces escalando”.
Los problemas que IAC intenta reducir
- Instaladores drive-by que los usuarios ejecutan porque un sitio web les dijo que actualicen un códec.
- Payloads side-loaded dejados por macros, motores de scripts o instaladores abusados.
- Divergencia en estaciones de trabajo de desarrolladores donde “herramientas temporales” se convierten en riesgo permanente de la cadena de suministro.
- Shadow IT en forma de herramientas remotas de soporte aleatorias y editores de PDF “gratuitos”.
Desde una perspectiva SRE, IAC es el reconocimiento de Microsoft de que los controles solo de detección crean demasiado tiempo hasta demostrar inocencia. Bloquear código desconocido en la puerta es, a veces, la única forma de mantener el radio de daño lo suficientemente pequeño como para depurar racionalmente.
Cómo decide IAC: señales de confianza y la ruta de ejecución
IAC es más fácil de entender si dejas de pensar “antivirus” y empiezas a pensar “política de ejecución”. La pregunta central no es “¿es esto malicioso?” sino “¿se permite que esto se ejecute?” Esa sutileza cambia cómo diagnosticas y cómo diseñas excepciones.
Entradas de decisión (vista práctica)
- Firma de código y confianza del certificado: ¿Está firmado el binario? ¿El firmante es de confianza? ¿La cadena es válida?
- Reputación / inteligencia en la nube: ¿Ha visto Microsoft este archivo (o similares) ampliamente y sin problemas?
- Estado de la política de integridad de código: ¿Estamos en un modo de aplicación que bloquea desconocidos?
- Contexto: Algunos controles se comportan distinto según si un archivo fue descargado (Mark-of-the-Web), su origen o cómo se lanzó.
Qué sucede en tiempo de ejecución
Cuando se crea un proceso, Windows evalúa si la imagen está permitida. En escenarios con IAC habilitado, el sistema consulta la política de integridad de código y la inteligencia asociada para permitir, bloquear o, en algunos casos, requerir elevación/vías de aprobación según la configuración. Si se bloquea, el usuario suele ver un mensaje genérico que parece SmartScreen, pero la tubería de aplicación es más cercana a Windows Defender Application Control (WDAC) que a un aviso del navegador.
Por qué empieza a ocurrir “de repente”
La mayoría de incidentes “funcionaba ayer” se reducen a una de estas causas:
- Un dispositivo pasó a un estado donde IAC se activó (instalación fresca, restablecimiento, nueva imagen).
- Una herramienta de negocio se actualizó y cambió su firma o empaquetado.
- Un binario auxiliar previamente tolerado sin firmar ahora se juzga como desconocido y es bloqueado.
- SmartScreen era la cara visible antes; ahora IAC se convierte en la aplicación que ejecuta el bloqueo.
IAC vs Defender vs SmartScreen vs WDAC vs AppLocker
Aquí es donde la mayoría de equipos se pierden: estas funciones se solapan en la experiencia de usuario, pero viven en capas diferentes y responden a preguntas distintas. Si las confundes, aplicarás la solución equivocada y luego te preguntarás por qué el bloqueo persiste.
Defender Antivirus: “¿Es malicioso?”
Defender AV es principalmente un motor de detección y remediación. Escanea archivos en reposo y en movimiento, usa firmas, heurísticas, monitorización de comportamiento e inteligencia en la nube para decidir si algo es malware. Puede poner en cuarentena, remediar y reportar. No es, fundamentalmente, una lista blanca.
Implicación operativa: si un binario es bloqueado por IAC, puedes mirar el historial de amenazas de Defender todo el día y no encontrar nada. Eso no es un fallo de Defender. Es que estás mirando en el cajón equivocado.
SmartScreen: “¿Confiamos en esta descarga o en este editor?”
SmartScreen se basa en la reputación y suele aparecer en el momento de la descarga o en la primera ejecución, especialmente para archivos con Mark-of-the-Web. Es la versión de Windows de un amigo escéptico que pregunta: “¿Estás seguro de que lo obtuviste de un sitio normal?” Puede advertir, bloquear o requerir clicks adicionales.
Diferencia clave: SmartScreen suele ser un aviso al usuario y una comprobación de reputación. IAC es una postura de política más fuerte que puede convertirse en un bloqueo duro sin “simplemente hacer clic en Ejecutar de todos modos”.
WDAC: “¿Se permite ejecutar este código, punto?”
Windows Defender Application Control es el marco empresarial para listas blancas de integridad de código. Las políticas WDAC pueden ser extremadamente estrictas y precisas: permitir código firmado por Microsoft, permitir editores específicos, permitir hashes para binarios exactos, permitir rutas bajo protecciones concretas, etc.
Relación: IAC es conceptualmente vecina a WDAC. En la práctica, debes asumir que la aplicación y el registro de IAC se parecen más a comportamientos de integridad de código que a los de un antivirus.
AppLocker: “¿Puede este usuario ejecutar esta aplicación?” (y “¿Qué reglas aplicamos?”)
AppLocker es más antiguo, basado en políticas y a menudo desplegado vía Group Policy en entornos de dominio. Puede restringir ejecutables, scripts, paquetes de Windows Installer y aplicaciones empaquetadas usando reglas por editor/ruta/hash.
Diferencia clave: AppLocker es basado en reglas y gestionado por administrador. IAC es más opinado y consciente de la reputación, diseñado para ser “seguro por defecto” sin pedirte escribir 400 reglas antes del almuerzo.
Dónde se queman los administradores
- Desactivan SmartScreen y piensan que el problema está resuelto. IAC sigue bloqueando porque no es SmartScreen.
- Agregan exclusiones en Defender para una carpeta. IAC sigue bloqueando porque no está escaneando; está aplicando política de ejecución.
- Crean una regla Allow de AppLocker pero el dispositivo no usa AppLocker para aplicación en ese escenario. El usuario sigue bloqueado.
- Despliegan WDAC sin plan y accidentalmente apilan posturas de aplicación similares a IAC. Entonces culpan a “Windows”.
Hechos históricos e interesantes para usar en reuniones
- La lista blanca precede al bombo moderno del AV. Las empresas hacían “listas de software aprobado” mucho antes de que el ransomware lo convirtiera en moda.
- AppLocker llegó como sucesor de Software Restriction Policies (SRP). SRP fue efectivo pero tosco; AppLocker añadió reglas por editor y mejor gestión.
- La integridad del código no es nueva. Windows hace tiempo que exige firma en modo kernel; los controles de integridad en modo usuario se ampliaron con el tiempo.
- El origen de SmartScreen es la reputación. No fue diseñado para atrapar todo el malware; fue pensado para advertir sobre descargas de baja reputación y phishing.
- WDAC solía mencionarse como Device Guard en muchas conversaciones. El nombre evolucionó, el dolor siguió siendo familiar: “gran seguridad, ahora hazla usable”.
- Mark-of-the-Web cambió la seguridad endpoint. Esa pequeña marca de “descargado de internet” se convirtió en entrada clave para macros de Office, SmartScreen y advertencias de primera ejecución.
- Microsoft apostó más por el “deny por defecto” tras oleadas de ransomware de commodity. La industria aprendió que solo detectar es un impuesto que pagas por siempre.
- Los sistemas de reputación tienen un problema de arranque. Las aplicaciones internas nuevas son “desconocidas” por definición, por eso importan los flujos de excepción empresariales.
Modelo operativo: qué cambia en las operaciones de TI
IAC no es solo un interruptor; es un compromiso a tener una opinión sobre qué software pertenece a tus endpoints. Si tu organización trata actualmente los endpoints como laptops personales con correo instalado, vas a sentir fricción. Buena fricción, pero fricción.
La mentalidad saludable
- Estandariza la distribución de software. Cuanto más dependas de “descargar y ejecutar”, más IAC se sentirá como incidentes constantes.
- Prefiere software firmado por editores reputados. Si tus herramientas internas no están firmadas, eliges dolor.
- Crea un proceso de excepciones con telemetría. Si no puedes responder “qué se bloqueó, dónde y por qué”, generarás excepciones por culto al objeto.
- Diseña pensando en actualizaciones. Reglas que se rompen en cada ciclo de parches no son seguridad; son teatro.
Una cita sobre fiabilidad que vale la pena pegar a tus solicitudes de cambio
La esperanza no es una estrategia.
— General Gordon R. Sullivan
La postura de seguridad es igual: no “esperas” que los usuarios ejecuten solo apps seguras. O lo aplicas o no lo haces.
Tareas prácticas: comandos, salidas y decisiones (12+)
Estas son las cosas que realmente ejecuto cuando una máquina empieza a bloquear aplicaciones y el ticket está lleno de capturas de pantalla y emociones. Los comandos están escritos como si se ejecutaran en un entorno tipo PowerShell, pero mostrados en un prompt genérico según tu requisito de formato. Interpreta las salidas; toma una decisión.
Tarea 1: Confirma la compilación y edición de Windows (porque las funciones están limitadas)
cr0x@server:~$ systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name: Microsoft Windows 11 Enterprise
OS Version: 10.0.22631 N/A Build 22631
Qué significa: Estás en Windows 11, compilación reciente. IAC está en alcance dependiendo del estado y configuración del dispositivo.
Decisión: Si esto es Windows 10 o una compilación más antigua, deja de culpar a IAC y pivota a WDAC/AppLocker/SmartScreen o a la política AV pura.
Tarea 2: Comprueba si Secure Boot está activado (muchas protecciones modernas lo asumen)
cr0x@server:~$ powershell -NoProfile -Command "Confirm-SecureBootUEFI"
True
Qué significa: Secure Boot está habilitado; las protecciones de integridad de código están en buena postura.
Decisión: Si False o errores (BIOS heredado), espera una aplicación inconsistente y garantías más débiles. Documentalo; no “soluciones” con exclusiones.
Tarea 3: Comprueba el estado de seguridad basado en virtualización (VBS / contexto HVCI)
cr0x@server:~$ powershell -NoProfile -Command "Get-CimInstance -ClassName Win32_DeviceGuard | Select-Object -ExpandProperty SecurityServicesRunning"
1
2
Qué significa: Los servicios de seguridad están en ejecución (los valores varían por sistema). A menudo indica que componentes VBS/HVCI están activos.
Decisión: Si nada está en ejecución, aún puedes tener comportamiento IAC pero con menos garantías de integridad. Para entornos estrictos, alinea primero las características de seguridad base.
Tarea 4: Consulta el estado de Windows Defender (para separar bloqueos AV de bloqueos IAC)
cr0x@server:~$ powershell -NoProfile -Command "Get-MpComputerStatus | Select-Object AMServiceEnabled,AntivirusEnabled,RealTimeProtectionEnabled"
AMServiceEnabled : True
AntivirusEnabled : True
RealTimeProtectionEnabled : True
Qué significa: Defender está activo. Esto no prueba que Defender esté bloqueando la app; solo confirma que el AV está en juego.
Decisión: Si Defender está desactivado por un AV de terceros, tu usuario aún puede ver bloqueos de IAC; no asumas que el proveedor de AV es la causa.
Tarea 5: Revisa rápidamente el historial de amenazas de Defender (busca detecciones reales)
cr0x@server:~$ powershell -NoProfile -Command "Get-MpThreatDetection | Select-Object -First 3 ThreatName,ActionSuccess,InitialDetectionTime"
ThreatName ActionSuccess InitialDetectionTime
---------- ------------- --------------------
Trojan:Win32/Wacatac.B!ml True 1/18/2026 2:14:11 PM
Qué significa: Defender detectó algo recientemente. Esto puede coexistir con IAC pero es un hilo separado.
Decisión: Si hay una detección relevante que coincida con la ruta o hash del archivo bloqueado, trátalo como malware hasta demostrar lo contrario. No omitas controles para “hacer el trabajo”.
Tarea 6: Inspecciona eventos relacionados con SmartScreen (avisos de reputación)
cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -LogName 'Microsoft-Windows-SmartScreen/Debug' -MaxEvents 5 | Select-Object TimeCreated,Id,Message"
Get-WinEvent : The specified channel could not be found.
Qué significa: El canal de depuración de SmartScreen puede no existir/estar habilitado en este host (común). No te quedes atascado aquí.
Decisión: Pivota a los registros de Integridad de Código y AppLocker; el registro de SmartScreen no está disponible de forma consistente.
Tarea 7: Extrae eventos operativos de Integridad de Código (donde aparecen bloques tipo IAC/WDAC)
cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -MaxEvents 5 | Select-Object TimeCreated,Id,Message"
TimeCreated Id Message
----------- -- -------
2/5/2026 9:10:04 AM 3077 Code Integrity determined that a process (\Device\HarddiskVolume3\Users\sam\Downloads\tool.exe) attempted to load \Device\HarddiskVolume3\Users\sam\Downloads\tool.exe that did not meet the Store signing level requirements.
Qué significa: Este es el registro clave. Indica una decisión de integridad de código que bloqueó o restringió la ejecución.
Decisión: Si ves la ruta del binario objetivo aquí, trátalo como un problema de lista blanca/integridad (IAC/WDAC), no como un falso positivo de AV.
Tarea 8: Revisa los registros de AppLocker (por si en realidad es AppLocker)
cr0x@server:~$ powershell -NoProfile -Command "Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL' -MaxEvents 3 | Select-Object TimeCreated,Id,Message"
TimeCreated Id Message
----------- -- -------
2/5/2026 9:09:58 AM 8004 %SYSTEM32%\tool.exe was prevented from running.
Qué significa: AppLocker está bloqueando activamente un EXE/DLL. Ruta de solución diferente a IAC.
Decisión: Si AppLocker es el bloqueo, no pierdas tiempo con conmutadores de IAC. Revisa las reglas de GPO y el modo de aplicación.
Tarea 9: Ver la política efectiva de AppLocker (depuración de reglas)
cr0x@server:~$ powershell -NoProfile -Command "Get-AppLockerPolicy -Effective -Xml"
...
Qué significa: Las reglas de AppLocker están habilitadas y puedes inspeccionar el modelo allow/deny.
Decisión: Si el editor/ruta/hash de la app no coincide con una regla allow (o cae en una deny), agrega una regla por editor cuando sea posible. Evita reglas por hash salvo que disfrutes el mantenimiento semanal.
Tarea 10: Comprueba si el archivo tiene Mark-of-the-Web (MOTW) y vino de internet
cr0x@server:~$ powershell -NoProfile -Command "Get-Item -Path 'C:\Users\sam\Downloads\tool.exe' -Stream Zone.Identifier -ErrorAction SilentlyContinue | Format-List"
FileName : C:\Users\sam\Downloads\tool.exe:Zone.Identifier
Length : 26
Qué significa: El archivo tiene una corriente de datos alterna Zone.Identifier. SmartScreen y comprobaciones de reputación suelen activarse en la primera ejecución para archivos MOTW.
Decisión: Si es una herramienta interna legítima distribuida por correo o descarga del navegador, deja de hacerlo. Mueve la distribución a un canal gestionado (Intune/ConfigMgr, instalador firmado, repositorio interno).
Tarea 11: Ver la firma Authenticode del archivo (realidad: firmado vs sin firmar)
cr0x@server:~$ powershell -NoProfile -Command "Get-AuthenticodeSignature -FilePath 'C:\Users\sam\Downloads\tool.exe' | Format-List"
SignerCertificate :
Status : NotSigned
StatusMessage : The file is not digitally signed.
Qué significa: Los binarios sin firmar son la vía más rápida para convertirse en “desconocidos”. En posturas tipo IAC, lo no firmado suele equivaler a bloqueado.
Decisión: Para software interno, arregla la canalización: firma el código, firma instaladores y versiona artefactos. No normalices “simplemente desbloquéalo”.
Tarea 12: Comprueba el firmante y la cadena de certificados cuando está firmado
cr0x@server:~$ powershell -NoProfile -Command "Get-AuthenticodeSignature -FilePath 'C:\Program Files\Vendor\App\app.exe' | Select-Object Status,SignerCertificate | Format-List"
Status : Valid
SignerCertificate : [Subject]
CN=Vendor LLC, O=Vendor LLC, L=Seattle, S=WA, C=US
Qué significa: La firma es válida y encadena correctamente. La reputación aún puede ser baja, pero ya no se trata de “misterio sin firmar”.
Decisión: Si está firmado pero bloqueado, investiga reputación/reglas de allow; considera listas blancas por editor en WDAC/AppLocker en lugar de desactivar controles.
Tarea 13: Identifica qué bloqueó realmente la ejecución (correlaciona por tiempo)
cr0x@server:~$ powershell -NoProfile -Command "$t=(Get-Date).AddMinutes(-20); Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-CodeIntegrity/Operational'; StartTime=$t} | Select-Object -First 10 TimeCreated,Id,Message"
TimeCreated Id Message
----------- -- -------
2/5/2026 9:10:04 AM 3077 Code Integrity determined that a process (...) attempted to load (...) that did not meet the Store signing level requirements.
Qué significa: Tienes una vista por ventana temporal. Es como pruebas a los interesados que se trata de aplicación de política, no de que “Windows nos odia al azar”.
Decisión: Usa estos IDs de evento para construir una vista de detección/alerta en tu SIEM. Si no centralizas esto, seguirás depurando a partir de capturas de pantalla.
Tarea 14: Comprueba presencia de archivos de política WDAC / integridad de código (cuando sospechas políticas empresariales)
cr0x@server:~$ dir C:\Windows\System32\CodeIntegrity
Volume in drive C has no label.
Directory of C:\Windows\System32\CodeIntegrity
02/05/2026 09:01 AM <DIR> .
02/05/2026 09:01 AM <DIR> ..
01/20/2026 04:31 PM 245,760 SiPolicy.p7b
Qué significa: Existe un archivo de política de integridad de código. Eso suele indicar que hay configuración de aplicación tipo WDAC, independientemente de lo que el usuario crea que está habilitado.
Decisión: Si ves artefactos de política, trata el entorno como una lista blanca gestionada. Coordina cambios a través del propietario de la política; no intentes “arreglar” en un solo endpoint.
Tarea 15: Verifica si el binario bloqueado se lanza desde una ubicación escribible por el usuario
cr0x@server:~$ powershell -NoProfile -Command "Test-Path 'C:\Users\sam\AppData\Local\Temp\tool.exe'"
True
Qué significa: La app se está ejecutando desde Temp. Esa es una ruta clásica de técnica malware, y los controles modernos desconfían de ella.
Decisión: Arregla el instalador o el empaquetado. El software legítimo no debería ejecutar su binario principal desde Temp a largo plazo. Muévelo a Program Files con firma adecuada.
Tarea 16: Confirma la aplicación de la Directiva de Grupo (si se sospecha AppLocker)
cr0x@server:~$ gpresult /r
COMPUTER SETTINGS
------------------
Applied Group Policy Objects
-----------------------------
Workstation Baseline
App Control Policy
Qué significa: Se aplicaron GPOs que probablemente incluyen reglas de control de aplicaciones.
Decisión: Si recientemente se desplegó una nueva GPO, correlaciona la hora del cambio con la hora del incidente. Revierte con cuidado; no “añadas a todos a administradores locales”.
Guion de diagnóstico rápido
Si solo tienes diez minutos antes de que una reunión se convierta en un festival de culpas, haz esto en orden. El objetivo es identificar la capa de aplicación, luego la razón, y después la remediación más pequeña y segura.
1) Identifica la capa de aplicación (no adivines)
- Revisa el registro operativo de Integridad de Código para eventos de bloqueo y la ruta del archivo.
- Revisa los registros de AppLocker por eventos de prevención explícitos.
- Revisa las detecciones de Defender por cuarentenas/detecciones.
- Revisa MOTW y síntomas tipo SmartScreen (contexto de archivo descargado).
Cuello de botella que buscas: “¿Qué subsistema dijo que no?” Todo lo demás es ruido.
2) Determina por qué el binario es “desconocido”
- ¿Está sin firmar?
- ¿Está firmado pero proviene de un editor nuevo/de baja reputación?
- ¿Se ejecuta desde un directorio escribible por el usuario como Descargas/Temp?
- ¿La app se acaba de actualizar y cambió firma o empaquetado?
Cuello de botella que buscas: fallo en la señal de confianza (firma, reputación, ubicación, desajuste de política).
3) Elige una remediación que no genere futuros incidentes
- Mejor: distribuir vía despliegue gestionado + artefactos firmados.
- Aceptable: regla por editor (AppLocker/WDAC) para un proveedor estable.
- Último recurso: reglas por hash para una versión específica del binario.
- No hacer: desactivar IAC/WDAC/SmartScreen en toda la flota porque una herramienta está bloqueada.
Broma #2: Apagar el control de aplicaciones para ejecutar una herramienta es como quitar la puerta principal porque una caja de pizza no entraba. Funciona, pero no te gustará el resultado.
Tres mini-historias corporativas desde el terreno
Mini-historia 1: El incidente causado por una suposición equivocada
Una empresa financiera de tamaño medio desplegó nuevos portátiles con Windows 11 a un grupo piloto. En dos días, su “ayudante de VPN” interno dejó de iniciarse. El servicio de asistencia supuso que Defender lo había puesto en cuarentena, porque esa es la historia familiar: “el AV rompió la app otra vez”. Añadieron una exclusión de carpeta en Defender para el directorio de la herramienta y pidieron a los usuarios que lo intentaran de nuevo.
Siguió fallando. Mismo mensaje de bloqueo, misma rabia de usuarios. La escalada llegó a ingeniería de endpoints, que pasó medio día revisando logs de Defender, solo para no encontrar nada que coincidiera con el archivo. La herramienta no estaba siendo detectada; se le negaba la ejecución.
El avance fue aburrido: alguien finalmente revisó los eventos operativos de Integridad de Código y encontró que el EXE auxiliar no estaba firmado y se ejecutaba desde la carpeta Descargas del usuario porque el “instalador” era un archivo autoextraíble. En compilaciones anteriores, las advertencias de SmartScreen se aceptaban con un click y los usuarios aprendieron a ignorarlas. En la nueva baseline, el sistema simplemente se negó.
La solución no fue una exclusión mayor. Reconstruyeron el ayudante como un instalador debidamente firmado que colocaba binarios en Program Files y firmaron el ejecutable con el certificado de firma de código de la empresa. El incidente terminó, y también el hábito de distribuir “instaladores” enviando zip por correo.
Mini-historia 2: La optimización que salió mal
Una firma manufacturera global decidió que empaquetar software “era demasiado lento”. Optimizaron permitiendo que los equipos publicaran utilidades internas en un recurso compartido y las ejecutaran directamente, sin empaquetar, sin firmar, “por velocidad”. Funcionó durante meses, hasta que dejó de funcionar.
Tras una actualización de baseline del SO, un conjunto de endpoints comenzó a bloquear esas utilidades. Los ingenieros intentaron lo obvio: mover las utilidades a otro share, renombrarlas, comprimirlas y descomprimirlas. Cada solución cambiaba el síntoma pero no el problema de confianza subyacente.
La causa silenciosa: su “optimización” creó una corriente permanente de binarios desconocidos que nunca se firmaron ni se distribuyeron por un canal controlado. La reputación nunca tuvo oportunidad. La política de aplicación finalmente hizo su trabajo. El entorno no estaba roto; por fin era consistente.
La remediación final fue cara en tiempo de calendario pero barata en incidentes operativos: montaron una canalización mínima de empaquetado interno que firma binarios, los versiona y despliega vía su herramienta de gestión de endpoints. Recuperaron la velocidad, pero de una forma que no dependía de supersticiones y renombres de archivos.
Mini-historia 3: La práctica aburrida pero correcta que salvó el día
Una organización sanitaria ya había sufrido un incidente de ransomware. Su respuesta no fue espectacular. Crearon un proceso de ingreso de aplicaciones: cada nueva herramienta debía estar firmada, asignársele un propietario y distribuirse mediante despliegue gestionado. Las excepciones requerían un ticket, justificación de negocio y expiración.
Cuando los bloqueos tipo IAC empezaron a aparecer en dispositivos más nuevos con Windows 11, no entraron en pánico. Ya tenían el hábito de revisar los registros correctos y correlacionar eventos de bloqueo con registros de distribución de software.
Un viernes por la tarde, un proveedor publicó un hotfix de emergencia que cambió la cadena de firma en un pequeño ejecutable auxiliar. Un puñado de endpoints lo bloqueó. En lugar de desactivar la protección, el equipo pausó el despliegue, validó la nueva firma, actualizó sus reglas de allow/confianza de editor donde era apropiado y reanudó el despliegue. Los usuarios vieron una pequeña demora, no una interrupción de una semana.
Las partes “aburridas”—firma, propiedad, telemetría y despliegue por fases—hicieron que el incidente fuera un cambio controlado, no un incendio de producción. Así es la operación madura de endpoints: menos heroísmo, más recibos.
Errores comunes: síntoma → causa raíz → solución
1) “Añadimos una exclusión de Defender, pero sigue bloqueado.”
Síntoma: La app no se ejecuta; Defender no muestra detección; las exclusiones no ayudan.
Causa raíz: No es una detección AV. Es aplicación de integridad de código / lista blanca (IAC/WDAC/AppLocker).
Solución: Revisa los registros de CodeIntegrity y AppLocker. Pasa a artefactos firmados y a un modelo de reglas allow; no amplíes exclusiones AV.
2) “Desactivar SmartScreen no cambió nada.”
Síntoma: Los usuarios siguen bloqueados después de desactivar SmartScreen por política.
Causa raíz: Los avisos de SmartScreen no son la capa de aplicación; IAC/WDAC está negando la ejecución.
Solución: Confirma en el registro operativo de CodeIntegrity. Si necesitas excepciones, impleméntalas en WDAC/AppLocker o ajusta la distribución/firma de la app.
3) “Solo falla cuando se lanza desde Descargas.”
Síntoma: El mismo EXE se ejecuta desde Program Files pero no desde Descargas/Temp.
Causa raíz: MOTW + ruta escribible por usuario activan una postura de reputación/integridad más estricta.
Solución: Instala correctamente (instalador firmado en Program Files). No entrenes a los usuarios para ejecutar herramientas de negocio desde Descargas.
4) “Permitimos el hash y volvió a fallar después de la actualización.”
Síntoma: Tras cada actualización del proveedor, la app vuelve a bloquearse.
Causa raíz: Las reglas por hash son específicas de versión; las actualizaciones cambian los hashes.
Solución: Usa reglas por editor (basadas en certificado) o reglas por paquete. Las reglas por hash son un parche táctico, no una estrategia.
5) “Solo algunas máquinas lo bloquean, otras lo ejecutan bien.”
Síntoma: Comportamiento inconsistente entre endpoints.
Causa raíz: Diferentes baselines: compilación de Windows, estado IAC, Secure Boot/VBS, o políticas aplicadas distintas (GPO/MDM).
Solución: Compara baselines (compilación SO, gpresult, presencia de archivo de política CodeIntegrity). Estandariza la configuración antes de perseguir fantasmas.
6) “La app está firmada, ¿por qué la bloquea?”
Síntoma: La firma Authenticode es válida pero la ejecución se niega.
Causa raíz: Firmar es necesario, no suficiente. La reputación puede ser baja; la política puede requerir niveles de firma específicos; la cadena puede ser aceptable pero no permitida por la regla.
Solución: Valida la identidad del firmante y la cadena. Prefiere reglas por editor para proveedores de confianza; para apps internas, firma con tu certificado empresarial y gestiona la confianza correctamente.
7) “Lo solucionamos haciendo a los usuarios administradores locales.”
Síntoma: Alguien elevó privilegios y la app se ejecutó (o pareció hacerlo).
Causa raíz: Cambiaste el modelo de amenaza, no el control. Además, muchos bloqueos de integridad de código no dependen de permisos de administrador.
Solución: Revierte la proliferación de administradores locales. Arregla la distribución/firma/política. Administrar por defecto es cómo consigues una brecha con excelente tiempo de clic.
Listas de verificación / plan paso a paso
Lista A: Cuando un usuario reporta “IAC bloqueó mi app”
- Obtén la ruta exacta del archivo, nombre de archivo y la marca temporal del bloqueo.
- Extrae eventos operativos de CodeIntegrity alrededor de esa marca temporal.
- Extrae eventos de AppLocker (registro EXE y DLL) alrededor de esa marca temporal.
- Revisa las detecciones de Defender en el mismo periodo (pista separada).
- Inspecciona la firma del archivo (¿firmado? ¿válido? ¿qué editor?).
- Comprueba MOTW (Zone.Identifier) para contexto de descarga.
- Decide la remediación: reempaquetar/firma/distribuir vs regla allow vs denegar.
Lista B: Construir un flujo de excepciones sensato
- Define “software soportado” vs “instalado por el usuario”. Escríbelo. Aplícalo.
- Requiere un propietario para cada app permitida (equipo, no una persona).
- Prefiere confianza por editor (certificado) sobre hash y ruta.
- Limita las excepciones en el tiempo con expiración y renovación.
- Centraliza logs: CodeIntegrity, AppLocker, detecciones de Defender.
- Despliegues por fases: piloto, anillos, despliegue amplio.
- Exige que las herramientas internas estén firmadas y construidas vía CI/CD.
Lista C: Diseñar apps internas para que no sean bloqueadas
- Firma ejecutables e instaladores con un certificado de firma de código gestionado.
- Instala en Program Files; evita vivir en Descargas/Temp.
- Evita archivos autoextraíbles como “instaladores” a menos que disfrutes tickets de soporte.
- Versiona artefactos; no sobrescribas binarios en sitios compartidos.
- Documenta la cadencia de actualizaciones y cambios de firma.
- Prueba en una máquina que coincida con tu baseline más estricto.
Preguntas frecuentes
1) ¿Intelligent App Control es lo mismo que WDAC?
No. WDAC es el marco empresarial completo para políticas de integridad de código y listas blancas. IAC es una postura más opinada de “denegar por defecto lo desconocido” que se comporta de forma adyacente a WDAC pero busca reducir la escritura de reglas por parte del administrador.
2) ¿IAC es lo mismo que SmartScreen?
No. SmartScreen es principalmente una función de aviso por reputación, a menudo ligada a descargas y primera ejecución. IAC es una aplicación que puede bloquear la ejecución incluso cuando los usuarios normalmente harían clic para continuar.
3) Si IAC bloquea una app, ¿significa que es malware?
No automáticamente. Significa que la app no alcanzó el umbral de confianza (firma, reputación, política). Trátala como sospechosa hasta verificarla, pero no equipares “desconocido” con “malicioso”.
4) ¿Por qué mis herramientas internas se bloquean más que el software comercial?
Porque las herramientas internas a menudo no están firmadas, se distribuyen informalmente y tienen baja reputación. Los proveedores comerciales suelen firmar de forma consistente y tener señales de reputación amplias.
5) ¿Puedo simplemente permitir una carpeta como C:\Tools\ ?
Puedes, pero no deberías. Las reglas por ruta para ubicaciones escribibles por el usuario son cómo los atacantes convierten tu “carpeta de herramientas” en su plataforma de despliegue. Prefiere reglas por editor firmado y rutas de instalación gestionadas.
6) ¿Por qué solo bloquea en portátiles nuevos con Windows 11?
Las compilaciones nuevas e instalaciones frescas suelen venir con valores predeterminados más estrictos y baselines de seguridad diferentes (Secure Boot, VBS y posturas de política). Tus máquinas antiguas pueden estar degradadas, no “funcionando”. Estandariza.
7) ¿Cómo pruebo ante la dirección qué bloqueó la app?
Usa los registros de eventos. Los eventos operativos de CodeIntegrity y los registros de AppLocker proporcionan evidencia directa con marcas temporales y rutas de archivo. Las capturas de pantalla de ventanas emergentes no son evidencia; son teatro.
8) ¿Cuál es la mejor solución a largo plazo cuando una app legítima de proveedor se bloquea?
Pide al proveedor que entregue binarios correctamente firmados y prácticas de firma estables. En paralelo, implementa reglas por editor (donde proceda) y despliega a través de canales gestionados para que las actualizaciones no se conviertan en “desconocidas” al azar.
9) ¿Hacer al usuario administrador local evita IAC?
A menudo no, y aunque a veces cambia el comportamiento, es la palanca equivocada. La proliferación de administradores locales aumenta tu radio de daño y complica la respuesta a incidentes. Arregla la confianza y la distribución en su lugar.
10) ¿Qué debo monitorizar para detectar esto antes de que sea una avalancha de tickets?
Centraliza y alerta sobre eventos de bloqueo operativos de CodeIntegrity y eventos de prevención de AppLocker. Agrúpalos por firmante del binario, ruta y cohorte de dispositivos para detectar nuevas roturas tras actualizaciones o cambios de política.
Conclusión: siguientes pasos que realmente reducen el riesgo
Si recuerdas una cosa: IAC es una puerta de ejecución. No lo diagnostiques como antivirus. Identifica la capa de aplicación, lee los registros de integridad de código y arregla el problema de confianza —no el síntoma—.
Pasos prácticos:
- Instrumenta: Comienza a recolectar centralmente logs de CodeIntegrity y AppLocker.
- Estandariza la distribución: Deja de “descargar y ejecutar” software de negocio. Empaquétalo.
- Firma el código interno: Haz de la firma de código parte del build, no un ritual para emergencias.
- Prefiere reglas por editor: Las reglas por hash son para emergencias, no para operaciones normales.
- Realiza despliegues por fases: Deja que un grupo piloto detecte sorpresas de reputación y firma antes del despliegue global.
No necesitas amar a IAC. Solo necesitas operarlo como un control de producción: medido, observable y resistente a excepciones impulsadas por el pánico.