SYN-Flood

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Erfolgreicher TCP-Handshake
Der Angreifer (grün) sendet viele SYN-, jedoch keine ACK-Pakete. Durch die halboffenen Verbindungen wird der Server so sehr ausgelastet, dass die Anfrage eines normalen Benutzers (lila) nicht bearbeitet werden kann.

Ein SYN-Flood ist eine Form der Denial-of-Service-Attacke auf Computersysteme. Der Angriff verwendet den Verbindungsaufbau des TCP-Transportprotokolls, um einzelne Dienste oder ganze Computer aus dem Netzwerk unerreichbar zu machen.

Funktionsweise[Bearbeiten]

Wenn ein Client eine TCP-Verbindung zu einem Server aufbauen möchte, führen der Client und der Server einen so genannten Dreiwege-Handshake durch, um die Verbindung einzurichten. Der normale Ablauf, wie in der Abbildung zu sehen, ist dabei folgender:

  1. Client an Server: Paket mit Flag SYN, Abgleichen (synchronize).
  2. Server an Client: Paket mit Flags SYN, ACK, Abgleichen bestätigt (synchronize acknowledge).
  3. Client an Server: Paket mit Flag ACK, Bestätigt (acknowledge); Die Verbindung ist nun hergestellt.

Ein böswilliger Client kann die letzte ACK-Nachricht unterschlagen. Der Server wartet einige Zeit auf ein entsprechendes Paket, da es ja auch aufgrund von Verzögerungen verspätet eintreffen könnte.

Während dieser Zeit werden sowohl die Adresse des Clients als auch der Status der noch halb offenen Verbindung im Speicher des Netzwerkstacks vorrätig gehalten, um die Verbindung später vollständig etablieren zu können. Bei allen Betriebssystemen belegt diese so genannte halb offene Verbindung Ressourcen auf dem Server. Da Ressourcen immer begrenzt sind, ist es durch „Flutung“ des Servers mit SYN-Nachrichten möglich, alle diese Ressourcen aufzubrauchen. Sobald dies der Fall ist, können zum Server keine neuen Verbindungen mehr aufgebaut werden, was zur Zugriffsverweigerung (Denial of Service) führt. Die Tatsache, dass SYN-Pakete sehr klein sind und auch ohne großen Rechenaufwand erzeugt werden können, macht diesen Angriff besonders unausgewogen. Der Verteidiger benötigt mehr Ressourcen zur Abwehr als der Angreifer für den Angriff selbst.

Betroffene Ressourcen[Bearbeiten]

Zu den Ressourcen, die betroffen sein können, gehören vor allem die Tabelle, in der die TCP-Verbindungen gespeichert werden. Durch sekundäre Effekte kann ferner der Hauptspeicher des Servers betroffen sein. Die sogenannte backlog queue des TCP-Stacks, die im Falle von zu vielen gleichzeitig aktiven Verbindungen als Warteschlange einspringt, benötigt ebenfalls Speicher. Wenn dem angegriffenen Server der Speicher ausgeht, stürzt er in vielen Fällen ganz oder teilweise ab.

Gegenmaßnahmen[Bearbeiten]

Mögliche Maßnahmen gegen SYN-Floods:

  • Der SYN-Cookies-Mechanismus
  • RST-Cookies
  • Eine Echtzeitanalyse des Angriffs durch eine intelligente Firewall, welche verdächtige Angriffsmuster automatisch erkennt.
  • Proxy Server
  • Recyceln der ältesten halb-offenen TCP Verbindung
  • SYN Cache

Gegen Distributed-Denial-of-Service-Angriffe schützen diese Maßnahmen jedoch unter Umständen nicht.

Intelligente Angriffe[Bearbeiten]

Man kann die oben genannten Gegenmaßnahmen aber auch leicht umgehen. Das geschieht meist durch zufällige Werte im TCP/IP Header. Dabei ist aber zu beachten, dass man nicht alle Gegenmaßnahmen umgehen kann.

Mögliche Methoden:

  • Bei jedem Paket eine andere Absender-IP-Adresse verwenden (durch IP-Spoofing)
  • Unterschiedlich lange Pausen zwischen den einzelnen Paketen
  • Zufällige Absenderports
  • Zufälliges hinzufügen anderer TCP-Flags

Weblinks[Bearbeiten]