Resumen — qué hace
Resumen de seguridad (/security) es la pieza central del área de rol de seguridad. Saca a la superficie la «telemetría oculta» que InfraGuard ya recopila, evalúa y mitiga de forma automática —pero que nunca se había visualizado— como un único relato de embudo de defensa.
El mensaje principal cabe en una frase: «Ahora mismo, la defensa automática de IA + IDS está bloqueando redes hostiles.» Para que resulte creíble, la pantalla muestra de un vistazo:
- Embudo de defensa de 4 etapas — amenaza (eventos en bruto) → detección (marcas) → conjunto de reglas de respuesta automática (reglas del catálogo + conjuntos JA3) → respuesta (bloqueos). Cada etapa lleva un recuento medido.
- Indicador de intensidad de amenaza — un anillo de gradiente cónico derivado de la puntuación de seguridad (a mayor valor, más peligro).
- Tarjetas de respuesta automática — amenazas/hora, amenazas de 24 h, bloqueos activos /24, bloqueos de 24 h.
- Panel de infractores JA3 — principales infractores por huella JA3 de las últimas 6 horas (candidatos a automatización / botnet).
- Principales IP de amenaza + flujo de acciones automáticas recientes (el relato de «por qué bloqueamos»).
- Tendencia de amenazas: minigráfico sobre la ventana seleccionada.
Todo es de solo lectura: esta pantalla nunca bloquea ni edita nada. Las operaciones reales se realizan en Amenazas, Lista de bloqueo y reputación y Detecciones.
Aquí no hay «dominio»: el Resumen de seguridad es un resumen por área de rol (operaciones de seguridad), no por TLD web.
Cuándo usarlo
- Al empezar el turno, para captar toda la postura de seguridad en 30 segundos.
- Para explicar de forma creíble a la dirección o a los auditores que el bloqueo realmente funciona (recuentos del embudo + porcentaje de automatización).
- Para detectar un pico de amenazas en el minigráfico de tendencia, elegir después una IP sospechosa y profundizar en Amenazas / Detecciones.
- Para revisar rápidamente los botnets/escáneres JA3 detectados y saltar a los conjuntos de reglas detallados.
Disposición
Parte superior — indicador de intensidad de amenaza + embudo de defensa
| Área | Contenido |
|---|---|
Intensidad de amenaza (t.ov.score) |
La puntuación de seguridad representada como anillo de gradiente cónico. Valor mostrado = 100 − score (a mayor valor, peor). Subtítulo: «a mayor valor, más peligro; según lo que quedó sin mitigar». |
Embudo de defensa (t.ov.funnel_title) |
Cuatro barras de etapa que se estrechan de arriba abajo, cada una con un recuento medido y un pie de texto. |
Parte central — respuesta automática + tendencia de amenazas
| Tarjeta | Contenido |
|---|---|
Respuesta automática (t.ov.resp_title) |
Cuatro mosaicos de métricas: amenazas/hora · amenazas de 24 h · bloqueos activos /24 · bloqueos de 24 h. |
Tendencia de amenazas (t.ov.tseries_title) |
Un minigráfico SVG de las alertas IDS submuestreadas en 30 cubos, con metadatos Σ total · ▲ max/bucket-min y una insignia de retraso de recopilación (⏱ Nm). |
Parte inferior — infractores JA3 · principales IP de amenaza · acciones automáticas recientes
- Análisis de secuencias JA3 (
t.ov.ai_title) — los principales infractores de las últimas 6 horas en una cuadrícula de 3×3 (hasta 9 tarjetas). Cada tarjeta muestra variedad de JA3 · conexiones TLS · variedad de SNI · país/ASN/ISP · una insignia de «bloqueado», más una barra de rotación y una etiqueta de comportamiento que el navegador elige det.ov.ai_behavior(por lo que sigue el idioma del lector). Al pulsar una IP se abre la ventana de reputación; los conjuntos de reglas viven en Detecciones. - Principales IP de amenaza (
t.ov.top_title) — alertas · gravedad · firmas distintas · último avistamiento · marca de bloqueo · país. - Acciones automáticas recientes (
t.ov.feed_title) — rangos /24 bloqueados recientemente, con país · etiqueta de origen (Kitsune/Suricata/manual) · motivo breve · marca de tiempo.
Controles de cabecera
- Selector de ventana:
1h / 6h / 24h(24h por defecto). - Interruptor LIVE / PAUSED: activa o desactiva el sondeo automático de 30 segundos.
- Botón Pantalla completa: oculta la navegación superior para un modo panel (se sale con ESC).
- stamp: la hora del último cálculo.
Cómo usarlo
- Lea el indicador superior de intensidad de amenaza para conocer el nivel de riesgo actual (cuanto mayor, peor).
- Lea el embudo de defensa de arriba abajo para seguir el relato: «cuántas entraron (amenaza) → cuántas se marcaron (detección) → cuántos conjuntos de reglas dispararon (respuesta automática) → cuántas se bloquearon (respuesta)».
- Observe si hay picos en el minigráfico de tendencia de amenazas. Una insignia
⏱ Nmgrande significa que la recopilación va con retraso, así que interprete los recuentos referidos a esa hora de anclaje. - Elija una IP sospechosa entre los infractores JA3 / las principales IP de amenaza y pase a Amenazas / Detecciones para una investigación profunda, la consulta de reputación y el bloqueo.
- Use el flujo de acciones automáticas recientes para ver qué acaba de bloquear la defensa automática y por qué.
Definición exacta de las etapas del embudo
Cada recuento se limita a la ventana seleccionada (1h/6h/24h). Los produce SecurityOverviewService::compute().
| Etapa | Clave | Fórmula | Origen |
|---|---|---|---|
| Amenaza | threats |
alertCount + nginxSuspiciousCount |
suricata_alert_ct + nginx_meta_ct (is_suspicious=1) |
| Detección | detections |
distinctAlertIps + kitsuneBlockedCount |
src_ip distintas (suricata_alert_ct) + kitsune_detail_log (is_blocked=1) |
| Conjunto de reglas de respuesta automática | rulesets |
active rulesets + firing rulesets |
infr_sec_ruleset (status=active) + los que disparan dentro del catálogo de 44 conjuntos |
| Respuesta | response |
blockedCount |
blacklist_info (created_at ≥ ventana) |
El recuento del «conjunto de reglas de respuesta automática» NO es el número de firmas en bruto (sid). Se cuenta en la misma unidad de «conjunto de reglas» que la biblioteca de conjuntos de reglas (se reutiliza RulebookService), por lo que nunca supera el catálogo de 44 elementos y coincide con la pantalla de conjuntos de reglas.
Definición de las métricas de las tarjetas de respuesta automática
| Métrica | Significado | Cálculo |
|---|---|---|
| Amenazas/hora | threats_hr |
alertas de 24 h basadas en el anclaje ÷ 24 |
| Amenazas de 24 h | threats_24h |
alertCount de 24 h basado en el anclaje |
| Bloqueos activos /24 | active |
número de registros de blacklist_info con is_use=1 |
| Bloqueos de 24 h | blocks_24h |
blockedCount de las últimas 24 h |
La sección de respuesta automática también incluye textos para «aislar (automático)» y «cooperación internacional (manual)» (
resp.isolate/resp.coop), pero esos dos pertenecen a una fase posterior y se contabilizarán cuando se despliegue el instrumental de respuesta; hoy solo se calculan realmente las cuatro métricas anteriores.
Fórmula de la intensidad de amenaza (puntuación de seguridad)
La fórmula pertenece a Services\Security\PostureService (revisada el 2026-09-04). Es el mismo número que muestra la tarjeta «Base de la seguridad» de Overview:
score = weighted mean of ids, ai, web, rep, tls, fw # each metric 0..100
metric = 100 − 45 × open / (total + floor) # open = 0 -> metric = 100
displayed threat intensity = 100 − score # 0..45, higher = worse
open= lo que no se logró detener,total= todo lo observado de ese tipo (bloqueado incluido), floor = constante de suavizado para que una muestra pequeña no dispare la proporción.- Un residuo de cero puntúa la métrica en 100: por muchos ataques que reciba, detenerlos todos no es motivo de penalización.
- La mitigación cuenta tanto
blacklist_info(aplicado) comoblacklist(en espera). Sus propios rangos de red se excluyen del numerador y del denominador. - La fórmula antigua penalizaba los bloqueos de
kitsune_detail_logy las peticiones sospechosas denginx_meta_ct, así que la puntuación bajaba cuanto mejor funcionaba la defensa automática. - La puntuación se limita a un suelo de 55 (= intensidad de amenaza máxima de 45).
Orígenes de datos
Todos los recuentos de amenazas/detecciones/bloqueos leen las grandes tablas de telemetría de la conexión heredada legacy_glory, en solo lectura. Las credenciales proceden únicamente de config('database.connections.legacy_glory') (= .env) y nunca están escritas en el código.
| Tabla | Conexión | Uso |
|---|---|---|
suricata_alert_ct |
legacy_glory | alertas IDS (amenaza, detección, principales IP de amenaza, tendencia). Índice alert_ts |
nginx_meta_ct |
legacy_glory | peticiones web sospechosas (is_suspicious). idx_suspicious |
kitsune_detail_log |
legacy_glory | bloqueos por anomalía de ML (is_blocked) |
suricata_tls_ct |
legacy_glory | secuencias de huella JA3 (infractores JA3) |
blacklist_info |
legacy_glory | bloqueos automáticos/manuales (CIDR /24). respuesta, bloqueos activos, flujo |
ip_info_loop |
legacy_glory | enriquecimiento geo/ASN/ISP (ipEnrichment) |
infr_sec_ruleset |
app (MAIN) | conjuntos de reglas de secuencia JA3 (recuento de conjuntos activos + resumen) |
Disciplina de rendimiento y frescura
- Las consultas usan solo ventanas de tiempo estrechas + índices + LIMIT (para evitar consultas lentas en tablas enormes).
SecurityRepositorylas aísla con el generador de consultas y enlace de parámetros. - Anclaje = hora de la última alerta (
latestAlertTs()=MAX(alert_ts)). Cuandonow()se adelanta a los datos porque eve_ingest se ha retrasado, la serie temporal y las estadísticas de 24 h se anclan aquí para eliminar la «cola vacía». Un retraso superior a 5 minutos se muestra como insignia⏱ Nm. - Caché de 30 segundos: los resultados se almacenan 30 segundos bajo la clave
infr:sec:ov:{range}para coincidir con el sondeo de 30 segundos. Los fallos de lectura individuales los absorbesafe(), de modo que un área averiada no detiene todo el embudo.
SecurityScope — exclusión automática de la red propia
Las listas de principales IP de amenaza y de infractores JA3 excluyen automáticamente su propia red para que sus servidores no aparezcan como atacantes (sin valores escritos en el código).
SecurityScope::excludePrefixes()combina las instancias registradas (IP públicas/privadas/de NIC deinfr_instance→ prefijo /24) con la lista blanca de la política de operaciones (internal_networks— IP, prefijos, CIDR) en una matriz de prefijos.- Esos prefijos se aplican en la consulta como
src_ip NOT LIKE 'prefix%'(con enlace de parámetros). - El comparador se almacena en caché durante 60 segundos y se invalida cada vez que se guarda la Política de operaciones.
e.g. register 203.0.113.10 in infr_instance → prefix "203.0.113." auto-excluded
add 10.0.0.0/8 to OpsPolicy internal_networks → CIDR → "10." coarse prefix excluded
Si sus propios servidores siguen apareciendo entre las amenazas o los infractores, registre esas IP en Activos ▸ Instancias o añádalas a la lista blanca
internal_networksde la Política de operaciones. Desaparecerán automáticamente.
Acceso
- Toda el área
/security/*, incluida esta pantalla, está protegida por el middlewareinfr.level:2: se necesitauser_level ≥ 2para entrar. - Por tanto, una cuenta demo (1) no puede ver los datos de seguridad, mientras que staff (5) y admin (10) sí.
- El Resumen de seguridad es totalmente de solo lectura: no hay acciones de escritura, bloqueo ni edición, por lo que no necesita verificación adicional ni registro de auditoría. El bloqueo y desbloqueo reales se realizan en Lista de bloqueo y reputación (escritura con nivel ≥ 2 + auditoría).
Resolución de problemas y preguntas frecuentes
P. Todos los recuentos del embudo son 0.
Puede que la ventana seleccionada (1h/6h/24h) no tenga datos, o que la conexión legacy_glory esté caída. Amplíe a 24h; si la insignia de retraso ⏱ es muy grande, un recolector (eve_ingest / kts_tx / srct_tx) se ha detenido y los datos están obsoletos.
P. La IP de nuestro propio servidor aparece entre las principales amenazas/infractores.
La exclusión de la red propia no la está cubriendo. Registre esa IP en Instancias o añádala a internal_networks en la Política de operaciones (SecurityScope excluye por prefijo /24).
P. El número del «conjunto de reglas de respuesta automática» difiere del de la biblioteca de conjuntos de reglas.
La etapa de conjuntos de reglas es active rulesets + firing rulesets. Se suman los conjuntos de secuencia JA3 activos (infr_sec_ruleset active), por lo que puede superar el recuento puro de disparos del catálogo.
P. Un conjunto de reglas dice action=block, pero no se bloqueó nada.
Ese campo es una recomendación, no una instrucción. El bloqueo automático calcula la rotación JA3 directamente desde suricata_tls_ct y nunca lee infr_sec_ruleset; el bloqueo real se realiza desde Lista de bloqueo o mediante el planificador de bloqueo automático. Véase Detecciones.
P. La intensidad de amenaza siempre es baja (≤45).
Es lo esperado. El valor mostrado es 100 − score, y la puntuación se limita a un suelo de 55, así que la intensidad de amenaza va de 0 a 45.
P. Los números fluctúan ligeramente cada 30 segundos. Es la combinación del sondeo de 30 segundos y la caché de 30 segundos, que recalcula sobre la ventana más reciente en cada sondeo. Desactive LIVE para detener el refresco automático.
Relacionado
- Amenazas — triaje de entidades de amenaza IDS, desglose por IP, vinculación con el bloqueo.
- Detecciones + IA JA3 — relato del algoritmo de detección y conjuntos de reglas de secuencias JA3 (análisis bajo demanda).
- Biblioteca de conjuntos de reglas — el catálogo de 44 conjuntos de reglas de detección (fuente canónica del recuento de disparos).
- Lista de bloqueo y reputación — relato de la defensa automática de blacklist_info + controles de bloqueo/desbloqueo.
- Política de operaciones — lista blanca
internal_networks(exclusión de la red propia por SecurityScope). - Consulta de reputación de IP — ventana emergente de AbuseIPDB dentro de la aplicación.

