F

Mit Cache Control Headers die Datensicherheit von Web-Applikationen verbessern

Wenn Sie verhindern wollen, dass Web-Applikationen sensible Daten im Browser-Cache speichern, können Sie dafür Cache-Control-Header-Codes einsetzen.

Wir setzen eine spezielle Web-Applikation ein, die bei einigen Instanzen sensible, proprietäre Daten in Cache-Ordnern des Anwenders speichert. Wären Sysinternals SDelete und ein Abmelde-Skript die beste Methode, um die Daten komplett und ohne wiederherstellbare Artefakte zu löschen, ohne dass man die Applikation umbauen muss?

Secure Delete oder SDelete aus der Utility-Sammlung von Sysinternals ist ein kostenloses Kommandozeilen-Tool für Windows, mit dem man Dateien sicher löschen kann. Das gilt auch für Daten, die sich auf nicht zugewiesenen Teilen einer Festplatte befinden. Allerdings können Sie diese Methode nicht einsetzen, um Daten auf den Remote-Geräten der Anwender zu löschen. 

Ein durch Ihre Web-Applikation angestoßenes Abmelde-Skript würde niemals die Erlaubnis erhalten, ein so leistungsfähiges Tool auszuführen. Außerdem ist das im Hinblick auf Web-Applikations-Security der komplett falsche Ansatz. Es gibt bessere Optionen, die garantieren, dass keine sensiblen Daten im Cache-Ordner eines Anwenders zurückbleiben.

Browser speichern Seiten-Ressourcen aus zwei Gründen: Verlauf und Caching. Die Verlaufs-Funktion erlaubt es Anwendern, zu einer früher aufgerufenen Seite schnell zurückzukehren. Das Caching ist für verbesserte Performance zuständig. Heruntergeladene Inhalte wie zum Beispiel ein Logo oder ein Blog-Eintrag werden im Cache-Ordner eines Anwender-Gerätes gespeichert. 

Somit muss der entsprechende Inhalt nicht jedes Mal wieder heruntergeladen werden, wenn der Anwender darauf zugreifen möchte. Sämtliche Inhalte, die aus Caching- oder Verlaufs-Gründen gespeichert werden, lassen sich zu einem späteren Zeitpunkt wieder aufrufen. Um den Browser-Cache zu nutzen, muss man lediglich die Schaltfläche „Zurück“ betätigen. Sensible Daten wie Kreditkartendetails und Anwendernamen sind potenziellen Risiken ausgeliefert.

Um diese Bedrohung für die Privatsphäre zu vermeiden, müssen Sie die Applikation allerdings nicht umbauen. Ein digitales Zertifikat und einige zusätzliche Cache Control Header in jeder Webseite können das Problem mit den zwischengespeicherten Informationen lösen. Installieren Sie zunächst ein Web-Server-Zertifikat und liefern Sie alle Inhalte via HTTPS aus. 

Somit ist die Vertraulichkeit bei der Datenübertragung zwischen Applikation und Anwendern garantiert. Browser weisen unterschiedliches Verhalten beim Caching von HTTPS-Inhalten auf. Deswegen sollten Seiten mit sensiblen Informationen einen so genannten Cache Control Header beinhalten. Dieser stellt sicher, dass die entsprechenden Inhalte nicht im Cache gespeichert werden. Um die unterschiedlichen Browser-Implementierungen abzudecken, sollten die im Header übertragenen Informationen wie folgt aussehen, damit die Software die Inhalte nicht im Cache ablegt:

Cache-Control: no-cache, no-store, private, must-revalidate, max-age=0, no-transform

Pragma: no-cache

Expires: 0

Eine Erklärung:

  • Die Cache-Control-Option „no-store“ verhindert, dass die Anfrage und die Antwort im Cache gespeichert werden.
  • Fügen Sie die Option „private“ hinzu, speichern Proxies die Daten der Seite nicht im Cache.
  • Mithilfe von „must-revalidate“ verhindern Sie, dass die Zurück-Schaltfläche sensible Daten enthüllt.
  • Die Option „max-age“ legt fest, wie lange eine Antwort im Cache bleiben darf. Setzen Sie den Wert auf „0“, ist ein Caching deaktiviert oder unterbunden.

Moderne Browser benutzen die Header-Option „Expires“ nicht mehr wirklich. Aus Gründen der Konsistenz sollten Unternehmen die Ablaufzeit allerdings auf „0“ setzen. Damit stellt man sicher, dass ältere Browser den Cache nicht verwenden. Um kompatibel mit HTTP/1.0 zu sein, sollte die Antwort außerdem die Header-Option „Pragma: no-cache“ enthalten. 

Der Parameter „no-transform“ ist für mobile Anwender wichtig. Einige Provider mobiler Breitband-Services komprimieren oder verändern Inhalte, um Bandbreite zu sparen.

Sobald diese Änderungen implementiert sind, müssen die Entwickler testen, ob die Applikationen nicht mehr sensible Daten preisgeben und im Browser-Cache speichern. Eine manuelle Suche im Cache-Ordner der meist genutzen Browser sollte bestätigen, dass keine sensiblen Daten gespeichert wurden. 

Finden Sie dennoch Daten, verwenden Sie einen Proxy wie zum Beispiel WebScarab, um die Server-Antworten zu untersuchen. Überprüfen Sie jede Seite, die sensible Informationen enthält. Stellen Sie bei diesen Seiten sicher, dass der Server die korrekten Antwort-Header schickt und den entsprechenden Browser anweist, keine Daten im Cache zu hinterlegen.

Folgen Sie SearchSecurity.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close