Site revela quão rastreável usuário é baseado em extensões usadas no Chrome

As extensões instaladas em navegadores como o Google Chrome podem ser usadas para rastrear usuários online, de acordo com um pesquisador e criador do site capaz de gerar impressões digitais ou hashes de rastreamento a partir das extensões, em vez de se basear em várias características de um dispositivo conectado ao site, como desempenho da GPU, aplicativos Windows instalados, a resolução da tela de um dispositivo, configuração de hardware e até mesmo as fontes instaladas na máquina.

A impressão digital do navegador é um método poderoso que os sites utilizam para coletar informações sobre seu tipo e versão de navegador, assim como seu sistema operacional, plugins ativos, fuso horário, idioma, resolução de tela e várias outras configurações ativas.

Criado pelo desenvolvedor web ‘z0ccc’, o site ‘Extension Fingerprints’ é focado em extensões para Chrome, nas quais se baseia para gerar hashes de rastreamento.

Esse processo de rastreio tem início na criação de uma extensão para o navegador do Google, no qual é possível declarar certos recursos como ‘acessíveis na web’, como o próprio nome diz, possíveis de serem acessadas por páginas ou outras extensões.

Em geral, esses recursos são arquivos de imagens, declarados usando a propriedade ‘web_accessible_resources‘ no arquivo do manifesto de extensão do navegador. Um exemplo de declaração de recursos acessíveis na web é mostrado logo abaixo:

"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://www.tecmasters.com.br/*" ]
}
],

Em 2019, o engenheiro Amir Khashayar Mohammadi compartilhou em um artigo de como utilizar recursos acessíveis na web para verificar extensões instaladas e a partir disso gerar uma impressão digital do navegador do visitante baseada na combinação de extensões identificadas.

Segundo z0ccc, algumas extensões usam um token secreto para evitar detecção, necessário para acessar um recurso da web. Entretanto, ao descobrir um método de “comparação de tempo do recurso”, o pesquisador ainda pôde detectar qual extensão instalada.

“Recursos de extensões protegidas demorarão mais tempo para buscar do que recursos de extensões que não estão instaladas”. Ao comparar as diferenças de tempo, você pode determinar com precisão se as extensões protegidas estão instaladas”, explicou z0ccc na página do GitHub do projeto.

Para ilustrar esse método, o site Extension Fingerprints consegue checar a existência do web_accessible_resources em 1.170 extensões populares disponíveis no repositório Chrome Web Store.

Extensões como uBlock, LastPass, Adobe Acrobat, Honey, Grammarly, Rakuten, e  ColorZilla serão identificadas, e a partir disso, baseadas na combinação de extensões instaladas, o site vai gerar um hash de rastreamento que pode ser usado naquele navegador em particular.

Teste da BleepingComputer com três a quatro extensões instaladas. Imagem: Reprodução/BleepingComputer

Algumas extensões populares, como o MetaMask, segundo o pesquisador, não expõem nenhum recurso, porém poderiam ser ainda identificadas se instaladas ao verificar o “typeof window.ethereum equals undefined.”

Os usuários que não têm extensões instaladas no navegador apresentam a mesma impressão digital e serão menos úteis para rastreamento; já aqueles que são o oposto dessa situação, terão uma impressão digital menos comum, o que pode ser usado para rastreá-los pela web.

“De longe, a mais popular é não ter extensões instaladas. Como dito anteriormente, eu não coleto dados específicos sobre extensões, mas em meus próprios testes parece que ter apenas ublock instalado é uma impressão digital comum para extensões”, compartilhou z0ccc.

Além disso, é possível refinar ainda mais a impressão digital adicionando outras características ao modelo, tornando os hashes únicos por usuário. “Esta é definitivamente uma opção viável para impressões digitais de usuários, especialmente usando o método ‘buscar recursos acessíveis na web’. Se isso for combinado com outros dados do usuário (como agentes de usuário, fusos horários etc.) os usuários poderão ser identificados muito facilmente”, explica z0ccc em um e-mail ao BleepingComputer.

Escrito em Javascript e React, o Extensions Fingerprints foi lançado como um projeto open-source no GitHub, permitindo que qualquer pessoa o utilize para consultar a presença das extensões instaladas. A criação só funciona em navegadores Chromium e com extensões instaladas da loja web do Chrome. Embora opere no Edge, ele precisaria ser modificado para usar os IDs das extensões da loja da Microsoft. Já com os add-ons da Mozilla Firefox, o método não funciona, pois os IDs das extensões são únicos para cada instância do navegador.

Em um teste com três a quatro extensões, por exemplo, a porcentagem de usuários que usam a mesma extensão é tão baixo quanto 0,006%. “Ter mais de 3 extensões detectáveis instaladas parece sempre tornar sua impressão digital muito única”, diz o pesquisador. Obviamente, a porcentagem de usuários que utilizam o mesmo conjunto mudará à medida que mais pessoas visitarem o site; e quanto mais extensões instaladas, menos pessoas terão a mesma combinação.