SYN flood: Mausezahn

O SYN flood visa à sobrecarga direta na camada de transporte TCP, com o envio de uma sequência de requisições SYN. A sequência correta de troca de mensagens numa conexão TCP, também conhecida como Three Way Handshake conforme especificada na RFC 793 (Transmission Control Protocol) é 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.

Um cliente malicioso, que implemente intencionalmente um protocolo TCP errado e incompleto, pode não mandar a última mensagem ACK.

O servidor irá esperar por um tempo, alocando recursos de processamento e memória. Esta conexão é chamada semiaberta e explora a boa-fé do protocolo TCP, que espera por certo tempo e algumas tentativas de restabelecimento de um sinal ACK válido para retomar a comunicação. 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 (DoS).

SYN flood: Ataque

Requisitos:
iOS Linux
mz (Mausezahn) : http://www.perihel.at/sec/mz/

Usaremos o comando mz, para fazer o ataque contra o host “usuário”.

root@ataque:~#  mz -A 10.2.0.10 -B 10.2.0.20 -c 1000 -t tcp “dp=23, flags=syn”

-A: ip de origem
-B: ip de destino
-c: quantia de pacotes

O exemplo acima mostra um simples ataque de DoS, pela quantia de pacotes ser baixa, a maquina alvo ainda ficaria de pé, mais se usarmos uma quantia maior de pacotes, podemos fazer com que ela trave, consumindo todo seu processamento.

root@ataque:~#  mz -A 10.2.0.10 -B 10.2.0.20 -c 0 -t tcp “dp=23, flags=syn”

Neste exemplo, a quantia de pacote é definida como 0, o que quer dizer infinito, após algum tempo disparando syn’s contra o alvo, ele deverá travar.

A outros parâmetros que podem ser usados, utilize o comando mz -help e será informado uma lista com suas definições.

SYN flood: Defesa

Requisitos:
iOS Linux
iptables : http://www.netfilter.org

Usaremos o comando iptables, para limitar a quantia de syn por segundo, impedindo que a maquina seja alvo de DoS.

root@defesa:~# iptables -N SYN_FLOOD
root@defesa:~# iptables -A INPUT -p tcp –syn -j SYN_FLOOD
root@defesa:~# iptables -A SYN_FLOOD -m limit –limit 5/s –limit-burst 5 -j RETURN
root@defesa:~# iptables -A SYN_FLOOD -j LOG –log-prefix “SYN flood:”
root@defesa:~# iptables -A SYN_FLOOD -j DROP

Tags: ,