Das Unternehmen Mozilla hat einen Modus zur strengen Isolierung von Websites für Firefox vorgestellt.

Mozilla hat den Beginn umfangreicher Tests in Nacht- und Beta-Versionen von Firefox für den Modus zur strengen Isolierung von Websites bekannt gegeben, der im Rahmen des Projekts Fission entwickelt wurde. Der Modus erweitert die Nutzung der Multi-Prozess-Architektur: Anstelle eines festen Pools von Prozessen wird für jede Website ein separater Prozess erstellt. Die Aktivierung des Fission-Modus erfolgt über die Einstellung „fission.autostart=true“ in about:config oder auf der Seite about:preferences#experimental.

Es sei daran erinnert, dass das bisher in Firefox angewandte Multi-Prozess-Modell die Ausführung eines Pools von Prozessverarbeitern vorsah: standardmäßig 8 Hauptprozesse zur Verarbeitung von Inhalten, 2 zusätzliche nicht privilegierte Prozesse für Webinhalte und 4 Hilfsprozesse für Add-ons, GPU-Interaktionen, Netzwerkoperationen und das Decodieren von Multimedia-Daten. Die Verteilung von Tabs auf Prozesse erfolgte zufällig; zum Beispiel konnte die Verarbeitung einer Bank-Website und einer unseriösen Quelle in einem Prozess stattfinden.

Der neue Modus verlagert die Verarbeitung jeder Website in einen separaten Prozess, wobei die Trennung nicht nach Tabs, sondern nach Domains erfolgt, was eine zusätzliche Isolierung der Inhalte externer Skripte und iframe-Blöcke ermöglicht. Für die separate Verarbeitung von Subdomains typischer Dienste, die mit verschiedenen Websites verbunden sind, erfolgt die Trennung nicht nach formalen, sondern nach tatsächlichen (eTLD) Top-Level-Domains, die in der Liste der Public Suffixes aufgeführt sind (d.h. die Websites „a.github.io“ und „b.github.io“ werden in verschiedene Prozesse verschoben).

Der Modus zur strengen Isolierung schützt vor Angriffen über Fremdkanäle, beispielsweise im Zusammenhang mit Schwachstellen der Spectre-Klasse, die zu Informationslecks innerhalb eines Prozesses führen können. Ein Leck von vertraulichen Daten, die im selben Prozess verarbeitet werden, ist möglich, wenn nicht vertrauenswürdiger externer Code in JIT-Engines ausgeführt wird. virtuellen Maschinen. Im Kontext von Webbrowsern kann bösartiger JavaScript-Code von einer Website Informationen über Passwörter, Zugangsschlüssel und Kreditkartennummern abrufen, die auf einer anderen Website eingegeben wurden, die im selben Prozess verarbeitet wird. Ursprünglich schränkten die Entwickler der Browser die Timer-Genauigkeit ein und blockierten den Zugriff auf die API SharedArrayBuffer, um sich vor Kanalangriffen zu schützen, doch diese Maßnahmen erschwerten und verlangsamten nur die Durchführung des Angriffs (zum Beispiel wurde kürzlich eine Methode vorgeschlagen, die Daten aus dem CPU-Cache extrahiert, die überhaupt ohne JavaScript funktioniert).

Zu den weiteren Vorteilen des Modus der strengen Isolierung gehören die Verringerung der Speicherfragmentierung, eine effizientere Rückgabe des Speichers an das Betriebssystem, die Minimierung des Einflusses von Garbage Collection und intensiven Berechnungen auf Seiten in anderen Prozessen, die Steigerung der Effizienz der Lastverteilung auf verschiedene CPU-Kerne und die Erhöhung der Stabilität (der Absturz des Prozesses, der das iframe bearbeitet, zieht nicht die Hauptseite und andere Tabs nach sich).

Zu den bekannten Problemen, die bei der Verwendung von Fission auftreten, gehören ein merklicher Anstieg des Speicherverbrauchs, der X11-Verbindungen und der Dateideskriptoren beim Öffnen einer großen Anzahl von Tabs sowie Probleme mit einigen Add-ons, das Verschwinden des Inhalts von iframes beim Drucken und beim Aufruf der Screenshot-Funktion, eine verringerte Effizienz beim Caching von Dokumenten mit iframes sowie der Verlust des Inhalts ausgefüllter, aber nicht abgesendeter Formulare bei der Wiederherstellung der Sitzung nach einem Absturz.

Quelle: opennet.ru

60GB SSD 8Gb DDR4