O que são os ataques DoS?

Os ataques DoS (Denial of Service, em inglês), também conhecidos como ataques de negação de serviço, são ataques cibernéticos que têm como objetivo sobrecarregar um servidor, um computador ou um dispositivo conectado à rede, de forma a impedir ou dificultar o seu funcionamento normal e o acesso aos seus recursos pelos usuários legítimos.

Os ataques DoS podem ser realizados por diversos motivos, como vandalismo, extorsão, protesto, competição, etc. Eles podem afetar a disponibilidade, a confiabilidade e a performance da rede, causando prejuízos financeiros, operacionais e de reputação para as vítimas.

Os ataques DoS podem ser classificados em diferentes tipos, de acordo com a técnica, o alvo e o impacto do ataque. A seguir, vamos ver os principais tipos de ataques DoS e como eles funcionam.

Quais são os tipos de ataques DoS?

Existem vários tipos de ataques DoS, mas podemos agrupá-los em três categorias principais: ataques volumétricos, ataques de protocolo e ataques de aplicação.

Ataques volumétricos

Os ataques volumétricos são os mais comuns e simples de todos. Eles consistem em enviar uma grande quantidade de tráfego para o alvo, de forma a consumir toda a sua banda larga e impedir que ele receba ou envie dados legítimos.

Os ataques volumétricos podem ser realizados por um único computador ou por vários computadores coordenados, chamados de botnets. Nesse caso, o ataque é chamado de DDoS (Distributed Denial of Service), ou ataque distribuído de negação de serviço.

Os ataques volumétricos podem usar diferentes protocolos e portas para gerar o tráfego, mas alguns dos mais usados são:

UDP Flood: esse ataque usa o protocolo UDP (User Datagram Protocol), que é um protocolo de transporte que não verifica a entrega dos pacotes. O ataque envia uma grande quantidade de pacotes UDP para portas aleatórias do alvo, forçando-o a verificar se há algum aplicativo esperando por esses pacotes e, em seguida, descartá-los. Isso consome os recursos do alvo e o deixa lento ou indisponível.

ICMP Flood: esse ataque usa o protocolo ICMP (Internet Control Message Protocol), que é um protocolo de controle que envia mensagens de erro ou de informação entre os dispositivos da rede. O ataque envia uma grande quantidade de pacotes ICMP, geralmente do tipo echo request (ping), para o alvo, forçando-o a responder com pacotes ICMP do tipo echo reply. Isso consome a banda larga e os recursos do alvo e o deixa lento ou indisponível.

SYN Flood: esse ataque usa o protocolo TCP (Transmission Control Protocol), que é um protocolo de transporte que verifica a entrega dos pacotes e estabelece uma conexão entre os dispositivos da rede. O ataque envia uma grande quantidade de pacotes TCP com o flag SYN, que é usado para iniciar uma conexão, para o alvo, mas não completa o processo de handshake (aperto de mão). Isso faz com que o alvo fique esperando pela resposta do atacante, que nunca chega, e consuma os seus recursos e os seus slots de conexão, impedindo que ele aceite novas conexões legítimas.

Ataques de protocolo

Os ataques de protocolo são ataques que exploram as vulnerabilidades ou as limitações dos protocolos usados na rede, como o TCP, o IP, o ICMP, o ARP, etc. Eles visam consumir os recursos do alvo ou dos dispositivos intermediários, como os roteadores e os firewalls, de forma a causar lentidão, instabilidade ou indisponibilidade na rede.

Os ataques de protocolo podem usar diferentes técnicas, mas algumas das mais usadas são:

Ping of Death: esse ataque usa o protocolo ICMP para enviar pacotes ping (echo request) com um tamanho maior do que o permitido pelo protocolo IP, que é de 65.535 bytes. Esses pacotes são fragmentados em vários pedaços para serem enviados pela rede, mas quando chegam ao alvo, eles são remontados e causam uma sobrecarga no sistema, podendo travar ou reiniciar o dispositivo.

Smurf Attack: esse ataque usa o protocolo ICMP para enviar pacotes ping (echo request) com o endereço IP de origem falsificado, usando o endereço IP do alvo. Esses pacotes são enviados para um endereço IP de broadcast, que é um endereço que representa todos os dispositivos de uma rede. Assim, todos os dispositivos que recebem o pacote ping respondem com um pacote ping (echo reply) para o endereço IP de origem, que é o do alvo. Isso gera uma grande quantidade de tráfego para o alvo, sobrecarregando-o e deixando-o lento ou indisponível.

Teardrop Attack: esse ataque usa o protocolo IP para enviar pacotes fragmentados com valores de deslocamento (offset) inválidos ou sobrepostos para o alvo. Esses pacotes são impossíveis de serem remontados pelo sistema, causando uma confusão e um erro no dispositivo, podendo travar ou reiniciar o sistema.

