Resumen
Esta entrega no repite lo cubierto en el post anterior sobre multi-tenant, Cloud Connect y Executive Report. Aquí están las features nuevas de la iteración del 11 de mayo, en orden de impacto para un equipo SOC.
Si llegas desde un buscador, este post asume contexto sobre la plataforma. Empieza por Presentando Sentry si es tu primera lectura.
1. EPSS funcionando de verdad — enriquecimiento por CVE
Antes, todos los epss_score salían en null por un bug en el pipeline: el collector EPSS corría en paralelo al resto, así que consultaba la lista top-100 de FIRST.org en vez de los CVE IDs realmente enriquecidos.
Cambios:
- Pipeline Python: EPSS ahora corre después de la correlación, consultando los CVE IDs reales del lote enriquecido.
lib/epss-enricher.ts: enricher server-side con cache in-memory de 6h. Consume el endpoint/data/v1/epssde FIRST.org en lotes de 100 CVEs.- Ruta
/api/threats: enriquece el JSON estático con EPSS fresco antes de servirlo, así el dashboard no depende de re-ejecutar el pipeline para actualizar. - Badges EPSS en las cards del BriefingsGrid cuando el score ≥ 5%:
- 🔴 Rojo si EPSS ≥ 50%
- 🟠 Naranja si ≥ 20%
- 🟡 Amarillo en caso contrario
- Tooltip que explica que EPSS es probabilidad de explotación a 30 días.
Con esto, el Sentry Priority Score (0-10) recupera su componente EPSS, que estaba siempre en 0.
2. KEV Catalog Dashboard — página dedicada
Hasta ahora KEV era solo un badge en cada amenaza. Ahora hay una vista dedicada del catálogo CISA KEV:
/api/kev: proxy del feed JSON de CISA con cache de 4h y stale fallback (si CISA cae, se sirve la última copia conocida)./kev(nueva página): catálogo completo con:- Búsqueda full-text.
- Filtro Ransomware-only.
- Sort por fecha de adición o por due date.
- DueBadge con semáforo: rojo + animación si
due ≤ 7 días, naranja≤ 30, amarillo en otro caso. - Stats strip arriba: Total · Ransomware · Urgentes · Matching (los que cruzan con tu inventario).
- Navegación: nuevo enlace “KEV Catalog” en la sección Intelligence del sidebar, i18n EN/ES, también en la MobileTopBar.
Es la lectura natural cuando te preguntas “¿qué de KEV aplica a mi entorno hoy?”.
3. Chips MITRE ATT&CK en cards
Las técnicas ATT&CK ya estaban en el dataset (mitre_techniques[]), pero no se veían en las tarjetas del feed. Ahora el BriefingsGrid muestra las tácticas únicas (Initial Access, Execution, Privilege Escalation, etc.) como chips violetas debajo de los badges KEV/EPSS/Exploit.
Beneficio operativo: scaneas el feed y de un vistazo identificas qué amenazas tocan tu detection coverage por táctica, sin entrar al detalle de cada una.
4. Asset Mapper — correlación CVE ↔ activos Azure
Nueva ruta /api/asset-cve-match: correlaciona los activos Azure del tenant conectado contra las briefings de CVE.
Esto cierra el bucle que el módulo Cloud Assets abrió en el sprint anterior: ya no solo sabes qué tienes y qué CVEs hay, sino la intersección real entre ambas listas. El siguiente paso natural es promover esa intersección a la priorización del dashboard.
5. ThreatDetail rediseñado — Hunt tab + SOC Playbook
El detalle de cada amenaza recibió la mejora más densa de esta iteración:
Tabla de referencia rápida en el header
CVSS · EPSS · KEV · Exploit · Attack Vector · Auth Required — todo escaneable sin leer texto. Esto resuelve la queja típica de “tengo que bajar 4 pantallazos para saber si requiere autenticación”.
Tarjeta “Exploitation Context”
Parsea el vector CVSS y lo traduce a campos legibles:
- Attack Vector (Network / Adjacent / Local / Physical)
- Attack Complexity (Low / High)
- Privileges Required (None / Low / High)
- User Interaction (None / Required)
- Scope (Unchanged / Changed)
- CIA Impact (None / Low / High)
Con resaltado rojo cuando un valor representa el peor caso (Network, None required, High impact).
Nueva pestaña Hunt con KQL contextual
Genera consultas KQL según el contexto de cada amenaza, con botón de copia one-click por query:
DeviceTvmSoftwareVulnerabilities— exposure scan (si hay CVE).SecurityAlert— hunt en Sentinel (si hay CVE).- T1190 — hunt de exploit en aplicaciones públicas (si la técnica está mapeada).
- Credential access & dumping detection.
- Lateral movement vía anomalía de logons.
- C2 / exfiltration por volumen de tráfico saliente.
- Fallback genérico de artefactos de exploit.
Esto se complementa con la sección Boletín Sentry — CVEs críticos donde escribimos KQL a mano: el dashboard ahora genera la base.
SOC Playbook estructurado
Pasos de respuesta en orden: Scope → Escalate → Hunt → Identify → Patch → Detect → Close, derivados de los datos de la amenaza. Si KEV o explotación activa están presentes, los pasos se marcan como urgent / critical.
Badge de validación CVE
Estado derivado de in_kev + exploit_status:
- Confirmed Exploited
- Actively Exploited (pulsa para llamar la atención)
- PoC Available
- Confirmed CVE
Reemplaza la ambigüedad de “esto es un CVE 9.6, ¿está pasando algo o no?”.
6. Detalles de UI con consecuencias operativas
Pequeños cambios que se notan cada día:
- Botón MSRC condicional: solo aparece en CVEs de productos Microsoft. Antes salía siempre y devolvía 404 para Linux/Apache/nginx/OpenSSL.
- Botón “Export Now”: cambió a fondo amber con texto oscuro para alto contraste — destaca como CTA primario y deja de confundirse con elementos secundarios.
- CVE ID links: pasaron de indigo a cyan-400, alineados con la convención visual habitual de identificadores CVE.
- Past-due badge y due date genérico: pasaron de rojo pulsante / amarillo a gris neutral — la urgencia se reserva para fechas con presión real (≤ 7 / ≤ 30 días).
7. KEV Dashboard — branding & UX overhaul
Sobre la nueva página /kev se aplicó un polish pass completo:
- Custom SortDropdown: el
<select>nativo abría un popup blanco que rompía el modo oscuro. Sustituido por un componente custom totalmente dark-themed, con check en la opción activa y cierre al click fuera. - Colores semánticos por stat card:
- Total KEV → rojo
- Ransomware → naranja
- Due ≤ 7d → amber
- Matching → indigo (primario) Antes todos los iconos eran indigo y los valores mezclados — incoherencia.
- Header breadcrumb pill: border genérico → tinte indigo (
bg-primary/8 border-primary/20). - Action badge: pasó a
bg-indigo-500/10explícito en vez de variable CSS, para evitar el “indigo-fantasma” cuando la variable no carga. - Search input: icono con
pointer-events-nonepara que el click llegue siempre al input;text-foregroundexplícito para corregir el color en algunos navegadores.
8. Audit completo de UX móvil
Probablemente el cambio más visible para usuarios diarios. Auditoría exhaustiva con tres niveles de severidad:
Críticos
- BottomNav:
safe-area-inset-bottommovido fuera del contenedorh-16que lo comprimía y deformaba la fila de iconos. - BottomNav: la barra de accent ahora es
absolute-positioned, eliminando el “salto” de 7 px que daban los iconos al cambiar de tab. - BottomNav: labels de tab
10px → text-xs (12px);gap-0.5 → gap-1para aire entre icono y texto. - MobileTopBar:
env(safe-area-inset-top)para Dynamic Island / notch. - MoreMenu: mismo safe-area top.
- ExploitTimeline: label 10→11 px, fecha 9→10 px. 9 px nunca es aceptable en móvil.
Altos
- MobileTopBar: título de página de
t-eyebrow(11 px uppercase) →text-sm font-semibold(14 px). Legible. - MoreMenu: botón de cierre
p-2 (36 px) → p-3 + min-h/w-[44px](cumple Apple HIG de 44 pt). - MoreMenu: section headers
text-[10px] tracking-widest → text-[11px] tracking-wide. - BriefingsGrid bookmark:
p-1 (24px tap) → p-2.5 + min-h/w-[40px]. - BriefingsGrid filter tabs:
py-1.5 (32px) → py-2.5 + min-h-[40px]. - BriefingsGrid Load More:
py-2 → py-3 + min-h-[44px]. - FeaturedThreat bookmark:
p-2 → p-3 + min-h/w-[44px].
Medios
- SentryPriorityRow: el gauge ahora ocupa
col-span-2en móvil (full-width). Antes quedaba apareado asimétricamente con el bucket “Act Now”. globals.css@media (max-width: 480px): card-padding 24→16 px, card-gap 20→14 px, kpi-number 36→30 px, featured-title 21→18 px.- MainContent:
padding-bottom: calc(6rem + env(safe-area-inset-bottom))— el último card nunca queda oculto bajo el home indicator. - MainContent:
pt-16 → pt-20para mayor separación visual con la top bar. - mission-control.css:
t-eyebrowline-height 1→1.35, letter-spacing 0.12→0.08 em.
9. Bug del build de producción
Pequeño detalle que paró un despliegue: claves nav.audit duplicadas en en.ts y es.ts. TypeScript estricto rechazó la duplicación y reventó el build. Una vez identificadas, eliminadas en una sola pasada.
Resumen ejecutivo
| Área | Entregable | Beneficio |
|---|---|---|
| Pipeline | EPSS real (fix del null + enricher 6h cache) | Priority Score completo, no degradado |
| Inteligencia | KEV Catalog Dashboard /kev | Vista dedicada con stats, búsqueda, sort, matching |
| Inteligencia | Chips MITRE ATT&CK en cards | Coverage gap visible en el feed |
| API | /api/asset-cve-match | Cruce automático CVE ↔ activos Azure |
| ThreatDetail | Quick reference + Exploitation Context | Decisión en 5 segundos |
| ThreatDetail | Hunt tab con KQL contextual | KQL listo para Sentinel en 1 click |
| ThreatDetail | SOC Playbook estructurado | Respuesta en pasos, no narrativa |
| UI | MSRC condicional, Export amber, CVE cyan | Menos ruido, más jerarquía |
| KEV UI | SortDropdown custom, colores semánticos | Coherencia dark mode |
| Móvil | Audit completo de typography, safe area, tap targets | Cumple Apple HIG, sin texto a 9 px |
Cómo verificar las novedades
- EPSS real: entra a cualquier briefing — si el CVE ≥ 5% EPSS, verás el badge amarillo/naranja/rojo.
- KEV Catalog: nuevo enlace en sidebar y MobileTopBar. Filtra por ransomware o due ≤ 7 d.
- Hunt tab: abre el detalle de una amenaza → pestaña Hunt → copia la KQL → pega en Sentinel o Defender XDR.
- SOC Playbook: misma vista de detalle, pestaña Analysis → sección SOC Playbook.
- Mobile: abre sentry.d3fend.me desde el teléfono. La barra inferior, el notch, los tap targets y los tamaños de letra deberían sentirse correctos.
👉 sentry.d3fend.me — sign-in con Microsoft Entra ID, GitHub o Google.
Series anterior:
- Presentando Sentry: Threat Intelligence para Azure y Microsoft 365
- Componentes de Sentry: Pipeline, Correlación y Dashboard
- Mejoras recientes en Sentry: Multi-tenant, Cloud Connect y Executive Report
- Vulnerabilidades Críticas: cómo responder a las acciones urgentes en Sentry
- Boletín Sentry — CVEs críticos y urgentes, mayo 2026