HTTP - Sicherheit

HTTP wird für die Kommunikation über das Internet verwendet. Daher sollten Anwendungsentwickler, Informationsanbieter und Benutzer die Sicherheitsbeschränkungen in HTTP / 1.1 kennen. Diese Diskussion enthält keine endgültigen Lösungen für die hier genannten Probleme, enthält jedoch einige Vorschläge zur Reduzierung von Sicherheitsrisiken.

Verlust persönlicher Informationen

HTTP-Clients sind häufig mit einer großen Menge persönlicher Informationen wie Name, Standort, E-Mail-Adresse, Kennwörtern, Verschlüsselungsschlüsseln usw. des Benutzers vertraut. Sie sollten daher sehr vorsichtig sein, um ein unbeabsichtigtes Weitergeben dieser Informationen über das HTTP-Protokoll an andere Quellen zu verhindern.

  • Alle vertraulichen Informationen sollten verschlüsselt auf dem Server gespeichert werden.

  • Durch die Offenlegung der spezifischen Softwareversion des Servers wird der Server möglicherweise anfälliger für Angriffe auf Software, von der bekannt ist, dass sie Sicherheitslücken enthält.

  • Proxys, die als Portal durch eine Netzwerk-Firewall dienen, sollten besondere Vorsichtsmaßnahmen hinsichtlich der Übertragung von Header-Informationen treffen, die die Hosts hinter der Firewall identifizieren.

  • Die im Feld "Von" gesendeten Informationen können im Widerspruch zu den Datenschutzinteressen des Benutzers oder den Sicherheitsrichtlinien seiner Website stehen. Sie sollten daher nicht übertragen werden, ohne dass der Benutzer den Inhalt des Felds deaktivieren, aktivieren und ändern kann.

  • Clients sollten kein Referer-Header-Feld in eine (nicht sichere) HTTP-Anforderung aufnehmen, wenn die verweisende Seite mit einem sicheren Protokoll übertragen wurde.

  • Autoren von Diensten, die das HTTP-Protokoll verwenden, sollten keine GET-basierten Formulare für die Übermittlung vertraulicher Daten verwenden, da dies dazu führt, dass die Daten im Request-URI codiert werden.

Angriff auf Datei- und Pfadnamen

Das Dokument sollte auf die von HTTP-Anforderungen zurückgegebenen Dokumente beschränkt sein, um nur diejenigen zu sein, die von den Serveradministratoren beabsichtigt wurden.

Beispielsweise werden UNIX, Microsoft Windows und andere Betriebssysteme verwendet '..'als Pfadkomponente zur Angabe einer Verzeichnisebene über der aktuellen. Auf einem solchen System MUSS ein HTTP-Server ein solches Konstrukt in der Anforderungs-URI nicht zulassen, wenn dies andernfalls den Zugriff auf eine Ressource außerhalb derjenigen ermöglichen würde, auf die über den HTTP-Server zugegriffen werden soll.

DNS-Spoofing

Clients, die HTTP verwenden, verlassen sich stark auf den Domain Name Service und sind daher im Allgemeinen anfällig für Sicherheitsangriffe, die auf der absichtlichen falschen Zuordnung von IP-Adressen und DNS-Namen beruhen. Daher müssen Clients vorsichtig sein, wenn sie davon ausgehen, dass eine IP-Nummer / DNS-Namenszuordnung weiterhin gültig ist.

Wenn HTTP-Clients die Ergebnisse der Suche nach Hostnamen zwischenspeichern, um eine Leistungsverbesserung zu erzielen, müssen sie die vom DNS gemeldeten TTL-Informationen beachten. Wenn HTTP-Clients diese Regel nicht einhalten, können sie gefälscht werden, wenn sich die IP-Adresse eines Servers, auf den zuvor zugegriffen wurde, ändert.

Standort-Header und Spoofing

Wenn ein einzelner Server mehrere Organisationen unterstützt, die sich nicht vertrauen, MUSS er die Werte der Header "Location" und "Content Location" in den Antworten überprüfen, die unter der Kontrolle dieser Organisationen generiert werden, um sicherzustellen, dass sie nicht versuchen, Ressourcen ungültig zu machen die sie keine Autorität haben.

Anmeldeinformationen für die Authentifizierung

Bestehende HTTP-Clients und Benutzeragenten behalten Authentifizierungsinformationen normalerweise auf unbestimmte Zeit bei. HTTP / 1.1 bietet keine Methode für einen Server, um Clients anzuweisen, diese zwischengespeicherten Anmeldeinformationen zu verwerfen, was ein großes Sicherheitsrisiko darstellt.

Es gibt eine Reihe von Umgehungsmöglichkeiten für die Teile dieses Problems. Daher wird empfohlen, den Kennwortschutz in Bildschirmschonern, Leerlaufzeitüberschreitungen und anderen Methoden zu verwenden, um die mit diesem Problem verbundenen Sicherheitsprobleme zu verringern.

Proxies und Caching

HTTP-Proxys sind Männer in der Mitte und bieten eine Möglichkeit für Man-in-the-Middle-Angriffe. Proxies haben Zugriff auf sicherheitsrelevante Informationen, persönliche Informationen zu einzelnen Benutzern und Organisationen sowie proprietäre Informationen von Benutzern und Inhaltsanbietern.

Proxy-Betreiber sollten die Systeme schützen, auf denen Proxys ausgeführt werden, da sie jedes System schützen würden, das vertrauliche Informationen enthält oder transportiert.

Caching-Proxys bieten zusätzliche potenzielle Sicherheitslücken, da der Inhalt des Caches ein attraktives Ziel für die böswillige Ausnutzung darstellt. Daher sollten Cache-Inhalte als vertrauliche Informationen geschützt werden.