04 octubre, 2008

Otro vulnerabilidad: el "clickjacking"

Llevamos unos días ajetreados con el descubrimiento de un nuevo agujero de seguridad encontrado en los navegadores y que se ha bautizado como clickjacking (secuestro de clicks). La idea es ubicar sobre una página visible un iframe que cubra zonas con las que el usuario pueda hacer click (como un botón) y haciéndolas invisibles. De esa forma, el usuario estará pulsando sobre la un control de la página oculta en lugar de sobre donde cree que lo está haciendo (el botón que ve).

Giorgio Maone es el autor de la conocida extensión NoScript de Firefox, cuyo objetivo es navegar con la seguridad de que ningún intento oculto de acceso a los datos del usuario se realizará sin que lo perciba. Él es quien ha descrito el problema, y de hecho, él mismo ha estado usando esa técnica durante meses para conseguir que la extensión se instalase desde su página sin necesidad de que Firefox solicite permiso (en realidad se está pulsando el botón verde de la página de la extensión en addons.mozilla.org. Para comprobarlo, entrar en esta página e introducir el siguiente código en la barra de direcciones para dejar al descubierto el iframe invisible que cubre el botón de Install Now.


javascript:document.getElementById('amo-installer').style.opacity=0.7;void(0)

Así, el iframe oculto queda al descubierto.

Estamos viendo como el auge de las aplicaciones web está descubriendo un montón de problemas resultantes de la combinación de los elementos Javascript, IFrames, Ajax, y ahora también, CSS. La definición de HTML5 está a varios años de ser aprobada finalmente (hacia el 2020), por lo que es importante que se estudie bien el origen de todos estos problemas y se empiecen a implementar remedios en los navegadores que frenen la aparición de estos problemas sin que ello suponga un escollo para el desarrollo de las aplicaciones.

Así, Mark Pilgrim propone en el blog de WhatWG varias soluciones, entre las que me llama la atención la siguiente:
Rediseñar todo lo que sabemos sobre los modelos de seguridad de HTML y el navegador para hacer posible que los dominios y las páginas indiquen políticas muy específicas de inclusión y exclusión para todo tipo de enlazado (como src= o href=) o referenciado de forma que evitar este tipo de vulnerabilidades consista sólo en indicar alguno de los casos controlados por este mecanismo.
Lo cierto es que estos problemas suponen un hándicap al desarrollo de las aplicaciones web y avanzaríamos mucho más rápido si resultase más fácil evitarlos.

Publicar un comentario en la entrada

Últimos links en indiza.com