Como, exatamente, um worm do Facebook funciona?

27

Inicialmente, eu assumi que uma amiga do FB estava espalhando um link malicioso porque ela inocentemente aceitou um aplicativo e lhe deu privilégios, mas ela diz que não é esse o caso. Veja a troca:

Amigo: "Não clique no link que você recebeu de mim! Ele está infectado! Eu peguei de (nome redigido) !!! Me desculpe! Eu preciso parar ******por aqui!"
Eu: "Você aceitou um aplicativo FB. Tudo o que você precisa fazer é ir para Conta -> Configurações de privacidade -> Aplicativos e sites e cancelar a aceitação do aplicativo ofensivo. É por isso que não faço aplicativos FB, ponto final."
Amigo: não é um aplicativo. não está na lista ... é um verme

Como isso funciona? Mudanças de JavaScript quando a pessoa clica no link?

JCCyC
fonte

Respostas:

31

Sim, exatamente JavaScript. Acabei de conhecer um verme e tentei decodificá-lo.

Qual é o problema real:

O worm recente do Facebook funciona fazendo com que os usuários visitem uma página, o que os faz inserir uma string JavaScript em sua barra de endereços e, portanto, executá-la.

Portanto, NUNCA copie algum código JavaScript na sua barra de endereço. Esse é o principal problema. E não clique em nenhum link em que não confie. Ou pelo menos abra esses links em uma nova janela usando o Modo de privacidade (Firefox) ou o modo de navegação anônima (Chrome) para que ele não possa acessar sua sessão do Facebook.


O que nossos hackers fizeram para que as pessoas não percebessem o que estavam fazendo?

Escapando o script

A string que você copia na barra de URL é vinculada principalmente a outro JavaScript que é executado. Este script é realmente decodificado em entidades. Portanto, em vez de usar caracteres de seqüência de caracteres, o script inteiro foi colocado em uma sequência de caracteres e escapou para que nenhum ser humano pudesse lê-lo em primeiro lugar.

Por exemplo, se eu tivesse uma função muito maliciosa, escaparia dela e o usuário veria apenas:

function%20test%28%29%20%7B%20alert%20%28%22LOL%22%29%3B%20%7D

e sem escape seria

função test () {alert ("LOL"); }

O script, portanto, tira o "próprio" antes de ser executado.

Ofuscando-o

Agora está ficando feio: antes de escapar, o código JavaScript maligno é ofuscado, com nomes de funções como _____xe variáveis ​​como aLDIWEJ. Isso ainda faz sentido para o JavaScript, mas é totalmente ilegível para os seres humanos. Isso é feito, novamente, para mascarar as intenções de nossos hackers do Facebook.

Nesse ponto, o código poderia ter algo parecido com isto:

insira a descrição da imagem aqui

O que o script faz

Bem, o que esse script faz é levar sua sessão atual do Facebook. Como você está conectado ao site, ele pode fazer qualquer coisa em seu nome. Por exemplo, o que pode ser feito através da API do Facebook é:

  • criando um evento como "OMG, posso ver quem me perseguiu!"
  • conversando com pessoas
  • postando atualizações de status
  • etc.

Tudo isso acontece chamando algumas das páginas da API do Facebook (algumas páginas do PHP, esqueci qual).

slhck
fonte
5

Em resumo ... é um vírus ... como qualquer outro. O método usado para se replicar é fazer postagens em sua conta depois de ser executado na página de outra pessoa. Dependendo do navegador e / ou sistema operacional que você está usando, e das vulnerabilidades que ele possui, tudo é possível. Basicamente, quando o script é executado no navegador (que pode começar com um simples clique), ele usa as credenciais em cache para publicar postagens na sua página ... que contém o mesmo link / similar no qual você clicou inicialmente.

Com a desativação do javascript / flash / e várias outras coisas (exigidas pelo facebook), você não poderá se proteger de tais explorações.

Uma solução rápida e suja ... antes de clicar em qualquer link nos posts de outras pessoas ... veja para onde está indo. Evite qualquer link que termine com uma marca de hash ("#") ou tenha algum tipo de referência de javascript ... ou não tenha nenhum link real para ele. (ou seja, não parece ir a nenhum URL)

Ou você sempre pode adotar minha abordagem ... e evitar o facebook / twitter / etc ... completamente. Ainda não encontrei nada em nenhum desses serviços aos quais atribuiria qualquer valor ou importância. Amigos e família sabem como enviar e-mail ... ou, melhor ainda, atender o telefone. (apenas minha opinião sobre o que vale a pena)

TheCompWiz
fonte
11
não é realmente preciso ... existem várias maneiras de se proteger disso. Você pode usar um plug-in como o NoScript, por exemplo, para não executar o javascript. Você pode abrir o link em uma nova janela usando o modo de privacidade / modo de navegação anônima e a nova janela não terá acesso à sua sessão do facebook. Se sua segurança depende apenas de evitar links suspeitos, não é muito eficaz. Se você usar as ferramentas de navegação segura corretamente, não precisará viver com medo do que se esconde além de cada clique no link.
Brian Schroth
@ Brian Schroth: Como eu disse no meu post, "aquém da desativação do javascript / flash / ...." NoScript faz exatamente isso. Você está certo de que apenas olhar para o destino do link não o salvará de muitas explorações ... O modo de navegação anônima não protege você contra o vírus ... e também causa problemas ao tentar seguir os links entre as sessões. Na verdade ... as pessoas devem viver com medo do que está além dos links. Eles devem levar um momento para pensar no que estão clicando.
TheCompWiz #
11
O NoScript não desativa o Javascript. Ele fornece controle refinado sobre o que o javascript faz e não executa. Sua resposta implica que, se você "desativar o Javascript", não poderá mais usar o Facebook. Mas se você usar o NoScript, poderá permitir scripts do facebook.com enquanto ainda estiver protegido contra o Javascript de algum site de malware aleatório.
Brian Schroth