Saltar al contenido principal

Clickjacking - Clics ocultos en capas invisibles

Lectura de 2 min aprox.

El clickjacking es una técnica de ataque que superpone un iframe transparente o invisible sobre una página legítima para engañar a los usuarios y hacer que realicen acciones no intencionadas (hacer clic en un botón, enviar un formulario, etc.). Como los usuarios solo ven la página legítima, no se dan cuenta de que están operando en un sitio diferente. Fue bautizado en 2008 por los investigadores de seguridad Jeremiah Grossman y Robert Hansen, y se hizo ampliamente conocido como una técnica sofisticada que combina la ingeniería social con un ataque técnico.

Cómo funciona el ataque

Página del atacante (visible para el usuario)
Botón «Recibe tu regalo gratis»
↑ Un iframe transparente (opacity: 0) está superpuesto encima
El botón «Eliminar cuenta» del sitio objetivo

El usuario cree que hizo clic en «regalo», pero en realidad está ejecutando «Eliminar cuenta»

El atacante carga el sitio objetivo en un iframe y lo hace completamente transparente con la propiedad CSS opacity: 0. Debajo coloca contenido atractivo (un sorteo, un botón de reproducción de vídeo, etc.) para inducir al usuario a hacer clic. El clic atraviesa el iframe transparente y llega al sitio objetivo, de modo que si el usuario ya ha iniciado sesión en el sitio objetivo, la acción se ejecuta con sus privilegios.CSRF es similar, pero mientras que CSRF falsifica la solicitud, el clickjacking se diferencia en que secuestra la propia acción de clic del usuario.

Variantes y derivados

Likejacking

Superpone el botón «Me gusta» de Facebook con un iframe transparente para que los usuarios pulsen «Me gusta» sin darse cuenta. Se popularizó enormemente hacia 2010 y motivó que Facebook reforzara sus contramedidas.

Cursorjacking

Desplaza la posición visible del cursor respecto a la posición real del puntero para hacer que los usuarios hagan clic en un lugar no deseado. Abusa de la propiedad CSS cursor.

Filejacking

Secuestra las operaciones de arrastrar y soltar para que los usuarios suban sus archivos locales al servidor del atacante. Abusa de la API Drag and Drop de HTML5.

Medidas de defensa

La defensa básica contra el clickjacking consiste en impedir que tu propio sitio se incruste en el iframe de otro sitio.

Encabezado X-Frame-Options
CSP frame-ancestors
Bloquear la incrustación en iframe
Clickjacking prevenido

X-Frame-Options especifica DENY (denegar toda incrustación en iframe) o SAMEORIGIN (permitir solo el mismo origen). Si necesitas un control más flexible, usa la directiva CSP frame-ancestors.frame-ancestors 'self' equivale a SAMEORIGIN, y también puedes añadir dominios concretos a una lista de permitidos. Actualmente se recomienda CSP frame-ancestors, y es habitual usar X-Frame-Options junto a él como respaldo para navegadores heredados.

Errores comunes

Existe el error de creer que «se puede prevenir escribiendo código frame-busting en JavaScript», pero los atacantes pueden desactivar la ejecución de JavaScript usando un iframe con el atributo sandbox sandbox, por lo que las contramedidas basadas solo en JS son insuficientes. Implementa siempre defensas a nivel de encabezado HTTP. Además, si existe una vulnerabilidad de XSS, un atacante podría eludir los encabezados e inyectar un iframe, por lo que también debes aplicar contramedidas contra XSS mediante la codificación segura.

Casos de uso reales

«Una auditoría de seguridad reveló que el panel de administración no tenía configurado el encabezado X-Frame-Options. Era posible que un atacante incrustara el panel en un iframe y engañara a un administrador para que pulsara un botón de cambio de privilegios. Lo solucionamos añadiendo CSP frame-ancestors y restringiendo la incrustación en iframe en todas las páginas.»

La seguridad de las extensiones del navegador se explica en detalle en el artículo sobre la seguridad de las extensiones del navegador, la gestión de contraseñas del navegador en el artículo sobre la seguridad de las contraseñas del navegador y la protección contra el phishing en el artículo sobre la protección contra el phishing.libros sobre seguridad web (Amazon) también ayudan a comprender las contramedidas.

Términos relacionados

¿Te resultó útil este artículo?

XHatena