Skip to Content

Configurar la Protección contra Amenazas

Auris proporciona tres capas de protección configurables que trabajan juntas en el pipeline de seguridad de inicio de sesión: reglas de IP (bloqueo a nivel de red), detección de inicios de sesión sospechosos (análisis de comportamiento) y CAPTCHA (mitigación de bots). Cada capa opera de forma independiente y puede configurarse para adaptarse a tus requisitos de seguridad.

Esta guía recorre la configuración práctica de cada capa y explica cómo encajan en el pipeline de inicio de sesión completo.


Resumen de las Capas de Protección

CapaQué haceDónde se ejecutaImpacto en la latencia
Listas de IPs permitidas/bloqueadasBloquear o permitir solicitudes según el rango IP/CIDR de origenAntes de la autenticaciónInsignificante (coincidencia CIDR en memoria)
CAPTCHADesafiar a bots y scripts automatizadosAntes de la autenticación100-500ms (API de verificación externa)
Detección de inicio de sesión sospechosoDetectar comportamiento de inicio de sesión anómalo (dispositivo nuevo, viaje imposible, VPN)Después de la autenticación50-300ms (búsqueda GeoIP)

Las tres capas no son bloqueantes entre sí — configurar una no afecta a las demás.


Listas de IPs Permitidas/Bloqueadas

Las reglas de IP usan notación CIDR para controlar qué direcciones IP pueden acceder a los endpoints de autenticación de tu tenant.

Tipos de Reglas y Precedencia

Tipo de reglaComportamiento
BLOCKRechazar inmediatamente las solicitudes de IPs coincidentes con HTTP 403
ALLOWPermitir explícitamente el tráfico de IPs coincidentes

Precedencia: Las reglas BLOCK siempre tienen prioridad sobre las reglas ALLOW dentro del mismo ámbito. Si una IP coincide con una regla BLOCK y una ALLOW, queda bloqueada.

Ámbito

Las reglas pueden aplicarse en dos niveles:

  • Ámbito de tenant (scope: TENANT) — aplica a todas las aplicaciones del tenant
  • Ámbito de aplicación (scope: APPLICATION) — aplica solo a una aplicación específica

Las reglas de ámbito de aplicación se evalúan después de las reglas de ámbito de tenant. Un BLOCK a nivel de tenant no puede ser anulado por un ALLOW a nivel de aplicación.

Configurar Reglas de IP

En la Consola de Auris, ve a Configuración -> Reglas de IP.

Crear una Regla de Bloqueo

Haz clic en Agregar Regla y configura:

{ "cidr": "203.0.113.0/24", "type": "BLOCK", "scope": "TENANT", "label": "Fuente de ataque conocida", "note": "Bloqueado tras ataque de credential stuffing el 2025-06-01" }

Crear un Bloqueo Temporal

Para bloqueos con límite de tiempo (p. ej., durante un ataque activo), habilita el indicador temporal:

{ "cidr": "198.51.100.42/32", "type": "BLOCK", "scope": "TENANT", "label": "Bloqueo temporal - ataque activo", "isTemporary": true, "expiresAt": "2025-07-01T00:00:00Z" }

Las reglas temporales se desactivan automáticamente después del tiempo de vencimiento.

Crear una Lista de Permisión de Oficina

Si quieres asegurarte de que tus IPs corporativas siempre estén permitidas (incluso durante bloqueos amplios):

{ "cidr": "10.0.0.0/8", "type": "ALLOW", "scope": "TENANT", "label": "Red corporativa" }

Gestión Programática

Las reglas de IP también pueden gestionarse a través de la API para la respuesta automatizada ante incidentes:

// Bloquear un rango de IP programáticamente tras detectar un ataque await fetch('https://auth.yourdomain.com/api/ip-rules', { method: 'POST', headers: { 'Authorization': `Bearer ${adminToken}`, 'Content-Type': 'application/json', 'x-tenant': 'your-tenant', }, body: JSON.stringify({ cidr: '192.0.2.0/24', type: 'BLOCK', scope: 'TENANT', label: 'Bloqueo automático - límite de velocidad superado', isTemporary: true, expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(), }), })

