[invisible iframe]Delete AccountClick to Win!click lands on iframe behind decoy

secuestro de clics

10 lectura mínimaSeguridad

Clickjacking es el ataque en el que una página maliciosa superpone un iframe invisible sobre contenido señuelo. El usuario cree que está haciendo clic en un botón tentador; en realidad están haciendo clic dentro de un marco oculto que contiene un sitio diferente. El caso clásico hizo que a los usuarios les dieran "me gusta" en páginas de Facebook que nunca vieron. Las variantes modernas roban pagos y cambios de cuenta.

El cuerpo completo del artículo se proporciona en inglés a continuación.

Clickjacking (también llamado reparación de interfaz de usuario o ataque de marco) engaña a los usuarios para que hagan clic en algo diferente de lo que perciben. El atacante carga el sitio objetivo en un iframe invisible, lo coloca sobre una interfaz señuelo y espera. El usuario hace clic en el señuelo visible; el clic aterriza en el iframe oculto; el sitio de destino ve una interacción normal por parte del usuario.

El ejemplo clásico

2008: Los investigadores demostraron la superposición de botones invisibles "Me gusta" de Facebook en contenido de cebo atractivo ("¡Haga clic aquí para ganar un iPad!"). Los usuarios mordieron el anzuelo; a su navegador le gustó silenciosamente la página de Facebook del atacante. Los Me gusta eran auténticos: el usuario inició sesión en Facebook, el navegador envió cookies normales, Facebook vio un clic autenticado real.

El mismo patrón funciona para cualquier acción de la interfaz de usuario: cambiar la configuración, otorgar permisos de OAuth, transferir fondos, confirmar compras. En cualquier lugar donde un usuario conectado pueda hacer algo con un solo clic, el clickjacking puede potencialmente obligarlo a hacerlo sin darse cuenta.

La mecánica

La implementación clásica:


  marco flotante { opacity: 0; position: absolute; top: 100px; left: 100px; }


El iframe se coloca exactamente sobre la tentadora imagen del botón pero se representa con opacidad cero. El usuario ve la imagen; el clic pasa al iframe. El posicionamiento CSS permite al atacante ajustar las coordenadas para que el clic aterrice en un botón específico dentro de la página enmarcada.

Defenses

Dos mecanismos principales:

  • X-Encabezado-Frame-Options. Encabezado HTTP más antiguo que indica a los navegadores si la página se puede incrustar en iframes. Valores: DENY (nunca enmarcar), SAMEORIGIN (solo enmarcar en el mismo sitio), ALLOW-FROM (en desuso). Ampliamente compatible, fácil de implementar.
  • Política de seguridad de contenido: directiva frame-ancestors. El reemplazo moderno. Content-Security-Policy: frame-ancestros 'none' o 'self' u orígenes específicos. Más flexible que X-Frame-Options.

Cualquiera de los encabezados (o ambos) es la defensa estándar. Los sitios sin ellos son vulnerables al encuadre.

Variantes y complicaciones

  • Cursorjacking. Trucos CSS que desalinean el cursor visible con respecto al destino del clic real. En gran medida solucionado por los navegadores modernos, pero históricamente real.
  • Secuestro de pulsaciones de teclas. Concepto similar para la entrada de teclado: el foco está en un iframe invisible.
  • Encuadre de arrastrar y soltar. Se induce al usuario a arrastrar contenido a un marco oculto, posiblemente transfiriendo credenciales o data.
  • Configuraciones de múltiples clics. Algunos ataques requieren que el usuario haga clic en varios puntos específicos; una secuencia de señuelos atrae al usuario a través de todo el flujo.
  • clickjacking basado en tacto en dispositivos móviles. Los objetivos de toque son más grandes y más fáciles de ocultar; Los navegadores móviles tienen defensas en capas, pero la superficie permanece.

