Was ist SYN?

Bei TCP bezeichnet SYN das Paket, das von einem Client an einen Server gesendet wird, um eine Verbindung aufzubauen. Der Aufbau einer TCP-Verbindung erfolgt in diesen Schritten:

  1. Der Client sendet zunächst ein SYN-Paket an den Server.
  2. Der Server antwortet mit einem SYN/ACK-Paket und bestätigt damit die Anfrage. Zu diesem Zeitpunkt reserviert der Server Ressourcen in einer Verbindungstabelle, um die Verbindungsdetails zu speichern, wodurch ein halb offener Verbindungszustand entsteht.
  3. Nach dem Empfang des SYN/ACK-Pakets antwortet der Client mit einem ACK-Paket.
  4. Wenn der Server das ACK-Paket empfängt, ist die Verbindung vollständig hergestellt.

Dieser Verbindungsaufbau, bei dem drei Pakete ausgetauscht werden, wird als 3-Wege-Handshake bezeichnet. Dadurch kann der Server bestätigen, dass seine Antwortpakete den Client erreicht haben. Probleme treten jedoch auf, wenn der Client die Quell-IP-Adresse fälscht, da der Server dann keine Antwort auf sein SYN/ACK-Paket erhält. In solchen Fällen hält der Server die halb offene Verbindung bis zum Timeout aufrecht, wodurch unnötig Ressourcen belegt werden. Böswillige Akteure nutzen diese Schwachstelle bei einem SYN-Flood-Angriff aus, einer Form von DoS-/DDoS-Angriff.

Die BIG-IP-Plattform von F5 fungiert als vollständiger Proxy und verhindert SYN-Flood-Angriffe, indem sie SYN-Pakete prüft, bevor sie diese an den Server weiterleitet. Darüber hinaus verfügt BIG-IP über eine Funktion namens SYN-Cookies, mit der sich die Plattform vor großen Mengen an SYN-Paketen schützt. Bei diesem Verfahren wird eine mittels MD5 erzeugte Zahl (ein sogenanntes „Cookie“) in die TCP-Sequenznummer des SYN/ACK-Pakets eingebettet. Beim Empfang des nachfolgenden ACK-Pakets wird das Cookie anhand seines Inhalts neu berechnet. Dadurch müssen beim Senden des SYN/ACK-Pakets keine Verbindungsdetails gespeichert werden, sodass selbst während eines SYN-Flood-Angriffs keine Speichererschöpfung auftritt.