Zum Hauptinhalt springen

15. Security Considerations (Sicherheitserwägungen)

Dieser Abschnitt diskutiert Sicherheitserwägungen des HTTP/1.1-Protokolls.

15.1 Personal Information (Persönliche Informationen)​

HTTP-Clients haben in der Regel Zugriff auf eine große Menge persönlicher Informationen (z.B. Name des Benutzers, Standort, E-Mail-Adresse, Passwörter, Verschlüsselungsschlüssel usw.). Diese Informationen sollten sorgfältig behandelt werden, um unbeabsichtigte Offenlegung zu verhindern.

Hauptrisiken:

  • User-Agent-, Referer-, From-Header können die Privatsphäre des Benutzers offenlegen
  • Query-Strings in URIs können sensible Informationen enthalten
  • Protokolldateien können sensible Daten aufzeichnen

15.2 Abuse of Server Log Information (Missbrauch von Server-Protokollinformationen)​

Serverbetreiber sollten sich bewusst sein, dass HTTP-Protokolldateien persönliche Informationen der Benutzer enthalten und daher auf demselben Niveau wie andere sensible Informationen geschützt werden sollten.

15.3 Transfer of Sensitive Information (Übertragung sensibler Informationen)​

Wie jedes allgemeine Datenübertragungsprotokoll kann HTTP den Inhalt der übertragenen Daten nicht regulieren und auch nicht im Voraus die Sensibilität einer bestimmten Anfrage bestimmen.

Empfehlungen:

  • HTTPS (HTTP over TLS/SSL) zur Übertragung sensibler Informationen verwenden
  • Keine sensiblen Informationen in URIs einschließen (können protokolliert werden)
  • POST statt GET zur Übermittlung sensibler Formulardaten verwenden

15.4 Encoding Sensitive Information in URI's (Codierung sensibler Informationen in URIs)​

Da die Quelle von URIs nicht vertrauenswürdig sein kann, müssen HTTP-Clients vorsichtig sein, wenn sie sensible Daten in URIs einschließen. Insbesondere wenn URIs Passwörter oder andere Authentifizierungsinformationen enthalten.

15.5 Location Headers and Spoofing (Location-Header und Spoofing)​

Wenn ein einzelner Server mehrere Organisationen unterstützt, muss dieser Server die Werte in den Location- und Content-Location-Headern überprüfen, um sicherzustellen, dass ein Angreifer den Server nicht verwenden kann, um Antworten zu generieren, die scheinbar von einer anderen Organisation stammen.

15.6 Authentication Credentials (Authentifizierungsinformationen)​

Bestehende HTTP-Clients und Benutzeragenten behalten Authentifizierungsinformationen in der Regel auf unbestimmte Zeit. HTTP/1.1 bietet keine Methode für den Ursprungsserver, den Client anzuweisen, diese zwischengespeicherten Anmeldeinformationen zu verwerfen.

Sicherheitsempfehlungen:

  • Sitzungszeitlimit-Mechanismen verwenden
  • Explizite Abmeldefunktion bereitstellen
  • Vermeiden, Anmeldeinformationen in URIs zu übergeben

15.7 Proxies and Caching (Proxies und Caching)​

HTTP-Proxies sind Zwischenhändler, die potenzielle Sicherheitsrisiken mit sich bringen können. Organisationen sollten die Datenschutz- und Sicherheitsauswirkungen des Proxy-Zugriffs berücksichtigen.

Wichtige Fragen:

  • Proxies können alle übertragenen Daten sehen
  • Caches können sensible Informationen speichern
  • Proxy-Protokolle können Benutzeraktivitäten aufzeichnen

Cache-Sicherheitsmaßnahmen:

  • Cache-Control: private verwenden, um gemeinsam genutzten Cache zu verhindern
  • Cache-Control: no-store verwenden, um jegliches Caching zu verhindern
  • Sicherheitskonfiguration des Caches überprüfen

15.8 DNS Spoofing (DNS-Spoofing)​

HTTP-Clients verlassen sich auf DNS, um Hostnamen in IP-Adressen aufzulösen. DNS-Spoofing-Angriffe können dazu führen, dass Clients eine Verbindung zum falschen Server herstellen.

Schutzmaßnahmen:

  • DNSSEC zur Verifizierung von DNS-Antworten verwenden
  • HTTPS zur Sicherstellung der Server-Identität verwenden

15.9 Attacks Based On File and Path Names (Angriffe basierend auf Datei- und Pfadnamen)​

Implementierungen sollten Request-URI sorgfältig behandeln, um zu verhindern, dass bösartige Clients auf Ressourcen zugreifen, die nicht über HTTP zugänglich sein sollten.

Häufige Angriffe:

  • Pfadtraversierungsangriffe (../../../etc/passwd)
  • Zugriff auf spezielle Dateien
  • Symbolic-Link-Angriffe

Schutzmaßnahmen:

  • Alle Pfade normalisieren
  • Zugängliche Verzeichnisse einschränken
  • Dateiberechtigungen überprüfen

Zusammenfassung​

Die Sicherheit von HTTP/1.1 hängt ab von:

  1. Transportschicht-Sicherheit - TLS/SSL (HTTPS) verwenden
  2. Korrekte Implementierung - Sicherheits-Best-Practices befolgen
  3. Angemessene Konfiguration - Exposition sensibler Informationen begrenzen
  4. Benutzerbewusstsein - Benutzer schulen, Sicherheitsrisiken zu erkennen

Wichtiger Hinweis: HTTP selbst ist ein zustandsloses Protokoll und bietet keine eingebauten Sicherheitsmechanismen. Sicherheit muss durch die Verwendung von HTTPS, geeigneten Authentifizierungsmechanismen und sicheren Codierungspraktiken implementiert werden.