Sunday, 1 November 2015

Irony: Contraseñas robadas de los gestores de contraseñas

La ironía se produce cuando algo que debería ser de una forma se comporta justo de la contraria. Como cuando el amor duele, quien más te quiere te hace más daño, o lo que debería servir para proteger tus contraseñas se convierte en el que te publica todas tus contraseñas. Es ironía en estado puro que demuestra en máxima expresión la esencia del ser humano. Este es el caso que nos ocupa hoy, para el post-Halloween. Una de miedo: Gestores de contraseñas que exponen tus passwords.

Figura 1: Contraseñas robadas de gestores de contraseñas

Los gestores de contraseñas, como muchos sabéis, son servicios que guardan en pequeñas bases de datos personales cifradas con una master key las credenciales que tienes que utilizar en tantos y tantos servicios. Lógicamente, si alguien consigue la master key o es capaz de descifrar la base de datos adiós a tus identidades. Ejemplos de estos son los populares 1Password, LastPass o KeePass de los que seguramente muchos de vosotros seáis usuarios, pero existen otras formas de tener bases de datos de credenciales similares. Desde las cacheadas en los navegadores que se pueden cifrar con una master key, el iCloud KeyChain o el servicio SCCAID que hicieron unos alumnos del Máster de Seguridad del la UEM que automatizaba el cambio de contraseñas mediante el control por Latch.


Figura 2: SCCAID controlado por Latch

Al final, todos estos gestores de contraseñas existen porque la gente se esfuerza en aplicar más caballos a los carruajes en lugar de pasar ya al motor de gasolina. Esto quiere decir que, en lugar de aplicar sistemas de segundo factor de autenticación en todas las identidades, siguen poniendo más caracteres y más raros a las passwords, haciendo que sea imposible recordarlas y por tanto que haya que apuntarlas. Lo siento, las contraseñas complejas en servicios online no valen una mucho.

Figura 3: En Content.js las passwords están sin cifrar

El asunto es que, cualquier gestor de contraseñas, llámese 1Password o Apple iCloud Keychain, necesita cifrar y descifrar la contraseña porque al final el usuario debe introducirla en el login correspondiente en texto plano, así que siempre tiene que poder descifrarse. Este el caso que el ingeniero de Microsoft Dale Myers ha puesto sobre la mesa con 1Password. En el caso concreto de este gestor de contraseñas, las passwords se almacenan cifradas en un fichero llamado 1Password.hml que debe ser descifrado, pero las claves descifradas en texto plano están en otro llamado content.js que está en otra ubicación.

Figura 4: Buscando bases de datos de 1Password

Lo más gracioso es que, como muchos sabéis, estos ficheros pueden estar almacenados en servidores web o servicios cloud, por lo que no es difícil localizar usando Google o Bing, ficheros con las claves de las personas. Con un sencillo dork buscando ficheros publicados en esas rutas es sencillo llegar a las bases de datos de 1Password y por supuesto a muchas claves en texto claro. Puedes jugar con el dork para sacar aún más ficheros. Hay muchas formas de dar con ellos.

Figura 5: Una base de datos en 1Password cifrada

Al final, muchos usuarios suben sus bases de datos a servidores web que tienen problemas con la indexación. Esto no es raro y ya os conté hace tiempo como incluso un enlace con credenciales en EverNote cacheado se podía pasar meses en la caché de Google por una mala política de indexación. Ten mucho cuidado con dónde subes tu base de datos de contraseñas.

Descifrando las bases de datos de contraseñas

Aunque no se pueda acceder a las claves en texto claro como en el caso de 1Password, si alguien accede a tu base de datos de contraseñas siempre podrá realizar un ataque de fuerza bruta en local, con lo cual tendremos lo peor de todos los casos posibles. Te han robado el gestor de contraseñas y no te has dado cuenta. 
En el caso de LastPass, durante el mes de Junio les robaron las bases de datos de sus cuentas, quedando expuestas todas las credenciales con las passwords cifradas. Por supuesto, si la contraseña era débil y no tienes un 2FA debes cambiarla cuanto antes, porque no será difícil sacar algunas de ellas. De hecho, en la próxima BlackHat dos investigadores españoles van a mostrar cómo se pueden recuperar algunas de esas credenciales desde las bases de datos de LastPass.

Figura 7: KeeFarce para descifrar bases de datos de KeePass

Por último, en el caso de KeePass existe una herramienta llamada KeeFarce que, como se recuerda en Segu-Info, permite sacar las contraseñas de una base datos incluso si está guardada en la versión 2.30. Recordad que todos los sistemas tienen que permitir descifrar las claves para que puedan ser utilizadas, al igual que los almacenes de configuración de herramientas que utilizas en tus sistemas. Donde almacenes tus credenciales, debes tener mucho cuidado.

Saludos Malignos!

No comments:

Post a Comment