Zum Hauptinhalt springen

6. Sicherheitserwägungen (Security Considerations)

Als zentrales Transportprotokoll des Internets ist TCP mit mehreren Sicherheitsbedrohungen konfrontiert. Dieser Abschnitt skizziert die wichtigsten Sicherheitsüberlegungen und Abhilfemaßnahmen.

6.1. Sequenznummernangriffe

Bedrohung: Angreifer können versuchen, TCP-Sequenznummern zu erraten oder vorherzusagen, um bösartige Daten einzuschleusen oder Verbindungen zu übernehmen.

Abhilfemaßnahmen:

  • Verwenden Sie kryptografisch starke Zufallszahlengeneratoren zur Auswahl anfänglicher Sequenznummern (Initial Sequence Number, ISN)
  • Implementieren Sie Sequenznummer-Schutzmechanismen aus RFC 6528
  • Strenge Validierung von Segmenten außerhalb des Fensters (RFC 5961)

6.2. SYN-Flood-Angriffe

Bedrohung: Angreifer senden zahlreiche SYN-Segmente ohne den Handshake abzuschließen und erschöpfen Server-Ressourcen.

Abhilfemaßnahmen:

  • Implementierung von SYN-Cookie-Mechanismen
  • Begrenzung der Anzahl halboffener Verbindungen
  • Verwendung von SYN-Proxies oder Firewall-Schutz
  • Konfiguration geeigneter Timeout-Werte

6.3. Verbindungsübernahme

Bedrohung: Angreifer versuchen, bestehende TCP-Verbindungen zu übernehmen.

Abhilfemaßnahmen:

  • Verwendung von Verschlüsselungsprotokollen wie TLS/SSL (z.B. HTTPS)
  • Überprüfung von Sequenz- und Bestätigungsnummern
  • Implementierung strenger Zustandsprüfungen
  • Verwendung der TCP-MD5-Signaturoption (RFC 2385) oder TCP-AO (RFC 5925)

6.4. RST-Angriffe

Bedrohung: Angreifer senden gefälschte RST-Segmente, um legitime Verbindungen zu beenden.

Abhilfemaßnahmen:

  • Strenge Validierung der Sequenznummern von RST-Segmenten
  • Implementierung von RST-Behandlungsverbesserungen aus RFC 5961
  • Verwendung von verschlüsseltem Verbindungsschutz

6.5. Dateninjektionsangriffe

Bedrohung: Angreifer versuchen, bösartige Daten in Verbindungen einzuschleusen.

Abhilfemaßnahmen:

  • Strenge Sequenznummernvalidierung
  • Verwendung von Verschlüsselungs- und Authentifizierungsmechanismen
  • Überprüfung der Datenintegrität (Prüfsummen)

6.6. Denial-of-Service (DoS)-Angriffe

Bedrohungstypen:

  • Ressourcenerschöpfung: Verbrauch von Server-CPU, -Speicher oder -Verbindungsressourcen
  • Bandbreitenverbrauch: Senden großer Datenmengen zur Sättigung des Netzwerks
  • Zustandserschöpfung: Erstellen zahlreicher Verbindungen zur Erschöpfung des Serverzustands

Abhilfemaßnahmen:

  • Implementierung von Verbindungsratenbegrenzung
  • Verwendung von Firewalls und Intrusion-Detection-Systemen
  • Konfiguration geeigneter Ressourcengrenzen
  • Implementierung von Schnellpfad-Optimierungen zur Reduzierung der CPU-Nutzung

6.7. Man-in-the-Middle (MITM)-Angriffe

Bedrohung: Angreifer fangen Kommunikation ab und ändern sie möglicherweise.

Abhilfemaßnahmen:

  • Verwendung von Ende-zu-Ende-Verschlüsselung wie TLS
  • Implementierung von Zertifikatsvalidierung
  • Verwendung starker Authentifizierungsmechanismen

6.8. Blindangriffe

Bedrohung: Angreifer versuchen, Verbindungen anzugreifen, ohne den Verkehr zu sehen.

Abhilfemaßnahmen:

  • Verbesserungen aus RFC 5961, einschließlich:
    • Challenge-ACKs für Segmente außerhalb des Fensters
    • Strenge RST- und SYN-Validierung
    • Ratenbegrenzung von Challenge-ACKs

6.9. Timing-Angriffe

Bedrohung: Ableitung von Informationen durch Analyse von Timing-Eigenschaften des TCP-Verhaltens.

Abhilfemaßnahmen:

  • Implementierung von Zeitstempel-Randomisierung
  • Vermeidung vorhersagbaren Timeout-Verhaltens
  • Verwendung von Verschlüsselung auf Anwendungsebene

6.10. Implementierungsempfehlungen

MUSS (MUST):

  • Verwendung kryptografisch starker Zufallszahlengeneratoren für ISN-Generierung
  • Ordnungsgemäße Implementierung und Validierung von TCP-Prüfsummen
  • Implementierung der Sicherheitsverbesserungen aus RFC 5961

SOLLTE (SHOULD):

  • Unterstützung von TLS für Anwendungen, die Sicherheit benötigen
  • Implementierung von Verbindungsratenbegrenzung
  • Protokollierung verdächtiger Aktivitäten

EMPFOHLEN (RECOMMENDED):

  • Verwendung von Firewalls und Intrusion-Detection-Systemen
  • Regelmäßige Aktualisierung von TCP-Implementierungen zur Behebung bekannter Schwachstellen
  • Überwachung abnormaler Verkehrsmuster

6.11. Verschlüsselung und Authentifizierung

TCP selbst bietet keine Verschlüsselung oder Authentifizierung. Anwendungen, die Sicherheit benötigen, sollten verwenden:

  • TLS/SSL (Transport Layer Security) - Am häufigsten verwendete Lösung
  • IPsec - Netzwerkschicht-Sicherheit
  • TCP-AO (RFC 5925) - TCP-Authentifizierungsoption
  • Verschlüsselung auf Anwendungsebene - Wie SSH, HTTPS

6.12. Sicherheitskonfiguration

Empfohlene Systemkonfiguration:

# SYN-Cookies aktivieren (Linux)
net.ipv4.tcp_syncookies = 1

# SYN-Wiederholungsversuche begrenzen
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3

# RFC 1337 TIME-WAIT-Schutz aktivieren
net.ipv4.tcp_rfc1337 = 1

# Reverse-Path-Filterung aktivieren
net.ipv4.conf.all.rp_filter = 1

6.13. Zugehörige Sicherheits-RFCs

  • RFC 4953 - Verteidigung von TCP gegen Spoofing-Angriffe
  • RFC 5925 - Die TCP-Authentifizierungsoption (TCP-AO)
  • RFC 5961 - Verbesserung der TCP-Robustheit gegenüber Blind-In-Window-Angriffen
  • RFC 6528 - Verteidigung gegen Sequenznummernangriffe
  • RFC 7414 - Eine Roadmap für TCP-Spezifikationsdokumente (Sicherheitsabschnitte)

Wichtiger Hinweis: Sicherheit ist ein sich kontinuierlich entwickelndes Feld. Implementierer sollten über die neuesten Sicherheits-Best-Practices und Schwachstellenankündigungen informiert bleiben.