Ataques de aplicação

Os ataques de aplicação são ataques que visam as camadas mais altas do modelo OSI, que são as camadas de aplicação, de apresentação e de sessão. Eles têm como objetivo explorar as vulnerabilidades ou as falhas de lógica dos aplicativos ou dos serviços que rodam no alvo, como servidores web, servidores de e-mail, servidores de banco de dados, etc.

Os ataques de aplicação são mais difíceis de serem detectados e bloqueados, pois eles usam tráfego legítimo e portas comuns, como a porta 80 (HTTP) ou a porta 443 (HTTPS). Eles também são mais eficientes, pois eles consomem menos banda larga e mais recursos do alvo, como CPU, memória, disco, etc.

Os ataques de aplicação podem usar diferentes técnicas, mas algumas das mais usadas são:

HTTP Flood: esse ataque usa o protocolo HTTP para enviar uma grande quantidade de requisições HTTP para o alvo, de forma a consumir os seus recursos e a sua capacidade de processamento. As requisições HTTP podem ser do tipo GET, que solicita um recurso do servidor, ou do tipo POST, que envia dados para o servidor. O ataque pode usar requisições HTTP válidas ou inválidas, e pode variar os parâmetros, os cabeçalhos e os cookies das requisições, para dificultar a detecção e a filtragem do ataque.

Slowloris: esse ataque usa o protocolo HTTP para enviar requisições HTTP incompletas ou muito lentas para o alvo, de forma a manter as conexões abertas pelo maior tempo possível. O ataque envia os cabeçalhos das requisições HTTP, mas não envia o corpo ou envia muito lentamente, usando pequenos pedaços de dados. Isso faz com que o servidor fique esperando pela conclusão das requisições, que nunca terminam, e consuma os seus recursos e os seus slots de conexão, impedindo que ele aceite novas conexões legítimas.

RUDY (R-U-Dead-Yet?): esse ataque usa o protocolo HTTP para enviar requisições HTTP do tipo POST com um cabeçalho Content-Length (Comprimento do Conteúdo) muito grande para o alvo, de forma a indicar que o corpo da requisição terá um tamanho muito grande. Em seguida, o ataque envia o corpo da requisição muito lentamente, usando pequenos pedaços de dados. Isso faz com que o servidor fique esperando pelo recebimento de todo o corpo da requisição, que nunca termina, e consuma os seus recursos e os seus slots de conexão, impedindo que ele aceite novas conexões legítimas.

Como se proteger dos ataques DoS?

Os ataques DoS são uma ameaça séria para a segurança da rede, pois podem causar danos significativos para as vítimas, como perda de receita, de produtividade, de confiança, de dados, etc. Por isso, é importante adotar medidas de prevenção e de mitigação para evitar ou reduzir os efeitos dos ataques DoS.

Algumas das melhores práticas para se proteger dos ataques DoS são:

Manter os sistemas atualizados, corrigindo as vulnerabilidades e as falhas de segurança que possam ser exploradas pelos atacantes.

Usar firewalls, roteadores e switches para filtrar e bloquear o tráfego malicioso, usando regras, listas de exclusão, listas de inclusão, limites de taxa, etc.

Usar sistemas de detecção e prevenção de intrusões (IDS/IPS), como o NSM IPS Mcafee ( leia mais neste post ), para monitorar e bloquear os ataques à rede, usando assinaturas, anomalias, reputação e correlação.

Usar sistemas de balanceamento de carga, como o F5, para distribuir o tráfego entre vários servidores, aumentando a capacidade e a resiliência da rede.

Usar serviços de proteção contra DDoS, como o Cloudflare, o Akamai, o Imperva, etc., que oferecem soluções na nuvem para filtrar e absorver o tráfego malicioso, antes que ele chegue ao alvo.

Monitorar e analisar o tráfego da rede, usando ferramentas de análise de rede, como o Wireshark, o Nmap, o NetFlow, etc., para identificar e rastrear os ataques, e tomar as ações necessárias, como isolar, bloquear ou reportar os atacantes.

Os ataques DoS são ataques cibernéticos que têm como objetivo sobrecarregar um servidor, um computador ou um dispositivo conectado à rede, de forma a impedir ou dificultar o seu funcionamento normal e o acesso aos seus recursos pelos usuários legítimos.

Os ataques DoS podem ser classificados em três categorias principais: ataques volumétricos, ataques de protocolo e ataques de aplicação. Cada categoria possui diferentes técnicas, alvos e impactos. Para se proteger dos ataques DoS, é importante adotar medidas de prevenção e de mitigação, como manter os sistemas atualizados, usar firewalls, roteadores, switches, IDS/IPS, balanceadores de carga, serviços de proteção contra DDoS, e ferramentas de análise de rede.