O que é um ataque DDoS de inundação ACK? | Tipos de ataques DDoS

Em um ataque de inundação ACK, o invasor tenta sobrecarregar o alvo com falsos pacotes de ACK, que deveriam ser usados para reconhecer se um dispositivo recebeu os dados transmitidos com sucesso.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Saiba o que significa ACK
  • Entenda como funciona uma inundação de ACK
  • Saiba como deter ataques de inundação de ACK

Copiar o link do artigo

O que é um ataque DDoS de inundação ACK?

Um ataque de inundação ACK é quando um invasor tenta sobrecarregar um servidor com pacotes ACK TCP. Assim como outros ataques DDoS, o objetivo de uma inundação ACK é negar o serviço a outros usuários diminuindo a velocidade ou travando o alvo com dados indesejados. O servidor alvo precisará processar cada pacote ACK recebido, o que utiliza tanta capacidade computacional que ele será incapaz de atender aos usuários legítimos.

Imagine que alguém quer passar um trote por telefone em uma pessoa e enche a caixa do correio de voz dessa pessoa com tantas mensagens falsas que aqueles que realmente desejam deixar uma mensagem não conseguem fazê-lo. Agora imagine que cada uma dessas mensagens falsas diz, "Olá, estou ligando para dizer que recebi sua mensagem". Isto é parecido com o que acontece em um ataque DDoS de inundação ACK.

O que é um pacote?

Todos os dados que são enviados pela internet são divididos em segmentos menores chamados pacotes. Pense em quando alguém quer fazer um comentário detalhado ou contar uma longa história no Twitter e precisa dividir seu texto em segmentos de 280 caracteres e publicá-lo em uma série de tweets em vez de publicar todos de uma só vez. Para aqueles que não usam o Twitter, pense em como os celulares sem aplicativos dedicados de mensagens de texto costumavam dividir mensagens de texto longas em seções menores.

O Protocolo de Controle de Transmissão (TCP) é uma parte essencial da comunicação pela internet. Os pacotes que são enviados usando o protocolo TCP têm informações anexadas a eles no cabeçalho do pacote. O protocolo TCP usa o cabeçalho do pacote para dizer ao destinatário quantos pacotes existem e em que ordem eles devem chegar. O cabeçalho também pode indicar o comprimento do pacote, qual é o tipo do pacote, e assim por diante.

É como nomear uma pasta de arquivos para que as pessoas saibam o que está dentro dela. Voltando ao exemplo do Twitter, as pessoas que postam uma longa série de tweets muitas vezes indicarão quantos tweets no total a série tem e numeram cada tweet para ajudar os leitores a seguirem a ordem correta.

O que é um pacote ACK?

ACK é a abreviação de "acknowledgement" (reconhecimento em português). Um pacote ACK é qualquer pacote TCP que reconhece o recebimento de uma mensagem ou de uma série de pacotes. A definição técnica de um pacote ACK é um pacote TCP com o sinalizador "ACK" definido no cabeçalho.

Negociação TCP

Os pacotes ACK fazem parte do handshake TCP, uma série de três passos que iniciam uma conversa entre dois dispositivos quaisquer conectados na internet (da mesma forma que as pessoas podem se cumprimentar com um aperto de mão na vida real antes de começar a conversar). As três etapas do handshake TCP são:

  1. SYN
  2. SYN ACK
  3. ACK

O dispositivo que abre a conexão, digamos, um laptop do usuário, inicia o handshake de três vias, enviando um pacote SYN (abreviação para "sincronizar"). O dispositivo na outra extremidade da conexão, suponha que seja um servidor que hospeda um site de compras on-line, responde com um pacote SYN ACK. Por último, o laptop do usuário envia um pacote ACK, e o aperto de mão de três vias está concluído. Esse processo garante que ambos os dispositivos estejam on-line e prontos para receber pacotes adicionais que, neste exemplo, permitiriam ao usuário carregar o site.

Entretanto, esta não é a única vez que os pacotes ACK são usados. O protocolo TCP exige que os dispositivos conectados reconheçam que receberam todos os pacotes na ordem certa. Suponha que um usuário visite uma página web que hospeda uma imagem. A imagem é dividida em pacotes de dados e enviada para o navegador do usuário. Quando a imagem inteira chega, o dispositivo do usuário envia um pacote ACK ao servidor do host para confirmar que não falta nenhum pixel. Sem esse pacote ACK, o servidor do host tem que enviar a imagem novamente.

Uma vez que um pacote ACK é qualquer pacote TCP com o sinalizador ACK definido no cabeçalho, o ACK pode ser parte de uma mensagem diferente que o laptop envia para o servidor. Se o usuário preencher um formulário e enviar dados ao servidor, o laptop pode tornar um desses pacotes o pacote ACK para a imagem. Não é necessário que seja um pacote separado.

Como funciona um ataque de inundação ACK?

As inundações ACK atacam dispositivos alvo que precisam processar cada pacote que recebem. Os Firewalls e os servidores são os alvos mais prováveis de uma inundação ACK. Os balanceadores de carga, roteadores e switches não são suscetíveis a estes ataques.

Os pacotes ACK legítimos e ilegítimos parecem ser essencialmente os mesmos, tornando as inundações ACK difíceis de interromper sem usar uma rede de distribuição de conteúdo (CDN) para filtrar os pacotes ACK desnecessários. Embora pareçam semelhantes, os pacotes usados em um ataque DDoS ACK não contêm a parte principal de um pacote de dados, também conhecida como carga útil. Para parecerem legítimos, eles só precisam incluir o sinalizador ACK no cabeçalho do TCP.

As inundações ACK são ataques DDoS de camada 4 (camada de transporte). Saiba mais sobre a camada 4 e o modelo OSI.

Como funciona um ataque de inundação SYN ACK?

Um ataque SYN ACK DDoS é ligeiramente diferente de um ataque ACK, embora a ideia básica ainda seja a mesma: sobrecarregar o alvo com muitos pacotes.

Lembre-se de como funciona um handshake TCP de três vias: o segundo passo do handshake é o pacote SYN ACK. Normalmente um servidor envia esse pacote SYN ACK em resposta a um pacote SYN de um dispositivo cliente. Em um ataque SYN ACK DDoS, o invasor inunda o alvo com pacotes SYN ACK. Esses pacotes não fazem parte de um handshake de três vias: seu único objetivo é interromper as operações normais do alvo.

Também é possível que um invasor utilize pacotes SYN em um ataque DDoS de inundação SYN.

Como a Cloudflare detém os ataques DDoS de inundação ACK?

A Cloudflare CDN autoriza todo o tráfego de e para o servidor de origem do cliente da Cloudflare. A CDN não transmite nenhum pacote ACK que não esteja associado a uma conexão TCP aberta. Isto assegura que o tráfego ACK malicioso não chegue ao servidor de origem. A rede da Cloudflare dos data centers é suficientemente grande para absorver ataques DDoS de praticamente qualquer tamanho, portanto as inundações ACK também têm pouco ou nenhum efeito sobre a Cloudflare.

O Cloudflare Magic Transit e o Cloudflare Spectrum também interrompem esses tipos de ataques DDoS. O Magic Transit atua como intermediário da camada 3 de tráfego e o Spectrum da camada 4 de tráfego, em vez do tráfego de camada 7 como a CDN. Ambos os produtos bloqueiam as inundações ACK ao detectar automaticamente os padrões de ataque e bloqueando o tráfego de ataque.

Saiba mais sobre outros tipos de ataques DDoS.