Cuidado com a identificação de redes sociais

É difícil resistir a clicar em um link de oferta gratuita do iPhone. Mas cuidado: seu clique pode ser facilmente sequestrado e os resultados podem ser desastrosos.

Clickjacking é um método de ataque, também conhecido como User Interface Redressing, porque é configurado disfarçando (ou corrigindo) um link com uma sobreposição que induz o usuário a fazer algo diferente do que pensa.

A maioria dos usuários de redes sociais desfruta da conveniência de permanecer conectado a elas o tempo todo. Os invasores podem facilmente tirar proveito desse hábito para forçar os usuários a curtir ou seguir algo sem perceber. Para fazer isso, um cibercriminoso poderia colocar um botão tentador – por exemplo, com um texto atraente, como “iPhone grátis – oferta por tempo limitado” – em sua própria página da web e sobrepor um quadro invisível com a página da rede social nela, de forma uma maneira que um botão “Curtir” ou “Compartilhar” fica sobre o botão do iPhone grátis.

Este simples truque de clickjacking pode forçar os usuários do Facebook a curtir grupos ou páginas de fãs sem saber.

O cenário descrito é bastante inocente, no sentido de que a única consequência para a vítima é ser adicionada a um grupo de rede social. Mas com algum esforço extra, a mesma técnica pode ser usada para determinar se um usuário está conectado à sua conta bancária e, em vez de curtir ou compartilhar algum item de mídia social, ele ou ela pode ser forçado a clicar em um botão que transfere fundos para a conta de um invasor, por exemplo. A pior parte é que a ação maliciosa não pode ser rastreada, porque o usuário estava legitimamente conectado à sua conta bancária e clicou voluntariamente no botão de transferência.

Como a maioria das técnicas de clickjacking requer engenharia social, as redes sociais se tornam vetores de ataque ideais.

Vamos ver como eles são usados.

Sequestro de cliques no Twitter

Há cerca de dez anos, a rede social Twitter sofreu um ataque massivo que rapidamente espalhou uma mensagem, que levou os usuários a clicar em um link, aproveitando-se de sua curiosidade natural.

Tweets com o texto “Não clique”, seguido de um link, se propagaram rapidamente em milhares de contas do Twitter. Quando os usuários clicavam no link e depois em um botão aparentemente inocente na página de destino, um tweet era enviado de suas contas. Esse tweet incluía o texto “Não clique”, seguido do link malicioso.

  O que são drives NVMe e você deve comprar um?

Os engenheiros do Twitter corrigiram o ataque de clickjacking pouco depois de ele começar. O ataque em si provou ser inofensivo e funcionou como um alarme informando os riscos potenciais envolvidos em iniciativas de clickjacking no Twitter. O link malicioso levava o usuário a uma página da Web com um iframe oculto. Dentro da moldura havia um botão invisível que enviava o tweet malicioso da conta da vítima.

Clickjacking no Facebook

Os usuários do aplicativo móvel do Facebook estão expostos a um bug que permite que spammers publiquem conteúdo clicável em suas linhas do tempo, sem seu consentimento. O bug foi descoberto por um profissional de segurança que estava analisando uma campanha de spam. O especialista observou que muitos de seus contatos estavam publicando um link para uma página com fotos engraçadas. Antes de chegar às fotos, os usuários foram solicitados a clicar em uma declaração de maioridade.

O que eles não sabiam era que a declaração estava sob uma moldura invisível.

Quando os usuários aceitavam a declaração, eram levados a uma página com fotos engraçadas. Mas, enquanto isso, o link foi publicado na linha do tempo do Facebook dos usuários. Isso foi possível porque o componente do navegador da web no aplicativo do Facebook para Android não é compatível com os cabeçalhos de opções de quadro (abaixo explicaremos o que são) e, portanto, permite a sobreposição de quadro maliciosa.

O Facebook não reconhece o problema como um bug porque não tem impacto na integridade das contas dos usuários. Portanto, é incerto se algum dia será consertado.

Clickjacking em redes sociais menores

Não é só Twitter e Facebook. Outras redes sociais menos populares e plataformas de blogs também têm vulnerabilidades que permitem o clickjacking. O LinkedIn, por exemplo, tinha uma falha que abria uma porta para os invasores induzirem os usuários a compartilhar e postar links em seu nome, mas sem o seu consentimento. Antes de ser corrigida, a falha permitia que os invasores carregassem a página ShareArticle do LinkedIn em um quadro oculto e sobrepusesse esse quadro em páginas com links ou botões aparentemente inocentes e atraentes.

Outro caso é o Tumblr, a plataforma pública de blogs na web. Este site usa código JavaScript para evitar clickjacking. Mas esse método de proteção se torna ineficaz, pois as páginas podem ser isoladas em um quadro HTML5 que as impede de executar o código JavaScript. Uma técnica cuidadosamente elaborada pode ser usada para roubar senhas, combinando a falha mencionada com um plug-in de navegador auxiliar de senha: ao enganar os usuários para que digitem um texto captcha falso, eles podem enviar inadvertidamente suas senhas para o site do invasor.

  Veja como fazer isso rápido

