Was ist ein DDoS-Angriff per ACK-Flood? | DDoS-Angriffsmuster

Bei einem ACK-Flood-Angriff versucht der Angreifer, das Ziel mit gefälschten ACK-Paketen zu überlasten, mit denen normalerweise bestätigt wird, dass ein Gerät übertragene Daten erfolgreich empfangen hat.

Lernziele

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

  • Erfahren, was „ACK“ bedeutet
  • Die Funktionsweise einer ACK-Flood verstehen
  • Erfahren, wie man ACK-Flood-Angriffe stoppen kann

Link zum Artikel kopieren

Was ist ein DDoS-Angriff per ACK-Flood?

Ein ACK-Flood-Angriff liegt vor, wenn ein Angreifer versucht, einen Server mit TCP-ACK-Paketen zu überlasten. Wie bei anderen DDoS-Angriffen soll ein Dienst mit einer ACK-Flood für andere Benutzer lahmgelegt werden. Dazu wird das Ziel mithilfe von Junk-Daten verlangsamt oder zum Absturz gebracht. Der Zielserver muss jedes empfangene ACK-Paket verarbeiten und braucht dafür so viel Rechenleistung, dass er keine echten Benutzer bedienen kann.

Stellen Sie sich vor, jemand möchte einem anderen einen Streich spielen und spricht so viele unsinnige Nachrichten auf dessen Anrufbeantworter, dass Nachrichten von echten Anrufern nicht mehr durchkommen. Wenn Sie sich nun noch vorstellen, dass jede dieser gefälschten Nachrichten lautet „Hallo, ich rufe an, um zu sagen, dass ich Ihre Nachricht erhalten habe.“, dann haben Sie ungefähr das vor Augen, was bei einem DDoS-Angriff per ACK-Flood passiert.

Was ist ein Paket?

Alle über das Internet gesendeten Daten werden in kleinere Segmente aufgeteilt, die als Pakete bezeichnet werden. Stellen Sie sich das so ähnlich vor wie bei Twitter, wenn jemand etwas detailliert erklären oder eine lange Geschichte erzählen möchte; dann muss er den Text in Segmente von 280 Zeichen aufteilen und in mehreren Tweets statt einem veröffentlichen. Wenn Sie Twitter nicht nutzen, stellen Sie sich lange SMS-Textnachrichten auf einem Handy vor, die auch in kleinere Abschnitte aufgeteilt werden müssen, wenn das Gerät keine spezielle App für Textnachrichten hat.

Das Transmission Control Protocol (TCP) ist ein wesentlicher Bestandteil der Internetkommunikation. Bei Paketen, die mit dem TCP-Protokoll gesendet werden, werden Informationen in den Paket-Header geschrieben. Das TCP-Protokoll teilt dem Empfänger im Paket-Header mit, wie viele Pakete vorhanden sind und in welcher Reihenfolge sie ankommen sollen. Im Header kann auch die Länge des Pakets, die Art des Pakets usw. angegeben werden.

Man kann es damit vergleichen, dass man einem Dateiordner einen Namen gibt, damit alle wissen, was sich darin befindet. Man könnte auch wieder auf das Twitter-Beispiel zurückkommen: Wenn jemand eine längere Serie von Tweets veröffentlicht, gibt derjenige häufig an, wie viele Tweets insgesamt zu der Serie gehören, und nummeriert jeden Tweet, damit die Leser ihnen besser folgen können.

Was ist ein ACK-Paket?

ACK steht für „acknowledgement“ (Empfangsbestätigung). Ein ACK-Paket ist ein TCP-Paket, mit dem der Empfang einer Nachricht oder einer Reihe von Paketen bestätigt wird. Nach der technischen Definition ist ein ACK-Paket ein TCP-Paket, bei dem das Flag „ACK“ Flag im Header gesetzt ist.

TCP Handshake

ACK-Pakete sind Bestandteil des TCP-Handshakes, einer Abfolge von drei Schritten, mit denen eine Unterhaltung zwischen zwei verbundenen Geräten im Internet eingeleitet wird (genau wie sich Menschen im echten Leben mit einem Händeschütteln begrüßen, bevor sie ein Gespräch führen). Der TCP-Handshake besteht aus diesen drei Schritten:

  1. SYN
  2. SYN ACK
  3. ACK

Das Gerät, das die Verbindung öffnet – beispielsweise der Laptop eines Benutzers – leitet den dreistufigen Handshake ein. Dazu sendet es ein SYN-Paket (kurz für „synchronize“, Synchronisieren). Das Gerät am anderen Ende der Verbindung – nehmen wir an, dies sei ein Server, auf dem eine Website eines Onlinehändlers gehostet wird – antwortet mit einem SYN-ACK-Paket. Zum Schluss sendet der Laptop des Benutzers ein ACK-Paket. Damit ist der dreistufige Handshake abgeschlossen. Mit diesem Vorgang wird gewährleistet, dass beide Geräte online sind und weitere Pakete empfangen können, in diesem Beispiel die Pakete zum Laden der Website beim Benutzer.

