Ataques Distributed Denial of Service (DDoS)

A partir da segunda medate de 1999, vários ataques conhecidos como Distributed Denial of Service (DDoS) foram reportados, mas apenas no início de 2000, com os problemas nos sites da CNN, eBay, ZDnet, E*Trade, Time Warner, Amazon e Yahoo, este tipo de ataque ganhou destaque. Este artigo apresenta como são implementados ataques DDoS e as maneiras de evita-los.

Antes de entrar em detalhes sobre o ataque DDoS, vale relembrar o que vem a ser um Denial of Service (DoS). Um ataque do tipo DoS basicamente visa indispolibilizar os serviços oferecidos por algum servidor de rede, como Web, mail ou Domain Name Services (DNS). Indisponibilizar pode significar retirar totalmente o servidor de operação ou apenas deixa-lo lento, ao ponto do cliente abandonar o serviço devido ao tempo de resposta. Um ataque DoS ou DDoS não implica no site ser invadido, ou seja, as informações contidas no site não podendo ser roubadas, modificadas ou eliminadas.

Os ataques DoS atuam nas fraquezas dos protocolos TCP/IP, sendo possível de ser implemetado em qualquer dispositivo que utilize este protocolo, como servidores, clientes e roteadores. Um exemplo comum de ataque DoS é TCP SYN Attack. De forma simplificada, toda vez que um cliente deseja iniciar uma conexão com um servidor, o cliente envia um pedido, utilizando o bit de SYN (sincronização) do pacote TCP. O servidor recebe o pacote e devolve um ACK para iniciar a conexão. A cada pedido gerado pelo cliente, o servidor aloca recursos internos, como memória, para poder atender a solicitação. Se um número muito grande de solicitações forem feitas, o servidor pode simplesmente parar ou ficar tão sobrecarregado que recuse novas conexões. Geralmente, o endereço de origem do cliente que solicita a conexão é forjado (spoofed) para tornar o ataque ainda mais efetivo e encobrir o seu autor.

Além do TCP SYN Attack, existem vários outros ataques conhecidos do tipo DoS, como UDF Flood Attack, Smurfing e Fragging. Existe uma série de utilitários disponíveis na Internet que facilitam estes ataques, tornado-os bastante simples de serem implementados, inclusive por amadores.  Um ataque Distributed DoS nada mais é que um ataque DoS em larga escala, utilizando uma dezena, centena ou milhares de sistemas ao mesmo tempo no ataque de um ou mais alvos. Este tipo de ataque é considerado como sendo de alto risco e de difícil defesa.

Durante o ano de 1999, foram encontradas algumas ferramentas que automatizam os ataques DDoS, como TFN (Tribe Flood Network), Trinoo, stacheldraht (arame farpado em alemão) e o TFN2000 (TFN2K). Em agosto de 1999, as ferramentas TFN e Trinoo foram infiltradas em 27 máquinas da Universidade de Washington e utilizadas em um ataque de três dias a Universidade de Minnesota, juntamente com mais outras 200 máquinas infectadas. Enquanto o Trinoo foi utilizado para múltiplos ataques DoS do tipo UDP Flood, o TFN gerava diferentes tipos de ataques DoS, inclusive com endereços forjados (IP spoofing).

Os ataques DDoS funcionam com base no modelo cliente/servidor. O(s) cracker(s) invade(m) um pequeno número de sistemas (três ou quatro) que passam a ser os servidores (ou masters). Um grande número de sistemas são infectados com uma ferramenta DDoS e passam a responder como clientes (ou deamons) aos masters.  O invasor se comunica com os master que por sua vez enviam comandos para os clientes que finalmente lançam o ataque a um ou mais alvos.

Os servidores e clientes podem estar espalhados por qualquer site na Internet e, apesar do Unix ser o sistema operacional mais infectado, não existe motivos para que os demais sistemas também sejam alvo de ataques. Recentemente foi encontrada versões de ferramentas DDoS para ambientes Windows, tornando qualquer usuário da Internet um potencial cliente. Geralmente os clientes invadidos são escolhidos em função de sua capacidade de comunicação. Quanto maior a conexão de rede, maior será o volume de pacotes gerados na vítima. Isto faz com que os grandes provedores de acesso sejam um alvo preferencial para servir de cliente.

Como os sistemas comprometidos estão sob controle externo, existe uma grande dificuldade do administrator do site atacado responder ao DDoS. A melhor maneira de evitar ataques deste tipo é impedir que se tenha acesso aos servidores e clientes. As recomendações daqueles que já sofreram este tipo de ataque são:

Estamos assistindo apenas ao começo de uma série de ataques que devem crescer em número e poder de ação. Cabe aos responsáveis pela segurança, estar atualizado sobre as novas modalidades de ataques e como responder a eles.

Este artigo foi escrito por Luiz Paulo Maia e pode ser contatado pelo email: lpmaia@training.com.br

Referências:

CERT, Tips in Denial of Service
http://www.cert.org/tech_tips/denial_of_service.html

CERT Advisory CA-99-17, Denial-of-Service Tools.
http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html

CERT Incident Note IN-99-07, Distributed Denial of Service Tools.
http://www.cert.org/incident_notes/IN-99-07.html

Results of the Distributed-Systems Intruder Tools Workshop, CERT, Nov. 1999.
http://www.cert.org/reports/dsit_workshop.pdf

CERT Advisory CA-2000-01, Denial-of-Service Developments
http://www.cert.org/advisories/CA-2000-01.html

NATIONAL INFRASTRUCTURE PROTECTION CENTER, TRINOO/Tribal Flood Net/tfn2k.
http://www.fbi.gov/nipc/trinoo.htm

The "stacheldraht" distributed denial of service attack tool
David Dittrich, University of Washington, Dez, 1999.
http://staff.washington.edu/dittrich/misc/stacheldraht.analysis

Index of Distributed Attack Tools
http://packetstorm.securify.com/distributed/

Denial of Service Attack using the trin00 and Tribe Flood Network programs
ISS Security Alert, Dez., 1999.
http://xforce.iss.net/alerts/advise40.php3

CERT Security Improvement Modules
http://www.cert.org/security-improvement/