SYN-Flood-Angriff

Ein SYN-Flood-Angriff nutzt eine Schwachstelle im TCP/IP-Handshake aus, im Versuch, einen Webdienst zu unterbrechen.

Share facebook icon linkedin icon twitter icon email icon

SYN-Flood

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Einen SYN Flood DDoS-Angriff definieren
  • Erklären, wie ein SYN-Flood-Angriff funktioniert
  • Die verschiedenen Arten von SYN-Angriffen unterscheiden
  • Einige Abwehrtechniken für SYN-Flood-Angriffe verstehen

Was ist ein SYN-Flood-Angriff?

Ein SYN-Flood-(halboffener)-Angriff ist eine Art Denial-of-Service-(DDoS)-Angriff, der darauf abzielt, einen Server für legitimen Daten-Traffic nicht verfügbar zu machen, indem er alle verfügbaren Serverressourcen verbraucht. Durch wiederholtes Senden von SYN-Paketen (Initial Connection Request) ist der Angreifer in der Lage, alle verfügbaren Ports auf einem Zielservercomputer zu überlasten, so dass das Zielgerät nur langsam oder gar nicht auf legitimen Daten-Traffic reagiert.

Wie funktioniert ein SYN-Flood-Angriff?

SYN Flood-Angriffe funktionieren unter Ausnutzung des Handshake-Prozesses einer TCP-Verbindung. Unter normalen Bedingungen weist die TCP-Verbindung drei verschiedene Prozesse auf, um eine Verbindung herzustellen.

  1. Zuerst sendet der Client ein SYN-Paket an den Server, um die Verbindung herzustellen.
  2. Der Server antwortet dann auf dieses erste Paket mit einem SYN/ACK-Paket, um die Kommunikation zu bestätigen.
  3. Schließlich gibt der Client ein ACK-Paket zurück, um den Empfang des Pakets vom Server zu bestätigen. Nach Abschluss dieser Sequenz des Sendens und Empfangens von Paketen ist die TCP-Verbindung offen und kann Daten senden und empfangen.
TCP Three-way handshake diagram

Für einen Denial-of-Service-Angriff nutzt ein Angreifer die Tatsache aus, dass der Server nach dem Empfang eines ersten SYN-Pakets mit einem oder mehreren SYN/ACK-Paketen antwortet und auf den letzten Schritt des Handshakes wartet. Und so funktioniert ist:

  1. Der Angreifer sendet ein hohes Volumen an SYN-Paketen an den Zielserver, oft mit Spoof-IP-Adressen.
  2. Der Server antwortet dann auf jede der Verbindungsanforderungen und hinterlässt einen offenen Port, der bereit ist, die Antwort zu empfangen.
  3. Während der Server auf das endgültige ACK-Paket wartet, das nie ankommt, sendet der Angreifer weiter mehr SYN-Pakete. Das Eintreffen jedes neuen SYN-Pakets veranlasst den Server, vorübergehend eine neue offene Port-Verbindung für eine bestimmte Zeitspanne aufrechtzuerhalten, und sobald alle verfügbaren Ports genutzt wurden, kann der Server nicht mehr normal funktionieren.
SYN flood DDoS attack animation

Wenn ein Server im Netzwerk eine Verbindung offen lässt, der Rechner auf der anderen Seite der Verbindung aber nicht, gilt die Verbindung als halb offen. Bei dieser Art von DDoS-Angriff lässt der Zielserver kontinuierlich Verbindungen offen und wartet auf das Timeout jeder Verbindung, bevor die Ports wieder verfügbar werden. Infolgedessen kann diese Art von Angriff als „halboffener Angriff“ angesehen werden.

Ein SYN-Flood-Angriff kann auf drei verschiedene Arten erfolgen:

  1. Direkter Angriff: Ein SYN-Flood-Angriff, bei der die IP-Adresse nicht gefälscht wird, wird als direkter Angriff bezeichnet. Bei diesem Angriff maskiert der Angreifer seine IP-Adresse gar nicht. Da der Angreifer ein einzelnes Quellgerät mit einer echten IP-Adresse zur Erstellung des Angriffs verwendet, ist der Angreifer sehr anfällig gegenüber Erkennung und Abwehr. Um den halboffenen Zustand auf dem Zielrechner zu erzeugen, verhindert der Hacker, dass sein Rechner auf die SYN-ACK-Pakete des Servers reagiert. Dies wird oft durch Firewall-Regeln erreicht, die ausgehende Pakete, die keine SYN-Pakete sind, stoppen, oder durch Herausfiltern eingehender SYN-ACK-Pakete, bevor sie den Rechner bösartiger Benutzer erreichen. In der Praxis wird diese Methode selten (wenn überhaupt) verwendet, da die Abwehr ziemlich einfach ist – durch Blockieren der IP-Adresse jedes bösartigen Systems. Wenn der Angreifer ein Botnetz wie das Mirai-Botnetz verwendet, muss er die IP des infizierten Geräts gar nicht maskieren.
  2. Spoof-Angriff: Ein böswilliger Benutzer kann auch die IP-Adresse auf jedem von ihm gesendeten SYN-Paket fälschen, um Abwehrbemühungen zu verhindern und die Aufdeckung seiner Identität zu erschweren. Während die Pakete gefälscht werden können, können diese Pakete möglicherweise bis zu ihrer Quelle zurückverfolgt werden. Diese Art von Detektivarbeit ist zwar schwer durchführbar, aber nicht unmöglich, besonders, wenn Internet Service Provider (ISPs) zur Verfügung stehen.
  3. Verteilter Angriff (DDoS): Wenn ein Angriff mit einem Botnetz erstellt wird, ist die Wahrscheinlichkeit, den Angriff bis zur Quelle zurückzuverfolgen, gering. Für eine zusätzliche Stufe der Verschleierung kann ein Angreifer jedes verteilte Gerät auch die IP-Adressen, von denen er Pakete sendet, manipulieren lassen. Wenn der Angreifer ein Botnetz wie das Mirai-Botnetz verwendet, muss er die IP des infizierten Geräts gar nicht maskieren.

