Publicouse o kit de ferramentas para detectar complementos instalados en Chrome

Publicouse un conxunto de ferramentas que implementa un método para detectar complementos instalados no navegador Chrome. A lista resultante de complementos pódese usar para aumentar a precisión da identificación pasiva dunha instancia particular do navegador, en combinación con outros indicadores indirectos, como a resolución da pantalla, as funcións de WebGL, as listas de complementos e fontes instaladas. A implementación proposta comproba a instalación de máis de 1000 complementos. Ofrécese unha demostración en liña para probar o seu sistema.

A definición de complementos realízase mediante unha análise dos recursos que proporcionan os complementos, dispoñibles para solicitudes externas. Normalmente, os complementos inclúen varios ficheiros acompañantes, como imaxes, que se definen no manifesto do complemento pola propiedade web_accessible_resources. Na primeira versión do manifesto de Chrome, o acceso aos recursos non estaba restrinxido e calquera sitio podía descargar os recursos proporcionados. Na segunda versión do manifesto, o acceso a tales recursos por defecto só estaba permitido para o propio complemento. Na terceira versión do manifesto púidose determinar que recursos se poden dar a que complementos, dominios e páxinas.

As páxinas web poden solicitar os recursos proporcionados pola extensión mediante o método fetch (por exemplo, "fetch('chrome-extension://okb....nd5/test.png')"), que devolver "false" adoita indicar que o complemento non está instalado. Para evitar que un complemento detecte a presenza dun recurso, algúns complementos xeran un token de verificación necesario para acceder ao recurso. A chamada a recuperar sen especificar un token sempre falla.

Como resultado, a protección do acceso aos recursos complementarios pódese evitar estimando o tempo de execución da operación. A pesar de que Fetch sempre devolve un erro ao solicitar sen un token, o tempo de execución da operación con e sen o complemento é diferente: se o complemento está presente, a solicitude tardará máis que se o complemento. non está instalado. Ao avaliar o tempo de reacción, pode determinar con bastante precisión a presenza do suplemento.

Algúns complementos que non inclúen recursos accesibles externamente pódense identificar mediante propiedades adicionais. Por exemplo, o complemento MetaMask pódese definir avaliando a definición da propiedade window.ethereum (se o complemento non está definido, "typeof window.ethereum" devolverá o valor "undefined").

Fonte: opennet.ru

Engadir un comentario