SYN-Flood-Angriff

Bei einem SYN-Flood-Angriff wird versucht, durch das Ausnutzen einer Schwachstelle im TCP/IP-Handshake einen Webdienst zu stören.

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

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Was ist ein SYN-Flood-Angriff?

Ein SYN-Flood-Angriff (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.
Drei-Wege-Handshake-Diagramm bei TCP

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. So funktioniert es:

  1. Der Angreifer sendet ein hohes Volumen an SYN-Paketen an den Zielserver, oft mit gefälschten IP-Adressen.
  2. Der Server antwortet dann auf jede der Verbindungsanforderungen und lässt einen Port offen, 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 weitere 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.
Animation eines SYN-Flood-DDoS-Angriffs

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 des böswilligen Benutzers erreichen. In der Praxis wird diese Methode selten (wenn überhaupt) verwendet, da die Abwehr ziemlich einfach ist – durch Blockieren der IP-Adresse jedes böswilligen 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, insbesondere, wenn Internet Service Provider (ISPs) bereit sind, zu helfen.
  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 von jedem verteilten 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.

Mit einem SYN-Flood-Angriff kann ein schlechter Akteur versuchen, einen Denial-of-Service in einem Zielgerät oder Dienst mit wesentlich weniger Traffic als bei anderen DDoS-Angriffen 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 einen Denial-of-Service zu erzeugen.

Wie wird ein SYN-Flood-Angriff abgewehrt?

Die SYN-Flood-Schwachstelle 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 erlaubt nur eine bestimmte Anzahl von halboffenen Verbindungen. 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 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 größeren 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. Für diese Strategie müssen die legitimen Verbindungen in kürzerer Zeit vollständig 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 der Backlog zu klein ist, um praktikabel zu sein.

SYN-Cookies

Zu dieser Strategie gehört 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 legitime Benutzer als Folge eines Angriffs einen Denial-of-Service erleben.

Wie bekämpft Cloudflare SYN-Flood-Angriffe?

Cloudflare wehrt diese Art von Angriff teilweise so 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 Cloudflares Anycast Netzwerk. Erfahren Sie mehr darüber, wie der DDoS-Schutz von Cloudflare funktioniert.

Diagramm „Cloudflare stoppt SYN-Flood-Angriffe“