Ataque de inundação SYN

A inundação SYN explora uma vulnerabilidade do handshake TCP/IP na tentativa de interromper um serviço da Web.

Share facebook icon linkedin icon twitter icon email icon

Inundação SNY

Objetivos de aprendizado

Depois de ler este artigo você será capaz de:

  • Definir ataque de DDoS de inundação SYN
  • Explicar como funciona o ataque de inundação SYN
  • Diferenciar os diversos tipos de ataques de SYN
  • Entender algumas técnicas de mitigação de inundações SNY

O que é um ataque de inundação SYN?

A inundação SYN (ataque de porta entreaberta) é um tipo de ataque de negação de serviço (DDoS) que visa a tornar um servidor indisponível para o tráfego legitimo e, para isso, consome todos os seus recursos disponíveis. Ao enviar repetidamente pacotes de conexão inicial (SYN), o invasor consegue sobrecarregar todas as portas disponíveis na máquina de um servidor alvo, e isso faz o dispositivo alvo responder ao tráfego legítimo de forma lenta ou não responder.

Como funciona o ataque de inundação SYN?

Os ataques de inundação SYN funcionam com a exploração do processo de handshake de uma conexão TCP. Em condições normais, a conexão TCP exibe três processos distintos para estabelecer uma conexão.

  1. Primeiro, o cliente envia um pacote SYN ao servidor para iniciar a conexão.
  2. Em seguida, o servidor responde ao pacote inicial com um pacote SYN/ACK para confirmar a comunicação.
  3. Finalmente, o cliente devolve um pacote ACK para confirmar o recebimento do pacote do servidor. Depois de concluída essa sequência de envios e recebimentos de pacotes, a conexão TCP é aberta e pode enviar e receber dados.
Diagrama de handshake de três vias TCP

Para criar uma negação de serviço, o invasor aproveita o fato de que, depois do pacote inicial SYN ser recebido, o servidor responderá com um ou mais pacotes SYN/ACK e esperará a etapa final do handshake. Isso funciona assim:

  1. O invasor envia um grande volume de pacotes SYN ao servidor alvo, normalmente, com endereços IP falsificados.
  2. O servidor responde a cada uma das solicitações de conexão e deixa uma porta aberta pronta para receber a resposta.
  3. Enquanto o servidor espera o pacote ACK final, que nunca chegará, o invasor continua a enviar mais pacotes SYN. A chegada de cada novo pacote SYN faz o servidor manter temporariamente uma nova conexão de porta aberta por determinado tempo e, depois que todas as portas disponíveis forem usadas, o servidor não conseguirá operar normalmente.
Animação do ataque de DDoS de inundação SYN

Na rede, quando um servidor deixa uma conexão aberta, mas a máquina do outro lado não, a conexão é considerada entreaberta. Nesse tipo de ataque de DDoS, continuamente, o servidor alvo deixa conexões abertas e espera que cada conexão chegue ao tempo limite antes que as portas fiquem disponíveis novamente. O resultado é que esse tipo de ataque pode ser considerado um “ataque de porta entreaberta”.

A inundação SYN pode ocorrer de três maneiras diferentes:

  1. Ataque direto: A inundação SNY na qual o endereço IP não é falsificado é conhecida com um ataque direto. Nesse ataque, o invasor não disfarça o seu endereço IP. Como resultado de usar um único dispositivo de origem com endereço IP real para criar o ataque, o invasor fica altamente vulnerável à descoberta e mitigação. Para criar o estado de porta entreaberta na máquina alvo, o hacker impede que a sua máquina responda aos pacotes SYN-ACK do servidor. Normalmente, isso é realizado com regras de firewall, que param pacotes de saída que não sejam pacotes SYN, ou com o filtro de todos os pacotes SYN-ACK de entrada antes que cheguem à máquina de usuários mal-intencionados. Na prática, esse método é usado raramente (se é que usado), pois a mitigação é bem direta; basta bloquear o endereço IP de cada sistema mal-intencionado. Se o invasor usar um botnet, como o Mirai, ele não se preocupará em disfarçar o IP do dispositivo infectado.
  2. Ataque de spoofing: Um usuário mal-intencionado também pode disfarçar o endereço IP em cada pacote SYN que enviar para inibir esforços de mitigação e tornar a sua identidade mais difícil de ser descoberta. Embora os pacotes possam ser falsificados, eles podem ser possivelmente rastreados até a sua origem. É difícil fazer esse tipo de trabalho de detetive, mas não é impossível, especialmente, se os provedores de serviços de Internet (ISPs) estiverem dispostos a ajudar.
  3. Ataque distribuído (DDoS): Se for usado um botnet para criar um ataque, a probabilidade de rastrear o ataque até a sua origem é pequena. Para ter um nível maior de dissimulação, o invasor também pode fazer que os dispositivos distribuídos falsifiquem os endereços IP dos quais enviam os pacotes. Se o invasor usar um botnet, como o Mirai, geralmente, ele não se preocupará em disfarçar o IP do dispositivo infectado.

