lunes, junio 11, 2012

LinkedIN: Mata tus cookies ... y cambia la password

La red social para contactos profesionales, LinkedIN, hace tiempo que me tiene intrigado. El que aún no use de forma nativa Http-s para las sesiones o el que tenga formularios aún que son perfectos para realizar ataques de SSLStrip siempre me llamó la atención, y suelo tener bastante cuidado con esta red cuando me conecto.

Yo, como muchos de vosotros tengo mi propio perfil allí, así que cuando pasa algo con esta red suelo tomar precauciones, y esta historia es consecuencia de una serie de lamentables incidentes encadenados. Este es el fujo de los acontecimientos.

Incidente 1: El bug de PHP en modo CGI
Cuando a principios de mayo salió el bug de PHP en modo CGI, rápidamente corrió que algunos servidores de Linkedin estaban afectados, algo que es más que probable que pueda haber sido utilizado para robar las passwords -  esto es mera especulación y ya veremos los resultados de la investigación -. En ese momento, yo decidí que mi password en esta red social debía ser más robusta, así puse una contraseña más compleja para evitar que fuera fácil de crackear en caso de que mi hash acabara por ahí.
Incidente 2: Linkedin vulnerable a ataques de fuerza bruta
A mediados de Mayo se publicó una manera de hacer fuerza bruta al sistema de login de Linkedin. Generó mucha controversia sobre si era factible o no, y si era fácil de bypassear el captcha o de si se podía automatizar la gestión del security_token. En cualquier caso, yo decidí cambiar mi contraseña y ponerla más fuerte, por lo que subi mi contraseña a una passphrase de 20 caracteres.
Incidente 3: Se publican los hashes de las cuentas
Tras los avisos anteriores, los hashes en SHA-1 de las contraseñas se hacen púbicos. Aunque se intentan borrar, muchos se hacen con ellos, y aparecen sitios que intenta a) alertar si tu hash se ha hecho público con un sistema como el publicado por Security By Default o b) robar información, solicitando que envies la password para ver si está publicada, que seguro que a muchos les va a encantar. Momento de volver a cambiar mi password (y van 3 veces en un mes).
Incidente 4: Las estadísticas
Cuando salen publicadas los hashes, y los resultados del cracking de estos 8 cuentas tenían una password de 20 caracteres que había sido averiguada. Podría ser uno de esos 8 hashes el mío, aunque era una password compleja. Por suerte ya había cambiado mi password. 
Figura 1: Datos estadísticos del cracking

Incidente 5: La aplicación de iOS
La semana pasada también sale una notificación que dice que la aplicación de LinkedIN para iOS envía todos los datos de las entradas del calendario en texto claro, con lo que tus reuniones y los contactos con los que te reúnes circulan por la red. 
Figura 2: Datos de calendario enviados en plano
Como yo tengo la aplicación de Linkedin para iOS voy a comprobarlo, y descubro... que mi sesión se abre tras encender desde el cero el terminal y arrancas la aplicación, aunque ya he cambiado la contraseña, con la información de la cuenta en el dispositivo }:O
Incidente 6: Hijacking a Linkedin para iOS
Ya se había anunciado que Facebook para iOS y DropBox para iOS eran vulnerables a hijacking, si alguien podría acceder a los ficheros de la aplicación en el dispositivo. Estos ficheros temporales son accesibles si el terminal tiene jailbreak o si se puede acceder a un backup del equipo, siempre que se conozca el passcode - así que protege tu passcode y tu backup -.
Para probar esta vulnerabilidad, el proceso que he seguido es sencillo:

Paso 1: Configurar la cuenta en LinkedIN para iOS

Tras instalar la aplicación de Linkedin para iOS iniciamos sesión en la aplicación. A partir de ese momento no se solicitarán credenciales durante la apertura de la aplicación en el dispositivo.

Paso 2: Copiar a PC los ficheros que mantienen la sesión en el dispositivo

Para ello he utilizado un dispositivo con jailbreak y he copiado los mismos que el hijacking de Facebook para iOS utilizando iFunBox, que son:
Linkedin/Cookies/Cookies.binarycookies
Linkedin/Preferences/com.linkedin.Linkedin.plist
Paso 3: Cerrar la sesión en LinkedIN para iOS

Haciendo clic en la opción de cerrar sesión en LinkedIN para iOS se mata la información de sesión, y si se vuelve a abrir la aplicación se solicitará usuario y contraseña para acceder al perfil.

Figura 3: Cierre de sesión en LinkedIN para iOS

Paso 4: Cambiar la password del perfil

Esto se realiza a través de la aplicación web, para no tocar nada la aplicación Linkedin para iOS. En este punto, con la sesión cerrada y cambiada la password, lo que no debería permitir que se logara nadie con las cookies antiguas.

Paso 5: Reutilizar los ficheros de sesión

Volvemos a copiar los ficheros que habíamos guardado antes, donde se configura la sesión en LinkedIN para iOS. De nuevo usando iFunBox.

Figura 4: subida de archivos con iFunBox a un dispositivo con Jailbreak
Paso 6: Abrir LinkedIN para iOS y se iniciará la sesión automáticamente.

Es decir, que por mucho que haya cambiado las passwords, y matado la sesión, si en algún backup del dispositivo realizado en algún equipo se han quedado estos ficheros guardados, y alguien tiene acceso a ellos, podría acceder a todo tu perfil.

Saludos Malignos!

3 comentarios:

Anónimo dijo...

Pero...para saber la longitud de los passwords hay que crackearlos, ¿no? Y si han crakeado el tuyo de 20 caracteres...deberías revisar su complejidad...

Maligno dijo...

@anónimo, lee anda:

"Podría ser uno de esos 8 hashes el mío, aunque era una password compleja".

Yo procuro tener miedo a los crackers de passwords, que a veces hacen magia...

Saludos!

Yo-Mismo dijo...

El sol siempre quema

Eleven Paths Blog

Seguridad Apple

Entradas populares