Ce sunt cookie-urile SYN?

Cookie-urile SYN sunt o metodă prin care administratorii de server pot preveni o formă de atac de tip denial of service (DoS) împotriva unui server printr-o metodă cunoscută sub numele de inundare SYN. Acest tip de atac utilizează procesul prin care se stabilește o conexiune între un client și gazdă, cunoscut sub numele de strângere de mână în trei căi, pentru a determina gazda să aibă un număr excesiv de solicitări ale clienților, înghețând sau blocând sistemul. Astfel de atacuri au devenit în mare parte depășite, totuși, prin metode precum utilizarea cookie-urilor SYN care le ocolesc. Aceste cookie-uri nu prezintă o amenințare de securitate sau un risc nici pentru gazdă, nici pentru clienți și nu cauzează probleme sau probleme de conectivitate.

Modul în care funcționează cookie-urile SYN este construit pe modul de bază prin care multe servere și utilizatori, sau sisteme gazdă și client, se conectează între ele. Acest proces este cunoscut sub numele de strângere de mână în trei căi și începe atunci când sistemul client trimite o solicitare de conectare la sistemul gazdă. Solicitarea se numește mesaj de sincronizare sau SYN și este primită de sistemul gazdă. Acest sistem gazdă recunoaște apoi că SYN-ul a fost primit prin trimiterea unui mesaj de confirmare sau SYN-ACK înapoi către client.

Odată ce sistemul client primește acest mesaj SYN-ACK, atunci un mesaj ACK final este trimis înapoi de către client gazdei. Când sistemul gazdă primește acest ACK final, atunci acesta permite clientului să acceseze sistemul și apoi poate primi solicitări suplimentare SYN de la alți clienți. Majoritatea serverelor gazdă au o coadă destul de mică pentru solicitările SYN, de obicei doar opt la un moment dat.

Forma de atac DoS cunoscută sub numele de inundații SYN folosește acest lucru pentru a copleși un sistem gazdă. Acest lucru se realizează prin trimiterea unui mesaj SYN, la care un SYN-ACK este trimis de gazdă ca răspuns, dar mesajul ACK final nu este trimis de client, păstrând o poziție în coadă deschisă. Dacă acest lucru se face corect în timpul unui atac SYN flood, întreaga coadă devine ocupată de aceste solicitări fără răspuns și nu poate accepta noi cereri de la clienții legitimi.

Cookie-urile SYN ajută la eludarea acestui tip de atac, permițând unei gazde să se comporte ca și cum ar avea o coadă mai mare decât are cu adevărat. În cazul unui atac SYN flood, gazda poate folosi cookie-uri SYN pentru a trimite un SYN-ACK unui client, dar elimină intrarea SYN pentru acel client. Acest lucru permite practic gazdei să funcționeze ca și cum nu s-ar fi primit vreodată SYN.

Odată ce acest SYN-ACK cu cookie-uri SYN este primit de client, totuși, ACK-ul corespunzător trimis înapoi gazdei include date privind SYN-ACK-ul original. Gazda poate folosi apoi acest ACK și cookie-urile SYN incluse pentru a reconstrui SYN-ACK inițial și intrarea corespunzătoare pentru acea cerere inițială. Odată făcut acest lucru, clientului i se poate permite să se conecteze la gazdă, dar întregul proces a ocolit efectiv coada care altfel ar putea fi ocupată de un atac SYN flood.