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
Anatomy of a "feature" - what happens
if a website grabs all your disk
space?
5 Obscure Facts About HTML5 LocalStorage
El malware ya se aprovecha del
HTML5
Sergio de los Santos
Twitter: @ssantosv
Los navegadores tienen que implementar alguna protección contra esto. Muy delicado. Excelente nota. Este tipo de noticias, con prueba de concepto incluida, son las mejores de Una al día.
ResponderEliminarexcelente articulo y deberíamos de estar mas atento con los web site que visitamos para no ocasionar algún daño a nuestra pc
ResponderEliminar¿Deben existir esos subdominios para poder realizar el ataque?
ResponderEliminarY por eso en los sistemas Unix es habitual crear una particion para el /home (y para /tmp, /var, etc).
ResponderEliminarHace como unos 40 años que se sabe de problemas similares a este, pero parece que los Window$ no aprenden nunca.
Sí, en este caso los subdominios resuelven y llevan a la web principal. Es trivial crear miles de subdominios de forma automática si es necesario.
ResponderEliminarEs cierto que en Windows no es tan habitual crear una partición para el "home", pero es perfectamente posible y una buena contramedida en este caso, como indicas.
Y se puede montar la particion en C:\Users\ o como? Lo pregunto por que de verdad lo desconozco.
ResponderEliminarDijiste "Es cierto que en Windows no es tan habitual crear una partición para el "home", pero es perfectamente posible", pero no has respondido a "como hacerlo".
ResponderEliminarVeo que defiendes W$ con argumentos falsos, muy profesional, si.
http://laboratorio.blogs.hispasec.com/2013/03/una-particion-propia-para-tu-home-en.html
ResponderEliminar