Se publica el kit de herramientas para detectar complementos instalados en Chrome

Se ha publicado un kit de herramientas que implementa un método para detectar complementos instalados en el navegador Chrome. La lista resultante de complementos se puede utilizar para aumentar la precisión de la identificación pasiva de una instancia particular del navegador, en combinación con otros indicadores indirectos, como la resolución de la pantalla, las funciones WebGL, listas de complementos y fuentes instalados. La implementación propuesta verifica la instalación de más de 1000 complementos. Se ofrece una demostración en línea para probar su sistema.

La definición de complementos se realiza mediante un análisis de los recursos proporcionados por los complementos, disponibles para solicitudes externas. Normalmente, los complementos incluyen varios archivos adjuntos, como imágenes, que se definen en el manifiesto del complemento mediante la propiedad web_accessible_resources. En la primera versión del manifiesto de Chrome, el acceso a los recursos no estaba restringido y cualquier sitio podía descargar los recursos proporcionados. En la segunda versión del manifiesto, el acceso a dichos recursos de forma predeterminada solo se permitía para el propio complemento. En la tercera versión del manifiesto, fue posible determinar qué recursos se pueden asignar a qué complementos, dominios y páginas.

Las páginas web pueden solicitar los recursos proporcionados por la extensión utilizando el método de recuperación (por ejemplo, "fetch('chrome-extension://okb....nd5/test.png')"), que generalmente indica que devolver "falso" que el complemento no está instalado. Para impedir que un complemento detecte la presencia de un recurso, algunos complementos generan un token de verificación necesario para acceder al recurso. Llamar a fetch sin especificar un token siempre falla.

Resulta que la protección del acceso a recursos complementarios se puede eludir estimando el tiempo de ejecución de la operación. A pesar de que fetch siempre devuelve un error cuando se solicita sin un token, el tiempo de ejecución de la operación con y sin el complemento es diferente: si el complemento está presente, la solicitud tardará más que si el complemento no está instalado. Al evaluar el tiempo de reacción, se puede determinar con bastante precisión la presencia del suplemento.

Algunos complementos que no incluyen recursos accesibles externamente se pueden identificar mediante propiedades adicionales. Por ejemplo, el complemento MetaMask se puede definir evaluando la definición de la propiedad window.ethereum (si el complemento no está configurado, "typeof window.ethereum" devolverá el valor "indefinido").

Fuente: opennet.ru

Añadir un comentario