Cómo protegerte del clickjacking y del doble clickjacking

¿Qué es el clickjacking?
El clickjacking, también llamado ataque de redirección de la interfaz de usuario (UI redress), ocurre cuando un atacante superpone capas invisibles, transparentes o desplazadas sobre una página legítima para que el usuario haga clic en algo distinto a lo que ve. En la práctica, parece que haces clic en un botón inocente, pero en realidad activas una acción que entrega credenciales, instala software o realiza operaciones en tu cuenta.
En un ejemplo sencillo, un enlace para descargar un ebook puede estar cubierto por una capa invisible que en realidad inicia la descarga de malware o un keylogger. Técnicamente, el atacante utiliza iframes, estilos CSS, eventos de clic manipulados o scripts que reposicionan controlos para capturar la interacción del usuario.
Conceptos clave en una línea:
- iframe: un elemento HTML que carga otra página dentro de la actual.
- Overlay (superposición): una capa (visibilidad 0 o transparente) que intercepta clics.
- Likejacking: variante que hace que el usuario «likee» o comparta contenido sin querer.
Vectores comunes de ataque
El clickjacking puede presentarse por varias técnicas:
- Superposiciones transparentes u ocultas.
- Drop de eventos de clic (parece que el clic no funciona, pero en realidad disparas el enlace oculto).
- Reposicionamiento de controles para alinear botones maliciosos.
- Ventanas emergentes manipuladas que se mueven con el scroll.
- Recortes selectivos que atacan sólo controles concretos en la página.
Variantes conocidas incluyen likejacking, cookiejacking, filejacking y cursorjacking. No todos son igual de críticos, pero cualquiera puede filtrar datos o comprometer una sesión.
Por qué el clickjacking evade antivirus y, a veces, defensas del navegador
A diferencia del malware clásico que descarga un binario o modifica archivos locales, el clickjacking se ejecuta en la interfaz del sitio web legítimo. Por eso:
- Muchos antivirus se fijan en archivos, firmas y comportamiento del sistema, no en eventos UI legítimos dentro del navegador.
- Si la acción no descarga nada inmediatamente, los motores heurísticos no detectan un fichero malicioso.
- Los navegadores implementan defensas, pero los atacantes evolucionan: la técnica del doble clickjacking inserta la superposición justo antes de una segunda confirmación, eludiendo protecciones simples basadas en iframes.
El doble clickjacking funciona así: el atacante muestra primero una acción aparentemente inocua que requiere confirmación (captcha, doble clic, confirmar compra). Antes de la segunda interacción, inyecta la capa maliciosa; cuando confirmas, se activa la acción comprometida (instalar plugin, aceptar permisos, etc.). Esto también afecta a móviles mediante prompts de doble toque.
Importante: la ausencia de descarga o el uso de un sitio legítimo no implica seguridad. La integridad visual puede ser manipulada sin alterar la URL visible.
Cómo protegerte como usuario
Acciones inmediatas y comprobables para usuarios finales:
- Mantén el navegador y las extensiones actualizadas. Muchas mitigaciones se entregan en parches de navegador.
- Mantén plugins y extensiones actualizadas y elimina los que no uses. Plugins mal mantenidos pueden modificar el DOM y facilitar overlays.
- Evita pop-ups y anuncios que prometen premios o descargas instantáneas. Si algo parece demasiado atractivo, es sospechoso.
- Si una página pide una confirmación donde antes no la pedía, sal y revisa primero.
- No hagas doble clic ni doble toque cuando no estés seguro de la acción que verás después.
- Si un enlace no navega o no abre destino visible, no lo repitas. Primero revisa bloqueadores de anuncios o extensiones que podrían bloquear una ventana emergente legítima.
- Usa herramientas de comprobación de URLs antes de interactuar o descargar: VirusTotal, urlscan.io, Google Transparency Report y Hybrid Analysis.
- Revisa la barra de direcciones: comprueba errores tipográficos o domains parecidos (typosquatting). Un carácter mal escrito puede indicar un sitio falso.
Lista rápida de verificación para usuarios (versión imprimible):
- Navegador actualizado
- Extensiones revisadas
- No clics en pop-ups sospechosos
- URL verificada antes de introducir credenciales
- Escaneo de enlaces con una herramienta externa
Protección que pueden implementar los responsables de sitios y desarrolladores
Si administras un sitio o eres desarrollador frontend, varias medidas reducen drásticamente la superficie de ataque:
- Cabeceras HTTP estrictas:
- X-Frame-Options: DENY o SAMEORIGIN (evita que la página sea cargada en un iframe de origen no deseado).
- Content-Security-Policy: frame-ancestors ‘none’ o especificar orígenes explícitos.
- Atributos HTML:
- iframe sandbox con restricciones (sandbox=”allow-scripts” solo si es necesario y con controles adicionales).
- Evitar confiar en confirmaciones visuales sencillas. Aplicar pasos de verificación del lado servidor cuando se ejecutan acciones críticas.
- Revisar y auditar plugins de terceros: desconfía de plugins con permisos amplios o poco mantenidos.
- Implementar SameSite en cookies y asegurar que las acciones sensibles requieran tokens CSRF rotativos.
Mini-metodología para desplegar defensas en un sitio nuevo:
- Inventario: lista todas las páginas que aceptan interacciones peligrosas (transacciones, cambios de cuenta, descargas).
- Políticas: definir CSP y X-Frame-Options por sitio y por ruta si aplica.
- Pruebas: emular iframes externos y overlays en entorno de staging para comprobar que no se puede interactuar con acciones críticas.
- Monitorización: registrar eventos inusuales de confirmación duplicada o picos de activación de acciones.
- Actualización: revisar dependencias y actualizar temporalmente medidas si se detecta una técnica nueva (por ejemplo, doble clickjacking).
Cómo analizar y probar una posible vulnerabilidad de clickjacking
Pasos para revisar manualmente en un entorno de pruebas o en producción con permiso:
- Inspecciona el DOM con las herramientas de desarrollo: busca iframes, elementos con opacidad 0, z-index alto y listeners de clic.
- Forzar selectores: desactiva estilos CSS sospechosos para ver si aparecen capas ocultas.
- Simula un overlay: intenta insertar un iframe desde otro origen para ver si el sitio lo permite.
- Revisa cabeceras HTTP de respuestas para X-Frame-Options y Content-Security-Policy.
- Prueba acciones críticas con scripts automatizados para comprobar que requieren tokens o validaciones del servidor.
Criterios de aceptación básicos para desarrollo:
- El sitio niega carga en iframe desde orígenes no autorizados.
- Las acciones críticas requieren validación server-side adicional (token, recaptcha verificado server-side, etc.).
- No existen elementos con pointer-events activados que cubran controles legítimos.
Playbook de respuesta ante indicios de clickjacking (para administradores)
- Aislar la página afectada: servir una versión temporal con confirmaciones adicionales o modo mantenimiento.
- Identificar cambios recientes: revisar despliegues, plugins/temas instalados y modificaciones del frontend.
- Auditoría de logs: buscar patrones de inserción de iframes o solicitudes anómalas.
- Remediación: quitar o deshabilitar el plugin o script malicioso; restaurar archivos desde copia segura si es necesario.
- Rotación de credenciales sensibles si hay indicios de compromiso de cuentas.
- Notificar a usuarios si hay riesgo de exposición de datos o acciones no autorizadas según normativa aplicable.
- Implementar medidas preventivas a medio plazo: aumentar restricciones CSP, revisar dependencias y añadir monitoreo.
Nota: ante cualquier duda legal o riesgo de fuga de datos personales, consulta el departamento legal o de cumplimiento de tu organización.
Herramientas recomendadas y comprobaciones externas
- VirusTotal: útil para comprobar enlaces de descarga.
- urlscan.io: analiza la página y muestra iframes, scripts y recursos externos.
- Google Transparency Report: reputación del sitio.
- Hybrid Analysis: análisis de muestras y enlaces sospechosos.
Algunas suites antivirus incluyen extensiones de navegador que advierten sobre páginas con mala reputación; no dependas únicamente de ello.
Decisión rápida: ¿debo hacer clic o no? (diagrama)
flowchart TD
A[Veo un popup o confirmación inesperada] --> B{¿La URL coincide con el dominio que esperaba?}
B -- No --> C[No hacer clic; cerrar pestaña; escanear URL]
B -- Sí --> D{¿La acción requiere descarga o permisos?}
D -- Sí --> E[Escanear enlace con VirusTotal o urlscan.io antes de interactuar]
D -- No --> F{¿La página mostró confirmaciones anteriormente?}
F -- No --> G[No confirmar; comprobar plugins y extensiones]
F -- Sí --> H[Si persiste, evitar segundo clic y revisar en modo incógnito]
E --> I[Si análisis OK, proceder con cautela; si sospechoso, no clicar]
C --> I
G --> I
H --> I
I --> J[Si hay indicios de compromiso, cambiar contraseñas y reportar]
Casos en los que las defensas fallan o no aplican
- Sitios que requieren incrustación legítima por terceros (widgets) y no controlan frame-ancestors con cuidado.
- Usuarios con extensiones maliciosas ya instaladas en su navegador.
- Técnicas nuevas que manipulan eventos sin usar iframes clásicos; por ejemplo, modificaciones dinámicas del DOM justo antes de la interacción.
Si dependes de servicios de terceros integrados en tu sitio (SDKs, widgets), audítalos y limita el uso de iframes de terceros.
Pruebas y criterios de aceptación (ejemplos)
- Prueba: cargar la página en un iframe desde un dominio externo. Resultado esperado: el iframe no debe permitir interacción con controles sensibles.
- Prueba: desactivar CSS sospechoso. Resultado esperado: no aparecen elementos invisibles que intercepten clics.
- Prueba: simulación de doble confirmación. Resultado esperado: la segunda confirmación debe validarse server-side antes de ejecutar la acción.
Glosario rápido (una línea cada término)
- Clickjacking: técnica que usa superposiciones para que el usuario haga clic en algo distinto a lo visible.
- Likejacking: clickjacking que obliga a dar like o compartir sin consentimiento.
- iframe: elemento HTML que embeber otra página dentro de la actual.
- CSP (Content-Security-Policy): cabecera que dicta orígenes permitidos para recursos y frames.
- X-Frame-Options: cabecera antigua que previene carga en iframes.
Notas de seguridad y privacidad (GDPR)
Si el clickjacking deriva en acceso a datos personales, podría tratarse de una violación de seguridad según la normativa GDPR u otras leyes locales. En tal caso, sigue los requisitos de notificación de incidencias, registra las acciones y consulta asesoría legal para los plazos y comunicaciones obligatorias.
Resumen y recomendaciones finales
- Mantén navegadores y extensiones actualizados. Las actualizaciones corrigen vectores conocidos.
- Evita pop-ups y no repitas clics en enlaces que no abren destino.
- Usa herramientas externas para escanear páginas o enlaces sospechosos.
- Como administrador, aplica X-Frame-Options y CSP frame-ancestors; audita dependencias y plugins.
- Ten un plan de respuesta: aislar, auditar, remediar y notificar.
Puntos clave:
- El clickjacking explota la interfaz, no siempre descarga malware detectable por antivirus.
- El doble clickjacking añade una confirmación que puede eludir controles básicos.
- La defensa más sólida combina buenas cabeceras HTTP, validación server-side y concienciación del usuario.
Image credit: Unsplash. All screenshots by Crystal Crowder.
Materiales similares

Fondos distintos por pantalla en Android

Contadores de rendimiento para Apache Tomcat

Protégete del clickjacking y doble clickjacking

Fondos distintos por pantalla en Android

Eliminar tus datos de data brokers
