É tentador clicar em links que oferecem um iPhone de graça, mas é crucial ter cautela, pois um simples clique pode levar a consequências indesejadas.
O clickjacking, também conhecido como “User Interface Redressing”, é uma forma de ataque que engana o usuário. Ele funciona sobrepondo uma camada invisível a um link, fazendo com que a vítima execute uma ação diferente da que pretendia.
Muitos usuários de redes sociais permanecem logados constantemente, o que pode ser explorado por cibercriminosos. Um invasor pode criar uma página com um botão chamativo, como “iPhone Grátis – Oferta Limitada”, e sobrepor um frame invisível com uma página de rede social. Assim, ao clicar no botão, o usuário, sem perceber, estará clicando em um botão “Curtir” ou “Compartilhar” da rede social.
Essa técnica simples de clickjacking pode fazer com que usuários do Facebook curtam páginas ou grupos sem que se deem conta.
Em um cenário mais leve, a vítima apenas se junta a um grupo ou página sem saber. No entanto, com um pouco mais de esforço, essa técnica pode ser usada para verificar se um usuário está logado em sua conta bancária. Ao invés de curtir ou compartilhar, a vítima pode ser induzida a clicar em um botão que transfere fundos para a conta do invasor. O problema é que essa ação maliciosa não pode ser rastreada, já que o usuário estava logado na sua conta bancária e clicou voluntariamente no botão.
Como o clickjacking frequentemente se aproveita da engenharia social, as redes sociais se tornam plataformas ideais para esses ataques.
Vamos explorar alguns exemplos de como esses ataques são executados.
Sequestro de Cliques no Twitter
Há alguns anos, o Twitter foi alvo de um ataque em massa que se aproveitou da curiosidade dos usuários para disseminar uma mensagem que os induzia a clicar em um link.
Tweets com a frase “Não clique”, seguida de um link, se espalharam rapidamente por milhares de contas. Ao clicar no link e em um botão aparentemente inofensivo, um novo tweet era enviado da conta da vítima, incluindo a mesma frase e o link malicioso.
A equipe do Twitter conseguiu conter o ataque pouco tempo depois de seu início. Embora o ataque não tenha causado danos diretos, ele serviu como um alerta sobre os riscos do clickjacking. O link malicioso levava a uma página com um iframe oculto, que continha um botão invisível que enviava o tweet malicioso da conta da vítima.
Clickjacking no Facebook
Usuários do aplicativo móvel do Facebook foram expostos a uma vulnerabilidade que permitia que spammers publicassem conteúdo em suas linhas do tempo sem sua permissão. Um especialista em segurança descobriu esse problema ao analisar uma campanha de spam, notando que muitos de seus contatos estavam compartilhando um link para uma página com fotos engraçadas. Para acessar as fotos, os usuários eram solicitados a clicar em uma declaração de maioridade.
O que eles não sabiam era que essa declaração estava em uma camada invisível.
Ao aceitar a declaração, os usuários eram levados à página com fotos, mas o link era postado em suas linhas do tempo do Facebook. Isso era possível devido a uma falha no componente de navegação do aplicativo do Facebook para Android, que não suportava os cabeçalhos de opções de frame, permitindo a sobreposição maliciosa.
O Facebook não considera isso um bug, pois não afeta diretamente a segurança das contas. Portanto, não há garantia de que esse problema será corrigido.
Clickjacking em Redes Sociais Menores
Não são apenas o Twitter e o Facebook que estão vulneráveis. Plataformas de redes sociais menos populares e blogs também têm falhas que possibilitam o clickjacking. O LinkedIn, por exemplo, tinha uma vulnerabilidade que permitia que invasores induzissem usuários a compartilhar e postar links sem seu consentimento. Antes da correção, era possível carregar a página ShareArticle do LinkedIn em um frame oculto e sobrepô-lo em páginas com links atraentes.
Outro caso é o Tumblr, uma plataforma de blogs. Ele usa JavaScript para evitar clickjacking, mas essa proteção é ineficaz se a página for isolada em um frame HTML5, que impede a execução do JavaScript. Uma técnica bem elaborada pode ser usada para roubar senhas, combinando essa falha com um plug-in auxiliar de senhas do navegador. Ao induzir os usuários a digitarem um captcha falso, eles podem enviar suas senhas ao site do invasor.
Falsificação de Solicitação Entre Sites (CSRF)
Uma variação do clickjacking é a falsificação de solicitação entre sites, ou CSRF. Através de engenharia social, cibercriminosos usam ataques CSRF para forçar usuários a realizar ações indesejadas. O ataque pode ser feito por meio de um link enviado por e-mail ou chat.
O objetivo do CSRF não é roubar dados, pois o invasor não vê a resposta à solicitação falsa. Em vez disso, o objetivo é fazer com que o usuário execute mudanças de estado, como alterar senhas ou transferir dinheiro. Se a vítima tiver privilégios administrativos, o ataque pode comprometer todo um aplicativo web.
Ataques CSRF podem ser armazenados em sites vulneráveis, em especial aqueles com “falhas CSRF armazenadas”. Isso é feito inserindo tags IMG ou IFRAME em campos de entrada que são exibidos posteriormente em uma página, como comentários ou resultados de pesquisa.
Prevenção Contra Ataques de Frame
Navegadores modernos podem ser instruídos sobre se um recurso pode ser carregado em um frame ou não. Também é possível permitir que um recurso seja carregado em um frame somente se a requisição for originada do mesmo site. Assim, os usuários não podem ser enganados a clicar em frames invisíveis com conteúdo de outros sites, evitando que seus cliques sejam sequestrados.
As técnicas de mitigação no lado do cliente são conhecidas como “frame busting” ou “frame kill”. Embora sejam eficazes em alguns casos, podem ser facilmente contornadas. Por isso, métodos do lado do cliente não são considerados as melhores práticas. Em vez disso, especialistas em segurança recomendam métodos do lado do servidor, como X-Frame-Options (XFO) ou Content Security Policy.
X-Frame-Options é um cabeçalho de resposta que servidores web enviam para indicar se um navegador pode exibir o conteúdo de uma página dentro de um frame.
O cabeçalho X-Frame-Option permite três valores:
- DENY: proíbe a exibição da página em um frame.
- SAMEORIGIN: permite a exibição da página em um frame, desde que seja do mesmo domínio.
- ALLOW-FROM URI: permite a exibição da página em um frame, mas somente de um URI específico.
Métodos anti-clickjacking mais recentes incluem o Content Security Policy (CSP) com a diretiva frame-ancestors, que tem sido amplamente utilizada como substituta do XFO. Uma grande vantagem do CSP é que ele permite que um servidor web autorize vários domínios a exibir seu conteúdo em frames. No entanto, nem todos os navegadores dão suporte a essa opção.
A diretiva frame-ancestors do CSP aceita três valores: ‘none’, que impede qualquer domínio de mostrar o conteúdo; ‘self’, que permite apenas que o site atual mostre o conteúdo em um frame; e uma lista de URLs com curingas, como ‘*.some site.com’, ‘https://www.example.com/index.html‘, etc., para permitir que a página seja exibida em frames de domínios específicos.
Como se Proteger Contra o Clickjacking
Manter-se conectado em redes sociais é conveniente, mas exige cautela ao clicar em links. Preste atenção aos sites que você visita, pois nem todos adotam medidas de proteção contra o clickjacking. Se você não tiver certeza sobre um site, evite clicar em links suspeitos, por mais tentadores que pareçam.
Outro ponto importante é manter seu navegador atualizado. Mesmo que um site utilize cabeçalhos de prevenção contra o clickjacking, nem todos os navegadores dão suporte a eles. Portanto, use sempre a versão mais recente do seu navegador, que oferece suporte a recursos anti-clickjacking.
O bom senso é uma ferramenta eficaz contra o clickjacking. Ao se deparar com conteúdo incomum, incluindo links postados por amigos em redes sociais, pergunte-se se esse conteúdo é algo que seu amigo publicaria normalmente. Se a resposta for não, avise seu amigo, pois ele pode ter sido vítima de clickjacking.
Por fim, se você é um influenciador ou tem muitos seguidores em redes sociais, redobre os cuidados e pratique um comportamento responsável online. Afinal, se você for vítima de clickjacking, o ataque pode afetar muitas pessoas.