Firefox testet Seitenisolierung
Die Sicherheitsfunktion trennt Websites und auch eingebettete Elemente voneinander. Das soll Spectre-ähnliche Angriffe erschweren. Mozilla verspricht aber auch eine effizientere Nutzung von Hardware-Ressourcen.
Mozilla testet eine neue Sicherheitsarchitektur für seinen Browser Firefox. Teilnehmen können Nutzer, die den Nightly oder Beta Channel abonniert haben. Bei ihnen startet Firefox jede geöffnete Seite in einem eigenen Prozess des Betriebssystems, um eine vollständige Seitenisolierung zu erreichen.
Derzeit startet Firefox stets einen privilegierten Hauptprozess, acht weitere Prozesse für Web-Inhalte sowie zwei zusätzliche Prozesse mit weniger Privilegien für Webinhalte. Außerdem nutzt der Browser vier Prozesse für Web-Erweiterungen, GPU-Operationen, Networking und Media-Decoding.
Bei einer starren Anzahl von Prozessen besteht das Risiko, dass eine schädliche Website in einem Prozess ausgeführt wird, der bereits von einer anderen nicht schädlichen Seite verwendet wird. Dadurch erhält die schädliche Seite Zugriff auf gemeinsam genutzten Arbeitsspeicher. Mit einem Spectre-artigen Angriff könnte sie dann auf Nutzerdaten anderer Seiten in diesem Prozess zugreifen. Außerdem werden auch Anzeigen, eingebettete Seiten und Subframes unter Umständen unabhängig von ihrer Herkunft in einem Prozess ausgeführt.
Hier sorgt die Seitenisolierung für Abhilfe. Sie stellt sicher, dass jedes eingebettete Element, dass sich ein Teil derselben Seite ist, einen eigenen Prozess erhält. Somit sind fremde Elemente durch die Speicherschutzfunktionen und Sicherheitsgarantien des Betriebssystem von der eigentlichen Website getrennt.
“In einem noch gefährlicheren Szenario könnte eine bösartige Website eine legitime Website in einen Subframe einbetten und versuchen, Sie zur Eingabe vertraulicher Informationen zu verleiten”, schreibt Anny Gakhokidze, Senior Platform Engineer bei Mozilla, in einem Blogeintrag. “Im Falle eines erfolgreichen Spectre-ähnlichen Angriffs könnte eine Top-Level-Site auf sensible Informationen zugreifen, auf die sie von einem von ihr eingebetteten Subframe aus keinen Zugriff haben sollte (und umgekehrt) – die neue Site-Isolation-Sicherheitsarchitektur innerhalb von Firefox wird es bösartigen Sites effektiv noch schwerer machen, solche Angriffe auszuführen.”
Darüber hinaus wird die Seitenisolierung laut Mozilla die HTTP- und HTTPS-Versionen einer Website als unterschiedliche Seiten behandeln. Auch sie erhalten also eigene Prozesse.
Um Seiten von Top-Level-Domains zu unterscheiden, die Subdomains an ihre Nutzer ausgeben, bedient sich Mozilla einer von der Community gepflegten Liste. Damit soll erreicht werden, dass Seite beispielsweise von Github.io und Blogger.com wie separate Seiten behandelt werden können.
Ein weiterer Vorteil der Seitenisolierung ist, dass Websites, die besonders viele Computing-Ressourcen benötigen, nicht die Performance anderer Websites im Browser beeinflussen. Auch ein Absturz des Prozesses einer Seite hat dann keinen Einfluss mehr auf andere geöffnete Seiten. Zudem betonte Gakhokidze, dass die Seitenisolierung die Aufteilung der Arbeitslasten auf mehrere CPU-Kerne erleichtert, was zu einer effizienteren Nutzung der verfügbaren Hardware führe.
Die Arbeit an der Seitenisolierung begann Mozilla bereits 2019 unter der Bezeichnung Project Fission. Nutzer von Firefox Nightly müssen “about:preferences#experimental” den Schalter für Fission umlegen. Im Beta-Channel findet sich die Option unter “about:config”. Hier muss der Autostart für Fission eingeschaltet werden. Jeweils ist zudem ein Neustart des Browsers erforderlich, um die Seitenisolierung zu starten.