Ao usar um ataque de inundação SYN, um criminoso pode tentar criar a negação de serviço em um dispositivo ou serviço alvo com tráfego substancialmente menor do que outros ataques de DDoS. Em vez de ataques volumétricos, que visam a saturar a infraestrutura de rede ao redor do alvo, ataques SYN precisam apenas ser maiores do que os registros acumulados no sistema operacional do alvo. Se o invasor conseguir determinar o tamanho do registro acumulado e quanto tempo cada conexão ficará aberta antes de atingir o tempo limite, ele poderá ter como alvo os parâmetros exatos necessários para desabilitar o sistema e, assim, reduzir o tráfego total ao volume mínimo necessário para criar a negação de serviço.

Como o ataque de inundação SYN é mitigado?

A vulnerabilidade da inundação SYN é conhecida há algum tempo, e diversas trajetórias de mitigação são usadas. Algumas abordagem são:

Aumentar a fila de registros acumulados

Cada sistema operacional no dispositivo alvo tem determinado número de conexões entreabertas permitidas. Um resposta a altos volumes de pacotes SYN é aumentar o número máximo de conexões entreabertas possíveis que o sistema operacional permitirá. Para aumentar com sucesso o registro acumulado máximo, o sistema deve reservar recursos de memória para lidar com todas as novas solicitações. Se o sistema não tiver memória suficiente para lidar com o tamanho maior de fila de registro acumulado, o seu desempenho será impactado negativamente, mas será melhor do que a negação de serviço.

Reciclar a conexão TCP entreaberta mais antiga

Outra estratégia de mitigação envolve sobrescrever a conexão entreaberta mais antiga assim que o registro acumulado estiver cheio. Essa estratégia requer que as conexões legítimas possam ser completamente estabelecidas em menos tempo do que o preenchimento do registro acumulado com pacotes SYN mal-intencionados. Essa defesa específica não funciona quando o volume do ataque aumenta, ou se o tamanho do registro acumulado for pequeno demais para ser funcional.

Cookies SYN

Essa estratégia envolve a criação de um cookie pelo servidor. Para evitar o risco de interromper conexões quando o registro acumulado estiver cheio, o servidor responde a cada solicitação de conexão com um pacote SYN-ACK, mas descarta a solicitação SYN do registro acumulado e remove a solicitação da memória, deixando a porta aberta e pronta para estabelecer uma nova conexão. Se a conexão for uma solicitação legítima e o pacote ACK final for enviado da máquina cliente de volta ao servidor, o servidor reconstruirá (com limitações) o lançamento na fila do registro acumulado. Embora esse esforço de mitigação perca algumas informações sobre a conexão TCP, será melhor do que permitir que a negação de serviço ocorra para usuários legítimos como resultado de um ataque.

Como a Cloudflare mitiga ataques de inundação SYN?

Para mitigar esse tipo de ataque, em parte, a Cloudflare se posiciona entre o servidor alvo e a inundação SYN. Quando a solicitação SYN inicial for realizada, a Cloudflare tratará do processo de handshake na nuvem, retendo a conexão com o servidor alvo até que a negociação TCP seja concluída. Essa estratégia retira o custo de recursos de manter conexões com pacotes SYN falsos do servidor alvo e o coloca na rede anycast da Cloudflare. Saiba mais sobre como funciona a proteção contra DDoS da Cloudflare.

Diagrama: Cloudflare interrompe ataques de inundação SYN