Deanonymization a través de Clickjacking en 2019

Me gustaría compartir con ustedes los resultados de mi investigación sobre el estado actual de las cosas en el proceso de desanonimización utilizando la técnica de clickjacking. Por desanonimización, me refiero a la capacidad de un sitio web malicioso para revelar la identidad de un visitante, incluido su nombre completo y posiblemente otra información. No presento aquí ninguna información nueva que no se conociera públicamente anteriormente, pero me sorprendió descubrir lo fácil que es violar la privacidad del visitante y revelar su identidad, incluso si sigue las mejores prácticas y utiliza un navegador y un sistema operativo modernos.

Todo comenzó con Google YOLO


Mi viaje comenzó cuando me encontré con una gran publicación de blog llamada Google YOLO , escrita por @filedescriptor , sobre la vulnerabilidad de clickjacking del widget web Google YOLO (You Only Login Once) que proporciona autorización en línea con un clic en sitios web . Le recomiendo que visite y lea una publicación de blog que describa y demuestre interactivamente las técnicas de clickjacking.

En resumen, el problema de privacidad es que puede crear un sitio web con un widget Google YOLO y enmascarar el widget como un botón inofensivo. Cuando hace clic en un botón que es inofensivo a primera vista, la víctima, sin saberlo, inicia sesión con su cuenta de Google y transfiere su identidad al propietario del sitio web, incluido su nombre completo y dirección de correo electrónico.

A menudo, esto realmente no importa, ya que muchos sitios web probablemente ya conocen su identidad. Sin embargo, este problema puede tener consecuencias desagradables. Considere, por ejemplo, completar una encuesta supuestamente anónima. Como nunca ha visitado este sitio web, puede pensar que no tiene la capacidad de asociar sus respuestas con su identidad, pero esto no lo es en absoluto.

Cuando me topé por primera vez con la publicación del blog Google YOLO, Google ya había solucionado el problema al restringir la función solo a los sitios web afiliados. Esta publicación de blog también describe el clickjacking utilizando el widget Me gusta de Facebook, pero cuando hizo clic en el botón, el widget solicitó confirmación:

imagen

La solicitud de confirmación hace que este ataque sea imposible; incluso si la víctima hace clic inconscientemente en el botón Me gusta dos veces, aún tendrá que confirmar su acción en una ventana emergente. El sitio del atacante no puede modificar la ventana emergente y, por lo tanto, no está sujeta a ataques de clickjacking. La desventaja de esta solución es que hace que el uso sea menos conveniente, ya que requiere acciones adicionales cada vez, incluso para el uso intencional del botón "Me gusta".

Como resultado, llegué a la conclusión de que las grandes empresas han resuelto este problema, y ​​por un tiempo lo olvidé, hasta que tuve una nueva idea ...

Widget de comentarios de Facebook: "typejacking"


Un día, mientras caminaba por Internet, me encontré con un sitio web que utilizaba el widget de comentarios de Facebook para permitir a los visitantes comentar en una página de terceros. En ese momento, recordé lo que leí antes y pensé: el problema de clickjacking fue resuelto por grandes compañías, pero ¿qué pasa con el "typejacking"? ¿Qué sucede si tomo un widget de comentarios y lo pego en mi sitio web, disfrazándolo como un formulario no relacionado? Luego, si puedo convencer a la víctima de ingresar texto, cualquier texto, y enviarlo como un comentario de Facebook a mi página, puedo averiguar su identidad al verificar en Facebook qué cuenta acaba de publicar el comentario.

Con esto en mente, comencé a trabajar en una página web que demuestra esta técnica. En el proceso, descubrí accidentalmente que el widget "Me gusta", que me pareció que requería confirmación, funciona sin confirmación en mi página web. Al leer acerca de un widget en Internet, descubrí que Facebook, a diferencia de Google, usa una lista negra para protegerse contra los clics.

La forma en que Facebook decidió proteger a sus usuarios del robo de clics puede protegerlo de una colección masiva de Me gusta: Facebook puede notar que una gran cantidad de Me gusta proviene de un sitio, agrega confirmación e incluso cancela Me gusta. Pero esto no protege contra la amenaza de desanonimización. Un atacante puede crear fácilmente un nuevo sitio web y usar clickjacking con el widget "Me gusta", luego enviar la página a un número limitado de víctimas y revelar sus identidades rastreando los me gusta de Facebook.

Para mi sorpresa, la técnica de likejacking, un término que describe la técnica de clickjacking para obtener me gusta, se conoce desde al menos 2010 . Y hoy, 9 años después, sigue siendo relevante. Además, cuando se trata de "likejacking", rara vez se menciona el tema de la desanonimización. El tema de la desanonimización se escribió públicamente, al menos desde 2012 , pero aún así, creo que no hay suficientes personas que lo sepan, especialmente para nuestro tiempo, cuando cada vez más personas comprenden la importancia de la privacidad en Internet.

En cuanto a la técnica de typejacking, todavía agregué una página web que demuestra el ataque . Puedes experimentar tú mismo o ver el video:



Clickjacking, typejacking ... ¿qué más?


