jueves, 2 de octubre de 2008

Clickjacking en la red

Hay un tema muy movido en la red, mucho texto corre al momento sobre él: la vulnerabilidad de clickjacking.

Los hackers, investigadores, etc. que descubrieron esta vulnerabilidad dicen que no tiene nada que ver con el uso de javascript y que es inherente a la actual tecnología de browsers, por lo que todos ellos están afectados, también explican que no se soluciona con un simple parche lo que lleva a pensar que puede ser un problema lógico en la arquitectura estándar de diseño de los browsers a nivel de programación (de hecho, es así al parecer).

Por otra parte en algunos sitios ya se publican distintos ejemplos de código con javascript que dan supuestos "ejemplos de clickjacking" cuando los que descubrieron esta vulnerabilidad siguen negando que esos ejemplos sean la nueva vulnerabilidad. Los ejemplos funcionan realmente, e incluso hay reportes en foros que confirman que ya están en uso en la red y circulando en avisos publicados en sitios de alto volumen de tráfico.

Sin embargo queda el hecho de que esos ejemplos usan Javascript, que como ya se mencionó, no sería parte de la vulnerabilidad de clickjacking, incluso está la pauta dada por los descubridores de que deshabilitar javascript no serviría para impedir que funcione la vulnerabilidad, algo que sí frena en cambio, las técnicas de clickjacking que ya circulan al momento basadas en javascript (buscar "clickjacking+noscript" en google para ver más detalles).

La línea de tiempo de los acontecimientos del descubrimiento de la vulnerabilidad fue, básicamente,

- la investigación inicial,
- desarrollo de la prueba de concepto,
- de ahí se pensó que era una cuestión limitada a parches de los teams de desarrollo de los navegadores, luego los investigadores hicieron publico el tema anunciando su participación en el evento OWASP para explicar la nueva vulnerabilidad,
- al poco tiempo la prueba de concepto derivó en un exploit muy efectivo y que al parecer afecta mucho a Adobe,
- luego el pedido de Adobe de mantener esto en secreto hasta que no se tenga mayor capacidad para resolver el problema,
- y ahora la pura "seguridad por oscuridad" donde los descubridores están brindando cero información concreta sobre la vulneratibilidad.

Las diversas especulaciones iniciales luego llevaron a la aparición en la red de código hostil basado en javascript, que si no llegara a ser el clickjacking "autentico" ya resulta bastante peligroso de por sí.

Realmente el clickjacking sería la vulnerabilidad que reside en la posibilidad de usar diversas tecnologías web actuales para redireccionar clicks del usuario hacia otros enlaces diferentes del que él cree que está accediendo; hay un ejemplo repetido en la red basado en iFrames, pero se menciona también que sería aplicable vía Java, Flash, Silverlight, etc. Lo que lleva claramente a la idea de que desactivar Javascript solo haría disminuir marginalmente el riesgo de clickjacking y también nos da una pista de que tanto (daño) se podría llegar a efectivizar iniciando una cadena de acontecimientos desde el click de un usuario.

Al parecer desactivar el uso de cualquier plugin además de Javascript aparentemente es la solución definitiva actual para el clickjacking. Es sumamente impracticable esta contramedida y no elimina el riesgo por completo (un simple exploit previo a la ejecución de un browser podría activar un plugin necesario para el clickjacking, por ejemplo), así que esperemos que alguno de los responsables de solucionar este problema desarrolle una mejor idea rápido.

El post de los hackers que todavía no explican en que consiste el clickjaking "realmente":
http://ha.ckers.org/blog/20080915/clickjacking/

Ejemplos de código que no serían clickjacking (pero funcionan redireccionando engañosamente al usuario al hacer click):
http://www.breakingpointsystems.com/community/blog/clickjacking

Una explicación de clickjacking con iFrames y algunas ideas sobre sus implicaciones:
http://www.webmonkey.com/blog/A_Look_at_the__Clickjacking__Web_Attack_and_Why_You_Should_Worry

Las tres formas para impedir el clickjacking basado en javascript :
http://www.cyberciti.biz/tips/firefox-stop-clickjacking-attack.html

No hay comentarios: