SYN-Angriff ist eine gängige Methode von Hackern und eine der DDoS-Methoden. SYN-Angriffe nutzen TCP-Protokollfehler aus, indem sie eine große Anzahl von Halbverbindungsanfragen senden und dabei CPU- und Speicherressourcen verbrauchen. SYN-Angriffe wirken sich nicht nur auf Hosts aus, sondern können auch Netzwerksysteme wie Router und Firewalls schädigen. Tatsächlich spielt es bei SYN-Angriffen keine Rolle, welches System das Ziel ist, solange diese Systeme TCP-Dienste öffnen, können sie implementiert werden.
Um die Grundprinzipien dieses Angriffs zu verstehen, müssen wir noch mit dem Prozess des Aufbaus einer TCP-Verbindung beginnen:
Jeder weiß, dass TCP auf Verbindungen basiert, das heißt: Um TCP-Daten zwischen dem Server und dem Client zu übertragen, muss zunächst eine virtuelle Verbindung, also eine TCP-Verbindung, hergestellt werden Die TCP-Verbindung ist wie folgt:
Im ersten Schritt sendet das anfragende Ende (Client) eine TCP-Nachricht mit dem SYN-Flag. Die Synchronisierungsnachricht gibt den vom Client verwendeten Port und die anfängliche Sequenznummer der TCP-Verbindung an
Im zweiten Schritt gibt der Server nach dem Empfang der SYN-Nachricht vom Client eine SYN+ACK-Nachricht zurück, die angibt, dass die Anfrage des Clients angenommen wird. Gleichzeitig wird die TCP-Sequenznummer um eins erhöht und ACK wird akzeptiert bestätigt.Im dritten Schritt sendet der Client außerdem eine Bestätigungsnachricht ACK an den Server zurück. Die TCP-Sequenznummer wird ebenfalls um eins erhöht und eine TCP-Verbindung hergestellt.
Der obige Verbindungsprozess wird im TCP-Protokoll als Drei-Wege-Handshake bezeichnet.
Das Problem liegt im Drei-Wege-Handshake der TCP-Verbindung. Angenommen, ein Benutzer stürzt ab, nachdem er eine SYN-Nachricht an den Server gesendet hat. Dann kann der Server die ACK-Nachricht des Clients nicht empfangen. Der dritte Handshake kann nicht abgeschlossen werden. In diesem Fall wird der Server im Allgemeinen erneut versuchen (SYN + ACK erneut an den Client senden) und eine gewisse Zeit warten, bevor er die nicht abgeschlossene Verbindung verwirft. Die Länge dieses Zeitraums wird als SYN-Timeout bezeichnet. Im Allgemeinen liegt diese Zeit in der Größenordnung von Minuten (ca. 30 Sekunden bis 2 Minuten).
Es ist kein großes Problem für einen Benutzer, eine Ausnahme zu haben, die dazu führt, dass ein Thread des Servers eine Minute lang wartet, aber wenn ein böswilliger Angreifer diese Situation in großer Zahl simuliert, wird der Server viel Geld für die Aufrechterhaltung eines Servers verschlingen Sehr große Halbverbindungsliste. Selbst einfaches Speichern und Durchlaufen verbraucht viel CPU-Zeit und Speicher, ganz zu schweigen von der Notwendigkeit, SYN+ACK für die IPs in dieser Liste ständig erneut zu versuchen . .
Wenn der TCP/IP-Stack des Servers nicht leistungsstark genug ist, kommt es tatsächlich häufig zu einem Stapelüberlauf-Absturz – selbst wenn das serverseitige System leistungsstark genug ist, ist der Server damit beschäftigt, die Fälschungen des Angreifers zu verarbeiten TCP-Verbindungsanfragen und haben keine Zeit, auf die normale Anfrage des Clients zu achten.
Das obige ist der detaillierte Inhalt vonWie nutzt SYN das TCP-Protokoll, um Angriffe zu starten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!