InfraGuard

Consulta de reputación de IP (AbuseIPDB)

Haga clic en cualquier IP sospechosa para consultar la inteligencia de amenazas de AbuseIPDB en una ventana emergente integrada: indicador de confianza, denuncias, categorías, Tor/lista blanca y una caché de 1 hora que protege su cuota gratuita.

Resumen — qué hace

La consulta de reputación de IP es una capacidad compartida: al hacer clic en una IP de origen sospechosa (src_ip) en cualquier punto del área de Seguridad, el servidor consulta en su nombre la inteligencia de amenazas de AbuseIPDB y muestra el resultado en una ventana emergente dentro de la aplicación. Nunca sale de la consola: valora «cuán conocida es esta IP» justo donde está haciendo el triaje.

Características principales:

El botón en vivo de este artículo abre el área de Seguridad (/security). La consulta de reputación no es una página independiente: es una ventana emergente compartida que aparece al hacer clic en el símbolo de escudo con lupa (.infr-ipsym) junto a una IP o en el botón [Consultar reputación] de una pantalla de Seguridad.

Cuándo usarla

Disposición

La ventana emergente (security/partials/abuse-modal.blade.php) se presenta en uno de estos tres estados según el resultado de la consulta.

Éxito — tarjeta de reputación

Zona Contenido
Indicador de confianza Anillo cónico de 0–100 con score% centrado. El color del tono cambia con la puntuación (véase la tabla de veredictos).
Etiqueta de veredicto No reports (Sin denuncias) / Low risk (Riesgo bajo) / Elevated (Riesgo elevado) / High risk (Riesgo alto)
Indicadores Distintivos Tor node (is_tor) · Whitelisted (is_whitelisted)
Dos cifras grandes Total de denuncias · denunciantes distintos
Metadatos País · tipo de uso · ISP · dominio · fecha de la última denuncia
Denuncias recientes Hasta 6 — etiquetas de categoría + país del denunciante + hora + comentario (máx. 200 caracteres)
Marca de consulta Momento en que el servidor realizó la consulta (checked_at)

Puntuación de confianza → tono del veredicto

Puntuación Veredicto Tono Significado
0 Sin denuncias (clean) good Ninguna denuncia de abuso en este periodo
1–24 Riesgo bajo (low) info Unas pocas denuncias: carácter informativo
25–74 Riesgo elevado (elevated) warn Historial de abuso significativo
75–100 Riesgo alto (high) crit Señal maliciosa contundente

Estados de no configurado / fallo

Botones de acción del pie

Botón Acción
Copiar IP Copia la IP al portapapeles (con respaldo de execCommand en contextos no seguros)
Consulta de IP Salta a Conexiones IP (/infra/traffic/ips?src_ip=…)
Abrir AbuseIPDB Abre abuseipdb.com/check/{ip} externo en una pestaña nueva
Añadir a la lista de bloqueo Enlace directo que rellena previamente Lista de bloqueo (/security/blocklist?add={ip})

Cómo se usa

  1. En una pantalla de Seguridad (Amenazas, Detecciones, Resumen, Lista de bloqueo), haga clic en el símbolo de escudo con lupa o en el botón [Consultar reputación] junto a una IP.
  2. La ventana emergente se abre con un indicador de carga y el frontend solicita la consulta al servidor:
GET /security/ip-reputation?ip=203.0.113.10
  1. El servidor valida la IP de forma estricta (filter_var FILTER_VALIDATE_IP), consulta después a través de AbuseIpdbService y devuelve JSON normalizado.
  2. Revise el indicador, las cifras y las denuncias recientes. Use los botones del pie para copiar, rastrear o bloquear según convenga.

Esquema de respuesta (normalizado)

Si la consulta tiene éxito, el servidor devuelve el JSON que consume la ventana emergente:

{
  "ok": true,
  "configured": true,
  "ip": "203.0.113.10",
  "score": 84,
  "reports": 128,
  "distinct_users": 41,
  "country": "CN",
  "usage": "Data Center/Web Hosting/Transit",
  "isp": "Example Hosting Ltd",
  "domain": "example-host.net",
  "is_tor": false,
  "is_whitelisted": false,
  "last_reported": "2026-08-12T22:14:07+00:00",
  "recent": [
    { "at": "2026-08-12T22:14:07+00:00", "country": "US", "categories": [18, 22], "comment": "SSH brute-force" }
  ],
  "checked_at": "2026-08-13 09:31:20",
  "external_url": "https://www.abuseipdb.com/check/203.0.113.10"
}

En caso de fallo controlado:

{ "ok": false, "configured": false, "external_url": "https://www.abuseipdb.com/check/203.0.113.10" }
Campo Origen (AbuseIPDB) Significado
score abuseConfidenceScore Confianza de abuso 0–100
reports totalReports Total de denuncias
distinct_users numDistinctUsers Número de denunciantes distintos
country countryCode Código de país
usage usageType Uso (centro de datos / ISP / …)
isp / domain isp / domain ISP · dominio
is_tor isTor Indicador de nodo de salida Tor
is_whitelisted isWhitelisted Lista blanca de AbuseIPDB
last_reported lastReportedAt Fecha de la última denuncia
recent[] reports[] Denuncias recientes (máx. 6, comentario recortado a 200 caracteres)

