SYN Flood (Inundação) – Como funciona esse tipo de ataque

Um ataque de inundação (flood) SYN é um tipo de ataque de negação de serviço (DoS) em um servidor de computador. Essa exploração também é conhecida como ataque semiaberto.

As inundações SYN são uma das várias vulnerabilidades comuns que aproveitam o TCP/IP para sobrecarregar os sistemas alvo. Os ataques de inundação SYN usam um processo conhecido como handshake triplo TCP. Como parte do handshake, o cliente e o servidor trocam mensagens para estabelecer um canal de comunicação.

O ataque envolve fazer com que um cliente envie repetidamente pacotes SYN – que significa sincronização – para todas as portas de um servidor usando endereços IP falsos. Quando um ataque começa, o servidor alvo vê o equivalente a múltiplas tentativas de estabelecer comunicações. Ele envia um pacote SYN-ACK – ou sincronização confirmada – de todas as portas abertas em resposta a cada tentativa de comunicação e um pacote RST – ou reset – de todas as portas fechadas.

Inundação SYN explicada: como explora o handshake de três vias: 

Um handshake triplo envolve as três etapas a seguir:

  • O cliente envia um pacote SYN para iniciar a comunicação com o servidor.
  • O servidor responde enviando um pacote SYN-ACK.
  • O cliente retorna um pacote ACK final para confirmar que o pacote SYN-ACK do servidor foi recebido.
  • Depois que essas três etapas ocorrerem, a comunicação poderá começar entre o cliente e o servidor. Entretanto, em uma inundação SYN, o cliente hostil não retorna um pacote de resposta ACK. Em vez disso, o programa cliente envia solicitações SYN repetidas para todas as portas do servidor. Um cliente hostil sabe que uma porta está aberta quando o servidor responde com um pacote SYN-ACK.

As solicitações SYN do cliente hostil parecem válidas para o servidor. No entanto, como o invasor usa endereços IP falsos, o servidor não consegue fechar a conexão enviando pacotes RST ao cliente.

Como resultado, a conexão permanece aberta e, antes que o tempo limite possa ocorrer, outro pacote SYN chega do cliente hostil. Isso é chamado de conexão semiaberta. O servidor fica tão ocupado com as solicitações hostis do cliente que a comunicação com o tráfego legítimo é difícil ou impossível.

Como pode ocorrer um ataque de inundação SYN?

As três maneiras pelas quais um ataque de inundação SYN pode ocorrer são as seguintes:

  • Falsificado. Em um ataque falsificado, o cliente mal-intencionado falsifica o endereço IP de cada pacote SYN enviado ao servidor, fazendo parecer que os pacotes vêm de um servidor confiável. A falsificação dificulta o rastreamento dos pacotes e a mitigação do ataque.
  • Direto. Este tipo de ataque SYN não usa endereços IP falsificados. Em vez disso, o invasor usa um dispositivo de origem com um endereço IP real para realizar o ataque. Com essa abordagem, é mais fácil rastrear a origem do ataque e desligá-lo.
  • Distribuído. Um ataque DoS distribuído (DDoS) usa uma botnet que espalha a fonte de pacotes maliciosos por muitas máquinas. As fontes são reais, mas a natureza distribuída do ataque torna difícil mitigá-lo. Cada dispositivo na botnet também pode falsificar seu endereço IP, aumentando o nível de ofuscação. Quanto maior o botnet, menor será a necessidade de mascarar o endereço IP.

Como podemos nos defender e mitigar o SYN Flood?


O objetivo da inundação SYN é ocupar todas as conexões do servidor e consumir os recursos do sistema. Para os servidores, a forma mais direta de defesa contra tais ataques é melhorar as capacidades do serviço, o que pode ser conseguido através da criação de um cluster e da atualização do hardware. No entanto, este método envolve custos significativos e tem pouco impacto em grandes números de pacotes de ataque. Leva apenas alguns minutos ou até segundos.

Como tal, estes pacotes de ataque devem ser interceptados antes de chegarem ao servidor. Para dispositivos de segurança como o firewall, os pacotes SYN são considerados pacotes de serviço normais e a política de segurança do firewall deve permitir sua passagem. Caso contrário, o servidor não poderá fornecer serviços para usuários externos. Se o endereço IP da fonte falsa for identificado, os pacotes SYN da fonte podem ser bloqueados através de políticas de segurança refinadas. Contudo, o administrador não pode prever quais fontes são falsas. Mesmo que a fonte falsa possa ser identificada, é impossível configurar ou cancelar rapidamente e automaticamente políticas de segurança para lidar com tráfego de ataques inesperados.

Neste caso, é necessário o sistema anti-DDoS. Este sistema é implantado na entrada da rede para processar pacotes SYN, identificar endereços IP de origem falsos, proteger pacotes desses endereços IP e transmitir apenas pacotes SYN válidos para o servidor. O sistema anti-DDoS processa pacotes SYN de duas maneiras: autenticação de origem e descarte do primeiro pacote.

Autenticação de origem

O sistema anti-DDoS intercepta um pacote SYN enviado pelo cliente e envia um pacote SYN-ACK ao cliente em nome do servidor. Se o cliente não responder, o sistema anti-DDoS considera que se trata de uma fonte falsa. Se o cliente responder, o sistema o considerará a fonte genuína e colocará seu endereço IP na lista de permissões. Dessa forma, o sistema anti-DDoS permite que todos os pacotes SYN da origem passem dentro de um período de tempo e não realiza resposta de proxy.

Descarte do primeiro pacote

Se o sistema anti-DDoS responder a todos os pacotes de ataque de inundação SYN em nome do servidor, o gargalo de desempenho será transferido do servidor para o sistema anti-DDoS. Uma vez esgotados os recursos do sistema anti-DDoS, os pacotes de ataque ainda são transmitidos de forma transparente ao servidor. Além disso, um grande número de pacotes SYN-ACK causa pressão adicional na rede. O sistema anti-DDoS usa o descarte do primeiro pacote para resolver esse problema.

A confiabilidade do protocolo TCP reside não apenas no handshake triplo, mas também no mecanismo de tempo limite e retransmissão. Em casos normais, se o cliente não receber a resposta SYN-ACK do servidor dentro de um determinado período de tempo após o envio de um pacote SYN, o cliente o reenviará. O sistema anti-DDoS descarta o primeiro pacote SYN recebido. Nos ataques de inundação SYN, a maioria dos pacotes SYN enviados pelo hacker mudaram os endereços IP de origem. Consequentemente, todos os pacotes SYN são considerados os primeiros pacotes pelo sistema anti-DDoS e são diretamente descartados. Se o cliente retransmitir um pacote SYN, o sistema anti-DDoS realizará a autenticação da origem do pacote. Isso reduz bastante a pressão do proxy no sistema anti-DDoS. Essa combinação de descarte do primeiro pacote e autenticação de origem protege eficazmente contra ataques de inundação SYN, especialmente aqueles ataques de portas e endereços IP de origem falsos.

Referências: 

https://www.techtarget.com/searchsecurity/definition/SYN-flooding

https://www.netscout.com/what-is-ddos/syn-flood-attacks

https://info.support.huawei.com/info-finder/encyclopedia/en/SYN+Flood.html