Falsificação de solicitação entre sites

Uma variante do ataque de clickjacking é chamada de falsificação de solicitação entre sites, ou CSRF, para abreviar. Com a ajuda da engenharia social, os cibercriminosos direcionam os ataques CSRF contra os usuários finais, forçando-os a executar ações indesejadas. O vetor de ataque pode ser um link enviado por e-mail ou chat.

Os ataques CSRF não pretendem roubar os dados do usuário porque o invasor não pode ver a resposta à solicitação falsa. Em vez disso, os ataques visam solicitações de mudança de estado, como alteração de senha ou transferência de fundos. Se a vítima tiver privilégios administrativos, o ataque poderá comprometer todo um aplicativo da web.

Um ataque CSRF pode ser armazenado em sites vulneráveis, particularmente sites com as chamadas “falhas CSRF armazenadas”. Isso pode ser feito inserindo tags IMG ou IFRAME em campos de entrada que são mostrados posteriormente em uma página, como comentários ou uma página de resultados de pesquisa.

Prevenção de ataques de enquadramento

Os navegadores modernos podem ser informados se um determinado recurso é permitido ou não carregar dentro de um quadro. Eles também podem optar por carregar um recurso em um quadro somente quando a solicitação for originada no mesmo site em que o usuário está. Dessa forma, os usuários não podem ser enganados para clicar em quadros invisíveis com conteúdo de outros sites e seus cliques não são sequestrados.

As técnicas de mitigação do lado do cliente são chamadas de frame busting ou frame kill. Embora possam ser eficazes em alguns casos, também podem ser facilmente contornados. É por isso que os métodos do lado do cliente não são considerados as melhores práticas. Em vez de frame busting, os especialistas em segurança recomendam métodos do lado do servidor, como X-Frame-Options (XFO) ou mais recentes, como Content Security Policy.

X-Frame-Options é um cabeçalho de resposta que os servidores da Web incluem nas páginas da Web para indicar se um navegador pode ou não mostrar seu conteúdo dentro de um quadro.

  Mais de 5.000 nomes engraçados do Kahoot

O cabeçalho X-Frame-Option permite três valores.

  • DENY, que proíbe exibir a página dentro de um quadro
  • SAMEORIGIN, que permite exibir a página dentro de um quadro, desde que permaneça no mesmo domínio
  • ALLOW-FROM URI, que permite a exibição da página em um quadro, mas apenas em um URI especificado (Uniform Resource Identifier), por exemplo, apenas em uma página da Web específica e específica.

Métodos anti-clickjacking mais recentes incluem Content Security Policy (CSP) com a diretiva frame-ancestors. Esta opção está sendo amplamente utilizada na substituição do XFO. Um grande benefício do CSP em comparação com o XFO é que ele permite que um servidor da Web autorize vários domínios a enquadrar seu conteúdo. No entanto, ainda não é suportado por todos os navegadores.

A diretiva frame-ancestors do CSP admite três tipos de valores: ‘none’, para evitar que qualquer domínio mostre o conteúdo; ‘self’, para permitir apenas que o site atual mostre o conteúdo em um quadro ou uma lista de URLs com curingas, como ‘*.some site.com,’ ‘https://www.example.com/index.html,’ etc., para permitir apenas o enquadramento em qualquer página que corresponda a um elemento da lista.

Como se proteger contra clickjacking

É conveniente permanecer conectado a uma rede social enquanto navega, mas se o fizer, precisará ser cauteloso com seus cliques. Você também deve prestar atenção aos sites que visita, pois nem todos eles tomam as medidas necessárias para evitar o clickjacking. Caso você não tenha certeza sobre um site que está visitando, não deve clicar em nenhum clique suspeito, por mais tentador que seja.

Outra coisa a prestar atenção é a versão do seu navegador. Mesmo que um site use todos os cabeçalhos de prevenção de clickjacking mencionados anteriormente, nem todos os navegadores oferecem suporte a todos eles, portanto, certifique-se de usar a versão mais recente que você pode obter e que oferece suporte a recursos anti-clickjacking.

O senso comum é um dispositivo eficaz de autoproteção contra o clickjacking. Ao ver um conteúdo incomum, incluindo um link postado por um amigo em qualquer rede social, antes de fazer qualquer coisa, você deve se perguntar se esse é o tipo de conteúdo que seu amigo publicaria. Caso contrário, você deve avisar seu amigo de que ele pode ter se tornado vítima de clickjacking.

Um último conselho: se você é um influenciador, ou apenas tem um número muito grande de seguidores ou amigos em alguma rede social, deve redobrar os cuidados e praticar um comportamento responsável online. Porque se você se tornar uma vítima de clickjacking, o ataque acabará afetando muitas pessoas.