Seguridad Informática #BOFHers

Inicio » Lusers, hinjenieros y consultores

Category Archives: Lusers, hinjenieros y consultores

Impresoras HP accesibles desde Internet y ataques de modificación de firmware

El buscador de Google es una herramienta muy útil para encontrar vulnerabilidades y no me estoy refiriendo solo a exploits, info de CVE, etc.

Trasteando por la red he dado con una consulta muy interesante en Google:

inurl:hp/device/this.LCDispatcher

Los resultados devueltos son el panel de control de miles de impresoras HP alrededor de todo el planeta, que entre otras cosas permite imprimir archivos .ps en remoto, algunas otros tipos de archivos como .txt, y muchas de ellas actualizar firmware, cambiar la configuración de la impresora, etc.

En IronGeek muestran varias acciones que se pueden llevar a cabo con estas impresoras, algunas en remoto dependiendo de la configuración del firewall de la red, que visto que dejan salir al exterior a las impresoras sin ningún control, no auguran nada bueno.

En los resultados de Google hay muchas direcciones IP que habría que investigar, mirando por encima y tirando de Ripe he dado con 3 universidades españolas y un par de empresas extranjeras.

Pantallazo

Universidad Politécnica de Madrid

La primera impresora elegida al azar del listado de Google pertenece a la Universidad Politécnica de Madrid.

Pantallazo-4

En la página de estado de la impresora vemos que el firmware es de 2010, en la página de soporte de HP la última versión del firmware de esta impresora es de 2012, más allá de que puedan existir vulnerabilidades en ese firmware, lo realmente preocupante es la posibilidad de modificarlo e instalar uno con malware como se mostró en el 28th Chaos Communication Congress.


Otras impresoras no ha sido necesario buscar la IP en Ripe, en la propia url muestran que pertenecen a la Escuela de Ingenieros de la Universidad de Valladolid:

Pantallazo-2

Y suma y sigue, Universidad de los Andes, el MIT, la Universidad de Valencia… la lista es interminable.

Comprueba si tu impresora, HP o de otra marca, está visible en la red de redes, no vayas a estar dejando una puerta de entrada remota a un atacante.

Si os entrar el ansia de imprimir algo en remoto, aprovechad para echar una mano a aquellos que no se han dado cuenta de que tienen este problema enviándoles a imprimir este archivo… Vale, no es divertido el contenido, pero ya sabes eso de hoy por ti, mañana por mi.

 

MEGA, mucho marketing y pocas nueces

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

 

Rompiendo el sistema de cifrado definitivo antes de que salga

Ampliando: Os recomiendo leer esta entrada en Naukas, el autor también es físico y se ha tomado en serio diseccionar la solicitud de patente en lugar de reírse del autor y de los periodistas que le han dado pábulo.

Hace apenas una hora me he topado con esta noticia en Barrapunto, Investigador español presume de crear el algoritmo de cifrado definitivo.

De ahí paso por la noticia que enlaza en El Mundo, Un físico reta a los hackers y vía Google por Patente valenciana antipiratas. Aquí el texto de la solicitud internacional de patente.

Rebusco un poco más y me encuentro que en Kriptópolis apuntan a una posible vulnerabilidad… Os seré sincero, tras leer las noticias y un vistazo rápido a la patente , me quedé sin ganas de leer la explicación de Kriptópolis… para matemáticos y físicos resultará interesante, para un administrador de sistemas resulta aburrido e irrelevante para conseguir romper este sistema de cifrado “definitivo”.

Resumiendo el sistema bastante, se trata de cifrar un mensaje en base a dos claves, una de ellas llamada de procedimiento, la primera parece ser una tabla de equivalencias basada en la teoría de residuos.

Bueno, no se muy bien si es así exactamente, lo he leído por encima en la solicitud de patente y he perdido el interés al encontrarme un ladrillazo como este:

Por lo que respecta a los sistemas de cifrado simetrico, uno de los lenguajes mas solventes continua siendo el llamado algoritmo DES (Data Encryption Standard)

Primera pista, alguien que dice haber creado el algoritmo de cifrado definitivo no tiene ni idea de algoritmos de cifrado.

DES, con una longitud de clave muy pequeña (56 bits) y desarrollada en los años 70, ya se rompía mediante fuerza bruta durante los 90, en el 98 hicieron falta solo 56h para romperlo, y la potencia de los ordenadores por aquel entonces era ridícula comparada con la que tenemos hoy en los teléfonos móviles.

En la propia patente viene un dibujo con el funcionamiento:

algoritmodefinitivo

Se trata de un sistema de cifrado simétrico en el que emisor y receptor deben ponerse de acuerdo antes en cual será la clave de ls tabla de equivalencias y la clave de protocolo, sin especificar como se pondrán de acuerdo ambos… ¿una libreta de claves (pero digital) al estilo de las que usaba la máquina Enigma del ejército alemán?

Segunda pista, este hombre puede ser un teórico fantástico, un físico de renombre, pero desconoce bastante el funcionamiento de los ordenadores.

Imaginemos por un instante que he entendido como funciona y se implementa el algoritmo, que no he leído el enlace anterior de Kriptópolis y que acepto el reto de este hombre.

Como no soy un experto en algoritmos de cifrado a nivel matemático ni me molesto en calcular el tiempo que me llevaría romper la clave por fuerza bruta, así que recurriremos a algo mucho más sencillo y ya no tan sofisticado:

1.- Interceptar las comunicaciones para obtener el mensaje cifrado.

2.- Mediante ingeniería social hacer que el destinatario se instale un troyano, un keylogger y algún programa para volcar la memoria de la máquina a disco adaptado para que se ejecute cuando se abra el programa de descifrado.

Si disponemos de acceso a la máquina podemos emplear algún ataque usando un Firewire, porque al final, por muy complicado que sea este sistema, al ser descifrado por el receptor, requerirá de una aplicación que cargue en memoria las tablas y el código del protocolo, además de necesitar que el usuario ponga cualquier otro tipo de clave adicional para hacerlo funcionar.

En algún momento, además de disponer en memoria de las tablas, tendremos también el texto descifrado en memoria, pudiendo acceder de manera relativamente sencilla a ellos, sobre todo comparado con un ataque por fuerza bruta contra algo que se supone que tiene infinitas combinaciones a la hora de cifrar el contenido.

En el caso de usar este sistema para evitar la piratería de contenidos, la cosa es aun más sencilla, ya que los dispositivos físicos de reproducción como un DVD deberán tener las tablas y el código de protocolo en su hardware, con lo que tarde o temprano se podrá descifrar como pasó ya con el CSS de los DVD a finales de los 90… estos dispositivos podrían conectarse a la red e ir cambiando las tablas, pero entonces sería necesario otro sistema de cifrado no basado en tablas por el mismo problema de antes.

Y fin, una hora entre leer la solicitud de patente y encontrar una manera sencilla y rápida de descifrarla, sin fuerza bruta, sin complicados cálculos… solo aplicándole un poco de la realidad en la que vivimos cada día los BOFHers y escribir este post.

A %d blogueros les gusta esto: