HTTP-Header: Webseiten vor Spectre schützen
Eine Reihe neuer HTTP-Header ermöglicht es, Webseiten besser voneinander abzuschotten und damit Seitenkanalangriffe wie Spectre zu verhindern.
Um Webseiten vor Angriffen wie Spectre zu schützen, müssen sie besser voneinander abgeschottet werden. Doch das Web ist bisher so gebaut, dass Webseiten auf verschiedene Weise miteinander interagieren und externe Inhalte einbinden können. Um hier Lücken zu schließen, gibt es eine Reihe von neuen HTTP-Headern.
- HTTP-Header: Webseiten vor Spectre schützen
- Blockieren von Ladevorgängen anderer Hosts
- Nur explizit erlaubte Inhalte mit COEP
- Content-Sniffing abschalten ist generell empfehlenswert
- Isolierung für manche Javascript-Features nötig
Die Sicherheitslücke Spectre, die im Januar 2018 bekanntwurde, hat scheinbare Gewissheiten in Sachen IT-Sicherheit erschüttert und gezeigt: Über Seitenkanäle wie die Geschwindigkeit von Cache-Zugriffen lässt sich unberechtigt Speicher auslesen. Seitdem wurden mehrfach Varianten dieser Angriffe entdeckt und viele der entwickelten Gegenmaßnahmen erwiesen sich als unzureichend.
Spectre-Lücken auch in Webbrowsern angreifbar
Ein Risiko durch Spectre und dessen Varianten besteht auch in Webbrowsern, da solche Lücken mittels Javascript angegriffen werden können. Eine großflächige Ausnutzung fand bislang nicht statt, da die Angriffe kompliziert sind, doch ein Risiko bleibt. Google hat zuletzt einen Proof of Concept präsentiert, mit dem ein Datenleck via Spectre zwischen Webseiten gezeigt wurde.
In einer ersten Reaktion hatten Browser nach der Entdeckung von Spectre verschiedene, als gefährlich eingeschätzte Features deaktiviert oder eingeschränkt. Shared-Array-Buffer-Objekte, die einen schnellen Direktzugriff auf Speicher ermöglichen, wurden deaktiviert, verschiedene Timer-Funktionen wurden in ihrer Genauigkeit eingeschränkt.
Inzwischen gibt es ausgefeiltere Schutzmaßnahmen, die jedoch teilweise Änderungen bei der Webentwicklung erfordern. Wer die Maßnahmen alle umsetzt, kann den Zugriff auf die deaktivierten Funktionen wieder freischalten.
Webseiten werden in eigene Prozesse eingesperrt
Diese Schutzmaßnahmen zielen darauf ab, Webseiten voneinander zu isolieren. Bereits vor der Entdeckung von Spectre arbeiteten Entwickler von Google Chrome an einem Feature namens Site Isolation. Das sah vor, dass jede Webseite in einem abgeschotteten Render-Prozess läuft. Für Google war das ein Glücksfall: Das Feature eignete sich als Schutz vor Spectre und die Einführung wurde beschleunigt.
Mozilla hat nachgezogen und mit Project Fission ebenfalls eine derartige Seitenisolierung implementiert. Diese Funktion ist bisher nicht standardmäßig aktiviert.
Um die Seitenisolierung zu perfektionieren, muss gewährleistet sein, dass eine Webseite nicht die Inhalte einer anderen einbinden kann. Genau das ist aber nicht einfach. Im Web ist es standardmäßig vorgesehen, Bilder, Javascript- oder CSS-Dateien von anderen Seiten einzubinden.
Blockieren von Ladevorgängen anderer Hosts |
"Neuerdings werden ja sogar Spiele gestreamt" Jo, im schlimmsten Fall geht das dann halt...
Teil der Übergangslösung ist das beschriebene Abschalten des SharedArrayBuffers und...
Danke für den verständlichen Artikel! Für das Grundverständnis ist der sehr hilfreich...
Ich verstehe nicht, wieso man nicht so etwas in den bestehenden mächtigen CSP Header...