Como ataques de clickjacking DOM podem roubar senhas e como se proteger

Por que este artigo importa
Gerenciadores de senhas protegem credenciais, mas a combinação de comportamento do navegador e recursos de preenchimento automático pode ser explorada. Este artigo explica a técnica, mostra mitigação prática para usuários e administradores e oferece checklists, um pequeno playbook de resposta e critérios de teste para validar correções.
Como os gerenciadores de senhas ficam vulneráveis
Um exploit baseado no Document Object Model (DOM) possibilitou uma variante de clickjacking que faz com que o recurso de preenchimento automático dos gerenciadores de senhas seja acionado em formulários falsos. Resultado: credenciais, códigos TOTP/2FA e dados de cartão podem ser preenchidos automaticamente e exfiltrados sem o usuário perceber.
Fluxo simplificado do ataque:
- O usuário visita uma página controlada pelo atacante que mostra um elemento legítimo e clicável (por exemplo, um banner de cookies ou um botão “fechar”).
- O atacante insere, via manipulação do DOM, um formulário invisível exatamente sobre a área do elemento clicável. Para ocultá-lo, é comum usar CSS como
opacity:0
.
/* Exemplo simples usado por atacantes para ocultar um formulário sobre outro elemento */
.invisivel { opacity:0; position:absolute; left:0; top:0; }
- Quando o usuário clica, a extensão do gerenciador de senhas detecta o foco no campo e dispara o preenchimento automático; os dados vão parar no formulário invisível e podem ser lidos/exfiltrados pelo script malicioso.
Importante: o ataque explora como navegadores renderizam páginas e como extensões respondem ao foco nos campos — muitas correções nas extensões são paliativas porque o problema fundamental está na interação entre página, navegador e extensão.
Quando esse ataque funciona e quando falha
- Funciona quando a extensão preenche automaticamente ao detectar foco ou clique sem confirmação do usuário.
- Funciona se o atacante puder controlar scripts na página ou injetar elementos sobre áreas clicáveis.
- Falha quando a extensão exige uma ação explícita (por exemplo, clicar no ícone da extensão ou em um botão de confirmação) ou quando bloqueadores de script impedem a execução do código malicioso.
- Falha em sites que usam Content Security Policy (CSP) e evitam injeção de scripts de terceiros, contanto que o atacante não contorne a CSP.
Medidas imediatas para usuários (passo a passo)
1) Atualize o gerenciador de senhas
Mantenha a extensão/app na versão mais recente — correções foram lançadas por vários fornecedores. Mesmo assim, muitas correções adicionam apenas prompts de confirmação; combine essa atualização com outras medidas.
2) Desative o preenchimento automático por foco
O preenchimento automático por foco é o vetor explorado. Nas configurações da sua extensão de senha, procure pela opção de preenchimento automático e desative a opção que preenche ao focar o campo.
- Em português, procure por algo como Preenchimento automático e salvar ou Preenchimento automático ao focar e desligue.
- Após desativar, será necessário ativar manualmente o preenchimento (por exemplo, clicando em um botão dentro da extensão quando estiver no campo correto).
3) Configure a extensão para ativar somente quando você permitir
Abra a página de extensões do navegador, selecione o gerenciador de senhas e ajuste Acesso ao site para Ao clicar ou Em sites específicos. Isso impede que a extensão rode em todas as páginas por padrão.
- Ao clicar: a extensão só age quando você clicar no ícone dela.
- Em sites específicos: configure uma lista de domínios confiáveis onde o preenchimento automático é permitido.
4) Prefira o app nativo em vez da extensão quando possível
Apps desktop/móveis geralmente exigem copiar/colar manual ou autorização explícita para preencher campos, reduzindo a superfície de ataque para esse vetor específico.
5) Use um bloqueador de scripts
Bloquear scripts em domínios não confiáveis impede que injeções e manipulações do DOM funcionem. Extensões como NoScript ou outras ferramentas de bloqueio de script podem ser eficazes.
- Recomenda-se permitir scripts somente em domínios confiáveis.
- Bloquear JavaScript globalmente é a medida mais segura, mas menos prática; ajuste permissões conforme seu perfil de risco.
6) Proteja contas com métodos além da senha
- Use 2FA forte: autenticadores TOTP em um dispositivo separado ou, preferencialmente, chaves de segurança (FIDO2/passkeys).
- Evite SMS como único segundo fator.
- Desconfie de soluções de login automático que não exigem uma interação consciente.
Checklist rápido para usuários
- Atualizar extensão/app do gerenciador de senhas.
- Desativar preenchimento automático ao focar.
- Mudar acesso da extensão para Ao clicar ou Em sites específicos.
- Instalar e configurar um bloqueador de scripts em domínios não confiáveis.
- Habilitar 2FA forte e considerar passkeys/hardware keys.
Checklist para equipes de TI e administradores
- Distribuir instruções para desativar preenchimento automático por foco.
- Forçar políticas de extensão (via GPO ou gerenciamento de endpoint) para limitar sites permitidos.
- Atualizar inventário de gerenciadores de senha usados internamente e checar versões.
- Monitorar anomalias de login e sinais de exfiltração de credenciais.
- Rever Content Security Policy e políticas de carregamento de scripts em domínios corporativos.
Playbook de resposta a incidente (passos operacionais)
- Isolar sessão afetada: instruir o usuário a fechar abas e desconectar do serviço crítico.
- Rotacionar credenciais comprometidas (senha + tokens associados).
- Revogar sessões autenticadas e tokens OAuth relacionados.
- Verificar logs de acesso para atividades suspeitas (endereço IP, geolocalização, hora).
- Exigir 2FA adicional para contas sensíveis e informar user base.
- Publicar orientações internas e exigir atualização de extensão.
- Se houver exfiltração comprovada de dados sensíveis, notificar conforme requisitos legais e de privacidade.
Kritérios de sucesso: credenciais rotacionadas, sessão suspeita encerrada, logs analisados, e medidas de mitigação aplicadas em 24–72 horas.
Testes e critérios de aceitação para validação de correção
- Teste 1: Em um ambiente controlado, criar um formulário invisível sobre um botão clicável e verificar se a extensão preenche campos automaticamente ao clicar. Critério de aceitação: preenchimento não ocorre sem confirmação explícita do usuário.
- Teste 2: Configurar extensão para Ao clicar; confirmar que a extensão não preenche em páginas não permitidas. Critério: não preencher até o ícone ser clicado.
- Teste 3: Com bloqueador de scripts ativo, validar que injeções DOM/JavaScript não conseguem posicionar o formulário invisível. Critério: script bloqueado, formulário não injetado.
Modelos mentais e heurísticas
- Mental model: pense na extensão como um “atirador automático” — se estiver configurada para atirar ao menor movimento (foco), qualquer movimento manipulado pode dispará-la.
- Heurística: priorize controle humano explícito (clicar no ícone da extensão) sobre automações invisíveis.
Matriz de decisões (Mermaid)
flowchart TD
A[Detectou preenchimento automático] --> B{Você confia no site?}
B -- Sim --> C[Permitir no site ou usar app nativo]
B -- Não --> D[Bloquear scripts e não permitir extensão]
C --> E[Ativar 2FA forte]
D --> E
Quando confiar em um preenchimento automático
Confie somente quando:
- O domínio é conhecido e constantemente monitorado por você/empresa.
- A extensão está configurada para operar somente em sites específicos e sob interação explícita.
- Há 2FA forte habilitado para a conta.
Privacidade e conformidade (observações GDPR)
- Se credenciais ou dados pessoais forem exfiltrados, empresas devem avaliar obrigação de notificação de violação conforme GDPR/Lei local.
- Documente o incidente, ação corretiva e avaliação de impacto de proteção de dados (DPIA) se aplicável.
Resumo final
Importante: o vetor explora a interação entre navegador, DOM e extensão. Medidas combinadas reduzem o risco — atualizações, desativar preenchimento automático por foco, limitar permissões da extensão, usar apps nativos, bloquear scripts e adotar 2FA forte.
Principais ações imediatas: atualize a extensão, desative o preenchimento automático ao focar, configure Ao clicar ou Em sites específicos, e passe a usar um bloqueador de scripts em domínios não confiáveis.
Glossário de uma linha
- DOM: representação em árvore da página web que scripts podem ler e modificar.
- Clickjacking: técnica de sobrepor elementos invisíveis para enganar usuários a clicarem em algo diferente do que veem.
- TOTP: código temporário gerado por um autenticador (Time-based One-Time Password).
Recursos rápidos e configurações úteis
- Extensão: procurar por Preenchimento automático, Preenchimento automático ao focar, Acesso ao site, Ao clicar.
- Bloqueadores recomendados: NoScript, uBlock Origin (modo estrito), extensões que permitam listas de permissões.
Versão curta para anúncio (100–200 palavras)
Foi descoberta uma variante de clickjacking baseada no DOM que pode induzir gerenciadores de senhas a preencherem formulários invisíveis, expondo senhas e códigos 2FA. Atualize seu gerenciador de senhas, desative o preenchimento automático ao focar, configure a extensão para ativar somente ao clicar ou em sites específicos, e prefira usar o app nativo do gerenciador. Adote bloqueadores de script em domínios não confiáveis e reforce contas com 2FA forte (autenticador em dispositivo separado ou chave de segurança). Para equipes de TI, implemente políticas de extensão e proceda com investigação e rotação de credenciais em caso de incidente.
Importante: essas medidas combinadas reduzem significativamente o risco, pois muitas correções nas extensões são paliativas diante do comportamento de rendering dos navegadores.
Materiais semelhantes

Apagar e controlar histórico de buscas do YouTube

Terminal Linux: Guia prático e comandos essenciais

Apagar histórico de pesquisas do YouTube — guia rápido

Corrigir erro Hueneme Negev em Black Ops 6

Clickjacking DOM: como gerenciadores de senha são explorados
