Muchas empresas informáticas son conscientes de la vulnerabilidad de sus sistemas. Por ello, ofrecen recompensas a los piratas que descubran vulnerabilidades y se las comuniquen. Estos programas pueden ser muy lucrativos para los especialistas.
Ese es también el objetivo: que los hackers compartan las vulnerabilidades que encuentren con la empresa en lugar de pregonarlas por la red oscura. Facebook, propietaria de Instagram, también lleva a cabo esta práctica e incluso aumentó hace poco las cantidades que ofrece.
Esto es lo que llevó al informático indio Laxman Muthiyah a comprobar posibles vulnerabilidades en el proceso de inicio de sesión de Instagram. Para ello, primero recurrió a la función de recuperación de contraseña de la página web, aunque sin suerte. Instagram envía al usuario un enlace para restablecer la contraseña a su dirección de correo electrónico, cuyo acceso no es sencillo.
La aplicación móvil de Instagram utiliza un código de restablecimiento
Sin embargo, en la aplicación móvil de Instagram, también existe la opción de recibir un código numérico de seis dígitos en tu número de teléfono o dirección de correo electrónico. Si introduce el código con el nombre de usuario en la aplicación, el usuario puede volver a iniciar sesión.
Esto permite que cualquier atacante que conozca el código y el nombre de usuario de la cuenta de Instagram, también pueda acceder a ella. Al mismo tiempo, el titular real de la cuenta se queda bloqueado, porque la contraseña se ha restablecido.
Obtener el código a través del correo electrónico o del número de teléfono sería muy complicado para que el hackeo saliera bien. Sin embargo, Laxman se dio cuenta de que no necesitaba esos datos en absoluto. Solo tenía que probar todas las combinaciones posibles hasta dar con la correcta.
Ataque de fuerza bruta con un millón de combinaciones posibles
Con un código de seis dígitos, el atacante debe probar como máximo todos los números del 0 al 999 999 hasta conseguir su objetivo. Lo cierto es que para un descifrador automático de contraseñas no es ningún problema. Sin embargo, para poner las cosas más difíciles, el código de restablecimiento solo es válido durante 10 minutos.
Además, los servidores pueden estar relativamente bien protegidos contra estos ataques de “fuerza bruta”. Sin duda, cabía esperar que Facebook hubiera tomado precauciones para estos casos y hubiera previsto ataques de este tipo. Laxman decidió probarlo en su propia cuenta de Instagram.
Empezó poco a poco, enviando 1000 solicitudes con diferentes códigos a su propia cuenta de Instagram. 250 de ellos tuvieron éxito, pero se rechazaron 750. En otro intento, el número de rechazos fue aún mayor: Instagram parecía haber reconocido el ataque.
Las direcciones IP no se bloquean
En ese momento, sin embargo, Laxman se dio cuenta de que las direcciones IP de las que procedía el ataque no parecían estar bloqueadas. Aunque se limita el número de intentos de acceso por dirección IP, no se bloquea la propia IP. Con esto lo vio claro: si utilizaba suficientes direcciones IP diferentes para los intentos de inicio de sesión, la cosa saldría bien.
Para ser exactos, necesitó unas 5000 direcciones IP para que el hackeo saliera bien. Parece mucho, pero con grandes hosters, como Amazon o Google, no supone un problema. A Laxman le costó un total de 150 dólares llevar a cabo el ataque completo con un millón de números.
Después de piratear con éxito su cuenta, envió un correo electrónico a Facebook con sus observaciones. Revisaron el caso, pagaron al “pirata” 30 000 dólares y resolvieron el problema. Es muy probable que Laxman siga buscando vulnerabilidades y que los programas de cazarrecompensas sigan garantizando que estos conocimientos no caigan en malas manos.
Este artículo también está disponible en: AlemánFrancésItalianoPortugués, Brasil