Índice
Ataques DDoS: Conceitos
Os métodos de ataque baseados em pacotes UDP e SYN são os mais utilizados. Existem duas estratégias fundamentais:
- Saturar o link do servidor: O objetivo é esgotar a largura de banda (a capacidade de conexão) do servidor. Neste método, a capacidade de upload e o poder de processamento das máquinas atacantes são os fatores mais importantes.
- Esgotar os serviços do servidor: Considerado um método mais eficiente, o ataque visa sobrecarregar os serviços específicos do servidor (como o servidor web ou de banco de dados), excedendo o número de processos ou conexões simultâneas que ele consegue gerir.
Sistemas Anti-DDoS
A lógica básica de um sistema anti-DDoS pode ser simplificada da seguinte forma:
se (um IP conectar X vezes em Y segundos com a mesma requisição) então BLOQUEAR;
se (um IP conectar X vezes em Y segundos) então BLOQUEAR;
Contornar um serviço anti-DDoS é mais complicado. Geralmente, são necessárias botnets (redes de computadores infetados) para um ataque ser bem-sucedido. Isso ocorre porque os sistemas anti-DDoS são eficazes contra ataques de poucas fontes, então os atacantes usam milhares de IPs diferentes para contornar os filtros, tentando simular o tráfego de utilizadores normais.
Protocolos como ICMP e SYN são, muitas vezes, usados para completar outros protocolos (por exemplo, SYN para completar uma conexão TCP). Se um servidor recebe muitos pacotes SYN ou ICMP que não conseguem autenticar, o tráfego TCP/UDP é analisado, e o sistema pode identificar um ataque DDoS, bloqueando o tráfego suspeito.
Pois são considerados comportamentos atípicos.
Para contornar as defesas mais básicas, uma botnet pode ser programada para enviar uma requisição a cada 10 ou 15 segundos por cada máquina infetada. Desta forma, o sistema anti-DDoS pode interpretar o tráfego como sendo de utilizadores legítimos. Apenas uma análise humana ou um sistema mais avançado conseguiria filtrar este tipo de ataque lento.
O filtro anti-DDoS, na realidade, funciona como um proxy: ele coloca o seu próprio IP à frente do servidor e encaminha apenas o tráfego considerado legítimo. Um ataque massivo, mesmo que mitigado, pode gerar um custo financeiro enorme para o dono do site, devido ao alto consumo de largura de banda. Se um atacante conseguir descobrir o IP real do servidor, ele pode contornar ("bypass") o filtro anti-DDoS, tornando a proteção inútil. Por isso, um mapeamento detalhado da rede é sempre uma prioridade para os atacantes.
Estratégia: Saturar o Link do Servidor
Ferramentas historicamente usadas para este fim:
T50 e G3M
Estas ferramentas utilizam vários protocolos (SYN, UDP, ICMP, etc.) para gerar um grande volume de tráfego.
Para este método, é necessária uma alta capacidade de UPLOAD por parte das máquinas atacantes para conseguir enviar um volume massivo de dados de uma só vez.
É considerado um método menos sofisticado, pois são ataques mais diretos e "barulhentos", com milhares de requisições por segundo a partir de poucos IPs. Os filtros anti-DDoS detetam facilmente este padrão, usando a regra de "X requisições em Y tempo".
Por exemplo: um script executando um loop de 1 a 1000, numa máquina robusta, poderia tentar enviar 500 MB ou 1 GB de pacotes por segundo. O servidor atacado teria problemas, pois necessitaria de uma ligação capaz de receber e processar todo esse volume de uma vez.
Apenas com uma botnet de muitas máquinas é que este objetivo se torna alcançável contra alvos bem protegidos.
Estratégia: Esgotar os Serviços do Servidor
Ferramentas historicamente usadas para ocupar os recursos do servidor:
Slowloris
Para este método, é necessário estudar uma forma de sobrecarregar ao máximo o servidor com o menor esforço possível.
Exemplo: encontrar um ficheiro muito grande no site (uma imagem em alta resolução, um vídeo, um PDF) e, de seguida, instruir uma botnet a iniciar o download desse ficheiro a cada 10 ou 15 segundos. O filtro pode não detetar o ataque, pois as conexões são iniciadas com intervalos longos, parecendo ser de um utilizador normal.
A estratégia consiste em identificar uma parte do site que consuma muitos recursos (CPU ou memória). Se um servidor web como o Apache suporta, por exemplo, 1000 conexões simultâneas, basta ter um número de máquinas na botnet que exceda esse limite para o deixar offline.
Um IP diferente é uma arma mais forte do que uma única máquina com muita largura de banda.
Exemplo: um servidor web Apache pode ter hardware e conexão de ponta, mas se o software do Apache só estiver configurado para suportar 1000 conexões simultâneas, esse será o seu ponto fraco.