Credential stuffing es un método de ciberataque en el que los atacantes utilizan listas de credenciales de usuario comprometidas para entrar en un sistema. El ataque utiliza bots para la automatización y la escala y se basa en el supuesto de que muchos usuarios reutilizan los nombres de usuario y las contraseñas en múltiples servicios. Las estadísticas demuestran que aproximadamente el 0,1% de las credenciales violadas que se intentan introducir en otro servicio tienen como resultado un inicio de sesión exitoso.
Requerimientos:
- Sistema – Un sistema para realizar las pruebas
- Programación – Conocimientos altos de programación
Resposabilidad:
En este tutorías utilizaremos técnicas de hacking, con el único fin de aprendizaje. No promovemos su utilización ni con fines lucrativos o incorrectos. No nos hacemos responsables de cualquier daño o menoscabo que pueda generar en los sistemas utilizados. La responsabilidad es absoluta del usuario de este tutorial.
Conocimientos:
- Linux – Bajo
- Programación – Alto
- Kali Linux – Bajo
- Windows – Alto
- Redes – Muy alto
Nivel general del Tutorial: Alto
Ideal para: Ingenieros de sistemas, Ingenieros de seguridad, Pentesters
¿Como funciona Credential Stuffing?
Credential stuffing es un vector de amenaza creciente por dos razones principales:
- Amplia disponibilidad de bases de datos masivas de credenciales de infracción, por ejemplo, «Collection #1-5», que puso a disposición de la comunidad de hackers 22.000 millones de combinaciones de nombres de usuario y contraseñas en texto plano.
- Bots más sofisticados que intentan simultáneamente varios inicios de sesión y parecen proceder de diferentes direcciones IP. Estos bots a menudo pueden eludir medidas de seguridad sencillas como la prohibición de direcciones IP con demasiados inicios de sesión fallidos.
Credential Stuffing vs. Brute Force Attacks
Credential stuffing es similar a un ataque de fuerza bruta, pero hay varias diferencias importantes:
- Los ataques de fuerza bruta tratan de adivinar las credenciales sin contexto, utilizando cadenas aleatorias, patrones de contraseñas de uso común o diccionarios de frases comunes
- Los ataques de fuerza bruta tienen éxito si los usuarios eligen contraseñas sencillas y fáciles de adivinar.
- Los ataques de fuerza bruta carecen de contexto y de datos de violaciones anteriores, por lo que su tasa de éxito en el inicio de sesión es mucho menor
En una aplicación web moderna con medidas de seguridad básicas, es probable que los ataques de fuerza bruta fallen, mientras que los ataques de relleno de credenciales pueden tener éxito. La razón es que, aunque se apliquen contraseñas seguras, los usuarios pueden compartir esa contraseña entre los servicios, lo que lleva a un compromiso.
Cómo funcionan los ataques de Credential Stuffing
Este es el proceso típico que sigue un atacante en un ataque de relleno de credenciales a gran escala. El atacante:
- Establece un bot que es capaz de entrar automáticamente en varias cuentas de usuario en paralelo, mientras finge diferentes direcciones IP.
- Ejecuta un proceso automatizado para comprobar si las credenciales robadas funcionan en muchos sitios web. Al ejecutar el proceso en paralelo en varios sitios, se reduce la necesidad de iniciar sesión repetidamente en un solo servicio.
- Supervisa los inicios de sesión exitosos y obtiene información personal identificable, tarjetas de crédito u otros datos valiosos de las cuentas comprometidas.
- Retiene la información de la cuenta para su uso futuro, por ejemplo, para ataques de phishing u otras transacciones habilitadas por el servicio comprometido.
Prevención contra Credential Stuffing
Las siguientes medidas pueden ayudarle a proteger su sitio web de los ataques de relleno de credenciales.
Multi-Factor Authentication (MFA)
Exigir a los usuarios que se autentifiquen con algo que tienen, además de con algo que conocen, es la mejor defensa contra el robo de credenciales. Los bots atacantes no podrán proporcionar un método de autenticación físico, como un teléfono móvil o un token de acceso. En muchos casos, no es factible exigir la autenticación multifactor para toda una base de usuarios. Si es así, puede combinarse con otras técnicas, por ejemplo, la AMF puede aplicarse sólo en combinación con la huella digital del dispositivo.
Usar un CAPTCHA
Los CAPTCHA, que requieren que los usuarios realicen una acción para demostrar que son humanos, pueden reducir la eficacia del relleno de credenciales. Sin embargo, los hackers pueden eludir fácilmente el CAPTCHA utilizando navegadores sin cabeza. Al igual que la AMF, CAPTCHA puede combinarse con otros métodos y aplicarse sólo en escenarios específicos.
Huellas dactilares de los dispositivos
Puede utilizar JavaScript para recopilar información sobre los dispositivos de los usuarios y crear una «huella digital» para cada sesión entrante. La huella digital es una combinación de parámetros como el sistema operativo, el idioma, el navegador, la zona horaria, el agente de usuario, etc. Si la misma combinación de parámetros se registra varias veces en secuencia, es probable que se trate de un ataque de fuerza bruta o de relleno de credenciales.
Si utiliza una huella digital estricta con múltiples parámetros, puede aplicar medidas más severas, como la prohibición de la IP. Para capturar más ataques, puede utilizar una combinación de 2 o 3 parámetros comunes y aplicar medidas menos severas, como un bloqueo temporal. Una combinación común de huellas dactilares es Sistema Operativo + Geolocalización + Idioma.
IP Blacklisting
Los atacantes suelen tener un conjunto limitado de direcciones IP, por lo que otra defensa eficaz es bloquear o bloquear las IP que intentan iniciar sesión en varias cuentas. Puedes monitorizar las últimas IPs que se utilizaron para entrar en una cuenta específica y compararlas con la IP sospechosa, para reducir los falsos positivos.
Rate-Limit Non-Residential Traffic Sources
Es fácil identificar el tráfico procedente de Amazon Web Services u otros centros de datos comerciales. Este tráfico es, casi con toda seguridad, tráfico de bots y debe ser tratado con mucho más cuidado que el tráfico de usuarios normales. Aplique límites de velocidad estrictos y bloquee o prohíba las IP con comportamiento sospechoso.
Block Headless Browsers
Los navegadores sin cabeza, como PhantomJS, pueden identificarse fácilmente por las llamadas de JavaScript que utilizan. Bloquee el acceso a los navegadores sin cabeza porque no son usuarios legítimos, y casi seguro que indican un comportamiento sospechoso.
Disallow Email Addresses as User IDs
El relleno de credenciales se basa en la reutilización de los mismos nombres de usuario o identificadores de cuenta en distintos servicios. Esto es mucho más probable si el ID es una dirección de correo electrónico. Al impedir que los usuarios utilicen su dirección de correo electrónico como ID de cuenta, se reduce drásticamente la posibilidad de que reutilicen el mismo par de usuario/contraseña en otro sitio.