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
| Capa | Qué hace | Dónde se ejecuta | Impacto en la latencia |
|---|---|---|---|
| Listas de IPs permitidas/bloqueadas | Bloquear o permitir solicitudes según el rango IP/CIDR de origen | Antes de la autenticación | Insignificante (coincidencia CIDR en memoria) |
| CAPTCHA | Desafiar a bots y scripts automatizados | Antes de la autenticación | 100-500ms (API de verificación externa) |
| Detección de inicio de sesión sospechoso | Detectar comportamiento de inicio de sesión anómalo (dispositivo nuevo, viaje imposible, VPN) | Después de la autenticación | 50-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 regla | Comportamiento |
|---|---|
| BLOCK | Rechazar inmediatamente las solicitudes de IPs coincidentes con HTTP 403 |
| ALLOW | Permitir 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
Navegar a 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ón | Direcciones | Ejemplo |
|---|---|---|
/32 | 1 (IP única) | 203.0.113.42/32 |
/24 | 256 | 203.0.113.0/24 |
/16 | 65.536 | 203.0.0.0/16 |
/8 | 16.777.216 | 10.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ón | Efecto |
|---|---|
log | Registrar el evento solo en los logs de auditoría. Sin impacto en el usuario. |
notify | Enviar un email de notificación al usuario. El inicio de sesión procede. |
block | Rechazar el inicio de sesión por completo. El usuario debe contactar a un administrador. |
require_mfa | Permitir 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:
| Detector | Acción recomendada | Notas |
|---|---|---|
| Dispositivo nuevo | notify | Alertar al usuario, pero no bloquear — los dispositivos nuevos son comunes |
| Nueva IP | log | La mayoría de los usuarios tienen IPs dinámicas. Bloquear sería demasiado agresivo. |
| Nuevo país | require_mfa | Señal fuerte de compromiso. Forzar verificación MFA. |
| Viaje imposible | block | Señal muy fuerte. Bloquear y alertar. |
| VPN/proxy | log | Depende de tu base de usuarios. Bloquear si no se espera el uso de VPN. |
Proveedor GeoIP
| Proveedor | Configuración | Latencia | Privacidad |
|---|---|---|---|
| ip-api.com (por defecto) | Sin configuración requerida | 50-200ms por inicio de sesión (llamada API externa) | Las IPs se envían a un servicio de terceros |
| MaxMind GeoLite2 | GEO_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
| Proveedor | Tipo | Configuración |
|---|---|---|
| Cloudflare Turnstile | Prueba de trabajo, sin desafíos de imagen | dash.cloudflare.com -> Turnstile -> Agregar sitio |
| hCaptcha | Desafíos basados en imágenes | dashboard.hcaptcha.com |
| reCAPTCHA v3 | Basado en puntuación, invisible | www.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
| Modo | Cuándo aparece el CAPTCHA | Ideal para |
|---|---|---|
ALWAYS | Cada intento de inicio de sesión, registro y restablecimiento de contraseña | Entornos de alta seguridad |
ON_SUSPICIOUS | Cuando la puntuación de riesgo de MFA adaptativa supera el umbral configurado | Seguridad y UX equilibradas |
AFTER_FAILURES | Después de N intentos de inicio de sesión fallidos consecutivos desde la misma IP | Fricció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 tokenLos 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
-
Empieza con logging: Habilita todos los detectores de inicio de sesión sospechoso en modo
logprimero. Revisa los eventos durante una semana para entender tu línea base antes de cambiar ablockorequire_mfa. -
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.
-
Combina CAPTCHA con limitación de velocidad: Usa el modo
AFTER_FAILURESpara que los usuarios legítimos nunca vean el CAPTCHA, mientras que los atacantes lo encuentran después de 3-5 intentos fallidos. -
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.
-
Monitorea el pipeline: Revisa los logs de auditoría regularmente en busca de patrones. Un pico repentino de detecciones de
impossible_travelonew_countrypuede indicar un ataque de credential stuffing. -
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
/api/ip-rulesRequires: manage:usersLista todas las reglas de IP para el tenant. Soporta filtrado por tipo, ámbito y estado activo.
/api/ip-rulesRequires: manage:usersCrea una nueva regla de permisión o bloqueo de IP.
/api/ip-rules/:idRequires: manage:usersActualiza una regla de IP existente (cambiar etiqueta, extender vencimiento, alternar estado activo).
/api/ip-rules/:idRequires: manage:usersElimina una regla de IP.
/api/suspicious-login/eventsRequires: manage:usersLista eventos de inicio de sesión sospechoso. Filtrable por severidad, motivo, usuario y rango de fechas.
/api/suspicious-login/events/:id/reviewRequires: manage:usersMarca un evento de inicio de sesión sospechoso como revisado.
/api/suspicious-login/configRequires: manage:usersObtiene la configuración actual de detección de inicio de sesión sospechoso.
/api/suspicious-login/configRequires: manage:usersActualiza los ajustes de detección de inicio de sesión sospechoso (activar/desactivar detectores, establecer acciones, configurar umbrales).
/api/captcha/configRequires: manage:usersObtiene la configuración actual de CAPTCHA.
/api/captcha/configRequires: manage:usersActualiza los ajustes de CAPTCHA (proveedor, claves, modo de activación, umbral de puntuación).
Permisos Requeridos
| Operación | Permiso |
|---|---|
| Gestionar reglas de IP | manage:users |
| Ver/revisar eventos de inicio de sesión sospechoso | manage:users |
| Configurar la detección de inicio de sesión sospechoso | manage:users |
| Configurar CAPTCHA | manage:users |
| Configurar ajustes de seguridad (Consola) | Solo OWNER o ADMIN del tenant |
Guías Relacionadas
- Protección contra Ataques — Limitación de velocidad, bloqueo por fuerza bruta, seguridad de contraseñas y referencia completa del pipeline
- Autenticación Multifactor — TOTP, SMS OTP, WebAuthn y MFA adaptativa
- Implementar DPoP — Vinculación de tokens para prevenir el robo de tokens
- Gestión de Sesiones — Gestión de sesiones de usuario y políticas de sesión