ACK-Pakete werden jedoch nicht nur an dieser Stelle verwendet. Beim TCP-Protokoll müssen verbundene Geräte bestätigen, dass sie alle Pakete der Reihe nach empfangen haben. Angenommen, ein Benutzer besucht eine Webseite, auf der ein Bild gehostet wird. Das Bild wird in Datenpakete aufgeteilt und an den Browser des Benutzers gesendet. Sobald das gesamte Bild angekommen ist, sendet das Gerät des Benutzers ein ACK-Paket an den Hostserver, um zu bestätigen, dass kein Pixel fehlt. Ohne dieses ACK-Paket muss der Hostserver das Bild noch einmal senden.

Jedes TCP-Paket, bei dem das ACK-Flag im Header gesetzt ist, ist ein ACK-Paket. Die Information „ACK“ kann also Bestandteil einer anderen Nachricht sein, die der Laptop an den Server sendet. Wenn der Benutzer ein Formular ausfüllt und Daten an den Server sendet, kann der Laptop eines dieser Pakete zum ACK-Paket für das Bild machen. Es muss kein separates Paket sein.

Wie läuft ein ACK-Flood-Angriff ab?

ACK-Flood-Angriffe zielen auf Geräte ab, die jedes empfangene Paket verarbeiten müssen. Firewalls und Server sind die wahrscheinlichsten Ziele für eine ACK-Flood. Load Balancer, Router und Switches sind unempfindlich für solche Angriffe.

Echte und falsche ACK-Pakete sehen im Wesentlichen gleich aus, sodass es schwierig ist, eine ACK-Flood zu stoppen, ohne unnötige ACK-Pakete mit einem Content Delivery Network (CDN) herauszufiltern. Obwohl sie ähnlich aussehen, fehlt bei den Paketen, die bei einem ACK-DDoS-Angriff verwendet werden, der Hauptteil eines Datenpakets, die sogenannte Nutzlast. Um echt zu wirken, muss nur das ACK-Flag im TCP-Header vorhanden sein.

ACK-Floods sind DDoS-Angriffe auf Layer 4 (Transport Layer). Hier erfahren Sie mehr über Layer 4 und das OSI-Modell.

Wie funktioniert ein SYN-ACK-Flood-Angriff?

Ein DDoS-Angriff per SYN-ACK-Flood unterscheidet sich geringfügig von einem ACK-Angriff, obwohl die Grundidee immer noch dieselbe ist: das Ziel mit zu vielen Paketen zu überlasten.

Erinnern Sie sich daran, wie ein dreistufiger TCP-Handshake funktioniert: Der zweite Schritt im Handshake ist das SYN-ACK-Paket. Normalerweise sendet ein Server dieses SYN-ACK-Paket als Antwort auf ein SYN-Paket von einem Clientgerät. Bei einem DDoS-Angriff per SYN ACK überschwemmt der Angreifer das Ziel mit SYN-ACK-Paketen. Diese Pakete gehören hier überhaupt nicht zu einem dreistufigen Handshake. Ihr einziger Zweck ist es, den normalen Betrieb des Ziels zu stören.

Ein Angreifer kann SYN-Pakete auch in einem DDoS-Angriff per SYN-Flood einsetzen.

Wie stoppt Cloudflare DDoS-Angriffe per ACK-Flood?

Das Cloudflare CDN fungiert als Proxy für den gesamten Traffic zum und vom Ursprungsserver eines Cloudflare-Kunden. Das CDN leitet keine ACK-Pakete weiter, die zu keiner offenen TCP-Verbindung gehören. Damit ist gewährleistet, dass böswilliger ACK-Traffic den Ursprungsserver nicht erreicht. Das Cloudflare-Netzwerk von Rechenzentren ist so groß, dass es DDoS-Angriffe nahezu jeder Größe absorbieren kann. ACK-Floods können Cloudflare deshalb kaum etwas anhaben.

Cloudflare Magic Transit und Cloudflare Spectrum stoppen ebenfalls solche DDoS-Angriffe. Magic Transit fungiert als Proxy für Layer-3-Traffic und Spectrum als Proxy für Layer-4-Traffic anstelle von Layer-7-Traffic wie beim CDN. Beide Produkte blockieren ACK-Floods, indem sie Angriffsmuster automatisch erkennen und den Angriffs-Traffic blockieren.

Hier finden Sie Informationen über weitere Arten von DDoS-Angriffen.