agosto 19, 2011

[Segurança] Ataques DDoS

Com os protestos do grupo Anonymous surgidos principalmente após dezembro de 2010 (quando várias empresas cortaram os fundos e recursos do Wikileaks e o Anonymous lançou a operação PayBack para apoiar o Wikileaks) e após o surgimento do grupo LulzSec e a operação AntiSec, os ataques DDoS entraram na moda.

Na verdade, os ataques de negação de serviço (tradução do termo em inglês Deny of Service, ou DoS) existem praticamente desde os primórdios da Internet, enquanto os ataques distribuídos de negação de serviço (Distributed Deny of Service, ou DDoS) se popularizaram a partir do ano 2000. Estes ataques sempre aconteceram com grande frequencia em todo o mundo, mas no Brasil sua ocorrência não era tão grande e poucas vezes chegavam a ser mencionados na mídia.

Em 2009, ficaram famosos os ataques de DDoS contra a Telefônica, que causaram indisponibilidade no acesso dos clientes do Speedy por alguns dias.

Ataques DoS

Os ataques de negação de serviço visam impedir o funcionamento de algum recurso (um servidor, um site ou uma empresa toda), através de alguma forma de ataque que inviabilize o serviço. Isto pode ser alcançado de várias formas:
  • Através da exaustão dos recursos existentes: normalmente o atacante busca sobrecarregar a largura de banda do link de comunicação da vítima ou a capacidade de processamento de um servidor. Por exemplo, enviando um número muito grande de pacotes a ponto de entupir um link de conexão ou um número grande de acessos para um servidor de forma que ele fique sobrecarregado e não consiga atender os usuários válidos;
  • Através de bugs que interrompam o funcionamento do servidor: existem várias vulnerabilidades que, quando exploradas, fazem com que o serviço ou o sistema operacional simplesmente pare de funcionar, e assim fica totalmente indisponível.


O SYN Flood é, provavelmente, o ataque de negação de serviço mais conhecido e existe desde 1996. Ele consiste em enviar milhares de pacotes SYN, para iniciar uma conexão HTTP (TCP na porta 80) em um servidor web, sem dar continuidade a conexão. O servidor atacado recebe milhares de pedido de conexão e fica enfileirando-as até atingir o máximo de conexões abertas que o servidor suporta, esperando a continuidade da conexão, que nunca vem.

Outros ataques clássicos de negação de serviços e que entraram para a história da Internet por derrubarem milhares de servidores na época em que foram inventados são o Ping da Morte e o WinNuke, muito populares no final da década de 90. Ambos exploravam bugs específicos que, quando o pacote de rede mal formado atingia o servidor, causava o seu crash. (Nota: ambos ataques são bem antigos e não afetam os servidores modernos)

Ataques DDoS

O conceito dos ataques DDoS surgiu entre o final do ano 1999 e início de 2000, quando surgiam as primeiras ferramentas específicas para realizar um ataque distribuído de negação de serviços, como o Trinoo e o TFN (Tribe Flood Network).

O DDoS nada mais é do que um ataque de negação de serviço que utiliza múltiplos computadores para realizar o ataque ao mesmo tempo, de forma sincronizada. O atacante invade previamente dezenas, centenas ou milhares de máquinas e, em um determinado momento, dispara um comando para que as máquinas invadidas comecem a atacar um determinado alvo, que fica sobrecarregado facilmente. Outra vantagem para o atacante é que, como o ataque parte de diversas máquinas espalhadas pela Internet, a vítima tem dificuldade em implantar filtros para bloquear o ataque, devido a grande variedade de equipamentos que estão realizando o ataque, e pelo fato do ataque ter diferentes origens. Para complicar um pouco mais, normalmente as máquinas que realizam o ataque DDoS o fazem utilizando endereços IP falsificados (através de uma técnica bem conhecida, chamada IP spoofing).

Normalmente o atacante invade várias máquinas antes de iniciar o ataque. São máquinas de usuários comuns, que normalmente nem sabem que foram invadidos e que estão hospedando um software malicioso para realizar ataques contra terceiros. Em uma ou algumas delas, o atacante instala o software que controla a ferramenta de ataque e, na grande maioria dos equipamentos, ele instala o software que efetivamente realiza os ataques. Estas máquinas são normalmente chamadas de zumbis ou de bots (um termo que surgiu mais recentemente, como se as máquinas fossem robôs - ou robots, em inglês).

De alguns anos para cá convencionou-se chamar esta rede de máquinas invadidas de botnets, ou seja, redes de bots.

Botnets

Com a facilidade de invadir máquinas disponiveis na Internet, as botnets proliferaram nos últimos anos. Eu desconheço qualquer levantamento sobre a quantidade de botnets existentes, mas certamente existem centenas de botnets ativas espalhadas pela Internet (este artigo mostra o estrago causado pelas 10 maiores botnets). Já foram encontradas botnets de todos os tamanhos: desde usando poucas dezenas de máquinas até botnets com milhões de hosts infectados.

A sofisticação chegou a tal ponto que e comum cyber criminosos alugarem suas botnets para oferecer serviços criminosos e realizar ataques a pedido de outros cyber criminosos. É possível, por exemplo, contratar um ataque DDoS contra um site por até 10 dólares por hora. Além de realizar ataques, as botnets são normalmente alugadas para enviar SPAM.

O interessante é que, dependendo do alvo e do tipo de ataque sendo utilizado, é possível derrubar um site com poucas máquinas, como mostra um teste recente realizado pelo blog Coruja de TI.

Tipos de ataques DDoS

Normalmente as botnets existentes são capazes de realizar diversos tipos de ataques de negação de serviço (e alguns outros tipos de ataque também, como envenenamento de buscas - o chamado Black Search Engine Optimization), bastando ao dono enviar o comando indicando qual é o tipo de ataque a ser realizado e qual é o alvo.

Existem vários tipos de ataques de negação de serviço atualmente, alguns direcionados a sobrecarregar a infra-estrutura de rede e outros direcionados a camada de aplicação, causando alguma sobrecarga direto no serviço que está rodando no servidor atacado.

É concenso geral na área de segurança que é muito difícil se defender contra um ataque DDoS ou diminuir o seu impacto. Embora seja possível adotar algumas medidas preventivas, sua eficácia depende do tipo de ataque de negação de serviço sendo realizado e do quanto a sua infra-estrututa consegue absorver esse tráfego excessivo.

Mas essa discussão ficará para meu próximo artigo sobre este assunto...

Mais informações:

Um comentário:

Luiz Rabelo disse...

Excelente artigo, Anchises! Muito bom mesmo! Parabéns!

Creative Commons License
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of my employee.