Un bug en Instagram podría haber permitido que cualquiera pudiera secuestrar tu cuenta

ActualidadRedes SocialesInstagram

¿Recuerdas el nombre de Laxman Muthiyah? Nosotros sí, porque ya hemos escrito sobre su trabajo en la búsqueda de errores, por ejemplo, no solo descubrió un error en la eliminación de datos, sino también un error de divulgación de datos en Facebook.

El primer error significaba que se podrían haber eliminado todas tus fotos sin saber tu contraseña, el segundo que podrían haberte engañado para que instalaras una aplicación móvil de aspecto inocente que pudiera espiar tus fotos de Facebook sin tener acceso a tu cuenta.

Para ser claros: encontró esas vulnerabilidades cumpliendo con el programa Bug Bounty de Facebook y las reveló de manera responsable a Facebook.

Como resultado, Facebook pudo solucionar los problemas antes de que los errores se hicieran públicos y, por lo que se sabe, estos errores se repararon antes de que alguien más los encontrara.

En el 2015, esos dos errores supusieron 22.500 $ para Laxman Muthiyah como recompensa por haberlos descubierto.

Laxman está de vuelta, esta vez con un error sorprendentemente simple que, sin embargo, le hizo ganar 30.000 $.

Sigue siendo Facebook quien paga la recompensa, pero esta vez es por un problema en la plataforma Instagram en lugar del propio Facebook.

En pocas palabras, lo que descubrió Laxman es que era posible no solo en teoría, sino también en la vida real, hacerse cargo de la cuenta de Instagram de alguien:

  1. Solicitando un restablecimiento de contraseña.
  2. Solicitando un código de recuperación.
  3. Rápidamente probando todos los códigos de recuperación posibles de la cuenta.

Parecía que todo estaba bien al principio

Curiosamente, las pruebas iniciales de Laxman sugirieron que Facebook había solucionado este problema de manera segura.

Descubrió que solo podía probar unos 200 códigos diferentes antes de ser bloqueado, lo que significa que los servidores de Instagram ya no le permitirían hacer más conjeturas.

Los códigos de recuperación tienen seis dígitos, lo que da un millón de posibilidades diferentes cada vez, por lo que faltaron 999.800 intentos para lo que se conoce como un ataque de fuerza bruta, que son en los que intentas todos los códigos o contraseñas posibles, no solo los más probables.

O el llamado ataque de diccionario, donde se prueban los códigos o contraseñas más probables, como 123456 u 8888888, tampoco funcionaba.

Esto se debe a que los códigos de recuperación se eligen al azar, evitando los caprichos de la previsibilidad humana, por lo que los códigos 875415, 681411 y 849867 son tan probables como 000000, 111111 y 222222; no hay forma de elegir “las contraseñas más populares” para probarlas primero.

Del mismo modo, no pudo probar cada código súper despacio, o esperar un tiempo después de cada 100 intentos para evitar disparar las alarmas, ya que cada código de recuperación era válido por solo 10 minutos.

Incluso si Instagram le hubiera dejado probar con un nuevo lote de 200 intentos después de, por ejemplo, dos minutos, aún habría logrado solo 1000 del 1.000.000 de intentos antes de que el código expirara de todos modos.

¿Qué se está bloqueando?

Laxman se preguntó: “¿El bloqueo se reduce al número de intentos en la misma cuenta, o se reduce al número de intentos desde el mismo ordenador?”

En otras palabras, si tuviera 201 ordenadores diferentes, cada uno con un número de IP diferente, y cada ordenador hiciera solo una suposición, ¿eso desdencadenaría el límite de 200 intentos?

O si tuviera 201 ordenadores, ¿cada uno obtendría 200 conjeturas propias en la ventana de 10 minutos, dándole 201 × 200 = 40.200 intentos?

De hecho, lo intentó con 1000 números de IP diferentes y pudo hacer 200.000 adivinanzas sin ser bloqueado.

A partir de esto, dedujo que cualquiera con 5000 números de IP diferentes a su disposición podría probar de manera exitosa el millón de códigos de recuperación en 10 minutos (5000 × 200 = 1.000.000) y, por lo tanto, completar la recuperación de la cuenta con éxito.

¿Quién tendría 5000 ordenadores?

Pero, ¿quién tendría 5000 ordenadores diferentes y 5000 números de IP diferentes a mano?

Bueno, Laxman estimó que configurar ese tipo de ataque desde un diversas cuentas en la nube de Amazon o Google costaría alrededor de 150 $, por lo que aunque no podría hackear fácilmente todas las cuentas con este truco, podría hackear la cuenta de alguien de manera segura y bastante barata.

Además, no debemos olvidar que los ciberdelincuentes suelen disponer de  una o más redes de bots (una red de bots es un “ejército de redes” de ordenadores infectados con malware que pueden recibir instrucciones para iniciar comandos idénticos al unísono) probablemente podrían activar 5000 conexiones simultáneas desde 5000 números de IP diferentes en cualquier momento.

Facebook debe haber aceptado que este ataque era más que un simple riesgo teórico: la compañía le pagó 30.000 $ y reparó el agujero, probablemente por la limitación de la tasa de uso de los códigos de recuperación por víctima en lugar de por atacante.

¿Qué hacer?

  • Para proteger tu cuenta de Instagram de este ataque, no tienes que hacer nada. Facebook ya ha modificado el mecanismo de defensa del lado del servidor de Instagram, por lo que este ataque ya no es efectivo.
  • Si recibes un código de recuperación de cuenta o un mensaje de restablecimiento de contraseña que no solicitaste, infórmalo. Significa que alguien probablemente esté tratando de hacerse cargo de tu cuenta, con la esperanza de que no te des cuenta hasta el momento en que tuvieras problemas al entrar.
  • En caso de que alguna de tus cuentas sea secuestrada, familiarízate ahora con el proceso que debes seguir para recuperarla. Si existen documentos o historial de uso que podría ayudar en tu caso, prepáralos antes de que los pirateen, no después.
  • Si estás programando un sistema de seguridad propio de limitación de velocidad, que proteja activamente a la víctima y ralentice a los atacantes. En este caso, limitar la escala de cada ataque individual es algo bueno, pero también necesitas una defensa directa para la cuenta que está siendo atacada.

 

 

Para manteneros al día de las últimas amenazas haceros fans de nuestra página de Facebook o síguenos en Twitter para intercambiar experiencias en torno al mundo de la seguridad. Si deseas recibir nuestro boletín de seguridad en tu correo electrónico, suscríbete en la siguiente aplicación:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.