Guia de tecnologias

Como se Proteger do Clickjacking

9 min read Cibersegurança Atualizado 19 Sep 2025
Como se Proteger do Clickjacking
Como se Proteger do Clickjacking

Placa com o texto

Importante: este guia combina orientação prática para usuários finais e medidas técnicas para administradores e desenvolvedores. Há uma seção de testes, uma lista de verificação por função e um plano de resposta a incidentes.

O que é clickjacking?

Clickjacking, também chamado de ataque de redirecionamento da interface do utilizador (UI redress attack), ocorre quando um atacante sobrepõe elementos invisíveis ou manipulados sobre uma página legítima para que o utilizador clique inadvertidamente em algo diferente do que vê. Em vez de uma página falsa, o ataque acontece na própria página verdadeira, por isso é mais perigoso e mais difícil de perceber.

Definição rápida: clickjacking é a técnica de enganar um utilizador para que clique em controles escondidos, dando ao atacante o controlo de ações que aparentam ser legítimas.

Exemplos práticos:

  • Você clica para baixar um e-book e, em vez disso, instala malware.
  • Um botão “Curtir” transparente em cima de uma página legítima dá likes em conteúdo spam (likejacking).
  • Uma sequência de dois cliques (double clickjacking) instala uma extensão ou autoriza uma ação após uma falsa confirmação.

Código HTML de uma página web com iframes e camadas sobrepostas.

Como o clickjacking funciona (técnicas comuns)

Técnicas usadas por atacantes:

  • Sobreposição transparente (elementos com opacity:0, z-index alto). O utilizador clica sem saber que há outro elemento acima.
  • Reposicionamento e recorte (apenas um controlo específico fica visível).
  • Drop de evento de clique: o clique inicial é ignorado visualmente enquanto o evento real é enviado a um alvo diferente.
  • Pop-ups e prompts que solicitam um segundo clique de confirmação ou um double-tap em mobile.
  • Manipulação de iframes: o atacante carrega a página legítima dentro de um iframe que ele controla e injeta camadas acima.

Tecnologias e propriedades exploradas: CSS (opacity, pointer-events, z-index), HTML iframe, JavaScript de captura e reemissão de eventos, e engenharia social (prompts, CAPTCHAs falsos).

Por que é perigoso — contornando antivírus e navegadores

Muitos antivírus se baseiam na detecção de ficheiros maliciosos ou em padrões conhecidos de comportamento. Clickjacking frequentemente não envolve um ficheiro descarregado imediatamente ou um payload tradicional; a ação maliciosa ocorre no contexto do site legítimo, tornando a deteção automatizada mais difícil.

Mesmo navegadores com protecções incorporadas podem falhar em casos avançados, como double clickjacking, que evita os mecanismos de bloqueio típicos (por exemplo, quando o ataque depende de duas ações do utilizador em sequência). Ataques em dispositivos móveis também usam prompts de toque duplo, que podem escapar a heurísticas clássicas.

Sinais de que pode estar a ser alvo de clickjacking

  • Um botão ou link inesperadamente pede uma segunda confirmação.
  • Ao clicar, nada parece acontecer visualmente, mas posteriormente há uma ação nova associada à sua conta.
  • Pop-ups que aparecem sobre páginas confiáveis oferecendo prémios ou instalações.
  • Botões que não parecem levar a lugar algum (href vazio) ou links com destinos estranhos.

Nota: nem todas as confirmações são maliciosas — verifique histórico e comportamento da página antes de desistir.

Proteções para utilizadores finais

Medidas práticas e rápidas:

  • Mantenha o navegador e as extensões atualizados. Correções de segurança são frequentes.
  • Atualize antivírus e anti-malware; alguns incluem extensões de navegador que sinalizam reputação de sites.
  • Use bloqueadores de anúncios e scripts (adblockers, uBlock Origin, NoScript) para reduzir camadas que os atacantes podem aproveitar.
  • Ignore pop-ups apelativos e banners “ganhou um iPhone”. Feche sem clicar.
  • Se um link não navega para outro endereço na primeira tentativa, não clique novamente até investigar.
  • Teste páginas suspeitas em sites de verificação de URL.

Ferramentas de verificação recomendadas:

  • VirusTotal (útil para links e ficheiros)
  • urlscan.io
  • Google Transparency Report
  • Hybrid Analysis
  • Serviços locais ou nacionais de análise de URL (quando disponíveis)

Verifique sempre o URL antes de interagir: uma letra trocada num domínio pode indicar um site spoofado. Chrome e outros navegadores alertam sobre domínios suspeitos, mas a verificação manual também ajuda.

Medidas para administradores e desenvolvedores web

