ニュース

Microsoft、「Chromium」に新しいセキュリティ層を追加 ~「Edge 123」で一般展開へ

攻撃を封じ込める「サンドボックス」の穴となっていた「MojoJS」に対策

「Microsoft Browser Vulnerability Research」のブログ

 米Microsoftは3月13日(現地時間)、「Microsoft Edge」に新たなセキュリティ保護レイヤーを追加すると発表した。この改善は「Edge」がベースとしている「Chromium」プロジェクトにもコントリビュート(貢献)されているため、他の「Chromium」系Webブラウザーでも恩恵をうけられる。

 「Chromium」はマルチプロセスアーキテクチャーを採用しており、プロセスをまたいだデータのやり取り(IPC:プロセス間通信)には「Mojo」というモジュールが用いられている。しかし、“信頼されていない”JavaScriptを含むWebコンテンツに関しては、レンダラープロセスと呼ばれる特別な「サンドボックス」タイプのプロセスで解析・実行され、他プロセスとの対話が必要なときは「MojoJS」というモジュールを介し、「Chromium」によって公開されている特定の「Mojo」インターフェイスにだけアクセスできる仕組みだ。

 この「MojoJS」が乗っ取られることはサンドボックスから抜け出せてしまうことを意味し、より高い特権をもつブラウザープロセスなどへ影響が及んでしまう。そのため、通常「MojoJS」は無効化され、特定の信頼された機能のレンダラーでのみ有効できる。

 しかし、「MojoJS」の有効化はプロパティの変更だけで比較的簡単に行える。そのため、他の脆弱性を突いて攻撃者が読み書き権限を得てしまうと、「MojoJS」が有効化され、サポートされているすべての「Mojo」インターフェイスをJavaScriptから呼び出せるようになる可能性がある。しかも、この攻撃は「Arbitrary Code Guard」(ACG)などのセキュリティ緩和策では保護されない。

 そこで、Microsoftは「MojoJS」の有効・無効状態を保護する新しいセキュリティレイヤーを「Chromium」に追加した。レンダラーで処理されているそれぞれのコンテキストで「MojoJS」を有効化するかどうかを新設のプロパティ値で管理するが(既存のプロパティも引き続き利用可能)、これは読み取り専用として特別なメモリ入りに格納されるため、攻撃者が読み書き権限を奪取しても、プロパティの変更で即座にレンダラープロセス(サンドボックス)がクラッシュし、「Chromium」全体が守られる。

 この変更は「Edge」のプレビューチャネル(Canary、Dev、Beta)の50%のユーザーですでに有効になっており、「Edge 123」でStable(安定)チャネルにも展開される予定。現時点ではWindows 10/11でしか利用できないが、他のプラットフォーム(Mac/Linuxなど)でもいずれサポートされる見込みだ。