15 may 2021

Scheme Flooding: vulnerabilidad que permite el seguimiento de usuarios en Chrome, Firefox, Safari y Tor Browser

El investigador Konstantin Darutkin de la empresa Fingerprintjs ha publicado un artículo presentando una vulnerabilidad denominada Scheme Flooding y el exploit funciona en los cuatro navegadores de escritorio principales (Chrome, Firefox, Safari y Tor Browser), lo cual implica una amenaza para la navegación anónima del usuario.

Esta vulnerabilidad permite el seguimiento de terceros en diferentes navegadores y, por lo tanto, es una violación de la privacidad. Un sitio web que explote la vulnerabilidad de inundación de esquema podría crear un identificador único, le permite vincular el navegador con la identidad del usuario y rastrearlo en la web.

Creación de perfiles basada en aplicaciones instaladas

Además, esta vulnerabilidad permite crear publicidad dirigida según los perfiles de los usuarios y sin su consentimiento. La lista de aplicaciones instaladas en el dispositivo puede revelar mucho sobre su ocupación, hábitos y edad. Por ejemplo, si se encuentra instalado un IDE de Python o un servidor PostgreSQL, es muy probable que sea un desarrollador de backend.

Dependiendo de las aplicaciones instaladas en un dispositivo, es posible que un sitio web identifique a personas con fines más siniestros. Por ejemplo, un sitio puede detectar a un oficial del gobierno o militar en Internet en función de sus aplicaciones instaladas y el historial de navegación asociado que está destinado a ser anónimo.

Esta vulnerabilidad ha estado presente al menos 5 años en los principales navegadores y se desconoce su verdadero impacto. En una búsqueda rápida en la web, los investigadores no pudieron encontrar ningún sitio web que lo explotara activamente.

¿Cómo funciona?

La vulnerabilidad de inundación del esquema (demo en línea) permite a un atacante determinar qué aplicaciones ha instalado. Para generar un identificador de dispositivo de 32 bits, un sitio web puede probar una lista de 32 aplicaciones populares y verificar si cada una está instalada o no. En promedio, el proceso de identificación toma unos segundos y funciona en los sistemas operativos de escritorio Windows, Mac y Linux.

La vulnerabilidad permite comprobar si una aplicación está instalada en el equipo y consiste en abrir la URL del protocolo personalizado en el navegador, provocando una excepción en el caso de no estar instalada. Aunque puede haber más navegadores afectados, ha conseguido reproducirse en Chrome, Firefox, Safari y Tor, unos con más dificultades que otros. Para comprobar si una aplicación está instalada, los navegadores pueden utilizar controladores de esquema de URL personalizados integrados. Por ejemplo, se puede ingresar "skype://" o "slack://", "tg://" en la barra de direcciones del navegador para abrir un cuadro de diálogo de confirmación que preguntará si desea iniciarse Skype, Slack o Telegram, etc. Esta función también se conoce como enlaces profundos y se usa ampliamente en dispositivos móviles, pero también está disponible en los navegadores de escritorio. Cualquier aplicación que se instale puede registrar su propio esquema, para permitir que otras aplicaciones lo abran.

Nos referiremos a esta vulnerabilidad como inundación de esquemas, ya que utiliza esquemas de URL personalizados como vector de ataque. La vulnerabilidad utiliza información sobre las aplicaciones instaladas en la computadora para asignarle un identificador único permanente, incluso si cambia de navegador, usa el modo de incógnito o se utiliza una VPN.

Para hacer posible esta vulnerabilidad, se requieren los siguientes pasos:

  • Preparar una lista de los esquemas de URL de la aplicación que se desea probar. La lista puede depender de sus objetivos, por ejemplo, si desea verificar si están instaladas algunas aplicaciones específicas de la industria o de sus intereses.
  • Agregar un script en un sitio web que probará cada aplicación de la lista. El script devolverá una matriz ordenada de valores booleanos. Cada valor booleano es verdadero si la aplicación está instalada o falso si no lo está.
  • Utilizar esta matriz para generar un identificador permanente entre navegadores.
  • Opcionalmente, se puede utilizar algoritmos de aprendizaje automático para adivinar la ocupación, los intereses y la edad de los visitantes de su sitio web utilizando los datos de la aplicación instalada.

Los pasos anteriores pueden parecer fáciles, pero la mayoría de los navegadores cuentan con mecanismos de seguridad diseñados para evitar tales vulnerabilidades. Las debilidades en estos mecanismos de seguridad son las que hacen posible su explotación. Se puede usar una combinación de políticas CORS y características de la ventana del navegador para omitirlo.

La implementación real del exploit varía según el navegador, sin embargo, el concepto básico es el mismo. Funciona pidiendo al navegador que muestre un cuadro de diálogo de confirmación en una ventana emergente. Luego, el código JavaScript puede detectar si se acaba de abrir una ventana emergente y detectar la presencia de una aplicación basada en eso.

Chrome, Firefox, Safari y Tor vulnerables

Tanto Chrome como Firefox incluyen medidas para evitar la enumeración aunque pueden eludirse. En el caso de Chrome se requiere una interacción por parte del usuario como puede ser un clic, restricción que no existe para las extensiones. Si se abre previamente un PDF en Chrome, el cual es una extensión, el contador de esta restricción se resetea, permitiendo a la web original abrir una nueva URL sin requerir de una interacción.

Firefox en cambio muestra un error interno cada vez que se intenta abrir una URL no soportada y una ventana emergente si se conoce. Comprobando si se ha abierto una nueva ventana vía Javascript, es posible conocer si se soporta el protocolo. Tanto en Firefox como en Chrome se muestran ventanas adicionales durante la enumeración, lo cual permite saber al usuario lo que está haciendo el sitio web.

Finalmente, los más inseguros a esta vulnerabilidad son Safari, el cual no tiene ninguna medida de seguridad contra la enumeración, y Tor, que aunque está basado en Firefox tiene desactivados por defecto los diálogos de confirmación, ocultando al usuario las ventanas adicionales que se abren en la versión original del navegador.

Fuente: Fingerprintjs

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!