1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Google Chromeバージョン123からV8サンドボックス有効化、報奨の対象に

マイナビニュース / 2024年4月10日 12時40分

画像提供:マイナビニュース

The Hacker Newsは4月8日(現地時間)、「Google Chrome Adds V8 Sandbox - A New Defense Against Browser Attacks」において、Google ChromeにV8サンドボックスが追加されたと伝えた。V8サンドボックスの導入により信頼できないJavaScriptコードが分離され、メモリ破損がホストプロセス内に広がることを防止できる。

○V8サンドボックス導入の経緯

今回Google Chromeに導入されたV8サンドボックスは「The V8 Sandbox · V8」で詳しく解説されている。V8はGoogleが開発するオープンソースのJIT Virtual MachineのJavaScriptエンジンで、V8サンドボックスはV8用のインプロセスサンドボックスとされる。

解説によると、2021年から2023年に発見されたすべてのChromeのエクスプロイトは、リモートコード実行(RCE: Remote Code Execution)のために悪用されたレンダラープロセスのメモリ破損の脆弱性から始まっており、その60%はV8の脆弱性だったという。これら脆弱性は古典的なメモリ破壊のバグ(解放後使用、範囲外アクセスなど)ではなく、微妙なロジックの問題のため、既存のメモリ安全ソリューション(Rustの使用やメモリのタグ付けなど)では対処できないとしている。

ただ、これら脆弱性のほぼすべてには共通点が存在するという。それは、コンパイラーとランタイムがV8 HeapObjectインスタンスに対して排他的に動作するため、メモリ破壊はV8ヒープ内で発生するという点。開発者はこの共通点に着目し、問題発生時に影響を軽減する方法としてV8サンドボックスを導入した。
○V8サンドボックス

V8サンドボックスはオペレーティングシステムにおけるカーネル空間とユーザー空間のメモリー分離と同じ概念とされる。動作としては実行されるコードをプロセスの仮想アドレス空間のサブセットに制限し、プロセスの残りの空間へのアクセスをブロックする。具体的には生のポインターをサンドボックスのベース位置からのオフセットに変換、またはサンドボックス外のポインタテーブルのインデックスに変換することで実現する。

V8サンドボックスは将来的にハードウェアサポートを利用して実装可能だが、現在は必要なハードウェア実装がないためソフトウェアで実装しているという。しかしながら、実装コストは低いとしており、パフォーマンスへの影響は一般的なワークロードにおいて約1%以下としている。なお、V8サンドボックスを利用するには1テラバイトの仮想アドレス空間が必要なため、64ビットシステムが必須条件となる。

V8サンドボックスはGoogle Chrome バージョン123からデフォルトで有効化される。また、Chromeの脆弱性報奨プログラム(VRP: Vulnerability Reward Program)の対象にも追加される(参考:「Chrome Vulnerability Reward Program Rules - Rules - About - Google Bug Hunters」)。
(後藤大地)

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください