22 noviembre 2010

Los clusters de GPU de Amazon. ¿Cuanta pri$a tienes?



Hace unos días muchos blogs, como Slashdot, se hacían eco de una noticia: un cluster de Amazon era utilizado para romper contraseñas en la nube. Con la palabra "cluster", "nube" y "Amazon", es normal que transcendiese como si realmente fuera algo nuevo, que no lo es, o una ganga, que tampoco. La realidad es otra y vamos a ver detalladamente y con algunas pruebas el por qué.

Amazon Elastic Compute Cloud, o Amazon EC2 ofrece un servicio en el que por 2.10$ la hora (no es muy barato que digamos), nos permite disponer de una instancia con 22Gb de RAM, 33.5 EC2 (2 x Intel Xeon X5570, quad-core “Nehalem”), y 2 NVIDIA Tesla “Fermi” M2050 GPUs.

Tesla es la primera generación de GPUs de NVIDIA diseñadas como GPGPU (General Purpose GPU), y dispone de una amplia gama de productos con precios que pueden rondar los 13.000$ por equipos completos.


En el artículo original "Cracking Passwords In The Cloud: Amazon’s New EC2 GPU Instances", se utiliza CUDA-Multiforcer, para romper una lista de 14 hashes SHA1, con contraseñas de 1 a 6 caracteres en 49 minutos. No entiendo muy bien porque el autor decidió usar esta herramienta, cuando ha quedado demostrado que oclHashcat es prácticamente el doble de rápido.

Decidí probar el servicio yo mismo y compararlo con el rendimiento de mi equipo y estos son los resultados usando oclHashcat y su comando de ejemplo (example.sh/example.cmd) para romper una lista de hashes MD5:

En mi Windows 7 con GTX460: 2 minutos 23 segundos


En Amazon EC2 con 2 Tesla M2050: 2 minutos 39 segundos


Las 2 Nvidia Tesla M2050 son más lentas que una tarjeta diseñada para su uso doméstico.

El único caso en el que merece la pena el servicio de Amazon es cuando se dispone de varias instancias (a multiplicar el precio) durante varias horas, con un máximo de 8 sin necesidad de una petición especial. ¡Ah! y habiendo desarrollado alguna herramienta o método para distribuir el trabajo, ya que en la actualidad no existe ninguna.

De esta forma, un día completo con 8 instancias corriendo son 403,2$ y una semana 2822,4$. Un poco más en detalle en la siguiente tabla con instancias por horas consumidas:



1 4 8
1        2,10 $              8,40 $               16,80 $
24      50,40 $         201,60 $            403,20 $
168 (7 días)    352,80 $      1.411,20 $         2.822,40 $


Pagando 8 instancias durante 7 días equivaldría al procesamiento de un solo equipo durante 56 días, es decir, habría una diferencia de 49 días. ¿Quién se lo puede permitir?


1 4 8
1 1 hora 3 horas 7 horas
24 1 día 3 días 7 días
168 (7 días) 7 días 21 días 49 días


Como curiosidad, el ejercicio de ejemplo  hecho sin GPU y con hashcat tiene una duración de 22 minutos y 45 segundos (unas 10 veces más lento), recuperando 2906 hashes frente a 1359.



Otras pruebas se están haciendo con Pyrit con resultados similares.

16 comments :

Román Ramírez dijo...

Por mi propia personalidad iconoclasta, me encanta ver como la gente desmonta tópicos, pero ver un artículo tan bien medido me parece genial.

Mi enhorabuena.

Alejandro Ramos dijo...

Muchas gracias Román!

h0f dijo...

Guapisimo, esto me ayuda a decicir en este tipo de compras. Aunque espero que nunca desveles el secreto de los reyes magos. De los mejores posts del blog sin duda.

inedit00 dijo...

Enhorabuena por el artículo. Muy bueno.

Un saludo y a seguir así con el blog.

Alejandro Ramos dijo...

@h0f, @inedit00 me alegro que os haya gustado!

Un saludo!

pachín dijo...

Está genial!! y te hace pensar un poco en estas ofertas tan maravillosas que parecen reinventar la pólvora.

Muy buen trabajo :)

Matías dijo...

Buen articulo Alejandro.
Como siempre, hay que leer entre lineas ante este tipo de ofertas.

Saludos!

Rafael Vidal dijo...

Enhorabuena por el trabajo!!Gran artículo!!Un saludo!!

Alejandro Ramos dijo...

@pachin, @Matias, @Seguridad de la información. Gracias nuevamente!

Alejandro Ramos dijo...

@pachin, @Matias, @Seguridad de la información. Gracias nuevamente!

Matías dijo...

Buen articulo Alejandro.
Como siempre, hay que leer entre lineas ante este tipo de ofertas.

Saludos!

pachín dijo...

Está genial!! y te hace pensar un poco en estas ofertas tan maravillosas que parecen reinventar la pólvora.

Muy buen trabajo :)

Román Ramírez dijo...

Por mi propia personalidad iconoclasta, me encanta ver como la gente desmonta tópicos, pero ver un artículo tan bien medido me parece genial.

Mi enhorabuena.

manespgav dijo...

La prueba que ofreces no es valida, ya que se esta comparando un hash MD5 (el tuyo), con un SHA1!! que es el que se habla en el crackeo en la nube...

Alejandro Ramos dijo...

No entiendo lo que dices, Todos los pantallazos son de MD5:

[root@velouria ~]# echo -n 'jtylz5201314' | md5sum 87976db815e33dbad405c33f1a26c75e -

[root@velouria ~]# echo -n 'gemzsingh' | md5sum - 211d8de8cba080fb2549d0ed885b37f2 -

[root@velouria ~]# echo -n 'ralfpascal' |md5sum - bbfadefe3217d0381da1c7d911d1886e -

manespgav dijo...

Discuplas, un error de lectura.