A proteção eficiente exige medidas no servidor e na interface. Principais contramedidas:

  1. X-Frame-Options (cabeçalho HTTP)
  • Deny a incorporação de toda a página: X-Frame-Options: DENY
  • Permitir apenas o mesmo domínio: X-Frame-Options: SAMEORIGIN
  • Observação: este cabeçalho está obsoleto para casos mais flexíveis; prefira CSP para controle avançado.
  1. Content-Security-Policy frame-ancestors (CSP)
  • Uma política CSP pode especificar quais origens podem incluir a página em iframes.
  • Exemplo: Content-Security-Policy: frame-ancestors ‘self’ https://exemplo-confiavel.com
  • É o método recomendado e moderno para bloquear heranças de frames.
  1. Atributo sandbox em iframes
  • Use sandbox para restringir capacidades do conteúdo em iframes (scripts, formulários, plugins).
  • Exemplo:
  • Combine sandbox com allow-forms, allow-same-origin conforme necessidade mínima.
  1. Defesas em JavaScript
  • Detectar iframes e recusar execução quando a página estiver embutida: if (window.top !== window.self) { / bloquear ou redirecionar / }
  • Esta técnica (framebusting) pode ser contornada, mas é um complemento válido.
  1. Validar ações sensíveis no servidor
  • Nunca confie em cliques apenas no cliente. Exija autenticação, tokens CSRF, e validações no servidor para operações críticas.
  1. UI design resistente ao clickjacking
  • Evite acções sensíveis com um único clique sem uma confirmação explícita e visível.
  • Garanta que prompts de confirmação sejam consistentes e inequívocos.
  1. Monitorização e auditoria
  • Registe eventos de autorização, instalações de extensões e alterações de conta com carimbos temporais e IPs.
  • Configure alertas para padrões suspeitos (ex.: várias alterações de autorização num intervalo curto).

Testes e metodologia para verificar clickjacking

Mini-metodologia para testes manuais e automatizados:

  1. Teste básico de frame-embedding
  • Tente carregar a página alvo dentro de um iframe em um domínio de teste.
  • Observe se a página é exibida ou bloqueada pelo X-Frame-Options/CSP.
  1. Simulação de overlay
  • Crie uma página de teste com um iframe que carrega o alvo e um elemento transparente (div com opacity: 0) sobre um botão específico.
  • Execute ferramentas de automação (Selenium, Puppeteer) para simular cliques e confirmar que eventos chegam ao alvo.
  1. Double-click e fluxos móveis
  • Simule duplo clique e toques em dispositivos móveis usando emulação em navegador para detectar prompts adicionais que possam ser abusados.
  1. Test cases (exemplos de aceitação)
  • TC-01: Página deve adicionar cabeçalho CSP frame-ancestors ‘self’ — falha se permitir origem externa.
  • TC-02: Botões sensíveis requerem confirmação explícita com texto claro — falha se confirmação for ambígua.
  • TC-03: Sandbox aplicado em iframes de terceiros — falha se iframe puder executar scripts não autorizados.

Checklist por função

Checklist para utilizadores finais:

  • Navegador atualizado
  • Bloqueador de anúncios e scripts ativo
  • Extensões revisadas e atualizadas
  • Evitar clicar em pop-ups e banners suspeitos
  • Verificar URLs antes de interagir

Checklist para administradores de sites:

  • Implementar CSP frame-ancestors
  • Incluir X-Frame-Options quando aplicável
  • Aplicar sandbox a iframes de terceiros
  • Validar ações sensíveis no servidor
  • Monitorizar logs e configurar alertas

Checklist para desenvolvedores:

  • Evitar rely-on-click-only para ações críticas
  • Usar tokens CSRF e validação adicional
  • Testar a aplicação dentro de iframes durante QA
  • Auditar dependências e plugins que manipulam DOM

Plano de resposta a incidentes (runbook)

  1. Identificar e isolar
  • Identifique a URL afetada e isole o servidor ou a página vulnerável (modo manutenção). Registre a hora e o alcance.
  1. Reverter mudanças recentes
  • Se uma alteração de código implantada recentemente introduziu vulnerabilidade, revertê-la imediatamente.
  1. Aplicar correção rápida
  • Ativar CSP frame-ancestors ‘self’ ou X-Frame-Options: DENY como mitigação imediata.
  1. Investigar e remediar
  • Auditar logs para identificar vítimas e vetores de exploração.
  • Forçar redefinição de tokens/autorizações comprometidas quando necessário.
  1. Comunicar
  • Notificar utilizadores afetados com instruções claras e reconfiguração de credenciais, se aplicável.
  1. Verificação pós-incidente
  • Executar testes automatizados e manuais para garantir que a correção permaneça eficaz.

