Vídeo: Blackhat 2012: Javascript Botnets (Novembro 2024)
Para criar uma botnet, você precisa encontrar uma maneira de controlar milhares de computadores e dobrá-los à sua vontade. Esse é um trabalho difícil, certo? Bem não. Em uma apresentação na Black Hat em Las Vegas, Jeremiah Grossman, fundador e CTO da WhiteHat Security, e Matt Johansen, gerente do Threat Research Center da WhiteHat, revelaram uma maneira extraordinariamente simples de controlar milhares ou mesmo milhões de navegadores.
Grossman começou entusiasmado, dizendo: "Estamos trabalhando nisso há seis meses, e estamos ansiosos para apresentar. Isso será rápido e nos divertiremos. Vamos invadir navegadores e usá-los para invadir sites."
O poder da web
Grossman observou: "A Web tem quase o controle total do seu navegador, desde que você esteja conectado. Tudo o que fazemos em nossa demonstração, não estamos invadindo nada. Estamos usando a Web da maneira que deveria. ser usado." Johansen acrescentou: "Minhas desculpas, não temos uma solução".
A apresentação analisou um grande número de maneiras pelas quais um site pode subverter seu navegador simplesmente usando uma ou duas linhas de Javascript, ou mesmo uma solicitação HTML simples (mas aprimorada). "Controlamos o navegador sem ataques de dia zero", disse Grossman, "e temos controle total".
Ilustrando com um slide mostrando o código simples envolvido, ele disse: "Podemos forçar seu navegador a invadir outro site, baixar arquivos ilegais de torrents, fazer pesquisas embaraçosas, postar mensagens ofensivas e até votar em Ed Snowden como a pessoa do ano na Time."
Million Browser Botnet
Tudo isso foi apenas uma introdução à pesquisa que está sendo apresentada. Johansen e Grossman criaram um ataque muito simples de negação de serviço e o testaram em seu próprio servidor. Eles até demonstraram isso em tempo real durante o Black Hat. Esse ataque específico não sobrecarregou o servidor com solicitações de conexão, mas a técnica usada poderia fazer mais, muito mais. E tudo o que eles precisaram fazer foi gastar alguns dólares para colocar um anúncio contendo o ataque.
"Algumas redes de anúncios permitem Javascript arbitrário no anúncio", disse Grossman, "e outras não". A equipe não teve problemas para configurar seu ataque Javascript. "Os revisores da rede de publicidade não eram bons em ler nem se preocupavam com o Javascript", disse Johansen. "O verdadeiro problema era criar uma imagem de anúncio bonita e parecida com um anúncio".
No início, a equipe ficou lenta devido à necessidade de obter novamente a aprovação da rede de anunciantes toda vez que alteravam o código Javascript. Eles resolveram isso movendo o código para seu próprio host e simplesmente chamando-o do código do anúncio. Essa etapa deixou a rede de anunciantes completamente incapaz de ver o que o código poderia fazer; eles não pareciam se importar.
Assim que eles ativaram o código de ataque, ele começou a ser executado nos navegadores de todo o mundo. Toda vez que alguém navegava em uma página que continha o anúncio, ele começava a fazer conexões com o servidor da vítima. O servidor não pôde suportar a carga; falhou.
Todos os navegadores impõem um limite no número de conexões simultâneas. Johansen e Grossman encontraram uma maneira de aumentar o limite do Firefox de seis para centenas. Aconteceu que o ataque simples era completamente eficaz, mesmo sem esse poder, então eles não o usaram.
De quem é o problema a corrigir?
"Este ataque não é persistente", disse Grossman. "Não há vestígios disso. Ele exibe seus anúncios e desaparece. O código não é fantástico, está apenas usando a Web da maneira que deveria funcionar. Então, de quem é o problema para corrigir?"
A mesma técnica pode ser usada para executar cálculos distribuídos via Javascript, por exemplo, para criar senhas e hashes de crack de força bruta. "Vamos tentar esse quebra-cabeças para o próximo Black Hat", disse Grossman. "Quanto você pode gastar por cada 50 centavos em visualizações de página pagas?"
A apresentação deixou os participantes com o pensamento perturbador de que o ataque descrito usa a Web exatamente como deveria ser usado, e não sabemos realmente de quem seria a responsabilidade de uma correção. Grossman disse no passado que precisamos quebrar a Web para consertá-la. Ele poderia estar certo? Poderíamos sobreviver a uma reinicialização de toda a Internet?
Siga o SecurityWatch para obter mais notícias do Black Hat 2013.