SYN flood ou ataque SYN é uma forma de ataque de negação de
serviço (também conhecido como Denial of Service - DoS) em sistemas
computadorizados, na qual o atacante envia uma sequência de requisições SYN
para um sistema-alvo visando uma sobrecarga direta na camada de transporte e
indireta na camada de aplicação do modelo OSI.
Quando um cliente tenta
começar uma conexão TCP com um servidor, o cliente e o servidor trocam um série
de mensagens, que normalmente são assim:
O
cliente requisita uma conexão enviando um SYN (synchronize) ao servidor.
O
servidor confirma esta requisição mandando um SYN-ACK(acknowledge) de volta ao
cliente.
O
cliente por sua vez responde com um ACK, e a conexão está estabelecida.
Isto é o chamado aperto
de mão em três etapas (Three-Way Handshake).
Um cliente malicioso, que
implemente intencionalmente um protocolo TCP errado e incompleto, pode não
mandar esta última mensagem ACK. O servidor irá esperar por isso por um tempo,
já que um simples congestionamento de rede pode ser a causa do ACK em falta.
Esta chamada conexão
semi-aberta explora a boa-fé do protocolo TCP que espera por um certo tempo e
algumas tentativas de restabelecimento de um sinal ACK válido para retomar a
comunicação. A resposta maliciosa ao comando SYN gerada pelo cliente pode ocupar
recursos no servidor (memória e processamento) ou causar prejuízos para
empresas usando softwares licenciados por conexão (aumento de conexões
"ativas"). Pode ser possível ocupar todos os recursos da máquina, com
pacotes SYN. Uma vez que todos os recursos estejam ocupados, nenhuma nova
conexão (legítima ou não) pode ser feita, resultando em negação de serviço.
Alguns podem funcionar mal ou até mesmo travar se ficarem sem recursos desta
maneira.
Colado
de <http://pt.wikipedia.org/wiki/SYN_Flood>