As extensões do Chrome podem roubar senhas em texto simples de sites
4 de Setembro de 2023

Uma equipe de pesquisadores da Universidade de Wisconsin-Madison carregou na Chrome Web Store uma extensão de prova de conceito que pode roubar senhas em texto simples do código-fonte de um site.

Uma análise dos campos de entrada de texto nos navegadores da web revelou que o modelo de permissão subjacente às extensões do Chrome viola os princípios do privilégio mínimo e mediação completa.

Além disso, os pesquisadores descobriram que vários sites com milhões de visitantes, incluindo alguns portais do Google e do Cloudflare, armazenam senhas em texto simples no código-fonte HTML de suas páginas da web, permitindo que as extensões as recuperem.

Os pesquisadores explicam que o problema diz respeito à prática sistemática de dar às extensões do navegador acesso irrestrito à árvore DOM dos sites que carregam, o que permite o acesso a elementos potencialmente sensíveis, como campos de entrada do usuário.

Dada a falta de qualquer limite de segurança entre a extensão e os elementos de um site, a primeira tem acesso irrestrito aos dados visíveis no código fonte e pode extrair qualquer um de seus conteúdos.

Além disso, a extensão pode abusar da API DOM para extrair diretamente o valor das entradas à medida que o usuário as insere, contornando qualquer ofuscação aplicada pelo site para proteger entradas sensíveis, e roubando o valor programaticamente.

O protocolo Manifest V3 que o Google Chrome introduziu e adotado pela maioria dos navegadores este ano, limita o abuso de API, proíbe extensões de buscar código hospedado remotamente que poderia ajudar a evitar a detecção e impede o uso de declarações de execução de código arbitrário.

No entanto, como explicam os pesquisadores, o Manifest V3 não introduz um limite de segurança entre extensões e páginas da web, portanto o problema com scripts de conteúdo permanece.

Para testar o processo de revisão da Web Store do Google, os pesquisadores decidiram criar uma extensão Chrome capaz de ataques de roubo de senha e tentar carregá-la na plataforma.

Os pesquisadores criaram uma extensão se disfarçando como um assistente baseado em GPT que pode:
- Capture o código-fonte HTML quando o usuário tenta fazer login em uma página usando uma expressão regular.
- Abuse dos seletores CSS para selecionar os campos de entrada de destino e extrair as entradas do usuário usando a função '.value'.
- Realize a substituição de elementos para substituir campos ofuscados baseados em JS por campos de senha inseguros.

A extensão não contém código obviamente malicioso, então ela evita a detecção estática e não busca código de fontes externas (injeção dinâmica), por isso é compatível com o Manifest V3.

Isso resultou na extensão passando pela revisão e sendo aceita na Web Store do Google Chrome, então as verificações de segurança falharam em pegar a ameaça em potencial.

A equipe seguiu padrões éticos para garantir que nenhum dado real fosse coletado ou mal utilizado, desativando o servidor de recebimento de dados enquanto mantinha apenas o servidor de segmentação de elementos ativo.

Além disso, a extensão estava definida como "não publicada" em todos os momentos para que não reunisse muitos downloads e foi prontamente removida da loja após sua aprovação.

Medições subsequentes mostraram que, dos 10 mil principais sites (conforme Tranco), cerca de 1.100 estão armazenando as senhas dos usuários em forma de texto simples dentro do DOM HTML.

Outros 7.300 sites do mesmo conjunto foram considerados vulneráveis ao acesso à API DOM e à extração direta do valor de entrada do usuário.

O artigo técnico que os pesquisadores da Universidade de Wisconsin-Madison publicaram nesta semana afirma que aproximadamente 17.300 extensões na Chrome Web Store (12,5%) protegem as permissões necessárias para extrair informações sensíveis dos sites.

Várias dessas, incluindo bloqueadores de anúncios e aplicativos de compras amplamente utilizados, têm milhões de instalações.

Exemplos notáveis de falta de proteções destacadas no relatório incluem:
- gmail
- facebook
- cloudflare
- irs
- citybank
- capital one
- usenix
- amazon

Finalmente, a análise mostrou que 190 extensões (algumas com mais de 100 mil downloads) acessam diretamente os campos de senha e armazenam valores em uma variável, sugerindo que alguns editores já podem estar tentando explorar a lacuna de segurança.

Um porta-voz do Google confirmou que eles estão investigando a questão, e apontou para o FAQ de Segurança de Extensões do Chrome que não considera o acesso aos campos de senha um problema de segurança desde que as permissões relevantes sejam devidamente obtidas.

Publicidade

Curso gratuito de Python

O curso Python Básico da Solyd oferece uma rápida aproximação à linguagem Python com diversos projetos práticos. Indo do zero absoluto até a construção de suas primeiras ferramentas. Tenha também suporte e certificado gratuitos. Saiba mais...