Wat zijn SYN-cookies?
SYN-cookies zijn een methode waarmee serverbeheerders een vorm van DoS-aanval (DoS) tegen een server kunnen voorkomen via een methode die bekend staat als SYN-overstromingen. Dit type aanval maakt gebruik van het proces waarbij een verbinding tussen een client en host tot stand wordt gebracht, een zogenaamde drieweg-handshake, om ervoor te zorgen dat de host een overmatig aantal clientaanvragen heeft, waardoor het systeem vastloopt of crasht. Dergelijke aanvallen zijn echter grotendeels verouderd door methoden zoals het gebruik van SYN-cookies die ze omzeilen. Deze cookies vormen geen bedreiging of risico voor de host of clients en veroorzaken geen verbindingsproblemen of -problemen.
De manier waarop SYN-cookies werken, is gebaseerd op de basismanier waarmee veel servers en gebruikers, of host- en clientsystemen, verbinding met elkaar maken. Dit proces staat bekend als een drieweg-handshake en begint wanneer het clientsysteem een verzoek verzendt om verbinding te maken met het hostsysteem. Het verzoek wordt een synchronisatiebericht of SYN genoemd en wordt ontvangen door het hostsysteem. Dit hostsysteem bevestigt vervolgens dat de SYN is ontvangen door een bevestiging of SYN-ACK-bericht terug te sturen naar de client.
Zodra het clientsysteem dit SYN-ACK-bericht ontvangt, wordt een definitief ACK-bericht door de client teruggestuurd naar de host. Wanneer het hostsysteem deze laatste ACK ontvangt, kan de client toegang krijgen tot het systeem en vervolgens aanvullende SYN-aanvragen van andere clients ontvangen. De meeste hostservers hebben een vrij kleine wachtrij voor SYN-aanvragen, meestal slechts acht tegelijk.
De vorm van een DoS-aanval die bekend staat als SYN-overstroming gebruikt dit om een hostsysteem te overweldigen. Dit wordt gedaan door een SYN-bericht te verzenden, waarnaar de host een SYN-ACK stuurt, maar het laatste ACK-bericht wordt niet door de client verzonden, waardoor een positie in de wachtrij open blijft. Als dit goed wordt gedaan tijdens een SYN-overstromingsaanval, raakt de hele wachtrij bezet door deze onbeantwoorde aanvragen en kan deze geen nieuwe aanvragen van legitieme clients accepteren.
SYN-cookies helpen dit type aanval te omzeilen door een host toe te staan te doen alsof hij een grotere wachtrij heeft dan hij echt heeft. In het geval van een SYN-overstromingsaanval kan de host SYN-cookies gebruiken om een SYN-ACK naar een client te sturen, maar het verwijdert de SYN-invoer voor die client. Hierdoor kan de host in principe functioneren alsof er nooit een SYN is ontvangen.
Zodra deze SYN-ACK met SYN-cookies door de klant is ontvangen, bevat de overeenkomstige ACK die naar de host wordt teruggestuurd echter gegevens over de oorspronkelijke SYN-ACK. De host kan vervolgens deze ACK en de meegeleverde SYN-cookies gebruiken om de oorspronkelijke SYN-ACK en de juiste vermelding voor dat oorspronkelijke verzoek te reconstrueren. Zodra dit is gebeurd, kan de client verbinding maken met de host, maar het hele proces omzeilde de wachtrij die anders zou kunnen worden bezet door een SYN-overstroming.