Che cos’è l’inondazione SYN?

Il SYN flooding è una forma di attacco denial of service che può essere lanciato su un server per sopraffare il server e non consentire ad altri utenti di accedervi. Questa è una forma di attacco un po’ più vecchia ed è stata piuttosto popolare per un periodo a causa delle risorse relativamente basse necessarie per lanciarlo. Il processo di base per l’attacco utilizza il metodo con cui gli utenti si connettono a un server tramite un protocollo di controllo della trasmissione (TCP) per utilizzare tutte le risorse del sistema. Il SYN flooding era una volta una forma di attacco molto diffusa, sebbene siano state ideate diverse soluzioni per ridurne o eliminarne l’efficacia sui server moderni.

L’idea alla base del SYN flooding utilizza il modo in cui gli utenti si connettono ai server tramite connessioni TCP. TCP utilizza un sistema chiamato handshake a tre vie che inizia con un utente che invia un messaggio di “sincronizzazione” o SYN al server. Il server quindi riceve il messaggio e invia all’utente un messaggio di “sincronizzazione confermata” o SYN-ACK. Una volta che il sistema dell’utente riceve questo messaggio, l’utente invia un messaggio finale di “riconoscimento” o ACK al server per stabilire la connessione. Questo processo di base avviene abbastanza rapidamente e garantisce che entrambe le estremità della connessione siano sincronizzate.

Un attacco SYN flood, tuttavia, utilizza questa stretta di mano a tre vie per bloccare le risorse all’interno del server, impedendo così ad altri di accedere al sistema. L’attacco SYN flood inizia con un messaggio SYN inviato al server, che risponde con la risposta SYN-ACK standard. Questo messaggio rimane senza risposta, tuttavia, attraverso uno dei diversi metodi che non comportano l’invio di alcun messaggio ACK finale al server. A questo punto il server lascia le risorse impegnate in attesa del messaggio ACK, nel caso in cui la congestione della rete sia la causa della mancata risposta.

Tuttavia, i server dispongono solo di risorse limitate per la gestione degli handshake a tre vie e molti server sono progettati per gestire solo otto di questi processi alla volta. Il SYN flooding consiste in otto o più messaggi SYN inviati senza il corrispondente messaggio ACK, lasciando tutte le risorse del server impegnate ad attendere una risposta che non arriverà mai. Finché è in attesa di questi messaggi, nessun altro utente può connettersi al server. Mentre molti server sono stati progettati per svuotare la coda per le risposte dopo tre minuti, qualcuno che lancia un attacco SYN potrebbe semplicemente inviare nuovamente otto messaggi SYN ogni tre minuti per mantenere il sistema bloccato a tempo indeterminato.

Sono state trovate diverse soluzioni per questi tipi di attacchi, quindi il SYN flooding ha spesso meno successo rispetto al passato. Una soluzione comune utilizza i “cookie SYN” per consentire a un sistema di eliminare la propria coda quando sono state raggiunte otto richieste, consentendo ai nuovi utenti di inviare richieste di connessione al server. Se alla fine arriva una delle richieste eliminate più vecchie, i cookie assicurano che venga correttamente riconosciuto come messaggio ACK e consentono all’utente di connettersi al server.