8 nov 2011

Tab Hijacking, robando pestañas

Una manera habitual utilizada por los usuarios (y casi la única para un usuario de a pie) de comprobar que están interactuando con gmail.com y no con una web que lo suplanta, es comprobar la barra de direcciones (URL).

Comprobar la URL para ver que el dominio coincide antes de introducir los credenciales suele ser una buena idea, sin emargo, durante la investigación de un bug muy extraño en una página web (no relacionado con todo esto) se me ha ocurrido una manera curiosa e ingeniosa de engañar al usuario, incluso si este comprueba la URL.

El truco se apoya en una funcionalidad “poco” conocida de HTML. En HTML es posible enlazar a una página en otro dominio y forzar a que se abra en una ventana/pestaña nueva. Cuando el usuario hace click en el enlace, se abre una nueva ventana o pestaña (depende de la configuración) con la web enlazada.

Los enlaces en HTML se hacen usando la etiqueta anchor, que tiene la forma típica:
<a href="http://gmail.com">go to gmail!</a>

Sin embargo, anchor tiene un atributo llamado target que sirve para especificar de que forma se va a abrir este enlace, en una nueva ventana, en la misma, etc.

Si utilizamos un valor arbitrario para target, como por ejemplo “lol”, y creamos un enlace del tipo:
<a href="http://gmail.com" target="lol">go to gmail!</a>

El enlace se abre en una nueva ventana. Pero si se hace click en otro enlace que tenga también definido target al mismo valor, en lugar de abrirse otra nueva ventana/pestaña, se redirecciona la pestaña abierta originalmente.

Esto abre las puertas a un ataque en el cual el usuario hace click en un enlace que le lleva a gmail.com, el usuario comprueba la URL y es efectivamente gmail.com. Sin embargo, al hacer click en el enlace y abrirse gmail.com, la página original desde la que el usuario ha llegado a gmail.com, se ha quedado abierta en otra pestaña/ventana.

Entonces, se activa un temporizador que en X segundos redirecciona gmail.com a otra web, con el aspecto de gmail, pero que le dice que la sesión ha expirado.

Esta redirección puede llegar a ser MUY rápida e invisible para el usuario,  que volvería a introducir los credenciales ya que ya comprobó la URL.

La explicación es un poco compleja, así que un ejemplo vale mas que mil palabras:
Ejemplo de Tab Hijacking.

Si hacéis click en el ejemplo, veréis un enlace a gmail, al presionarlo se abrirá gmail.com en una nueva ventana/pestaña. Si os quedáis mirando gmail durante unos segundos, veréis que de pronto y sin tocar nada la página que estáis viendo (gmail.com) es sustituida por php.net, sin previo aviso ni interacción por parte del usuario.

El cambio de gmail.com a www.segu-info.com.ar es muy obvio, pero el cambio de gmail.com a un dominio malicioso con apariencia de gmail no es tan obvio, y puede suceder en milisegundos.

El problema de este tipo de trucos es que es muy difícil evitarlos sin comprometer la usabilidad del navegador.

Debido a que esto no es un error de seguridad al uso, he decidido publicarlo para abrir debate sobre si esto es realmente peligroso usado malintencionadamente, o si por el contrario pensáis que es inofensivo: aunque creo que cualquiera que vea un ejemplo mas arriesgado con un gmail y una web que imita gmail y que carga en 100ms, estará bastante convencido de que es arriesgado.

Con la web cada vez mas rica en funcionalidades y navegadores cada vez mas potentes, empieza a ser muy difícil mantener protegido y aislado al usuario, especialmente contra ataques phishing.

Fuente: Rooibo

Suscríbete a nuestro Boletín

2 comentarios:

  1. Fuuuuu!

    Bien pensado... Es algo sobre lo que no tengo noticias de que haya sido usado anteriormente.

    ResponderBorrar
  2. Que pasaría, si por ej. se abriera la pestaña con gmail.com pero mediante Ajax, desde la pestaña opener, se carga contenido dentro del tag body de la pestaña que está abriendo desde GMail? Si esto que estoy diciendo funcionara, quedaría abierta la pestaña bajo el dominio www.gmail.com pero el contenido se estaría reemplazando con ajax, salvo que los de GMail tengan incorporados instrucciones para preservar que el contenido de sus etiquetas, tengan código de Google.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!