Matriz de risco e mitigação (qualitativa)

  • Alto risco: ações de conta (transferências, definições de autorização) — Mitigação: confirmações servidor-lado e reautenticação.
  • Médio risco: instalação de extensões/pagamentos — Mitigação: limitar flows a origem segura e validação extra.
  • Baixo risco: interações de UI não sensíveis — Mitigação: design defensivo e monitorização.

Ferramentas e recursos recomendados

  • Testes: Puppeteer, Selenium, Burp Suite
  • Análise de URLs: VirusTotal, urlscan.io, Google Transparency Report, Hybrid Analysis
  • Bibliotecas CSP: helmet (Node.js), mod_security (Apache), CSP plugins para frameworks

Página inicial do VirusTotal, usada para verificar links e ficheiros suspeitos.

Quando as proteções falham — exemplos e contra-exemplos

Contra-exemplos (quando a defesa pode falhar):

  • Um site que confia apenas em framebusting JavaScript pode ser contornado por um atacante que injeta código na origem pai.
  • Extensões legítimas mas vulneráveis podem permitir que atacantes modifiquem comportamentos de página.
  • Flows que exigem apenas um único clique sem validação no servidor são mais fáceis de abusar.

Alternativas e heurísticas úteis:

  • Heurística do mínimo privilégio: permita apenas origens necessárias em frame-ancestors.
  • Preferir políticas server-side a verificações client-side isoladas.

Fluxo de decisão rápido (Mermaid)

flowchart TD
  A[Usuário vê prompt ou botão] --> B{O site é conhecido?}
  B -- Não --> C[Não clique; verifique URL e use scanner]
  B -- Sim --> D{Solicita confirmação extra?}
  D -- Sim --> E[Confirmar se o padrão da UI é consistente antes de clicar]
  D -- Não --> F{Link navega na primeira tentativa?}
  F -- Não --> C
  F -- Sim --> G[Clique se a navegação e destino forem legítimos]
  E --> G

Perguntas frequentes

O clickjacking pode roubar senhas?

Diretamente, não — mas pode induzir o utilizador a executar ações que permitem o atacante a alterar configurações, instalar extensões ou autorizar acessos que resultem em compromisso de conta.

Navegadores modernos impedem todo o clickjacking?

Não completamente. Navegadores mitigam muitos casos comuns, mas ataques avançados (ex.: double clickjacking) e explorações combinadas com extensões maliciosas ainda representam riscos.

Que cabeçalhos HTTP devo usar imediatamente?

Content-Security-Policy com frame-ancestors é o mais robusto. X-Frame-Options ainda é útil como defesa em camadas.

Conclusão

Clickjacking voltou a chamar atenção com variantes mais sofisticadas, como o double clickjacking. Utilizadores devem manter software atualizado, evitar pop-ups e verificar links em ferramentas de scanner. Desenvolvedores e administradores devem reforçar cabeçalhos HTTP, aplicar sandbox em iframes, validar ações no servidor e auditar logs. Um plano de testes e um runbook de resposta são essenciais para reduzir impacto.

Resumo: mantenha navegadores e extensões atualizados, use bloqueadores de anúncios para reduzir vetores, implemente CSP e X-Frame-Options no servidor, e execute testes regulares.

Importante: se suspeitar que foi vítima, mude senhas, revise autorizações de aplicações e siga o plano de resposta descrito.

FAQ

  • Pergunta: Posso usar apenas um bloqueador de anúncios para ficar seguro?

  • Resposta: Bloqueadores reduzem vetores, mas não substituem atualizações, validações servidor-side e cabeçalhos de segurança.

  • Pergunta: Como verificar rapidamente se um site permite embedding?

  • Resposta: Abra um ficheiro HTML de teste com um iframe apontando para o site; se a página carregar, as proteções de embedding não estão ativas.

Créditos das imagens: Unsplash. Capturas de ecrã por Crystal Crowder.

Autor
Edição

Materiais semelhantes

Conectar impressora HP ao Wi‑Fi — guia rápido
Suporte Técnico

Conectar impressora HP ao Wi‑Fi — guia rápido

Gravar reuniões Zoom sem permissão — guia prático
Tutoriais

Gravar reuniões Zoom sem permissão — guia prático

Papéis de parede diferentes por tela no Android
Android

Papéis de parede diferentes por tela no Android

Monitoramento Apache Tomcat — contadores e regras
Monitoramento

Monitoramento Apache Tomcat — contadores e regras

Como se Proteger do Clickjacking
Cibersegurança

Como se Proteger do Clickjacking

Papéis de parede distintos por tela no Android
Android

Papéis de parede distintos por tela no Android