Was sind SYN-Cookies?
SYN-Cookies sind eine Methode, mit der Serveradministratoren einen Denial-of-Service-Angriff (DoS) auf einen Server durch eine als SYN-Flooding bezeichnete Methode verhindern können. Bei dieser Art von Angriff wird der Prozess verwendet, mit dem eine Verbindung zwischen einem Client und einem Host hergestellt wird. Dies wird als Drei-Wege-Handshake bezeichnet und bewirkt, dass der Host übermäßig viele Client-Anforderungen hat und das System einfriert oder abstürzt. Solche Angriffe sind jedoch durch Methoden wie die Verwendung von SYN-Cookies, die sie umgehen, weitgehend veraltet. Diese Cookies stellen weder für den Host noch für die Clients eine Sicherheitsbedrohung oder ein Sicherheitsrisiko dar und verursachen keine Verbindungsprobleme oder -probleme.
Die Art und Weise, wie SYN-Cookies funktionieren, basiert auf der grundlegenden Art und Weise, wie viele Server und Benutzer oder Host- und Client-Systeme miteinander verbunden sind. Dieser Prozess wird als Drei-Wege-Handshake bezeichnet und beginnt, wenn das Client-System eine Anforderung zum Herstellen einer Verbindung zum Host-System sendet. Die Anforderung wird als Synchronisierungsnachricht oder SYN bezeichnet und vom Host-System empfangen. Dieses Host-System bestätigt dann, dass die SYN empfangen wurde, indem es eine Bestätigung oder eine SYN-ACK-Nachricht an den Client zurücksendet.
Sobald das Client-System diese SYN-ACK-Nachricht empfängt, sendet der Client eine endgültige ACK-Nachricht an den Host zurück. Wenn das Hostsystem diese endgültige Bestätigung erhält, kann der Client auf das System zugreifen und weitere SYN-Anforderungen von anderen Clients empfangen. Die meisten Hostserver haben eine relativ kleine Warteschlange für SYN-Anforderungen, normalerweise nur acht gleichzeitig.
Die als SYN-Flooding bezeichnete Form eines DoS-Angriffs nutzt dies, um ein Hostsystem zu überwältigen. Dazu wird eine SYN-Nachricht gesendet, an die der Host als Antwort eine SYN-ACK sendet. Die letzte ACK-Nachricht wird jedoch nicht vom Client gesendet, sodass eine Position in der Warteschlange offen bleibt. Wenn dies während eines SYN-Flood-Angriffs ordnungsgemäß durchgeführt wird, wird die gesamte Warteschlange von diesen unbeantworteten Anforderungen belegt und kann keine neuen Anforderungen von legitimen Clients akzeptieren.
SYN-Cookies helfen dabei, diese Art von Angriff zu umgehen, indem sie es einem Host ermöglichen, sich so zu verhalten, als hätte er eine größere Warteschlange als er wirklich hat. Im Falle eines SYN-Flood-Angriffs kann der Host SYN-Cookies verwenden, um ein SYN-ACK an einen Client zu senden. Der SYN-Eintrag für diesen Client wird jedoch entfernt. Dies ermöglicht es dem Host im Grunde, so zu funktionieren, als ob niemals ein SYN empfangen worden wäre.
Sobald diese SYN-ACK mit SYN-Cookies vom Client empfangen wurde, enthält die entsprechende ACK, die an den Host zurückgesendet wurde, Daten bezüglich der ursprünglichen SYN-ACK. Der Host kann dann dieses ACK und die enthaltenen SYN-Cookies verwenden, um das ursprüngliche SYN-ACK und den entsprechenden Eintrag für diese ursprüngliche Anforderung zu rekonstruieren. Sobald dies erledigt ist, kann der Client eine Verbindung zum Host herstellen, aber der gesamte Prozess hat die Warteschlange, die ansonsten möglicherweise von einem SYN-Flood-Angriff belegt wird, effektiv umgangen.