Passwords en OTP

Riesgos ocultos del inicio de sesión con códigos OTP

El método de inicio de sesión basado en códigos de un solo uso (One-Time Passcode, OTP), gana popularidad como alternativa a las contraseñas tradicionales. La propuesta es sencilla, tiene un aire innovador y conveniencia relativa por lo siguiente:

  1. El usuario accede a la página de inicio de sesión de un servicio.
  2. Introduce únicamente su dirección de correo electrónico o número de teléfono.
  3. El sistema le envía un código temporal (por ejemplo, de 6 dígitos) a través de correo electrónico o mensaje SMS.
  4. El usuario introduce el código en la web y accede directamente a su cuenta.

Este tipo de autenticación se conoce como autenticación passwordless (sin contraseña), y se nos ofrece como un avance en términos de comodidad para el usuario. Además, grandes empresas tecnológicas como Microsoft, Google e incluso plataformas bancarias ya han comenzado a implementarlo en alguno de sus servicios.

La principal ventaja de este método, radica en su aparente sencillez y ofrece la opción de evitar recordar largas y complejas contraseñas. También es cierto que, cierra las puertas a ciertos vectores de ataque tradicionales como los ataques de fuerza bruta o el relleno de credenciales (credential stuffing), ya que no se almacena una contraseña estática en los servidores que pueda ser reutilizada o robada.

Desde el punto de vista técnico, este modelo se apoya en mecanismos que aseguran que el código enviado sólo pueda usarse una vez y tenga una validez temporal limitada (unos minutos), lo que genera una sensación de seguridad adicional.

No obstante, la sensación de seguridad desaparece, especialmente cuando:

  • El servicio no verifica adecuadamente la identidad de quien solicita el código.
  • El usuario desconoce qué implica compartir un código OTP.
  • El entorno donde se introduce el código no es el sitio original (como Discord u otras plataformas ajenas al proveedor del servicio).

Es entonces cuando este método, diseñado para simplificar la tarea, se convierte en punto débil de miles de cuentas digitales, especialmente cuando se combina ingeniería social con plataformas de fuerte presencia en el ámbito juvenil, como Minecraft o Discord.

La utilización de códigos de autenticación de un solo uso (OTP), se está extendiendo entre los usuarios de diferentes aplicaciones o plataformas.

¿Dónde está el problema de usar este método?

En realidad, este método facilita enormemente los ataques de suplantación de identidad (phishing).

Para empezar, porque cualquiera puede iniciar el proceso de verificación con nuestro correo: un atacante sólo necesita conocer nuestra dirección de correo electrónico (algo que suele ser público o fácil de adivinar).

Después, accede a la página oficial de inicio de sesión del servicio, por ejemplo, Microsoft, y solicita un código de acceso de un solo uso. Este código legítimo será enviado a la bandeja de entrada, como si nosotros hubieramos iniciado el proceso de inicio de sesión.

Al no entender por qué nos ha llegado este e-mail o SMS (un problema agravado cuando los correos electrónicos que contienen los códigos no indican claramente su propósito), entonces, el atacante contacta, normalmente a través de Discord, y nos pide ese código, haciéndose pasar por un bot de verificación o administrador de servidor.

Si picamos y le facilitamos dicho código, estaremos entregando acceso completo a nuestra cuenta, sin que él haya necesitado conocer nuestra contraseña. Como el código es real y el sitio de origen también, resulta muy difícil detectar la estafa antes de que sea demasiado tarde.

De hecho, con este sistema, los gestores de contraseñas no pueden protegernos: ante ataques tradicionales, los gestores detectan URLs maliciosas o autocompletan contraseñas sólo en sitios legítimos. En esta nueva técnica, como el usuario nunca escribe una contraseña y el sistema legítimo es el que emite el código, no hay manera de saber si el código está siendo usado correctamente.

Algunos casos reales

Esta vulnerabilidad no es una posibilidad teórica. Existen varios ejemplos documentados que empiezan a hacerse eco en las comunidades online (desde foros de Microsoft a YouTube).

Una de las tácticas más comunes ya descritas en varios foros como Reddit, consiste en invitar a jugadores a un servidor de Discord que parece legítimo, con bots y verificación. Se les pide introducir su correo de Microsoft y luego el código de 6 dígitos que recibirán en su correo. Muchos creen que están verificando su cuenta para acceder al servidor, pero en realidad están entregando el código de acceso a su cuenta de Microsoft a los estafadores.

Una vez conseguido, el atacante cambia la dirección de correo de la cuenta, borra o reemplaza la información que podría usarse para recuperarla en caso de pérdida de acceso (número de teléfono asociado, preguntas de seguridad), y el propietario legítimo pierde el acceso permanentemente.

Además, según el testimonio de un youtuber, los atacantes utilizan Webhooks de Discord para automatizar el robo de cuentas una vez obtienen el código. Así, los datos de la víctima son reemplazados por los del estafador en cuestión de minutos.

Pero, ¿por qué no se habla más de este tipo de estafa?

Principalmente, los ciberdelincuentes utilizan canales y sistemas legítimos. Por ejemplo, el correo de Microsoft que contiene el código, parece auténtico… porque lo es en realidad: el código no viene de un sitio falso. La manipulación se produce cuando la víctima, por ingenuidad o falta de información, entrega ese código al estafador.

Otra razón es que, muchos afectados son menores de edad o usuarios menos familiarizados con prácticas seguras en Internet. Ello les convierte en blancos fáciles y en víctimas silenciosas.

Son muchas las técnicas usadas por los ciberdelincuentes, para obtener nuestras credenciales de acceso mediante la suplantación de identidad.

¿Cómo se pueden prevenir estos ataques?

Para prevenir este tipo de ataques, debemos considerar lo siguiente:

  1. Nunca debemos entregar códigos de verificación a terceros. Ningún servidor de Discord o sitio debería pedirnos un código enviado a nuestro correo personal. Si alguien nos lo solicita, es una estafa.
  2. Educar a otros usuarios, especialmente jóvenes. Muchos de los afectados son adolescentes. Compartir esta información puede evitar que más personas caigan.
  3. Verificar siempre el propósito de los códigos que recibímos. Si recibímos un código inesperado de Microsoft, debemos ignorarlo. Y si lo hemos solicitado, debemos asegurarnos de ingresarlo sólo en el sitio original, no en Discord u otros servicios externos.
  4. Usar contraseñas seguras y sistemas de autenticación multifactor reales. Aunque parezca contradictorio, volver a usar contraseñas fuertes y seguras es, hoy por hoy, más seguro que depender exclusivamente de códigos de un solo uso sin contraseña.

*Imágenes de cabecera y contenido obtenidas mediante IA por STI 2020®


Descubre más desde STI 2020 ®

Suscríbete y recibe las últimas entradas en tu correo electrónico.