Mozillaは、Fissionプロジェクトの一環として開発された厳格なサイト分離モードのFirefoxナイトリービルドおよびベータリリースにおける大規模テストの開始を発表しました。このモードはマルチプロセスアーキテクチャの適用範囲を拡大し、固定のプロセスプールではなく、サイトごとに個別のプロセスを生成します。Fissionモードの制御は、about:configまたはabout:preferences#experimentalページ内の変数「fission.autostart=true」を通じて行います。
これまで Firefox で使用されていたマルチプロセス モデルは、ハンドラー プロセスのプールを実行することを意味していたことを思い出してください。デフォルトでは、コンテンツを処理するためのメイン プロセスが 8 つ、Web コンテンツ用の追加の非特権プロセスが 2 つ、アドオン、GPU とのやり取り、ネットワーク操作、マルチメディア データのデコード用の補助プロセスが 4 つありました。プロセス間のタブの配布は任意に行われました。たとえば、XNUMX つのプロセスに、銀行の Web サイトと信頼できない疑わしいリソースの処理が含まれる場合があります。
新しいモードでは、各サイトの処理をタブではなくドメインで分離し、個別のプロセスに分割することで、外部スクリプトやiframeコンテンツの分離をさらに強化できます。また、異なるサイトに関連付けられた一般的なサービスのサブドメインを分離するために、正式なeTLDではなく、実際のeTLDで分離します。 トップレベルドメイン、パブリックサフィックスリストにマークされます(つまり、サイト「a.github.io」と「b.github.io」は異なるプロセスに移動されます)。
厳密な分離モードは、単一プロセス内での情報漏洩につながるSpectreクラスの脆弱性に関連するようなサイドチャネル攻撃から保護します。同じプロセス内で処理される機密データは、JITエンジンや 仮想マシンウェブブラウザのコンテキストでは、あるサイトからの悪意のあるJavaScriptコードによって、同じプロセスで実行されている別のサイトに入力されたパスワード、アクセスキー、クレジットカード番号などの情報を取得できる可能性があります。当初、サイドチャネル攻撃から保護するために、ブラウザ開発者はタイマーの精度を制限し、SharedArrayBuffer APIへのアクセスをブロックしましたが、これらの対策は攻撃を複雑化させ、速度を低下させるだけでした(例えば、JavaScriptを全く使用せずにCPUキャッシュからデータを抽出する方法が最近提案されています)。
厳密な分離モードのその他の利点としては、メモリの断片化の軽減、オペレーティング システムへのメモリのより効率的な戻り、ガベージ コレクションや他のプロセスのページへの集中的な計算の影響の最小化、異なる CPU コア間の負荷分散の効率向上、安定性の向上 (iframe を処理するプロセスがクラッシュしても、メイン サイトや他のタブがダウンすることはありません) などがあります。
Fission の既知の問題としては、多数のタブを開いたときにメモリ、X11 接続、ファイル記述子の使用量が顕著に増加する、一部のアドオンが正しく動作しない、印刷時またはスクリーンショット機能の使用時に iframe コンテンツが消える、iframe を含むドキュメントのキャッシュ効率が低下する、クラッシュ後にセッションを復元したときに完了したが送信されていないフォームのコンテンツが失われる、などがあります。
出所: オープンネット.ru
