Gli attacchi DoS semplici consumano la larghezza di banda .
Ma attacchi più sofisticati utilizzano altre risorse come il tempo e la memoria della CPU. Un'alluvione SYN è mirata all'utilizzo della memoria (e in alcuni casi del tempo di CPU sui firewall hardware).
Per un utente malintenzionato, tuttavia, è più facile inondare una vittima con pacchetti SYN, se la vittima ha un'ampiezza di banda .
Come viene stabilita una connessione TCP?
TCP utilizza una vibrazione a tre mani:
Client --------- SYN -------> Server
Client <------ SYN,ACK ------ Server
Client ------- ACK,... -----> Server
Il modo tradizionale di gestire la creazione di una connessione è questo:
Dopo che il server ha ricevuto un pacchetto SYN, deve allocare memoria per memorizzare le informazioni sulla connessione (ad esempio, IP client, porta client, IP server, porta server). Riconosce il pacchetto SYN inviando un SYN ACK all'indirizzo IP di origine specificato nel pacchetto iniziale.
Un flood SYN è composto da un sacco di pacchetti SYN per i quali il server deve allocare memoria. Il cliente può semplicemente inviarli e dimenticarsene . Inoltre, l'indirizzo IP di origine può essere impostato su qualsiasi cosa (a meno che l'ISP dell'aggressore non disponga di filtri).
Perché il server deve ricordare la connessione semiaperta?
Il server deve verificare che il mittente del pacchetto ACK nel passaggio 3 sia quello che ha inviato il pacchetto SYN e ha ricevuto il pacchetto SYN-ACK. Questo è il modo in cui il protocollo TCP ha cercato di proteggere da falsi indirizzi IP e iniezioni di pacchetti.
(La protezione non funziona contro un utente malintenzionato che ha accesso a un router attraverso il quale viaggiano i pacchetti).
Come proteggere da SYN-floods?
Invece di allocare memoria e memorizzare le informazioni sulla connessione semiaperta, il server invia le informazioni richieste nel campo del numero di sequenza TCP in un modo di salvataggio crittografico.
Quindi, quando viene ricevuto il pacchetto finale ACK, può estrarre le informazioni richieste, verificarlo e stabilire la connessione.
Wikipedia ha un buon articolo sui cookie SYN .