jueves, 31 de mayo de 2012

El sitio es el oficial, pero ¿y el archivo que estoy descargando?


Michal Zalewski, conocido como 'lcamtuf', ha publicado una interesante prueba de concepto que demuestra cómo sería posible engañar a un usuario haciéndole creer que está descargando un archivo de un sitio legítimo.

En la prueba, al hacer click, el usuario ve cómo su navegador abre una nueva pestaña, se dirige al sitio oficial (y auténtico) de Adobe y descarga un archivo que parece ser una actualización de flash.

En realidad este archivo no se descarga desde la página oficial, sino desde la pestaña anterior. Aun así el usuario no detectará ningún cambio en la barra de direcciones ni ninguna señal aparente que le advierta que el archivo no pertenece a la pestaña activa. En ningún navegador.

Veamos el código de la página atacante, situada aquí (http://lcamtuf.coredump.cx/fldl/):




Es un simple botón que llama a la función 'doit' cuando se pulsa.



La función javascript 'doit' abrirá una nueva ventana (o pestaña) que apuntará al sitio de descarga de flash. Adicionalmente ejecutará la función 'donext' cuando pasen 4,5 segundos.





 


La función 'donext' abrirá una segunda ventana que no será visible ya que únicamente se dirige a http://199.58.85.40/download2.cgi e inicia la descarga de un ejecutable.

Lo interesante es que el inicio de la descarga no será evitado, ni el navegador cambiará a la pestaña o ventana donde se origina. Sin embargo la sensación del usuario es que la descarga se ha efectuado desde la página original de Adobe.

Un efecto que hemos observado es que posteriormente sí se descarga el archivo original que pertenece a Adobe. Se verá en disco como una copia del anterior. Chrome es el único que avisa de que el sitio está intentando la descarga de varios archivos. En Opera, por ejemplo, se observaría una dirección diferente en el diálogo de descarga, al igual que Internet Explorer. Pero ninguna de estas advertencias parecen muy llamativas.

También merece ser señalado que durante unos instantes se observa en la barra de direcciones de la ventana objetivo la carga del manejador:

data:text/html,<meta http-equiv="refresh" content="0;URL=http://get....

Es precisamente el uso del pseudo protocolo 'data' el que permite crear una nueva página al abrir la nueva ventana. 'data' es comúnmente usado para incrustar pequeñas imágenes (favicons) en base64. La página creada tan solo contiene un elemento 'meta' que cargará la página de Adobe.

Las implicaciones de seguridad que podrían ser potencialmente explotadas son bastante obvias. Un atacante podría engañar a un usuario para que descargue un archivo malicioso haciéndole ver la página oficial de un producto cualquiera.

Zalewski ha reportado la vulnerabilidad a los principales navegadores, si bien la respuesta que ha obtenido a sido tibia, incluso Microsoft, según Zalewski, le ha comunicado que no considera esté fallo una vulnerabilidad. Firefox no ha confirmado su parcheo y Chrome ha indicado que lo parcheará pero no ofrece una fecha concreta.

Más información:

Yes, you can have fun with downloads


David García