I cookie SYN sono un metodo con cui gli amministratori del server possono prevenire una forma di attacco DoS (denial of service) contro un server attraverso un metodo noto come SYN flooding. Questo tipo di attacco utilizza il processo mediante il quale viene stabilita una connessione tra un client e un host, noto come handshake a tre vie, per far sì che l’host abbia un numero eccessivo di richieste client, bloccando o bloccando il sistema. Tali attacchi sono in gran parte diventati obsoleti, tuttavia, attraverso metodi come l’uso di cookie SYN che li aggirano. Questi cookie non rappresentano una minaccia o un rischio per la sicurezza né per l’host né per i client e non causano problemi di connettività.
Il modo in cui funzionano i cookie SYN si basa sul modo di base con cui molti server e utenti, o sistemi host e client, si connettono tra loro. Questo processo è noto come handshake a tre vie e inizia quando il sistema client invia una richiesta di connessione al sistema host. La richiesta è chiamata messaggio di sincronizzazione o SYN e viene ricevuta dal sistema host. Questo sistema host quindi riconosce che il SYN è stato ricevuto inviando un messaggio di conferma, o messaggio SYN-ACK, al client.
Una volta che il sistema client riceve questo messaggio SYN-ACK, il client invia all’host un messaggio ACK finale. Quando il sistema host riceve questo ACK finale, consente al client di accedere al sistema e può quindi ricevere richieste SYN aggiuntive da altri client. La maggior parte dei server host ha una coda abbastanza piccola per le richieste SYN, di solito solo otto alla volta.
La forma di attacco DoS nota come SYN flooding lo utilizza per sopraffare un sistema host. Ciò avviene inviando un messaggio SYN, al quale viene inviato in risposta un SYN-ACK dall’host, ma il messaggio ACK finale non viene inviato dal client, mantenendo aperta una posizione nella coda. Se questo viene fatto correttamente durante un attacco SYN flood, l’intera coda viene occupata da queste richieste senza risposta e non è in grado di accettare nuove richieste da client legittimi.
I cookie SYN aiutano a eludere questo tipo di attacco consentendo a un host di agire come se avesse una coda più grande di quella che ha realmente. In caso di attacco SYN flood, l’host può utilizzare i cookie SYN per inviare un SYN-ACK a un client, ma elimina la voce SYN per quel client. Ciò consente sostanzialmente all’host di funzionare come se non fosse mai stato ricevuto alcun SYN.
Tuttavia, una volta ricevuto dal client questo SYN-ACK con i cookie SYN, l’ACK corrispondente inviato all’host include i dati relativi al SYN-ACK originale. L’host può quindi utilizzare questo ACK e i cookie SYN inclusi per ricostruire il SYN-ACK originale e la voce appropriata per quella richiesta originale. Una volta fatto ciò, al client può essere consentito di connettersi all’host, ma l’intero processo ha effettivamente aggirato la coda che altrimenti potrebbe essere occupata da un attacco SYN flood.