Um conjunto de ferramentas para identificar as extensões instaladas no Chrome foi publicado.

Publicada uma ferramenta com a implementação do método de identificação das extensões instaladas no navegador Chrome. A lista obtida de extensões pode ser usada para aumentar a precisão da identificação passiva de uma instância específica do navegador, em combinação com outros indicativos indiretos, como a resolução da tela, características do WebGL, listas de plugins e fontes instalados. A implementação proposta verifica a instalação de mais de 1000 extensões. Para verificar seu sistema, uma demonstração online foi sugerida.

A identificação das extensões é realizada através da análise dos recursos fornecidos pelas extensões, acessíveis para solicitações externas. Geralmente, as extensões incluem vários arquivos auxiliares, como imagens, que são definidos no manifesto da extensão pela propriedade web_accessible_resources. Na primeira versão do manifesto do Chrome, o acesso aos recursos não era restrito e qualquer site poderia carregar os recursos fornecidos. Na segunda versão do manifesto, o acesso a tais recursos, por padrão, foi permitido apenas para a própria extensão. Na terceira versão do manifesto, foi oferecida a possibilidade de definir quais recursos poderiam ser fornecidos para quais extensões, domínios e páginas.

As páginas da Web podem solicitar os recursos fornecidos na extensão usando o método fetch (por exemplo, "fetch('chrome-extension://okb….nd5/test.png')"), retornando cujo valor "false" normalmente indica que a extensão não está instalada. Para bloquear a identificação da extensão pela presença de recursos, algumas extensões geram um token de verificação necessário para acessar o recurso. A chamada do fetch sem a especificação do token sempre falha.

Descobriu-se que a proteção de acesso aos recursos das extensões pode ser contornada avaliando o tempo de execução da operação. Embora o fetch, ao solicitar sem o token, sempre retorne um erro, o tempo de execução da operação com e sem a extensão difere — se a extensão estiver presente, a solicitação levará mais tempo do que se a extensão não estiver instalada. Avaliando o tempo de resposta, é possível determinar com bastante precisão a presença da extensão.

Alguns complementos que não incluem recursos acessíveis externamente podem ser identificados por propriedades adicionais. Por exemplo, o complemento MetaMask pode ser identificado através da avaliação da propriedade window.ethereum (se o complemento não estiver instalado, «typeof window.ethereum» retornará «undefined»).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster