Conceptos básicos de los ataques automatizados: apropiación de cuentas
Conceptos básicos de los ataques automatizados: lo esencial
Con este artículo, iniciamos una serie en la que repasaremos los conceptos básicos de varios ataques automatizados a aplicaciones web, que comúnmente se denominan ataques de bots. En cada artículo, ofreceremos un análisis a fondo de la naturaleza del ataque, sus motivaciones, ejemplos reales y técnicas para mitigarlos.
¿Qué es la apropiación de cuentas?
Los ataques de apropiación de cuentas son una forma de sustracción de identidad online en la que unos ciberdelincuentes acceden sin autorización a la cuenta de un cliente, ya sea de banca online, correo electrónico, comercio electrónico, redes sociales, etc. Existen varias posibles motivaciones, desde realizar transacciones fraudulentas hasta difundir información falsa durante una campaña electoral, pero el objetivo principal es el de hacerse con la cuenta del cliente y, así, aprovechar sus posibilidades. Estos ataques pueden ir dirigidos a una cuenta en particular o pueden ser masivos, afectando a millones de cuentas.
En un artículo anterior analizamos las herramientas más comunes que se usan en ataques automatizados, pero en esta entrada queremos repasar tipos comunes de ataques de apropiación de cuentas, como el relleno de credenciales, la agregación de cuentas y el descifrado de credenciales, junto con las herramientas diseñadas para estos ataques en particular.
Relleno de credenciales
En este ataque, se utiliza una lista de combinaciones de credenciales robadas (nombres de usuario y contraseñas) con el objetivo de entrar, sin la debida autorización, a cuentas online. Para ello, se saca partido de la mala costumbre de reutilizar credenciales, es decir, el acto de repetir credenciales para distintas cuentas o sitios web por una cuestión de comodidad. Así, cuando uno de estos sitios web sufre un ataque y las credenciales de sus usuarios se filtran en foros clandestinos, otros ciberdelincuentes toman la lista y lanzan ataques de relleno de credenciales en varios sitios web.
Figura 1: los bots envían credenciales robadas al servicio de la víctima para buscar inicios de sesión válidos
Pese a su naturaleza masiva, indiscriminada e imprecisa, este tipo de ataque se ha revelado como un método efectivo de bajo coste, con un porcentaje de éxito aproximado del 0,1 % según expertos del sector. Esta proporción puede parecer baja, pero basta con probar millones de credenciales en un sitio para obtener acceso a miles de cuentas. A junio de 2024, el conjunto de datos de HaveIBeenPwned incluye 936 millones de contraseñas que corresponden a 6950 millones de credenciales.
Figura 2: Sentry MBA ofrece varios ajustes y funcionalidades para lanzar ataques
La frecuencia de este ataque también se explica por lo desarrollado que está el mercado: un ciberdelincuente puede encontrar, en foros clandestinos y a bajo coste, una lista de combinaciones de credenciales, junto con herramientas para llevar a cabo el ataque (como SentryMBA, SNIPR, OpenBullet, BlackBullet y STORM) y la configuración necesaria para atacar al servicio en cuestión. Algunas de estas herramientas incluso cuentan con complementos que se pueden adquirir para burlar ciertas funcionalidades contra bots. El siguiente paso es comprar una lista de proxis de cualquiera de los incontables sitios web que las venden, que permitirá rotar los ataques entre múltiples direcciones IP de origen. Con esto, ya tienes todo lo que necesitas para llevar a cabo un ataque de relleno de credenciales. También cabe mencionar que existe demanda por las credenciales sustraídas, lo cual añade un fuerte incentivo económico a este tipo de ataques.
Figura 3: SNIPR cuenta con configuraciones integradas para atacar sitios web populares
Agregación de cuentas
En este ataque de recolección de credenciales, los usuarios acaban utilizando clientes no autorizados que aprovechan la oportunidad para sustraer credenciales o modificar la petición/respuesta con fines maliciosos. Este método se suele ver en forma de aplicaciones maliciosas de terceros, en tiendas de aplicaciones, o bien en sitios web de agregación de cuentas, que obligan a los usuarios a enviar sus credenciales. Estas aplicaciones no cuentan con la debida autorización del sitio web, pero se usan a menudo para agregar cuentas de redes sociales, entidades financieras o correos electrónicos en una única interfaz.
Figura 4: cómo se sustraen credenciales de un agregador de cuentas vulnerable o malicioso
Si bien los ataques tradicionales de recolección de credenciales pueden lograr el mismo resultado suplantando identidades con un proxy malicioso, los ataques de agregación de cuentas son más efectivos al presentarse de forma más persistente como una aplicación inocua.
Descifrado de credenciales
El descifrado de credenciales es un ataque de fuerza bruta en un punto de conexión de inicio de sesión, que trata de identificar credenciales válidas por medio de una lista de palabras. Si bien puede recordar al relleno de credenciales (que es un ataque indiscriminado), el descifrado de credenciales suele dirigirse a una cuenta o un tipo de cuenta muy concreto.
Este ataque presenta una mayor efectividad ante aplicaciones que son vulnerables a la enumeración de nombres de usuario, en la que, una vez identificado un nombre de usuario válido, se realiza un ataque de fuerza bruta para determinar la contraseña correcta.
Mitigación de los ataques
Autenticación moderna
Los métodos de autenticación modernos, como la autenticación de doble factor (2FA) o las llaves de acceso, refuerzan en gran medida la seguridad al requerir algo más que una simple contraseña para acceder a las cuentas.
La autenticación de doble factor, con los adecuados procedimientos de registro y restablecimiento, añade una capa adicional de protección al combinar algo que conoces (una contraseña) con algo que posees (como un token de hardware o un push de doble factor por aplicación móvil) o con algo que eres (datos biométricos, como huellas dactilares o reconocimiento facial).
Tabla 1: efectividad de métodos de autenticación ante amenazas
Es importante remarcar que, como segundos factores, los mensajes de texto o las contraseñas de un solo uso y duración definida no aportan suficiente protección ante ataques de intermediario con proxis maliciosos, ya que el token también se puede transmitir al sitio web atacado igual que las credenciales.
Asimismo, los segundos factores que utilizan un doble factor push son vulnerables a ataques de agregación de cuentas y de intermediario, ya que el segundo factor se acaba validando fuera de banda. Los tokens de hardware, por su parte, son vulnerables al robo del dispositivo, ya que normalmente no precisan de verificación biométrica y, así, cualquiera que esté en posesión del dispositivo puede ejercer de segundo factor. No obstante, la necesidad de acercamiento físico para el robo del dispositivo reduce el riesgo de forma significativa, por lo que se trata de un método adecuado para el uso diario, sobre todo teniendo en cuenta su gran nivel de adopción.
El método que no presenta ninguna salvedad son las llaves de acceso, unas llaves criptográficas que se almacenan en los dispositivos, eliminan la necesidad de contraseñas y ofrecen una experiencia fluida pero muy segura de autenticación. Además, normalmente precisan de validación biométrica para activarse. Las llaves de acceso todavía están en una fase de adopción temprana, pero recomendamos utilizarlas allá donde se ofrezcan. En este vídeo puedes ver a nuestro equipo de experiencia de desarrollo explicar cómo funcionan las llaves de acceso y WebAuthn y cómo puedes implementarlas en tu sitio web mediante Fastly Compute.
Estos métodos mitigan el riesgo de una apropiación de cuenta al dificultar el acceso a los atacantes, aunque se hayan hecho con la contraseña. Una de las principales ventajas de las llaves de acceso y los tokens de hardware (que en ambos casos implementan estándares WebAuthn) radica en que la credencial se vincula a las URL del sitio web durante el registro, de modo que son inmunes a los ataques de suplantación de identidad o «phishing». Con estas opciones, podemos elegir un método adecuado de autenticación de doble factor según lo susceptible a ataques que sea nuestro sitio web.
Controles contra la automatización
Se pueden utilizar controles contra la automatización tales como los análisis de peticiones, las comprobaciones de integridad del usuario-agente, los desafíos criptográficos o los desafíos audiovisuales con el fin de identificar si la petición la inició un humano o si se trata de tráfico generado por bots. Asimismo, se pueden emplear varios modos de limitación de volumen para mitigar o ralentizar los ataques automatizados.
Detección de credenciales comprometidas
Una defensa muy efectiva contra el relleno de credenciales consiste en comprobar el uso de contraseñas comprometidas. En lo relativo a los «secretos memorizados», el Instituto Nacional de Estándares y Tecnología de Estados Unidos (NIST) recomienda comparar las contraseñas con aquellas obtenidas de registros de filtraciones anteriores durante el registro, el inicio de sesión y el restablecimiento. Ya repasamos este aspecto y dimos una solución con Fastly Compute y KV Stores en esta entrada del blog.
Educar y concienciar
Cuando es obligado utilizar contraseña, el uso de un administrador, con contraseñas autogeneradas, puede mitigar los ataques de relleno de credenciales al evitar la reutilización.
Implementa llaves de acceso y anima a los usuarios a adoptarlas también, ya que se trata de una alternativa práctica a las contraseñas y refuerza drásticamente la seguridad de la cuenta.
Es importante concienciar a los usuarios de los riesgos que entraña el uso de aplicaciones y agregadores de terceros con el fin de reducir el peligro de que se filtren las credenciales.
Si se aprovisionan las claves de API con un acceso limitado cuando se usan con aplicaciones de terceros, se evitarán las filtraciones de credenciales y se fomentará una supervisión más a fondo de las peticiones de aplicaciones de terceros.
Una visión holística de la mitigación
En esta entrada hemos repasado algunos de los ataques automatizados que se realizan para la apropiación de cuentas, pero existen otras técnicas, como el secuestro de sesión con scripting entre sitios o la recolección de credenciales mediante la suplantación de identidad. Así pues, es importante abordar de manera holística estos riesgos a la seguridad combinando un WAF tradicional, un control de bots efectivo, prácticas sólidas de seguridad y concienciación de los usuarios finales, todo lo cual contribuirá a resolver los riesgos que presenta la apropiación de cuentas.
Referencias:
OWASP: amenazas automatizadas a las aplicaciones web.
FIDO2: especificación y resumen de CTAP1 (o U2F), CTAP2 y WebAuthn.