Qué puede lograr el clickjacking

  • Dar me gusta/seguir cuentas sociales
  • Autorizar permisos OAuth (otorgar a las aplicaciones atacantes acceso a sus datos)
  • Cambiar la configuración de la cuenta (correo electrónico, contraseña) recuperación)
  • Confirmar compras o transferencias
  • Otorgar permiso de cámara/micrófono en aplicaciones web
  • Habilitar acciones de vínculos profundos en servicios conectados

El ataque se basa en que el usuario inicie sesión en el sitio de destino y sea engañado para que haga clic. El daño aumenta según el impacto que puede tener un clic en el objetivo.

iframes en espacio aislado y la web moderna

Las plataformas web modernas incluyen varias características que complican el clickjacking:

  • Cross-Origin-Opener-Policy aísla la navegación contextos
  • Permisos API requiere indicaciones explícitas para operaciones sensibles (cámara, micrófono, etc.)
  • Gesto de usuario requerido: muchas API de alto impacto (escritura en portapapeles, pantalla completa, ventanas emergentes) solo funcionan en respuesta a los clics del usuario, lo que anula parcialmente el silencio overlay

Combinado con X-Frame-Options y CSP frame-ancestros ampliamente implementados, el clickjacking clásico contra sitios bien configurados es mucho más difícil que hace una década. La categoría es más rara pero no extinta.

Para desarrolladores

  • Establezca frame-ancestros o X-Frame-Options en cada página autenticada
  • Para páginas compatibles con incrustaciones (videos, widgets), sea específico sobre los padres permitidos
  • Requiera confirmación intensificada en acciones críticas (contraseña, MFA) incluso desde sesiones autenticadas
  • Utilice el encabezado Origin para verificar la fuente de encuadre para acciones que operar legítimamente desde incrustaciones

Para usuarios

No puedes detectar fácilmente el clickjacking en el lado del cliente, ese es el punto. Las defensas están del lado del servidor. La higiene general ayuda: no permanezca conectado a cuentas en las que no necesita estar, cierre sesión en servicios confidenciales cuando haya terminado, tenga cuidado con páginas desconocidas con ofertas demasiado buenas para ser verdad.

Preguntas frecuentes

¿El bloqueador de anuncios ayuda contra el clickjacking?
Parcialmente: algunos bloqueadores de publicidad eliminan los iframes de fuentes sospechosas. El clickjacking en un sitio legítimo comprometido no será bloqueado. La defensa confiable es el filtrado del lado del servidor (antepasados ​​del marco), no del lado del cliente.
¿Las aplicaciones móviles son vulnerables al clickjacking?
Menos que la web porque la interfaz de usuario móvil no tiene la misma mecánica de superposición. Existen equivalentes móviles ("tapjacking" en Android mediante permisos de superposición), pero el sistema operativo los ha bloqueado progresivamente. El Android moderno requiere una concesión explícita del usuario para el permiso de superposición SYSTEM_ALERT_WINDOW.
¿Por qué el ataque se llama "jacking"?
El acrónimo "click-jacking" fue acuñado por Jeremiah Grossman y Robert Hansen en 2008. Capta el secuestro de clics legítimos por parte de atacantes.
¿Cómo compruebo si un sitio se deja enmarcar?
Intente cargarlo en un iframe mediante herramientas de desarrollo o una simple página HTML. Si la página se carga dentro del iframe, le faltan encabezados de protección de marco y puede ser vulnerable al clickjacking. Muchos escáneres de seguridad comprueban esto automáticamente.
¿El clickjacking ha causado incidentes importantes recientemente?
Menos que durante el pico de 2008-2015, pero las plataformas de recompensas por errores aún ven informes de clickjacking en sitios más pequeños. Los sitios principales generalmente tienen encabezados adecuados. Las interfaces de administración con menos mantenimiento, las herramientas internas y el SaaS heredado son donde aparecen las superficies de clickjacking.
Explicación del clickjacking: el truco de la interfaz de usuario que te hace hacer clic en lo que no ves