O que é um DDoS? O que fazer quando se sofre um ataque desses?

Um ataque de DoS (Denial of Service, com apenas um D) é qualquer ataque que tenha como objetivo impedir que os usuários legítimos acessem um serviço. Existe uma grande quantidade de maneiras de se conseguir esse objetivo, pode se explorando um bug do servidor, pode ser forçando o servidor a se comportar de maneira ineficiente ou jogando sobre ele uma quantidade excessiva de tráfego. Estes são apenas alguns dos exemplos mais comuns de métodos de DoS.

O uso de bugs dentro de um servidor é o mais eficiente, muitas vezes apenas um pequeno ataque consegue paralisar um servidor. No entanto (ao contrário do que se vê em filmes de Hollywood) é raro se encontrar um bug desse tipo e quando se encontra rapidamente se criam mecanismos para evita-lo. Dessa forma, quando se descobre um DoS baseado em bugs de software o problema afeta uma grande quantidade de serviços ao mesmo tempo, porém por poucos dias.

A forma mais comum de DoS é sobrecarregando o servidor com tráfego. Nenhum servidor ou rede consegue suportar uma quantidade infinita de tráfego. Um serviço pode estar distribuído entre vários sites com enormes quantidades de servidores, sempre haverá um limite para a quantidade de tráfego que esses servidores conseguiriam aguentar. O segredo é ter mais servidores e link Internet do que um atacante conseguiria obter.

Além disso hoje em dia já existem mecanismos de proteção na maioria dos firewalls que detectam quando surge uma quantidade excessiva de tráfego vindo de uma origem, barrando automaticamente esse tipo de ataque e diminuindo sua efetividade.

No entanto existe um tipo de ataque DoS muito difícil de ser barrado: o DoS distribuído (DDoS - Distributed Denial of Service). Nesse tipo de ataque temos várias maquinas (as vezes milhares) gerando tráfego a partir de diversos pontos da Internet. Esse tipo de ataque é muito difícil de ser bloqueado.

Em primeiro lugar o DDoS pode gerar uma quantidade enorme de tráfego: por exemplo, se forem utilizados 1.000 computadores gerando 2Mbps de tráfego cada, teremos 2Gbps de tráfego chegando ao site atacado. Repare que mesmo um firewall não irá conseguir bloquear efetivamente esse ataque porque quando o tráfego chega até o firewall ele já "gastou" o link Internet e já congestionou esse link (atrapalhando assim o tráfego válido). Um DDoS passa a ser um ataque de força bruta, aonde se paralisa um serviço simplesmente por congestionar o link de acesso ao serviço.

Agora, como um atacante conseguiriam milhares de computadores para realizar um ataque como esse? O custo seria proibitivo. Exceto se o atacante "sequestrar" computadores na Internet, através dos chamados bots. No meu outro artigo O que são bots malíciosos e como eles funcionam eu descrevo com mais detalhes como funcionam esse tipo de vírus.

O atacante cria então um vírus (do tipo bot) que infecta vários computadores na Internet. Esses bots, ao invés de apagar arquivos ou roubar senhas, ficam inertes, sem chamar a atenção, até o momento em que o seu criador ordena, de maneira sincronizada, que todos ataquem a um determinado site ao mesmo tempo.

Como se trata de um ataque de força bruta, a única maneira efetiva de se proteger desse tipo de ataque é com força bruta: tendo mais banda e capacidade de processamento que a gerada pelo ataque. No entanto é um custo muito alto para uma empresa manter um link de Internet tão superdimensionado, que seja capaz de sofrer um ataque de DDoS de grande porte.

Dessa forma a maneira mais eficiente é contar com o apoio de algum serviço especializado de proteção contra DDoS. Nesse caso todo o tráfego passa antes por um site ou provedor intermediário que tenha uma quantidade grande de banda (alguns desse serviços de proteção chegam a ter centenas de Gbps de banda) e nesse provedor de faz a filtragem do tráfego malicioso e direcione apenas o tráfego válido para os servidores no site de destino.

Essas empresas são normalmente operadoras ou empresas que estão em países aonde a banda de Internet tenha um baixo custo. Além disso eles conseguem manter esse quantidade grande de banda porque possuem vários clientes, que compartilham esses custos. Como não ocorre de todos os clientes serem atacados ao mesmo tempo, a banda desse provedor de segurança é suficiente para conter os ataques quando eles ocorram.

Dessa forma, um DDoS só pode ser bloqueado de maneira eficiente se for utilizado um provedor de serviços de segurança que tenha uma estrutura de dados grande o suficiente para receber a força total do ataque e separar o tráfego válido (enviado ao site de destino) do tráfego de ataque (bloqueado).

Me acompanhe no Twitter: http://www.twitter.com/mlrodrig


Comentários