Microsoft ha otorgado a un investigador de seguridad independiente 50.000 dólares como parte de su programa de recompensas por errores por informar de una falla que podría haber permitido a un actor malintencionado secuestrar las cuentas de los usuarios sin su conocimiento.
Informada por Laxman Muthiyah, la vulnerabilidad tiene como objetivo aplicar la fuerza bruta al código de seguridad de siete dígitos que se envía a la dirección de correo electrónico o al número de teléfono móvil de un usuario para corroborar su identidad antes de restablecer la contraseña para recuperar el acceso a la cuenta.
Dicho de otra manera, el escenario de toma de control de la cuenta es una consecuencia de la escalada de privilegios que se deriva de una omisión de autenticación en un punto final que se utiliza para verificar los códigos enviados como parte del proceso de recuperación de la cuenta.
La compañía abordó el problema en noviembre de 2020, antes de que los detalles de la falla salieran a la luz el martes.
Aunque existen barreras de cifrado y controles de limitación de velocidad diseñados para evitar que un atacante envíe repetidamente los 10 millones de combinaciones de los códigos de forma automatizada, Muthiyah dijo que finalmente descifró la función de cifrado utilizada para ocultar el código de seguridad y enviar múltiples solicitudes simultáneas. .
De hecho, las pruebas de Muthiyah mostraron que de los 1000 códigos que se enviaron, solo 122 pasaron, y los demás se bloquearon con el código de error 1211.
«Me di cuenta de que están listas negras de la dirección IP [aun] si todas las peticiones que enviamos no golpean el servidor al mismo tiempo,» el investigador dijo en un reportaje, añadiendo que «unos pocos milisegundos de retardo entre las solicitudes permitió al servidor detectar el ataque y bloquearlo «.
Después de este descubrimiento, Muthiyah dijo que pudo sortear la restricción de limitación de velocidad y llegar al siguiente paso de cambiar la contraseña, lo que le permitió secuestrar la cuenta.
Si bien este ataque solo funciona en los casos en que la cuenta no está protegida por la autenticación de dos factores, aún se puede extender para anular las dos capas de protección y modificar la contraseña de una cuenta objetivo, algo que podría ser prohibitivo dada la cantidad de recursos informáticos necesarios. para montar un ataque de este tipo.
«Poniendo todo junto, un atacante tiene que enviar todas las posibilidades de códigos de seguridad de 6 y 7 dígitos que serían alrededor de 11 millones de intentos de solicitud y tiene que enviarse al mismo tiempo para cambiar la contraseña de cualquier cuenta de Microsoft (incluidas aquellas con 2FA habilitado) «, Dijo Muthiyah.
Por separado, Muthiyah también empleó una técnica similar al flujo de recuperación de la cuenta de Instagram al enviar 200,000 solicitudes simultáneas desde 1,000 máquinas diferentes, descubriendo que era posible lograr la toma de control de la cuenta. Fue recompensado con $ 30,000 como parte del programa de recompensas por errores de la compañía.
«En un escenario de ataque real, el atacante necesita 5000 direcciones IP para piratear una cuenta», señaló Muthiyah. «Parece grande, pero en realidad es fácil si utiliza un proveedor de servicios en la nube como Amazon o Google. Costaría alrededor de 150 dólares realizar el ataque completo de un millón de códigos».