Referencia Rápida de CIDR

NotaciónDireccionesEjemplo
/321 (IP única)203.0.113.42/32
/24256203.0.113.0/24
/1665.536203.0.0.0/16
/816.777.21610.0.0.0/8

Detección de Inicio de Sesión Sospechoso

Después de verificar las credenciales de un usuario, Auris analiza el contexto del inicio de sesión en busca de anomalías de comportamiento usando cinco detectores independientes.

Métodos de Detección

1. Dispositivo Nuevo

Se calcula un hash de huella digital a partir del user agent del navegador, la resolución de pantalla y otras señales estables. Los dispositivos vistos por primera vez quedan marcados. La huella digital se registra tras un inicio de sesión exitoso para futuras comparaciones.

2. Nueva Dirección IP

Auris registra las direcciones IP desde las que un usuario ha iniciado sesión previamente. Un inicio de sesión desde una IP no vista para esta cuenta activa el detector.

3. Nuevo País

La búsqueda GeoIP determina el país de la IP de inicio de sesión. Un país no visto anteriormente en el historial de inicios de sesión del usuario activa el detector.

4. Viaje Imposible

La distancia geográfica entre el inicio de sesión actual y el más reciente se divide por el tiempo transcurrido para calcular la velocidad de viaje implícita. Si la velocidad supera el umbral configurado (por defecto: 800 km/h), el inicio de sesión se marca como viaje imposible.

5. VPN / Proxy / Centro de Datos

Los metadatos GeoIP identifican IPs pertenecientes a proveedores de VPN conocidos, proxies o centros de datos en la nube. Estas se marcan por defecto, pero pueden permitirse para organizaciones cuyos usuarios habitualmente usan VPNs.

Configurar Acciones

Cada detector puede configurarse de forma independiente con una de cuatro acciones:

AcciónEfecto
logRegistrar el evento solo en los logs de auditoría. Sin impacto en el usuario.
notifyEnviar un email de notificación al usuario. El inicio de sesión procede.
blockRechazar el inicio de sesión por completo. El usuario debe contactar a un administrador.
require_mfaPermitir el inicio de sesión pero forzar la completación de MFA, incluso si normalmente no se requiere para este usuario.

Configura en Consola -> Configuración -> Detección de Inicio de Sesión Sospechoso:

DetectorAcción recomendadaNotas
Dispositivo nuevonotifyAlertar al usuario, pero no bloquear — los dispositivos nuevos son comunes
Nueva IPlogLa mayoría de los usuarios tienen IPs dinámicas. Bloquear sería demasiado agresivo.
Nuevo paísrequire_mfaSeñal fuerte de compromiso. Forzar verificación MFA.
Viaje imposibleblockSeñal muy fuerte. Bloquear y alertar.
VPN/proxylogDepende de tu base de usuarios. Bloquear si no se espera el uso de VPN.

Proveedor GeoIP

ProveedorConfiguraciónLatenciaPrivacidad
ip-api.com (por defecto)Sin configuración requerida50-200ms por inicio de sesión (llamada API externa)Las IPs se envían a un servicio de terceros
MaxMind GeoLite2GEO_IP_PROVIDER=maxmind, MAXMIND_DB_PATH=/path/to/db<1ms (búsqueda en archivo local)Sin llamadas externas

Para despliegues en producción con alto volumen de inicios de sesión, usa la base de datos local MaxMind para evitar los límites de velocidad del nivel gratuito de ip-api.com y eliminar la dependencia de API externa. Se requiere una cuenta MaxMind gratuita para descargar la base de datos GeoLite2.

Revisar Eventos

