Seguridad Informática #BOFHers

Inicio » Lusers, hinjenieros y consultores » MEGA, mucho marketing y pocas nueces

MEGA, mucho marketing y pocas nueces

Archivo

Haz clic para seguir este blog y recibir notificaciones de nuevos mensajes por correo electrónico.

Tras muchas horas de intentos infructuosos he logrado tener acceso al nuevo invento de Kimi DotCom, Mega, un presunto Dropbox con esteroides que no han sabido dimensionar para su presentación en sociedad. Mucho marketing y poca máquina por muy beta que ponga junto al nombre. La fecha de la presentación en sociedad de Mega no es trivial, coincide con el aniversario de la detención de Kim Dotcom por el caso de violación de derechos de autor con su anterior servicio, MegaUpload.

Mega

Mega se anuncia como «La empresa de la privacidad, más grande, mejor, más rápida, más fuerte, más segura», un buen reclamo para usuarios y empresas que quieran tener una copia de seguridad de sus datos en la red de manera segura.

Más grande sí, son los primeros en ofrecer 50GB de espacio gratuito. el resto, incluyendo el tema de la privacidad… vamos a ponerlo en cuarentena.

Existe vida antes de MegaUpload y Kim DotCom tiene un largo historial delictivo, desde traficar con tarjetas telefónicas antes de la mayoría de edad hasta comprar acciones de una empresa próxima a la bancarrota, anunciar que iba a invertir $50 millones que no tenía en ella para rápidamente vender las acciones en cuanto estas aumentaron su valor.

Se supone que fue un hacker mítico que incluso llegó a fundar una empresa de seguridad… ahora es más conocido por sus excesos de nuevo rico, desde sus fiestas en Mónaco hasta su participación en la carrera ilegal para ricos Gumball 3000, la cual ganó en 2001.

Más info de su carrera en la Wikipedia en inglés.

Desde aquellos prometedores inicios hasta la aparición de Mega ha pasado mucho tiempo y nos encontramos con algunos fallos que no parecen propios de alguien con esos supuestos conocimientos.

Lo primero que llama la atención son los términos de servicio de Mega, este está diseñado para que los archivos estén cifrados y todo se haga del lado del cliente, llegando a sus servidores ya cifrados los archivos. Esto les libera de toda responsabilidad en caso de que alguien suba archivos protegidos por derechos de autor.

Al estar cifrado con una clave privada para cada usuario, solo este puede descargar sus propios archivos, salvo que con el enlace incluya la clave de ese archivo, por ejemplo:

https://mega.co.nz/#!vNF2xTja

Este enlace nos lleva a la página de descarga (no necesita registro) pero nos pedirá la clave del archivo para descifrarlo, para descargar el archivo directamente debería incluir la clave en la url o que el destinatario la tuviera por otro método:

https://mega.co.nz/#!vNF2xTja!Qr2ZXy6gaVSDhacAnhTZuX-n-3YWKgU5h4-5QrdMArA

En este caso descargará el archivo prueba.txt tras aceptar los términos de servicio.

Podría servir como sitio para intercambiar archivos al estilo MegaUpload, pero con estos enlaces las autoridades puedes ver también que hay y solicitar a Mega el borrado de ese enlace, con la plena colaboración por parte de la empresa tal y como expresa en el punto 19 de sus términos de servicio, incluyendo facilitar los datos del usuario, la IP desde la que se conecta

Un punto que ha generado bastante controversia es el 8º:

8. Our service may automatically delete a piece of data you upload or give someone else access to where it determines that that data is an exact duplicate of original data already on our service. In that case, you will access that original data.

Aunque el CEO ya ha dado explicaciones indicando que se trataría tan solo de casos en los que el mismo usuario subiese 2 veces el mismo archivo a su cuenta, existen dudas en la red sobre este punto.

La gran duda es si se está usando cifrado convergente para evitar archivos duplicados.

