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:
- Der Client sendet zunächst ein SYN-Paket an den Server.
- 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.
- Nach dem Empfang des SYN/ACK-Pakets antwortet der Client mit einem ACK-Paket.
- 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.