Los eventos de inicio de sesión sospechoso son visibles en Consola -> Configuración -> Detección de Inicio de Sesión Sospechoso -> Eventos. Cada evento muestra:

  • Email e ID de usuario
  • Motivo de detección (dispositivo nuevo, viaje imposible, etc.)
  • Severidad (baja, media, alta)
  • Acción tomada (registrado, notificado, bloqueado, MFA requerido)
  • Dirección IP, país e información del dispositivo
  • Marca de tiempo

Los administradores pueden marcar eventos como revisados para hacer seguimiento del estado de la investigación.


CAPTCHA

El CAPTCHA protege las páginas de inicio de sesión, registro y restablecimiento de contraseña de bots automatizados. Auris soporta tres proveedores y tres modos de activación.

Proveedores Soportados

ProveedorTipoConfiguración
Cloudflare TurnstilePrueba de trabajo, sin desafíos de imagendash.cloudflare.com  -> Turnstile -> Agregar sitio
hCaptchaDesafíos basados en imágenesdashboard.hcaptcha.com 
reCAPTCHA v3Basado en puntuación, invisiblewww.google.com/recaptcha 

Cloudflare Turnstile es el recomendado para la mayoría de los despliegues. Proporciona una protección sólida contra bots sin desafíos de imagen (mejor experiencia de usuario) y tiene un nivel gratuito generoso.

Modos de Activación

ModoCuándo aparece el CAPTCHAIdeal para
ALWAYSCada intento de inicio de sesión, registro y restablecimiento de contraseñaEntornos de alta seguridad
ON_SUSPICIOUSCuando la puntuación de riesgo de MFA adaptativa supera el umbral configuradoSeguridad y UX equilibradas
AFTER_FAILURESDespués de N intentos de inicio de sesión fallidos consecutivos desde la misma IPFricción mínima para usuarios legítimos

Pasos de Configuración

Elegir un Proveedor

Selecciona tu proveedor de CAPTCHA en Consola -> Configuración -> CAPTCHA.

Configurar las Claves

Introduce la Site Key (usada en el navegador para renderizar el widget CAPTCHA) y la Secret Key (usada en el servidor para verificar respuestas) del panel de tu proveedor.

Establecer el Modo de Activación

Elige cuándo debe aparecer el CAPTCHA:

  • Para AFTER_FAILURES, establece el umbral de fallos (p. ej., 3 fallos consecutivos)
  • Para ON_SUSPICIOUS, el umbral se deriva de la puntuación de riesgo de MFA adaptativa

Establecer el Umbral de Puntuación (solo reCAPTCHA v3)

reCAPTCHA v3 devuelve una puntuación entre 0.0 (probablemente bot) y 1.0 (probablemente humano). Establece el umbral mínimo de puntuación para pasar la verificación (recomendado: 0.5).

Habilitar en las Páginas

Alterna en qué páginas se requiere CAPTCHA:

  • Página de inicio de sesión (recomendado)
  • Página de registro (recomendado)
  • Página de restablecimiento de contraseña (opcional)

La verificación de CAPTCHA se realiza en el servidor en la API de Auris antes de que se comprueben las credenciales. Incluso si un cliente elude el widget CAPTCHA en el navegador, la solicitud de inicio de sesión fallará sin un token de verificación válido del proveedor CAPTCHA.


El Pipeline Completo de Seguridad de Inicio de Sesión

Cuando un usuario intenta iniciar sesión, la solicitud pasa por todas las capas de protección en secuencia. Cada capa puede cortocircuitar el pipeline:

Solicitud de inicio de sesión entrante | v 1. Comprobación de lista de permisión/bloqueo de IP ¿Regla BLOCK coincide? --> HTTP 403, detener | v 2. Verificación de CAPTCHA (si está configurado) ¿Token inválido o faltante? --> HTTP 400, detener | v 3. Limitación de velocidad ¿Límite por IP o por usuario superado? --> HTTP 429, detener | v 4. Comprobación de bloqueo por fuerza bruta ¿Cuenta o IP bloqueada? --> HTTP 423, detener | v 5. Autenticación Keycloak ¿Credenciales inválidas? --> registrar fallo, HTTP 401, detener | v 6. Análisis de inicio de sesión sospechoso Ejecutar 5 detectores, ejecutar acciones configuradas ¿Acción = block? --> HTTP 403, detener ¿Acción = require_mfa? --> forzar paso de MFA | v 7. Puntuación de riesgo MFA adaptativa Puntuación ponderada de 5 factores ¿Puntuación por encima del umbral? --> requerir step-up MFA | v 8. Emisión de tokens Establecer claims ACR/AMR Devolver access token + refresh token

