O que é SYN?

No TCP, SYN refere-se ao pacote enviado de um cliente para um servidor a fim de iniciar uma conexão. O estabelecimento de uma conexão TCP segue estas etapas:

  1. Primeiro, o cliente envia um pacote SYN ao servidor.
  2. O servidor responde com um pacote SYN/ACK, confirmando a solicitação. Nesse momento, o servidor reserva recursos em uma tabela de conexões para armazenar os detalhes da conexão, estabelecendo um estado de conexão semiaberta.
  3. Ao receber o pacote SYN/ACK, o cliente responde com um pacote ACK.
  4. Quando o servidor recebe o pacote ACK, a conexão é totalmente estabelecida.

Esse processo de conexão, que envolve a troca de três pacotes, é chamado de handshake de três vias. Ele permite que o servidor confirme que seus pacotes de resposta chegaram ao cliente. No entanto, surgem problemas quando o cliente falsifica o endereço IP de origem, pois o servidor não recebe uma resposta ao seu pacote SYN/ACK. Nesses casos, o servidor mantém a conexão semiaberta até que o tempo limite seja atingido, consumindo recursos desnecessariamente. Agentes mal-intencionados exploram essa vulnerabilidade em um ataque de inundação SYN, um tipo de ataque DoS/DDoS.

A plataforma BIG-IP da F5 atua como um proxy completo e impede ataques de inundação SYN ao inspecionar os pacotes SYN antes de encaminhá-los ao servidor. Além disso, o BIG-IP inclui um recurso chamado SYN Cookies para se proteger contra grandes volumes de pacotes SYN. Nesse método, um número gerado por MD5 (chamado de "Cookie") é incorporado ao número de sequência TCP do pacote SYN/ACK. Quando o pacote ACK subsequente é recebido, o Cookie é recalculado com base no conteúdo desse pacote. Isso elimina a necessidade de armazenar os detalhes da conexão no momento em que o pacote SYN/ACK é enviado, evitando o esgotamento da memória mesmo durante um ataque de inundação SYN.