Categorías de denuncia (1–23)

recent[].categories es un array de identificadores numéricos. La ventana emergente presenta las etiquetas mediante el mapa de idioma security.abuse.cat.

ID Etiqueta ID Etiqueta ID Etiqueta
1 DNS comprometido 9 Proxy abierto 17 Suplantación
2 Envenenamiento de DNS 10 Spam web 18 Fuerza bruta
3 Pedidos fraudulentos 11 Spam por correo 19 Bot web malicioso
4 Ataque DDoS 12 Spam en blogs 20 Host comprometido
5 Fuerza bruta FTP 13 IP de VPN 21 Ataque a aplicación web
6 Ping de la muerte 14 Escaneo de puertos 22 SSH
7 Phishing 15 Intrusión 23 Dirigido a IoT
8 Fraude VoIP 16 Inyección SQL

Fuentes de datos

Esta función no crea ninguna tabla nueva. Funciona únicamente con una llamada a una API externa + un registro de claves + una caché.

Componente Descripción
API de AbuseIPDB https://api.abuseipdb.com/api/v2/check (verbose=1, maxAgeInDays=valor del proveedor·90 por defecto). Tiempo de espera de 8 segundos.
AbuseIpdbService Consulta, normaliza, almacena en caché y consume las claves rotadas. check($ip) (con caché) · checkWithKey() (prueba de una sola clave para el administrador, sin caché).
ReputationProviderService Fuente única de verdad del conjunto de claves. Sirve las filas activas de infr_reputation_provider ordenadas por priority·id con una caché de 30 s, ofrece rotated() para la rotación y recurre a .env ABUSEIPDB_KEY si no hay ninguna registrada.
infr_reputation_provider Tabla de registro de varias claves de AbuseIPDB (migración 000733). Las claves se guardan como secret_enc (Crypt, solo escritura) y nunca se devuelven al navegador. Se gestionan en API de reputación.
Caché Clave de Cache infr:sec:abuse:{ip}, TTL de 3600 s (1 hora). El contador de rotación es infr:reputation:rr.
config/services.php abuseipdb.key (=.env ABUSEIPDB_KEY) · abuseipdb.max_age_days (90 por defecto). Solo actúa como respaldo cuando no existe ninguna clave registrada.

Flujo de rotación de claves / conmutación por error

check(ip)
  ├ cache hit? → return
  └ miss → iterate providers.rotated()
        key#1 → 200? → normalize·cache·return
              → 429/401/403 → fail over to next key (secret never printed)
        key#2 → …
        all fail → { ok:false, error:"http_429"|"unreachable" }

Registre varias claves del plan gratuito y sus cuotas se agruparán. Cuando una clave agote su cuota diaria y devuelva un 429, el servicio avanza automáticamente a la siguiente: los equipos con mucha carga de investigación deberían registrar 2–3 claves en API de reputación.

Acceso

Resolución de problemas y preguntas frecuentes

La ventana emergente dice «clave de API no configurada»

No hay ninguna clave registrada en infr_reputation_provider y .env ABUSEIPDB_KEY está vacío. Añada una clave de AbuseIPDB en API de reputación o defina ABUSEIPDB_KEY=YOUR_KEY en el .env. Mientras tanto, use el botón [Abrir AbuseIPDB] para consultar el sitio externo.

«Consulta fallida» aparece una y otra vez

Una IP que acabo de bloquear sigue mostrando una puntuación baja

Los resultados se almacenan en caché por IP durante 1 hora (infr:sec:abuse:{ip}). Si necesita un valor actualizado, vuelva a consultar pasada como máximo una hora. La caché existe para proteger su cuota gratuita.

¿Puedo denunciar la IP a AbuseIPDB desde aquí?

No. Esta función es solo de consulta. El envío de denuncias (cooperación internacional) es una fase de respuesta aparte y aplazada: aquí no se publica nada en el exterior.

Solo veo 6 denuncias recientes

El paso de normalización conserva únicamente las 6 más recientes (MAX_REPORTS=6). Consulte el historial completo con [Abrir AbuseIPDB] en el sitio externo.

Es una IP interna o en lista blanca, pero el botón de consulta está oculto

Las pantallas de Seguridad marcan las IP de instancias registradas (su propia red) con un distintivo Internal y ocultan el botón de reputación (SecurityScope); así se evita la confusión cuando las etiquetas direccionales de Suricata señalan a nuestro propio servidor como «origen». Las definiciones de red interna se gestionan en Política de operaciones.

Relacionado

위협 화면의 IP 조사 진입점
위협 화면의 IP 조사 진입점