ニュース

新しいセキュリティ技術「RLBox」で武装した「Firefox 95」が正式リリース

サイト分離もすべてのユーザーに対して有効化

「Firefox」v95.0

 Mozillaは12月7日(米国時間)、デスクトップ向け「Firefox」の最新版v95.0を正式公開した。「Microsoft Store」からインストールできる初めてのメジャーバージョンとなる。

 機能面での目玉は、新しいサンドボックス技術「RLBox」の採用だ。サンドボックス(sandbox)とは、外部から持ち込まれたデータを処理する隔離環境のこと。万が一処理したデータに悪意があっても、その影響をサンドボックスに閉じ込め、他に及ばないようにすることで被害を最小限に食い止めるセキュリティ技術の1つだ。

 「Firefox」にはすでにプロセスベースのサンドボックスが搭載されており、脆弱性を悪用することで特定のプロセスが乗っ取られたとしても、すぐさまアプリ全体に影響が及ぶことはない。

 しかし、サンドボックスをバイパスする脆弱性が組み合わされた場合は別で、追加の対策が必要となる。また、すべての機能をプロセスに分離すると、パフォーマンスやメモリ使用量の面でオーバーヘッドが少なくない。たとえばXMLパーサーのような、プロセスにするほどの規模ではない機能に関しては、もう少し軽量のサンドボックス技術を適用することが望ましい。

 そこで考案されたのが、「RLBox」と呼ばれる手法だ。この手法はコードを別のプロセスへ独立させるのではなく、一旦WebAssemblyへコンパイルし、そのWebAssemblyをさらにネイティブコードへコンパイルする。

 この変換により、コードには2つの重要な制限が課せられる。1つは予期しない部分へ処理をジャンプさせることができなくなること。もう1つは指定された領域外のメモリにアクセスできないことだ。つまり、変換後のコードは他のコードとアドレス空間(スタックを含む)を共有できる――パフォーマンスのペナルティもない――が、変換前ほどの自由度はなく、万が一乗っ取られても大きな影響はないため安全に運用できる。

 変換の際にWebAssemblyを経由するのは、「Firefox」のビルドで用いられているコンパイルシステム「Clang」が流用できるからのようだ。「Clang」はWebAssemblyの生成が可能で、1つ目の変換処理は簡単にクリアできる。2つ目の変換処理では当初「Cranelift」と呼ばれるコードジェネレーターが用いられていたが、複雑になるとしてWebAssemblyを同等のCコードへ変換する「wasm2c」が最終的に採用された。このアプローチは非常にシンプルで、通常の「Firefox」でサポートされている多くの重要な機能でも応用できたという。

 「RLBox」は独立したプロジェクトで、「Firefox」以外の製品にも組み込むことができる。Mozillaは、この「RLBox」が他のWebブラウザーやソフトウェアでも積極的に採用されることを願うとしている。

 そのほかにも、「Firefox 95」ではサイト分離(Site Isolation)アーキテクチャーがすべてのユーザーに対して有効化された。2018年初めに話題となったサイドチャネル攻撃「Meltdown」「Spectre」や、これから登場するであろうその亜種からユーザーを守ることができる。

 また、ピクチャーインピクチャー機能が改善され、トグルボタンの表示位置を左右に切り替えるオプションが導入された。

ピクチャーインピクチャー機能が改善

 なお、本バージョンでは13件の脆弱性修正も行われているので注意。深刻度の内訳はMozillaの基準で上から2番目の「High」が6件(うち1件はMac版にのみ影響)、上から3番目の「Moderate」が5件(うち1件はAndroid版にのみ影響)、最低の「Low」が2件。任意コードの実行につながる可能性のある欠陥も含まれており、できるだけ早いアップデートが望ましい。

 デスクトップ版「Firefox」はWindows/Mac/Linuxなどに対応する寄付歓迎のフリーソフトで、現在MozillaのWebサイトからダウンロード可能。Windows版はWindows 7/8/10/11に対応しており、窓の杜ライブラリからもダウンロードできる。