viernes, 12 de septiembre de 2014

Cómo vender cinco millones de bragas desechables

Hace unos días un usuario bajo el nick 'tvskit' publicó una entrada en un foro ruso sobre Bitcoin, la moneda virtual. El título de la entrada venía a decir: "GMail, cambia la contraseña". En ella adjuntaba un archivo de texto con casi 5 millones de credenciales de cuentas de correos. Nombre de usuario y contraseñas en texto plano, nada de hashes.

Al poco, uno de los administradores del foro editó el archivo borrando las contraseñas, dejando solo los nombres de usuario. De esta forma evitaban posibles problemas legales y a su vez permitía que todo aquel que quisiera pudiese bajar el archivo para consultar si alguna de sus cuentas estaba allí.

La gran mayoría de cuentas pertenecen al dominio de gmail.com. El resto a yandex.ru y una a mail.ru. Curiosamente, estos dos últimos dominios habían sido objeto de una filtración similar hace pocos días y de una magnitud (millones) semejante.

Hubo medios que se apresuraron a publicar la noticia dejando en el aire la posibilidad de que los servidores de GMail pudiesen haber sido objeto de un ataque. Google no esperó mucho para despejar la incógnita. A través de una entrada en el blog de "Google Online Security" (escrito a ocho manos…), explicaron que ellos ya detectan activamente este tipo de filtraciones y que tan solo el 2% de las cuentas estaban completamente operativas y eran accesibles. Sin embargo otras fuentes elevan esa tasa al menos al 60% de las cuentas.

¿Entonces no hubo ataque?

No hay motivos que indiquen que haya sido una brecha. Si observamos el archivo todas las credenciales aparecen en texto plano, es habitual que las filtraciones de credenciales tengan la forma de usuario/hash, por supuesto si el sitio atacado no almacena las contraseñas en texto plano, que los hay. A veces también es común que parte de los hashes más comunes hayan sido previamente pareados, no es el caso.

Este tipo de filtraciones son comunes. Solo basta hacer una búsqueda en determinados sitios y salen cientos de cuentas. Esto ha llegado a los titulares por el grueso del archivo y a quien le salpica: Google.

Si tuviésemos que dar una explicación del origen y la causa de la filtración probablemente apuntaríamos al mercado negro. Un archivo así, "fresco", vale un buen montón de dinero. Por fresco nos referimos a la validez de las cuentas. Si tienes un archivo con un millón de cuentas de hace varios años la gran mayoría de cuentas o habrán cambiado credenciales o habrán sido abandonadas por sus usuarios. Eso no vale nada.

Al igual que los círculos en el tronco de un árbol indican su edad, la validez de un grupo amplio de cuentas tomadas al azar del archivo podrían indicar su antigüedad. En este caso más de la mitad, puede que más, podrían no ser válidas. Es bastante probable que el archivo fuese perdiendo valor hasta que alguno de sus propietarios lo dejase caer en un foro privado.

Hace unos días hablábamos de políticas de contraseñas. Otro dato que indica la edad de ésta información (desde que se creó o empezaron a añadir cuentas) es observar como algunas contraseñas ya no podrían ser aceptadas cuando se crea una nueva cuenta, fruto de la evolución o endurecimiento de las reglas del sitio para crearlas.

¿De donde salen esas cuentas?

Phishing y troyanos por supuesto. Es la manera más fácil, masiva y sencilla para robar cuentas. No tienes que atacar servidores ni trabajar sobre los hashes, basta con un phishing o un troyano efectivo para que poco a poco el archivo de credenciales robadas crezca.

Evidentemente cinco millones de cuentas no es el fruto de un par de meses recolectando. Ese archivo, probablemente, comenzó hace años a recibir entradas. Incluso es posible que su origen sea la concatenación de otros muchos archivos más pequeños.

¿Para que se usan las cuentas?

Imagina que tienes una tienda online que vende ropa interior desechable con estampaciones inspiradas en la escuela pictórica de Düsseldorf y con sabor a delicados quinotos de temprano abril. Las ventas no han marchado muy bien últimamente, así que decides recolectar direcciones de correo y enviar publicidad de tu tienda en un acto de silenciosa desesperación, lo que vulgarmente se llama: "espamear".

Mientras martilleas acompasadamente los dedos de una mano sobre el mostrador y recargas compulsivamente la pestaña de ventas que tienes abierta en el navegador con la otra, te das cuenta de un pequeño detalle que habías pasado por alto: el casitodopoderoso y omnipresente filtro de spam de GMail.

