Clickjacking

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

O clickjacking ("furto de click") é uma técnica informática fraudulenta. O roubo de click é uma armadilha preparada para que o usuário pense que está fazendo uma ação num determinado site, mas na verdade os cliques executados nessa ação estejam sendo usados pelo atacante, para executar operações maliciosas.

Origem[editar | editar código-fonte]

Pouco antes da AppSec 2008, uma importante conferência sobre segurança da informação, Jeremiah Grossman e Robert Hansen desistiram de sua apresentação. A apresentação “New 0-Day Browser Exploits: Clickjacking - yea, this is bad” foi cancelada pelo fato dos seus idealizadores acharem prudente alertar com urgência os fabricantes antes que a vulnerabilidade fosse disseminada, e os impactos tomassem proporções preocupantes. Após o tempo concedido para o lançamento de correções de segurança, Hansen e Grossman demonstraram uma aplicação de clickjacking onde o usuário acessava um jogo, e com os cliques que este executava jogando, era liberado o acesso à câmera e ao microfone do computador. Enquanto uma pessoa executava um jogo despreocupadamente o hacker poderia ver e ouvir o que se passava na residência da vitima.

Características da vulnerabilidade[editar | editar código-fonte]

Funcionamento[editar | editar código-fonte]

A ideia básica se concentra em sobrepor algum elemento clicável na tela com um Iframe, ou quadro invisível contendo a página em que o atacante quer que o usuário execute uma atividade. No clickjacking típico esse iframe é 100% transparente, ou redimensionado e posicionado de forma que ocupe a área de um botão na página que a vítima acredita ser inofensiva. O usuário clica no botão da página inofensiva, mas na verdade seu clique é executado em outra página, na que foi carregada dentro do iframe.

Evolução da técnica[editar | editar código-fonte]

Inicialmente acreditava-se que clickjacking podia apenas injetar cliques numa aplicação desejada, podia quebrar se o layout de uma página mudasse, mas não só as defesas evoluíram como também as investidas.

À prova de layouts variáveis[editar | editar código-fonte]

Layouts variáveis são comuns, e na forma mais simples de clickjacking isso era um empecilho. Dependendo totalmente de como os elementos são dispostos na página, visto que o iframe enquadra o site com posicionamento absoluto, uma mudança no layout podia quebrar totalmente um ataque. Atualmente os ataques superam essa barreira facilmente.

Injetando e Extraindo Dados[editar | editar código-fonte]

Apesar da técnica se utilizar do mouse, hackers descobriram também como extrair e injetar dados utilizando cliques. Dessa forma o usuário pode enviar dados indesejados utilizando o próprio e-mail, ou ter dados roubados.

Evitando Proteção de Cross-Site Request Forgery[editar | editar código-fonte]

Cross-site request forgery é um ataque web largamente utilizado nos últimos anos e que gera grande preocupação na comunidade de pesquisadores de segurança da informação. Clickjacking é uma forma direta de evitar uma defesa comum de Cross-site Request Forgery, na qual o usuário é consultado sob a validade de uma operação, requisitando do usuário apenas um clique.

Riscos ao usuário[editar | editar código-fonte]

O risco primário em caso de ataque é o Phishing, onde o usuário pode ter dados importantes roubados, o que pode levar a uso indevido dos seus dados. Outro risco possível é o de utilização das credenciais virtuais do indivíduo, como senha de rede social, e-mail ou Internet_banking.

Versão para dispositivos móveis[editar | editar código-fonte]

Com o crescimento rápido do uso de dispositivos móveis, estes se tornaram um vetor de ataque de grande interesse do cybercrime. Com segurança bem mais negligenciada que nos computadores tradicionais, tablets, celulares tem defesas muito mais fracas, facilitando o ataque de hackers. Os dispositivos móveis são o alvo das investidas mais recentes, entretanto, para um ataque ainda não muito difundido em uma plataforma ainda pouco explorada pelos criminosos, é possível que clickjacking seja ofuscado por outras vulnerabilidades mais utilizadas no momento.

Defesas[editar | editar código-fonte]

Diferente dos casos de outras vulnerabilidades, ataques de frame não são culpa de uma implementação mal feita de uma aplicação web. O mau uso de algumas características de HTML e CSS combinados com a forma como os browsers interpretam a interação do usuário com elementos transparentes acabaram gerando esse problema. A grande dificuldade não é evitar clickjacking para um usuário específico, mas para todos, visto que o browser é determinante na viabilidade do ataque.

Do ponto de vista de quem constrói o site, as técnicas mais utilizadas não são soluções definitivas ainda, as mais utilizadas são frame busting ou quebra de frame, uma técnica de defesa implementada em Javascript e o cabeçalho HTTP X-frame-options.

Para o usuário resta ter o browser sempre atualizado e evitar websites de procedência desconhecida. É possível também desativar o Javascript para quebrar o ataque, porém a técnica mais utilizada para defender os usuários utiliza a mesma linguagem de programação, ou seja, o usuário estaria desativando sua própria proteção em alguns casos.

Ver também[editar | editar código-fonte]