28. Dezember 2008

25C3: TCP Denial of Service Vulnerabilities

Category: CCC — Christian @ 18:16

Wie letztes Jahr (PortBunny) machte die Einführung des Vortrags FX mit launischen Kommentaren wie „I’m his Boss“. Ich bin sicher, dass FX das gut meint aber die Arbeit von Fabs ist inzwischen so gut und umfangreich geworden, er könnte sich besser präsentieren wenn der „Übervater“ nicht ständig daneben stehen würde. Die Folien kommen auf den Videoaufnahmen leider nicht gut rüber, weiß auf schwarz sollte man eventuell auch nochmal überdenken.

TCP ist ein Protokoll aus den 80ern (RFC 793, 1981), das keine echten Sicherheitsfunktionen bietet sondern lediglich auf Robustness optimiert wurde. Bekannte Probleme sind die TCP Reset Attacks die 2004 von Paul Watson veröffentlicht hat und auf die mit TCP Source Port Randomization reagiert wurde (erinnert einen das zufällig an die Dan Kaminsky DNS Lösung?). Eine weitere Schutzmaßnahme ist die Sequence Number Randomization, die in RFC 1948 beschrieben ist.

Ich versuche mal, die DoS-Szenarien zusammenzufassen, das ist jedoch weder ganz korrekt und schon gar nicht vollständig, im Zweifelsfall verweise ich auf das Video und die Slides von Fabs.

DoS-Szenarien:

  • Backlog Queue SYN-Flooding
    • Half-open Connections können von der Anwendung nicht abgebrochen werden
    • Dienste sollten neue Verbindungen schnell annehmen können, um die Backlog-Queue wieder zu leeren
  • Congestion Control Hacking
    • man simuliert eine Gigabit-Verbindung um große TCP Windows zu bekommen (z.B. durch ACKs, bevor man die Daten tatsächlich sieht)
    • man kann steuern, wie man auf Pakete des Kommunikationspartners antwortet
    • der Kommunikationspartner sendet sehr schnell Daten und flutet seine eigene Verbindung
  • Man kann eine Verbindung auch in FIN_WAIT1 halten … sehr lange (abhängig von der RTT)
    • Der Control Block bleibt offen, so kann man den RAM füllen
    • Größe des Control Blocks abhängig von der Window Size
  • Fefe’s TCP_DEFER_ACCEPT Bug

Das größte Problem mit all diesen Fehlern ist, dass eigentlich eine Überarbeitung der Architektur von TCP notwendig wäre. Aktuelle Arbeiten beschäftigen sich jedoch eher mit TCP für Satellitenstrecken (hohe Bandbreite aber auch hoher Roundtrip). Eine sicherheitsgetriebene Überarbeitung von TCP dürfte aktuell nicht realistisch sein.

Ein paar Ideen von Fabs sind darüber hinaus recht clever, beispielsweise viele Verbindungen aufmachen und das Congestion Window zu tunen. ich warte ja, dass das mal irgendjemand richtig cool implementiert. Insgesamt hat mir der Vortrag ganz gut gefallen, man hätte jedoch noch ein paar „Doomsday“ und „wir werden alle störben“ Nachrichten einbauen können 🙂 Schade, dass die Folien noch nicht online sind.

1 Kommentar

  1. Kommentare gesperrt wegen Spam

    Comment by Christian — 28. Mai 2010 @ 09:58

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.