TLP:CLEARAnálisis defensivo de fuentes públicas. Parte de la serie [Nightmare Eclipse](/posts/nightmare-eclipse/).

Resumen ejecutivo#

UnDefend (CVE-2026-45498, CVSS 4.0) es la pieza que un lector apresurado ignoraría por su puntuación baja. Sería un error. No es una escalada ni una ejecución remota: es un denial-of-service contra el propio Microsoft Defender. Dispara una condición que deja a Defender sin funcionar —sin mostrar ninguna alerta al usuario ni al administrador—. El panel dice “todo en orden”; la protección, en la práctica, no está.

El CVSS mide el bug aislado; no mide su lugar en la cadena. UnDefend, por sí solo, “solo” tumba un antivirus. Pero colocado antes de BlueHammer/RedSun en la kill chain, invalida todas las detecciones basadas en firma de los pasos siguientes. Huntress lo vio exactamente así: primero escalar, luego cegar con UnDefend, luego tunelizar. Un 4.0 que habilita todo lo demás.

El problema de fondo: “protección activada” no es “protegido”#

La mayoría de los controles de seguridad reportan su propio estado, y casi todo el mundo confía en ese autorreporte. UnDefend explota justo esa confianza: rompe la capacidad operativa de Defender sin tocar el indicador de estado. Es la diferencia entre “el servicio está corriendo” y “el servicio está haciendo su trabajo” — dos cosas que asumimos idénticas y que un atacante puede desacoplar.

Para el lado azul, la conclusión es incómoda pero clara: el estado que Defender reporta de sí mismo no es una fuente de verdad confiable durante un incidente. Necesitas señales externas de que Defender dejó de funcionar (fallos de actualización, huecos en la telemetría, ausencia de eventos esperados), no solo su semáforo verde.

Cómo se vio en la práctica (Huntress)#

En la intrusión documentada, UnDefend llegó como el binario undef.exe, ejecutado con flags que delatan su función:

%USERPROFILE%\Downloads\ks\undef.exe -h
%USERPROFILE%\Downloads\ks\undef.exe -agressive
%USERPROFILE%\Downloads\kk\undef.exe

El flag -agressive [sic] sugiere modos de operación; el -h, una ayuda de línea de comandos. Como siempre, el nombre del binario es cosmético —el atacante lo renombra en un segundo—. Lo que no puede ocultar tan fácil es el efecto: Defender deja de actualizar y deja de detectar.

Ingeniería de detección#

La caza de UnDefend no busca un fichero: busca el hueco que deja. Se detecta por ausencia y por fallo, no por presencia.

1. Salud de Defender centralizada (la señal clave)#

No confíes en el semáforo local. Recoge el estado de Defender de forma centralizada y alerta sobre desviaciones: firmas que dejan de actualizarse, protección en tiempo real que cae, motor que no responde.

# Recolección de salud (para inventariar/alertar centralmente)
Get-MpComputerStatus | Select-Object `
    AMRunningMode, RealTimeProtectionEnabled, AntivirusEnabled, `
    AMServiceEnabled, AntivirusSignatureLastUpdated, `
    AMProductVersion, IsTamperProtected

Regla de negocio simple y potente: si AntivirusSignatureLastUpdated tiene más de 24-48 h en un host con red, es un incidente hasta que se demuestre lo contrario —especialmente si coincide con otros eventos anómalos—.

2. Eventos del canal operativo de Defender (Sigma)#

El canal Microsoft-Windows-Windows Defender/Operational emite eventos de fallo y de cambio de estado. Los relevantes para UnDefend son los de protección deshabilitada y fallo de actualización. (Valida los IDs contra tu propia telemetría; varían por versión.)

title: Defender inoperativo / fallo de actualización — posible UnDefend
id: ne-ud-001-defender-health-loss
status: experimental
description: >
  Protección en tiempo real deshabilitada o fallos repetidos de actualización
  de firmas en el canal operativo de Defender. Correlacionar con otros eventos:
  UnDefend (CVE-2026-45498) ciega Defender sin alertar.
references:
  - https://www.securityweek.com/microsoft-patches-exploited-undefend-and-redsun-defender-zero-days/
author: Serie Nightmare Eclipse — detección defensiva
date: 2026-07-03
tags:
  - attack.defense_evasion
  - attack.t1562.001
logsource:
  product: windows
  service: windefend
detection:
  disabled:
    EventID:
      - 5001   # Real-time protection deshabilitada
      - 5010   # Análisis antimalware deshabilitado
      - 5012   # Análisis antivirus deshabilitado
  update_fail:
    EventID:
      - 2001   # Fallo al actualizar definiciones
      - 2003   # Fallo al actualizar el motor
  condition: disabled or update_fail
falsepositives:
  - Mantenimiento planificado; conectividad de red deficiente. Correlacionar.
level: high

3. Equivalente KQL (Defender XDR / Sentinel)#

DeviceEvents
| where Timestamp > ago(24h)
| where ActionType in ("AntivirusDefinitionUpdateFailed",
                       "AntivirusRealTimeProtectionDisabled",
                       "AntivirusScanFailed")
| summarize Eventos = count(), Tipos = make_set(ActionType)
    by DeviceName, bin(Timestamp, 1h)
| where Eventos > 2
| order by Eventos desc

Mitigación#

AcciónDetalle
Parche OOB 21-may-2026Plataforma Defender 4.18.26040.7 o superior
Tamper ProtectionDificulta —no elimina— la manipulación de Defender; actívalo y monitorízalo
Telemetría centralizada de salud AVNo depender del semáforo local; alertar por firmas obsoletas y RTP caída
Defensa en profundidadSi Defender es tu único control, cegarlo te deja a ciegas. EDR/segmentación/allowlisting reducen el impacto de un solo control caído
(Get-MpComputerStatus).AMProductVersion   # -> 4.18.26040.7 o superior
Regla mental que te llevas. Trata el estado autorreportado de cualquier control de seguridad como una hipótesis, no como un hecho. La verdad está en la telemetría de segundo orden: ¿sigue actualizando?, ¿sigue emitiendo los eventos que debería?, ¿hay huecos? UnDefend es la demostración de por qué “verde” no es “protegido”.

MITRE ATT&CK#

TácticaTécnica
Defense EvasionT1562.001 — Impair Defenses: Disable or Modify Tools
Defense EvasionT1562.008 — Impair Defenses: Disable or Modify Cloud/host telemetry (efecto colateral)

Referencias#