Hackeo a Linkedin: aclarando lo que los medios no saben decir

      Comentarios desactivados en Hackeo a Linkedin: aclarando lo que los medios no saben decir

1366_2000Llevamos varios días recibiendo noticias y leyendo que “debemos actualizar las contraseñas” por que linkedin “ha sufrido un ataque de un hacker” que ha comprometido la seguridad de las contraseñas de los usuarios, así como sus datos.

Lo que los medios no explican con claridad, ya que parece que no se han enterado muy bien, es si se trata de un nuevo ataque o del mismo que sufrió en 2012, cuyas noticias si que fueron certeras (aunque las explicaciones técnicas no tuvieron un gran contenido) hasta el punto de quedar reflejado como algún tipo de hito en wikipedia. A medida que van pasando las horas, y las noticias se traducen mejor, se dan cuenta de que se trata del mismo ataque. Y en realidad, esto es lo que tiene sentido.

Así que vamos a explicar qué pasó y qué riesgos corremos todos aquellos que usamos actualmente la red social profesional más famosa y utilizada del mundo, además de saber cómo actuar.

Los datos de acceso de cualquier servidor se almacenan en bases de datos. Estas bases de datos son consultadas por los diferentes API, webs, o sistemas de autenticación y autorización de acceso de los que disponen. Para ello, y como en el caso de LinkedIn, nos podemos encontrar frontales web (como es este) que mediante un API interno, consultan las bases de datos para gestionar el acceso a los contenidos que hemos contratado (sea gratuitamente o no). Ahí introducimos nuestro usuario de acceso y nuestra contraseña y accedemos a lo que, en esta aplicación, llamamos “perfil”.

Bien, si en todo este proceso, desde internet podemos acceder a nuestro perfil porque algo consulta la base de datos que necesita consultar para identificarnos, autenticarnos y autorizarnos a acceder, si existe una vulnerabilidad que pudieramos explotar en ese frontal para poder acceder a toda la base de datos, y leerla, nos bastaría con descargarla para obtenerla. ¿Sencillo?, de ninguna manera, pero… no olvidemos vulnerabilidades conocidas tan mediáticas y recientes como heartbleed o shellshock, que salieron a la luz en 2014… evidentemente el hacker aprovecho alguna vulnerabilidad no conocida por linkedin que permitió el robo de la base de datos. En 2012 ya hubo algún aviso hacia LinkedIn sobre vulnerabilidades que sufría por entonces, en mi opinión, no se trata de la misma debido a la magnitud del ataque.

En aquel momento, el hacker disponía de la base de datos de contraseñas del portal web que hackeó, pero no sabía realmente las contraseñas de los usuarios. El por qué, lo explico a continuación, pero lo que podía hacer era empezar a analizar y a jugar con la información para explotarla al máximo, y LinkedIn aún no se había enterado. Con lo cual, en aquel momento comenzó el contador de tiempo, el cual es muy importante para que entendamos los reisgos que corremos realmente.

linkedin-contrasenas--510x600¿Por qué no disponía de las contraseñas realmente? Porque la base de datos no se almacena en texto plano, al menos, si esta tiene una mínima seguridad. Las bases de datos utilizan algoritmos de ordenación de bits y resumen (hash) para almacenar ciertos datos que luego nos aparecen “cifrados”. Es decir, lo que el hacker disponía era de un listado de (presumiblemente…) los 400 millones de usuarios de LinkedIn, con sus contraseñas hasheadas, concretamente con SHA-1 (como en la imagen de arriba). Así que el tiempo de descifrarlas comenzaba. Para ello utilizó programas para fuerza bruta y ataques basados en diccionario (a la derecha teneis una lista de lo que se encontró), como john, medusa… y a probar, hasta que una contraseña hasheada coincida con el hash. Un proceso, que dependiendo de la fuerza bruta, la clave proporcionada y su inclusión en los diccionarios, los algortimos de combinación que utilizaría el hacker, y la capacidad de procesamiento de sus servidores de descifrado, pudo ser más largo o más corto. Pero el hacker sabía que su tiempo para sacar contraseñas y venderlas acababa en el momento que LinkedIn publicase que había sido hackeada y recomendase a todos los usuarios cambiar las contraseñas. Hemos de entender, que el hacker dispone de la base de datos de contraseñas de 2012 y no de 2016. Y él, es con lo que jugaba. Mientras nadie supiera nada, su información tenía más valor. En el fondo 6 millones y medio de contraseñas son muchas para  un lapso de tiempo medianamente corto, y todo ello es porque entonces, LinkedIn almacenaba las contraseñas SHA-1 sin salarlas (SALT). En este caso, si dos usuarios utilizamos la misma contraseña, el hash almacenado es el mismo, en cambio, si hubieran añadido la “sal” (que introduce bits aleatorios delante de la contraseña), cada hash tendría que ser probado el mismo numero de veces de bits que tenga el SALT (por ejemplo, si el SALT es de 32 bits, cada hash tendrá 4 millones de posibilidades diferentes).

Así que si, como veis en la imagen, 750 mil usuarios tienen la contraseña 123456, y el sistema de hash no usa SALT, con encontrar la password de 1, tendremos el de 750 mil usuarios, todos aquellos cuyo hash coincida con el de otro. Nuestro hacker en cuestión, siguió des-hasheando esas contraseñas hasta llegar hasta ahora a 117 millones.

La nota de linkedin se ha dado, probablemente (esto me lo estoy inventando pero no es descabellado) tras un estudio y análisis reciente, y han decidido recordar que cambie la gente sus contraseñas. ¿Por qué? Porque si has cambiado la contraseña después del ataque, el hacker ya no dispone de la contraseña y el servicio se mantiene seguro. Así que si has cambiado tu contraseña recientemente, puedes estar tranquilo. ¡Si aún así tienes dudas… cambiala!, pero no creas que hay un hacker sacando contraseñas todos los días… 🙂

Cambiar contraseñas habitualmente es una buena práctica para evitar estas intrusiones, y para que la fuerza bruta tenga más dificultades de acceder.