Durch die Verwendung eines SYN-Flood-Angriffs kann ein schlechter Akteur versuchen, einen Denial-of-Service in einem Zielgerät oder Dienst mit wesentlich weniger Traffic als andere DDoS-Angriffe zu erzeugen. Statt volumetrischer Angriffe, die darauf abzielen, die Netzwerkinfrastruktur um das Ziel herum zu sättigen, müssen SYN-Angriffe nur größer sein als der verfügbare Backlog im Betriebssystem des Zielsystems. Wenn der Angreifer in der Lage ist, die Größe des Backlogs und die Dauer, wie lange die einzelnen Verbindungen vor der Zeitüberschreitung offen bleiben, zu bestimmen, kann der Angreifer genau die Parameter bestimmen, die zum Deaktivieren des Systems erforderlich sind, um den Gesamt-Traffic auf das Minimum zu reduzieren, das erforderlich ist, um Denial-of-Service zu erzeugen.

Wie wird ein SYN-Flood-Angriff abgewehrt?

Die SYN-Flood-Gefährdung ist seit langem bekannt und es wurde eine Reihe von Abwehrpfaden genutzt. Einige Ansätze sind unter anderem:

Erhöhung der Backlog-Warteschlange

Jedes Betriebssystem auf einem Zielgerät hat eine bestimmte Anzahl von halboffenen Verbindungen, die es erlaubt. Eine Antwort auf hohe Volumina von SYN-Paketen ist die Erhöhung der maximalen Anzahl von möglichen halboffenen Verbindungen, die das Betriebssystem zulässt. Um den maximalen Backlog erfolgreich zu erhöhen, muss das System zusätzliche Speicherressourcen für die Bearbeitung aller neuen Anforderungen reservieren. Wenn das System nicht über genügend Speicher verfügt, um mit der erhöhten Größe der Backlog-Warteschlange umgehen zu können, wird die Systemleistung negativ beeinflusst, aber das kann immer noch besser sein als ein Denial-of-Service.

Recycling der ältesten halboffenen TCP-Verbindung

Eine weitere Abwehrstrategie besteht darin, die älteste halboffene Verbindung zu überschreiben, sobald der Backlog gefüllt ist. Diese Strategie erfordert, dass die legitimen Verbindungen vollständig in kürzerer Zeit aufgebaut werden können, als der Backlog mit bösartigen SYN-Paketen gefüllt werden kann. Diese spezielle Abwehr schlägt fehl, wenn das Angriffsvolumen erhöht wird oder wenn die Backlog-Größe zu klein ist, um praktikabel zu sein.

SYN-Cookies

Diese Strategie beinhaltet die Erstellung eines Cookies durch den Server. Um das Risiko eines Verbindungsabbruchs nach dem Füllen des Backlogs zu vermeiden, antwortet der Server auf jede Verbindungsanforderung mit einem SYN-ACK-Paket, löscht dann aber die SYN-Anfrage aus dem Backlog, entfernt die Anforderung aus dem Speicher und lässt den Port offen und bereit, eine neue Verbindung herzustellen. Wenn die Verbindung eine legitime Anforderung ist und ein endgültiges ACK-Paket vom Client-Rechner zurück an den Server gesendet wird, rekonstruiert der Server dann (mit einigen Einschränkungen) den SYN-Backlog-Warteschlangen-Eintrag. Obwohl durch diesen Abwehraufwand einige Informationen über die TCP-Verbindung verloren gehen, ist dies besser, als zuzulassen, dass legale Benutzer als Folge eines Angriffs einen Denial-of-Service-Angriff erleben.

Wie wehrt Cloudflare SYN-Flood-Angriffe ab?

Cloudflare wehrt diese Art von Angriff teilweise ab, indem es zwischen dem Zielserver und dem SYN-Flood-Angriff steht. Wenn die erste SYN-Anfrage gestellt wird, übernimmt Cloudflare den Handshake-Prozess in der Cloud und hält die Verbindung mit dem Zielserver zurück, bis der TCP-Handshake abgeschlossen ist. Diese Strategie nimmt die Ressourcenkosten für die Aufrechterhaltung der Verbindungen mit den gefälschten SYN-Paketen vom Zielserver und platziert sie auf dem Cloudflare Anycast Netzwerk. Erfahren Sie mehr darüber, wie der DDoS-Schutz von Cloudflare funktioniert. Cloudflare stops SYN Flood attacks diagram