Al reflexionar sobre la técnica de clickjacking, me preguntaba qué más se podría hacer usando la capacidad de insertar y manipular widgets de terceros en un sitio web malicioso. Las técnicas de clickjacking y typejacking están diseñadas para la interacción del usuario con el widget. ¿Qué sucede si, en cambio, convencemos al usuario de que nos proporcione información del widget?

Resultó que alguien ya lo había pensado antes que yo. Una búsqueda rápida me llevó al artículo Cuéntame sobre ti: el ataque malicioso de CAPTCHA , que analiza esta técnica. Aquí hay un ejemplo de un artículo que demuestra cómo un atacante puede engañar a una víctima y, sin saberlo, revelar su nombre enmascarando el widget como un captcha inocente:

imagen

Prevención de clickjacking para propietarios de sitios


Todavía no hay una forma confiable de prevenir el clickjacking.

En 2009, se introdujo el encabezado HTTP X-Frame-Options , que ofrece protección parcial contra el clickjacking. El encabezado permite al propietario del sitio web especificar qué páginas no deben estar en el marco. El navegador que admite el encabezado se negará a cargar estas páginas en un marco. Aunque esto evita el clickjacking en algunos casos, no ayuda con los widgets que necesitan cargarse en un marco, como un widget Me gusta o un widget de comentarios.

Al mirar el titular de Opciones de X-Frame , me preguntaba ¿por qué no hacer una opción similar que proporcione una medida de protección y al mismo tiempo permita que la página web se cargue en un marco? Piense, por ejemplo, en el widget "Me gusta": ¿hay una buena razón para que una página web se dibuje encima de un botón? ¿Cambiar el tamaño o los botones de transparencia? ¿Alguna otra manipulación como los filtros CSS? La única razón por la que puedo imaginarme es hacer clickjacking. ¿Por qué no presentar una nueva opción de Opciones de marco X , como Opciones de marco X: Aislar , que permite que la página web se cargue en el marco, pero asegura que el marco no se pueda cambiar de tamaño y que el sitio web principal no se pueda dibujar el. Al igual que con las ideas anteriores, y alguien ya me sugirió esto .

Si bien los navegadores no implementan dicha protección, los propietarios de sitios web solo tienen una opción: requieren interacción adicional con el usuario, por ejemplo, usando una ventana emergente separada. Vimos que Facebook hace esto con el widget "Me gusta", pero solo para los sitios web sospechosos en los que está alojado. Obviamente, Facebook valora la conveniencia de los usuarios más que su privacidad.

Actualización: Resulta que Chrome les da a los propietarios de widgets la capacidad de detectar clickjacking usando la función Intersection Observer v2 . Esta función está habilitada de forma predeterminada a partir de Chrome 74, lanzado en abril de 2019. Desafortunadamente, actualmente solo Chrome lo implementa, y no es tan fácil de usar, al menos más difícil que agregar un encabezado. Vea La confianza es buena, la observación es mejor para obtener más información.

Prevención de clickjacking para usuarios


Después de probar varias soluciones, llegué a la conclusión de que bloquear las cookies de terceros es la mejor manera de evitar la fuga de información a través del clickjacking. Esto no impide la técnica de clickjacking en sí, pero dado que el marco incrustado no recibe cookies de visitante, este marco no será particularmente útil para un atacante.

Además, la opción de bloquear las cookies de terceros es que en la mayoría de los navegadores esta opción está incorporada inicialmente. No es necesario instalar extensiones de terceros ni buscar diferentes soluciones para diferentes navegadores o dispositivos.

La desventaja es que los widgets como el widget Me gusta o el widget de comentarios dejarán de funcionar en todos los sitios. No los extraño mucho, pero tal vez esta opción no sea adecuada para todos.

Otra ventaja de bloquear las cookies de terceros es que el bloqueo puede proteger contra ataques de canal lateral que no requieren la intervención del usuario. Por ejemplo, este método demuestra el uso de CSS3 para desanonimizar a los usuarios de Facebook sin interacción adicional del usuario con la página web. Otro ejemplo de una vulnerabilidad antigua pero interesante que puede evitarse mediante el bloqueo de cookies de terceros es el robo de dominio cruzado entre navegadores genéricos , que utiliza un vacío en la especificación CSS para obligar al navegador a usar la página de origen cruzado como CSS y acceder a información específica ( tema del proyecto Chromium ).

Conclusión


Entre todos los detalles históricos y técnicos de este artículo, hay una recomendación que quisiera enfatizar nuevamente: considere bloquear las cookies de terceros para mejorar la protección de su identidad en Internet.

Espero que este artículo ayude a crear conciencia sobre la técnica de clickjacking que se conoce desde 2010 y que aún no se ha resuelto. Quizás los proveedores de navegadores consideren introducir medidas para evitarlo, para limitar la manipulación de marcos.

PS On Habré escribió sobre un problema similar en el sitio web de VKontakte hace 5 años. Parece que la demostración ya no funciona (debe confirmar la acción en una ventana emergente), pero, como puede ver, el tema sigue siendo relevante. Quizás en VKontakte hay otro widget que puede usar, por ejemplo, un widget de comentarios. Pero, desafortunadamente, en ese artículo, el autor no mencionó el bloqueo de cookies de terceros.

Source: https://habr.com/ru/post/473552/


All Articles