Benutzer:LuckyStarr/SYN-Flood

aus Wikipedia, der freien Enzyklopädie
Abb. 1: TCP-Handshake

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

Funktionsweise

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 Abb. 1 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 auf Grund von Netzwerkstau ausbleiben 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 zum Denial of Service führt. Die Tatsache daß SYN-Pakete sehr klein, und auch einfach zu erzeugen sind, macht diesen Angriff besonders unausgewogen. Der Verteidiger benötigt mehr Ressourcen zur Abwehr als der Angreifer für den Angriff selbst.

Auswirkungen

Betroffene Ressourcen

Zu den Ressourcen, die in Frage kommen, gehören primär vor allem die Tabelle in der die TCP-Verbindungen gespeichert werden, sowie - durch sekundäre Effekte - der Hauptspeicher des Servers. Wenn dem angegriffenen Server der Speicher ausgeht, stürzt er in vielen Fällen ganz oder teilweise ab.

  • Backlog queue des TCP-Stacks
  • Tabelleneinträge für TCP-Verbindungen
  • Hauptspeicher

Gegenmassnahmen

Mögliche Gegenmaßnahmen gegen SYN-Floods sind der SYN-Cookies-Mechanismus oder eine Begrenzung der Anzahl neuer Verbindungen von einem Ursprungsort pro Zeiteinheit. Gegen Distributed Denial of Service-Angriffe schützen diese Maßnahmen jedoch unter Umständen nicht.

Weblinks