Servicios bien conocidos como Dropbox también usan cifrado en sus archivos, AES-256, más potente que el AES-128 que usa MEGA. (AES-128 está aprobado por EE.UU para ser usado en documentos hasta nivel de Secreto, para los Secret y Top Secret recomiendan usar  AES-192 y AES-256.

La diferencia, además de la fortaleza del algoritmo de cifrado de archivos, es que Mega cifra el contenido en el lado del usuario y el servidor ya lo recibe cifrado, mientras que Dropbox lo transmite sin cifrar (por canal seguro https) y es cifrado en el servidor usando una clave maestra, que suele ser un hash del propio archivo, que lo identifica de forma única como una huella digital.

De esta manera cuando vamos a subir un archivo a Dropbox, este primero envía el hash para comprobar que el archivo no existe ya, si no existe lo carga en el servidor, genera el hash y en nuestra cuenta aparece el archivo con el nombre que nosotros le hemos dado. Pero si el archivo ya existe, la carga no se produce y tan solo se limita a enlazar una entrada en nuestra cuenta con ese hash y el nombre del archivo que le hemos asignado.

Si tenéis 2 cuentas de Dropbox lo podéis comprobar vosotros mismos, subís un archivo de, por ejemplo, 10Mb llamado prueba1.zip en una de las cuentas, veréis que tarda un rato en transmitir los datos. Si ahora entráis en la 2ª cuenta y tratáis de subir el mismo archivo con otro nombre, por ejemplo renombrándolo antes de subirlo a pruebadrop.zip, la carga parece ser instantánea.

En ambas cuentas habréis consumido 10 Mb de espacio y tendréis un archivo llamado prueba1.zip y pruebadrop.zip respectivamente, pero realmente al servidor solo se han subido 10 Mb de datos, ahorrando consumo de ancho de banda y de espacio de almacenamiento para la empresa que ofrece el servicio.

Esta es una práctica común que parece poco probable que esté implementada en Mega por las pruebas que he realizado a falta de inspeccionar el código javascript y los métodos de cifrado que usa, para descartar que del lado del servidor haya posibilidad de realizar un descifrado o algún método de comparar hash entre cuentas de diferentes usuarios, de ser así, esto facilitaría la labor de la industria de contenidos para eliminar todas las copias de un archivo que ellos indiquen que está protegido por derechos de autor.

Existen otros servicios, algunos de empresas de renombre y que luego enumeraré, que emplean sistemas de cifrado seguro como el de Mega, es decir, que cifran los archivos antes de enviarlos

Las prisas son malas consejeras y más cuando estás desarrollando algo por primera vez… o eso es lo que se desprende del segundo párrafo del manual para desarrolladores de Mega:

(it is also our first JavaScript project, so please bear with us)

Javascript es el lenguaje de programación empleado por Mega para hacer el único cliente que permite acceder a sus servicios y que es parte de la propia web.

El manual es pobre en descripción y pone como ejemplo el propio código de la web que está sin comentararios y sin una estructura decente como ellos mismos reconocen.

Es decir, que de momento nos podemos olvidar de aplicaciones como la de Dropbox o similares para PC, MAC y smartphones con la que poder cargar y descargar nuestros archivos de una manera cómoda, sincronizar carpetas de nuestro ordenador con nuestro espacio en Mega, etc.

Volvemos a las prisas y a que sea su primer proyecto en javascript y nos encontramos con algunos problemas a nivel técnico que, desde mi punto de vista, minan la confianza en este servicio:

1.- Las claves de cifrado son generadas por Javascript en el navegador del usuario la primera vez que accede. Uno de los problemas es la generación de números aleatorios, los ordenadores generan números pseudo-aleatorios que pueden ser «adivinados» (esto no es sencillo, pero ya ha resultado un problema anteriormente), para generar más aleatoriedad, se debe generar entropía, en el caso de Mega lo hacen detectando los movimientos de ratón y pulsaciones de teclado durante el proceso de generación de la clave.

Si el usuario no es consciente de esto y se queda mirando a la pantalla no se añade entropía alguna a la clave, la cual además dependerá en última instancia de la contraseña elegida para acceder al servicio.

Echándole un poco de imaginación, en lugar de depender de los movimientos del ratón o pulsaciones del teclado, podían haber usado la librería seedrandom y algún generador aleatorio basado en cosas tan dispares como la desintegración de átomos o bien el sonido ambiente que captan varios micrófonos como el que ofrecen en random.org.

Respecto a la clave elegida para acceder al servicio, tan solo se limitan a mostrarte si tu clave es débil, normal o fuerte, obviando recomendaciones importantes para este tipo de servicios, como que es preferible usar una clave de 20 caracteres que una de 8 por mucho que la segunda incluya mayúsculas, minúsculas y números y la primera solo sea una cadena larga de palabras concatenadas.

2.- En el email que recibimos al darnos de alta viene un enlace para confirmar el proceso.

Dicho enlace incluye una huella hash de nuestra propia clave con la que nos dimos de alta en el servicio, además de nuestra master key usada para descifrar los archivos que subamos a Mega:

Esto implica que alguien que tenga acceso a nuestro correo y se descargue la herramienta MegaCracker, puede llegar a tener acceso a nuestra contraseña y master key, aunque es posible que otras aplicaciones como HashCat puedan hacerlo de manera más eficiente.

3.- Mega es (esperemos que cuando publique esto lo hayan solucionado) vulnerable a ataques de Cross Site Scripting como demostró el usuario de Twitter @StackSmashing:

Mega XSS Bug

 

4.- A pesar de que Kim anunció en su momento que Mega estaría alojado en servidores en Nueva Zelanda, la realidad parece ser que es otra, probando desde diferentes localizaciones la mayor parte de los servidores parecen estar en el centro de datos que tiene Cogent en Kansas: http://www.datacenter9.com/datacenter/cogent-kansas-city-891

Esto implica que están muy a mano para las autoridades americanas, lo que unido a que el código Javascript se descarga desde sus servidores cada vez que accedemos a la web para ejecutar el cifrado de los datos, puede ser manipulado sin previo aviso para interceptar las comunicaciones de uno o varios usuarios y que las autoridades puedan acceder a sus datos, por mucho que la empresa esté en Nueva Zelanda y diga ajustarse a la legislación de ese país.

Si alguien necesita una explicación más técnica, la gente de fail0verflow la desarrolla en su blog.

5.- Si activas la opción «recordarme» para no tener que volver a meter tus datos de acceso la próxima vez que visites Mega, tu clave maestra de cifrado queda almacenada en el disco duro de tu ordenador sin cifrar, visible por cualquiera que tenga acceso a la carpeta Local Storage de tu navegador web Chrome.

Y más cosas que me voy a dejar en el tintero como la pobre implementación de la función de derivación de clave, si alguien quiere que lo cuente con código y datos, que lo diga en los comentarios, que solo eso me da casi para otro post.

Resumiendo, Mega es un servicio que se ha creado centrándose en la seguridad de la empresa, no del usuario, con un montón de fallos por las prisas de la simbólica fecha y por tratarse de su primera aplicación en Javascript, la cual tratan de asegurar que se carga correctamente y sin ser interceptada con un sistema muy poco seguro y que difícil solución tiene sin que del lado del cliente exista un plug-in para el navegador que pueda verificar el origen del código que se encargará de todas las operaciones de seguridad. Por no hablar de que si rompemos el cifrado SSL sobre el que el código llega hasta nuestro navegador web, podemos ser víctimas de ataques Man in the Middle para hacerse con el contenido, claves, etc que se supone viajan seguras… y con algunas implementaciones de SSL recientemente se han dado estos problemas

Si ya hay pocos problemas de seguridad en hardware y sistemas operativos, en este caso tenemos que añadir una capa más de presuntos problemas, el navegador web, totalmente necesario para acceder a este servicio.

Y ahora hablando en plata, además de los conocidos servicios de descarga de películas por torrent, buscadores de estos archivos, webs de series con visionado online, existen servicios privados en servidores a los que solo se tiene acceso por recomendación de un conocido y con precios que oscilan los 20-25€ por persona al mes para hacer frente a los gastos de servidores, tiempo de la gente que sube las cosas, etc.

He visto algunos de esos servicios, que disponen de un interfaz web muy sencillo que permite navegar por los archivos de películas, series, software, videojuegos, etc almacenados en uno o más servidores y descargarlos en nuestro ordenador.

Viendo que la API de Mega, el precio de 2TB de espacio de almacenamiento al mes y demás, no sería descabellado pensar que el target de usuario de pago sea ese tipo de servicios de descargas, que se ahorrarían dinero en almacenamiento y podrían modificar el interfaz web para que al seleccionar que queremos descargar, la cuenta de pago pase el enlace al contenido elegido y luego tan solo tengamos que entrar a nuestra cuenta gratuita a descargar la película o videojuego que nos apetezca…

Si no necesitas tanto espacio o «seguridad», Dropbox sigue siendo una alternativa interesante y cómoda de usar para almacenar copias de seguridad en la red y compartir archivos.

Si eres una empresa que quiere estos servicios que ofrece Dropbox pero con mayor seguridad…  Mega no ha inventado nada nuevo, hay empresas que llevan más tiempo haciendo lo mismo o parecido, aunque no ofrecen tanto espacio gratis, algunas tan solo una prueba gratuita de 30 días, estas son mis recomendaciones:

iDrive

Ofrecen 5 GB gratuitos, puedes conseguir 10 GB adicionales permitiendo que envíen publicidad a los contactos de tu cuenta de email, así como por recomendar el servicio.

Disponen de cliente para Windows, Mac, Linux, Android e iPhone/iPad

La aplicación permite elegir que carpetas o archivos queremos incluir en el backup, ofrece PDC (Protección de Datos Continua) y acceso a las últimas 30 versiones de un archivo, es decir, que si nos cargamos parte del texto de un documento, podremos recuperar la versión previa del backup.

Los datos son cifrados antes de ser enviados al servidor, permite dos métodos, usando el cifrado «Default», los archivos son cifrados usando una master key común, al estilo de Dropbox, permitiendo a la empresa acceso a ver el contenido de nuestros archivos si así lo deseasen. Por otra parte está el cifrado «Privado», en el que especificaremos una clave (que sea lo suficientemente larga y que podáis recordar) para cifrar los archivos.

Ojo, si perdemos esa clave, no podremos recuperar los archivos, habría que definir otra clave, borrar los archivos y crear un nuevo backup en nuestro espacio.

Permite compartir archivos con otros usuarios, pero solo en el modo de cifrado «Default», con el modo Privado solo nosotros o a quien demos la clave que usamos para cifrar, podrá acceder a los contenidos.

iDriveSync

Esta es la versión de «consumo» de iDrive, dispone de cliente para Windows, Mac, Linux, Android, iPhone/iPad y vía web puede integrarse con Facebook.

Dan gratis 10GB (11GB si pinchas en este enlace) pudiendo conseguir gratis hasta un total de 30GB por referenciar a otros usuarios, instalar la app móvil, etc.

Adicionalmente permite acceder por WebDAV (permite montar la cuenta como una unidad más de nuestro ordenador) y tener un grupo de carpetas sincronizadas como Dropbox.

También permite seleccionar cifrado «Default» o «Privado», al menos desde la app para Linux, con las mismas restricciones para poder compartir que iDrive.

Comodo Cloud

Comodo, empresa que desde hace años se dedica al mundo de la seguridad, desde certificados SSL a antivirus, ofrece 5 GB gratis, los archivos son cifrados antes de ser enviados al servidor.

Dispone de aplicación para Windows y Android, y el respaldo de una empresa con una muy buena reputación.

Wuala

Propiedad del fabricante de dispositivos de almacenamiento LaCie, Wuala ofrece 5GB de manera gratuita, con las mismas funcionalidades de Dropbox pero con cifrado de los archivos en el cliente con AES-256 y también la posibilidad de compartir ficheros usando una clave RSA de 2048 bits, bastante parecido a Mega y su AES-128 y RSA de 2048 bits para compartir archivos.

SafeSync

Con la experiencia de Trend Micro, creador de antivirus y otras herramientas de seguridad.

No ofrecen espacio gratuito, tan solo una prueba de 30 días, tras las cuales el plan mínimo es de 20GB por $39,95 al año

 


2 comentarios

  1. Luis Mauricio dice:

    Oye no se que tan bueno sea, pero yo también recomendaría el servicio de SpiderOak, valdría la pena que le echaras un ojo, saludos muy buena culturización al respecto de Mega, sigo usando mucho mejor dropbox.

Los comentarios están cerrados.