InfraGuard

Lista de bloqueo y reputación

Narra la tabla blacklist_info (bloqueos por rango /24) que rellena la defensa automática de IA/IDS y permite a los operadores bloquear, liberar y volver a bloquear rangos directamente.

Resumen — qué hace

Lista de bloqueo y reputación (/security/blocklist) cuenta la historia de los rangos de amenaza que Kitsune ML y Suricata IDS han estado bloqueando automáticamente, y ofrece a los operadores una consola de control para bloquear (añadir) · liberar · volver a bloquear rangos a mano.

Un «bloqueo» cubre siempre un rango /24 completo. Aunque introduzca una IP suelta, solo se conservan los tres primeros octetos y se normaliza a x.y.z.0/24. Los falsos positivos se eximen mediante la Lista blanca, no estrechando el bloqueo.

Cuándo usarlo

Disposición

KPI superiores

Los calcula summary() con una caché de 30 segundos (infr:sec:blocklist:summary).

KPI Significado Cálculo
Bloqueos activos Rangos /24 aplicados actualmente COUNT(*) WHERE is_use=1
Direcciones protegidas (subtítulo) Direcciones cubiertas por los bloqueos activos active × 256 (/24 ≈ 256)
Bloqueadas hoy Bloqueos nuevos en las últimas 24 h is_use=1 AND created_at >= today 00:00
Tasa de defensa automática Porción gestionada automáticamente por IA/IDS (kitsune + suricata) / active × 100
Países vigilados Países distintos entre los rangos activos COUNT(DISTINCT country) WHERE is_use=1
Liberadas Liberadas actualmente (a la espera de un nuevo bloqueo) COUNT(*) WHERE is_use=0

Contribución de los motores de defensa

Los bloqueos activos se desglosan por etiqueta de origen en una barra de reparto más varios mosaicos. La clasificación se hace por coincidencia LIKE sobre reason.

Motor Regla de coincidencia Significado
Kitsune ML reason LIKE '%Kitsune%' Detección de anomalías con autoencoder de conjunto
Suricata IDS reason LIKE '%Suricata%' Bloqueo automático por escaneo o violación de protocolo
Manual reason LIKE '%Manual%' o %수동% Bloqueo designado por el operador
Otro Todo lo que no encaja arriba active − (kitsune+suricata+manual), con suelo en 0

Origen de las amenazas

blockByCountry(12) agrega los rangos activos en los 12 países principales (GROUP BY country ORDER BY COUNT DESC), mostrados como emoji de bandera más barras de ranking. Al hacer clic en una barra, la lista se filtra por ese país.

Actividad de defensa reciente

blockFeed(16) muestra las 16 filas más recientes sin distinguir estado (ORDER BY created_at DESC, id DESC) en una cuadrícula de 4×4: una sensación en vivo de lo que se acaba de capturar.

Lista de bloqueo filtrable

40 tarjetas por página (PER_PAGE=40, ORDER BY created_at DESC, id DESC). Cada tarjeta muestra el rango · el país · la insignia de origen · el chip de evidencia (comportamiento + cifra clave) · la hora del bloqueo · el estado, con las acciones de fila [Reputación] · [Detalles] · [Liberar]/[Volver a bloquear]. Si un rango pertenece a una red interna registrada, recibe una insignia Internal y se oculta su botón de reputación (internal_scope.js).

Filtros:

Cómo usarlo

Leer el motivo

El chip de evidencia de cada tarjeta escoge el único conjunto de reglas con mayor peso de la cadena reason y lo muestra como etiqueta más cifra representativa. Entre las categorías heurísticas de srct, la principal se elige por este orden de pesos:

Marcador de categoría Peso Clave behavior Etiqueta Cifra representativa (detalle)
[A2:...] 6 brute Fuerza bruta contra la administración hits=N → N hits
[A:...] 5 scanner Escaneo de rutas vulnerables hits=N → N hits
[D:...] 4 ja3 Huella JA3 de botnet ja3=N → ja3×N
[B:...] 3 bot_ua Acceso de bot malicioso hits=N → N hits
[C:...] 2 err_flood Avalancha de errores 4xx err_rate=NN%
[E:...] 1 short_scan Escaneo de puertos TCP port=N o N scan

Si el origen es Kitsune, o si reason contiene score=, se clasifica como ml_anomaly (anomalía de aprendizaje automático) por delante de cualquier categoría, y se muestra top= (el componente de mayor error) junto con score. Manual y otros recurren a manual / auto.

Datos adicionales extraídos de reason: score=, top=, port=, short_scan_sessions=, bytes=. Ejemplos de motivos:

[Kitsune v2.2] anomaly top=TLS score=0.83
[Suricata Auto-Block] [A:URL] hits=42 port=443
[Manual] repeated login abuse (uid=5)

Añadir un bloqueo manual

  1. [Bloqueo manual] en la cabecera de la lista abre la ventana de alta. (Al llegar desde Amenazas o desde una investigación de IP, la IP viene precargada a partir de ?add=203.0.113.10.)
  2. Introduzca una IP o CIDR. Una IP suelta se expande a /24 (203.0.113.10 → 203.0.113.0/24).
  3. Escriba un motivo opcional (≤ 160 caracteres) y pulse [Bloquear].
  4. Comportamiento del servidor:
    • La entrada se normaliza a x.y.z.0/24 mediante cclassCidr() (lo que no sea IPv4 se rechaza como invalid_cidr).
    • Para una IPv4 completa, el país se enriquece desde ip_info_loop (si no, se conserva el valor existente / Unknown).
    • Si (server_index=0, c_class) ya existe, se actualiza a is_use=1 (reactivado); si no, se inserta una fila nueva. El motivo queda como "[Manual] <note> (uid=N)".
    • Se vacía la caché del resumen y se devuelven la lista y el resumen actualizados.

El bloqueo llega a blacklist_info de inmediato, pero el DROP real del cortafuegos se aplica cuando el demonio sync_black de cada host lo sincroniza la próxima vez con ipset/iptables. Si ese lote no se está ejecutando, el bloqueo no se aplica en el cortafuegos.

Liberar / Volver a bloquear

Sondeo

security-blocklist.js llama a /security/blocklist/live cada 30 segundos para refrescar el resumen y la página actual.

Fuentes de datos

Elemento Fuente Notas
Registro de bloqueos blacklist_info (legacy_glory) id, server_index, c_class, country, reason, is_use, created_at, updated_at · UNIQUE(server_index, c_class)
Enriquecimiento de país ip_info_loop (legacy_glory) consulta de país para IPv4 completas al añadir
Comprobación de red interna SecurityScope::internalMatchers() IP de instancias registradas + lista blanca de la Política de operaciones → insignia Internal
Aplicación en el cortafuegos demonio sync_black blacklist_info → DROP de ipset/iptables
Suministro de bloqueos automáticos kts_tx.js · srct_tx.js escriben las etiquetas de origen y las cadenas probatorias de reason
Registro de auditoría infr_audit_log sec.block_add · sec.block_release · sec.block_readd

La columna vertebral de lectura es App\Repositories\SecurityRepository; la narración y las escrituras las orquesta App\Services\Security\BlocklistService. Las credenciales proceden únicamente de config('database.connections.legacy_glory'), nunca están codificadas en el código.

Acceso

Como son acciones de seguridad destructivas, la interfaz muestra un diálogo de confirmación (step-up) antes de ejecutarlas. Revise dos veces el CIDR para no bloquear por accidente un rango grande.

Resolución de problemas y preguntas frecuentes

Relacionado

차단 목록 · 평판
차단 목록 · 평판