Resumen

Proteger las credenciales de acceso es una de las tareas más críticas en el desarrollo de software seguro. Las fallas en la identificación y autenticación de usuarios representan uno de los riesgos más frecuentes del OWASP Top Ten, y comprenderlas a fondo permite construir aplicaciones mucho más robustas frente a ataques reales.

¿Qué son las identification and authentication failures?

Este riesgo está directamente asociado al compromiso de credenciales de acceso y al proceso de autenticación [0:02]. Toda aplicación necesita autenticar usuarios y asignarles un rol para ejecutar acciones específicas. Cuando ese proceso tiene debilidades, los atacantes pueden aprovecharlas para obtener acceso no autorizado.

Un problema extremadamente común es el uso de contraseñas débiles [0:18]. Combinaciones como "admin/admin", nombres completos en minúsculas o la secuencia "123456" siguen siendo habituales. La responsabilidad recae en los equipos de desarrollo y los arquitectos de software, quienes deben implementar controles que impidan este tipo de credenciales desde el diseño mismo de la aplicación.

¿Cómo saber si tus credenciales fueron comprometidas?

Existen servicios web donde puedes ingresar tu correo electrónico o número de móvil para verificar si formas parte de una base de datos filtrada por ciberdelincuentes [0:48]. Estas bases de datos suelen estar a la venta en la dark web o la deep web. Si descubres que tus credenciales fueron expuestas, el primer paso es habilitar el múltiple factor de autenticación (MFA) de inmediato.

¿Qué controles implementar en las aplicaciones?

Desde el plano del desarrollo de software, se recomienda integrar mecanismos como:

  • Anti-bots o captchas: dificultan la automatización de ataques.
  • Passkey y passwordless: permiten autenticarse sin depender únicamente de una contraseña, usando tokens de dispositivos hardware [1:16].
  • Campañas de quick password checks: consisten en utilizar diccionarios de contraseñas para evaluar la fortaleza de las claves dentro de los sistemas de información de la organización [1:32].
  • Diccionarios propios de la empresa: el equipo de ciberseguridad recopila datos del perfil de usuario (ID, fecha de cumpleaños) y realiza ataques controlados de diccionario para detectar contraseñas predecibles [1:50].
  • Rate limit en intentos de login: establece límites a las peticiones automatizadas que realizan los atacantes mediante scripts invasivos [2:14].

¿Cómo se ejecuta un ataque de diccionario con BurpSuite?

Para entender la vulnerabilidad, se realiza una prueba sobre una aplicación web vulnerable. El proceso consiste en capturar la petición de login del usuario admin con BurpSuite [2:38], enviarla al módulo Intruder, definir la variable del password como payload y cargar un diccionario de contraseñas. Al lanzar el ataque, BurpSuite envía múltiples peticiones probando cada contraseña del diccionario.

Tras una serie de peticiones, se identifica una respuesta positiva que revela la contraseña correcta [3:15]. Esto confirma que la aplicación es vulnerable a ataques de fuerza bruta y de diccionario porque no limita las peticiones recurrentes de autenticación.

¿Cómo mitigar este riesgo con estrategias de blue team?

La solución se implementa directamente en el código de la aplicación. A partir de la línea siete del código de ejemplo [3:40], se agregan parámetros que restringen la cantidad de peticiones de login permitidas. Con unas pocas líneas se logra un control efectivo.

Al ejecutar nuevamente el ataque con BurpSuite, se observa que a partir de la línea cinco ya no hay respuesta del servidor [3:55]. El ataque queda completamente suspendido. Este tipo de control es un ejemplo claro de rate limiting aplicado a la autenticación.

Pensar como un pentester es fundamental para anticipar las técnicas que usan los atacantes. Cada ejercicio práctico fortalece la capacidad de detectar vulnerabilidades y aplicar controles efectivos. ¿Has probado verificar si las credenciales de tu organización están en alguna base de datos filtrada? Comparte tu experiencia.