Suspiras y piensas en que una forma sencilla de saltarte el filtro de GMail sería disponer de las credenciales y enviar el correo desde la misma cuenta. Sencillo, ¿verdad?

Ese es solo uno de los motivos por los que estas listas valen un dinero. Hay algunos más.

Echemos un vistazo al interior de 5.000.000 de credenciales

En el departamento de auditorías de Hispasec nos interesa este tipo de archivos (no, no vamos a vender ropa interior desechable) con un motivo distinto. Cuando observamos un archivo con credenciales filtrado procesamos la información realizando un análisis estadístico y desechamos el archivo original borrándolo.

Nos interesa ese análisis de datos por el elemento práctico. Así, si un cliente nos pide como pueden crear contraseñas robustas, les respondemos como no crear contraseñas débiles.  Igualmente en los test de penetración son sumamente útiles para crear ataques híbridos sobre sistemas de autenticación una vez que enumeramos cuentas en esos sistemas, es otra historia. El caso es que es útil observar como se comporta el usuario en su conjunto cuando se trata de elegir una opción de entre muchas, averiguar el patrón o por lo menos acercarte.

El archivo contiene un total de 4.926.178 credenciales, 3.120.155 si lo convertimos en un conjunto de elementos únicos.

Sin sorpresa, las diez contraseñas más repetidas coinciden prácticamente con otras filtraciones analizadas anteriormente:
  
Contraseña
Repeticiones
123456
48003
password
11593
123456789
11162
12345
8119
qwerty
5925
12345678
5253
111111
3524
abc123
3016
123123
2990
1234567
2915


La longitud de las contraseñas tampoco depara sorpresas salvo grupos de contraseñas con 1, 2 y 3 caracteres o un pico de 2512 credenciales con hasta 32 caracteres. ¿Hashes en md5? Si, como este: b2a07ce4eb01e6cbcae28142934cdd2f cuyo par o argumento de la función era la cadena: arch1tects. ¿Entonces hay hashes? Si, pero ¿Qué impide usar un hash como contraseña? Huevo o gallina no sabremos que paso con esa entrada y otras similares.

Al igual que en anteriores análisis el 8 se lleva el primer galardón. También curiosa la predilección por números pares, ¿Nos acercamos a la singularidad?:



Ahora veamos el porcentaje de composición de la cadena. Qué caracteres son letras mayúsculas, minúsculas, cifras o símbolos especiales. Otra característica: ausencia de mayúsculas. Da la impresión de que hubieran pasado el archivo por un filtro para neutralizar las mayúsculas, curioso.

Composición
Porcentaje
minúsculas y números
(42.55%)
minúsculas
(40.05%)
solo números
(15.74%)
minúsculas, símbolos y números
(0.8%)
minúsculas y símbolos
(0.52%)
símbolos y números
(0.09%)
solo símbolos
(0.01%)


Dejamos las cifras aquí. Para este análisis rápido hemos usado Pipal, disponible aquí:
https://github.com/digininja/pipal Programada en Ruby por Robin Wood, conocido por Digininja. Hemos pasado los datos a nuestro matemático para que nos devuelva algo con lo que podamos masticar, pero este vistazo rápido nos muestra lo poco que evolucionamos en concepto de elección de contraseñas.

¿Cómo puedo asegurar mi cuenta?

Cambia tu contraseña si ha pasado mucho tiempo, elige una contraseña segura y aprovecha todas las funcionalidades de seguridad que te ofrece el sitio: doble factor autenticación, etc.

¿Cómo puedo saber si mi cuenta está en ese archivo?

Existen muchos servicios por Internet donde puedes consultar esta duda, sin embargo cuidado, el hecho de meter una cuenta de correo en uno de estos sistemas podría conllevar el riesgo de que tu cuenta pase a engrosar una lista de spam. Si nos pides recomendación hemos usado varias veces el que administra Troy Hunt: https://haveibeenpwned.com

Otra manera de conocer si tu cuenta ha sido filtrada es notar un aumento de spam en la bandeja de entrada ¿Has recibido publicidad no deseada sobre ropa interior con sabor?

Más información:

Гмайл - меняй пароль

Cleaning up after password dumps

Не отставая от «Яндекса» и Mail.ru: В Сеть выложены пароли от 5 миллионов ящиков GMail
  
David García
Twitter: @dgn1729




1 comentario:

  1. Gracias por la información. Según puedo leer, sigue siendo un problema muy común tener las contraseñas poco seguras, además de utilizar una sola para todo. Sigue siendo un problema con un gran factor humano, así que aunque hagan un sistema seguro al 100%, siempre habrá algún humano que cometerá un fallo, errar es de humanos.

    ResponderEliminar