Buscar este blog

martes, 12 de marzo de 2013

Llenar el disco duro con solo visitar una web

 

Se ha encontrado un método para, a través de las nuevas funcionalidades de HTML5, hacer que el disco duro se llene por completo con solo visitar una web. Esto podría considerarse una especie de denegación de servicio del sistema, que aprovecha la potencia que ofrece el lenguaje para otros fines.

Feross Aboukhadijeh ha creado el "HTML5 Hard Disk Filler". En realidad no es más que una manera de eludir las restricciones de tamaño de la tecnología Web Storage de HTML5 y saturar así el disco duro de información.

Web Storage está ya en todos los navegadores modernos, y permite almacenar datos en el contexto del navegador y que sean manipulados a través de JavaScript. Por ejemplo, con los comandos: localStorage.setItem("key", "value"), localStorage.getItem("key")... La diferencia con las cookies, es que  permite almacenar mucha más información. Hasta 10 megas (en teoría) frente a los 4k de las cookies y que no son automáticamente enviados al servidor. El servidor no tiene acceso a esos datos a no ser que el cliente los envíe expresamente a través de JavaScript. Hablamos de esto hace tiempo cuando se detectó que cierto malware estaba haciendo uso de estas funcionalidades para pasar inadvertido.

Web Storage permite almacenar una cantidad de megas por cada dominio. En Internet Explorer (el que más) hasta 10 megas. No se ha encontrado la forma de eludir esta restricción directamente, sino que el truco usado por Aboukhadijeh es el de utilizar muchos subdominios y almacenar información por ellos. Aunque ninguno exceda la cuota permitida, se acumulan en el disco y pueden llegar a llenarlo, saturando el sistema.

Prueba de concepto

En http://www.filldisk.com se ha colgado una prueba de concepto con bastante humor. Llena el disco de imágenes de gatos mientras suena la música del "Trololo".

Firefox es inmune y no permitirá que se cargue espacio indefinidamente. Opera preguntará una vez se exceda el límite. Chrome, Safari e Internet Explorer sin embargo, simplemente permitirán que se llene el disco.

Físicamente, los datos son almacenados en diferentes puntos según el navegador. En Chrome, aparecerán en la carpeta de usuario (en el caso de Windows %LOCALAPPDATA%\Google\Chrome\User Data\Default\Local Storage) múltiples ficheros de 5 megas, con los subdominios mencionados. Son ficheros SQLite.

En Opera los podemos encontrar en

%LOCALAPPDATA%\AppData\Local\Opera\Opera\pstorage. Al mirar el index.dat, se podrá saber dónde han ido a parar los datos.

En Safari para Windows, lo podemos encontrar en %LOCALAPPDATA%\Apple Computer\Safari\LocalStorage. Un dato interesante es que el problema funciona en los teléfonos móviles con navegador Chrome o Safari. Si un atacante utiliza esta técnica, el teléfono podría quedar saturado.

Aunque en la página se asegura que se borra el espacio de las imágenes de gatos una vez pulsado el botón, es conveniente revisar si ha quedado algún "resto" en los lugares correspondientes. En 2011 ya se advirtió que esto podría ser posible. Abusar del almacenamiento a través de subdominios. No se sabe aún si los navegadores solucionarán este problema. Por el momento, el usuario tampoco puede defenderse de forma simple, porque por ejemplo en Windows no es sencillo crear cuotas para carpetas concretas. Sí para volúmenes.

Más información:

Web page fills up hard disk

http://www.h-online.com/security/news/item/Web-page-fills-up-hard-disk-1814634.html

Anatomy of a "feature" - what happens if a website grabs all your disk

space?

http://nakedsecurity.sophos.com/2013/03/03/what-happens-if-a-website-grabs-all-your-disk-space/

5 Obscure Facts About HTML5 LocalStorage

http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html

El malware ya se aprovecha del HTML5

http://unaaldia.hispasec.com/2012/09/el-malware-ya-se-aprovecha-del-html5.html

Sergio de los Santos

ssantos@hispasec.com

No hay comentarios.:

Publicar un comentario