Los pasos 1-4 son comprobaciones rápidas y síncronas que filtran el tráfico claramente malicioso antes de llegar a los pasos más costosos de autenticación y análisis.


Buenas Prácticas para Producción

  1. Empieza con logging: Habilita todos los detectores de inicio de sesión sospechoso en modo log primero. Revisa los eventos durante una semana para entender tu línea base antes de cambiar a block o require_mfa.

  2. Usa bloqueos de IP temporales: Durante un ataque activo, crea reglas BLOCK temporales con vencimiento de 24-48 horas en lugar de bloqueos permanentes. Esto previene bloqueos accidentales a largo plazo.

  3. Combina CAPTCHA con limitación de velocidad: Usa el modo AFTER_FAILURES para que los usuarios legítimos nunca vean el CAPTCHA, mientras que los atacantes lo encuentran después de 3-5 intentos fallidos.

  4. Despliega MaxMind localmente: Para despliegues que manejan más de 1000 inicios de sesión por hora, cambia de ip-api.com a MaxMind GeoLite2 para evitar los límites de velocidad de la API en el nivel gratuito y reducir la latencia.

  5. Monitorea el pipeline: Revisa los logs de auditoría regularmente en busca de patrones. Un pico repentino de detecciones de impossible_travel o new_country puede indicar un ataque de credential stuffing.

  6. Combina con MFA: La protección contra amenazas funciona mejor junto con la Autenticación Multifactor. Habilita MFA para todos los usuarios y usa la detección de inicio de sesión sospechoso para activar la autenticación escalonada en inicios de sesión anómalos.


Endpoints de API

GET/api/ip-rulesRequires: manage:users

Lista todas las reglas de IP para el tenant. Soporta filtrado por tipo, ámbito y estado activo.

POST/api/ip-rulesRequires: manage:users

Crea una nueva regla de permisión o bloqueo de IP.

PATCH/api/ip-rules/:idRequires: manage:users

Actualiza una regla de IP existente (cambiar etiqueta, extender vencimiento, alternar estado activo).

DELETE/api/ip-rules/:idRequires: manage:users

Elimina una regla de IP.

GET/api/suspicious-login/eventsRequires: manage:users

Lista eventos de inicio de sesión sospechoso. Filtrable por severidad, motivo, usuario y rango de fechas.

PATCH/api/suspicious-login/events/:id/reviewRequires: manage:users

Marca un evento de inicio de sesión sospechoso como revisado.

GET/api/suspicious-login/configRequires: manage:users

Obtiene la configuración actual de detección de inicio de sesión sospechoso.

PATCH/api/suspicious-login/configRequires: manage:users

Actualiza los ajustes de detección de inicio de sesión sospechoso (activar/desactivar detectores, establecer acciones, configurar umbrales).

GET/api/captcha/configRequires: manage:users

Obtiene la configuración actual de CAPTCHA.

PATCH/api/captcha/configRequires: manage:users

Actualiza los ajustes de CAPTCHA (proveedor, claves, modo de activación, umbral de puntuación).


Permisos Requeridos

OperaciónPermiso
Gestionar reglas de IPmanage:users
Ver/revisar eventos de inicio de sesión sospechosomanage:users
Configurar la detección de inicio de sesión sospechosomanage:users
Configurar CAPTCHAmanage:users
Configurar ajustes de seguridad (Consola)Solo OWNER o ADMIN del tenant

Guías Relacionadas