「Google Chrome」、新セキュリティー機能「V8 Sandbox」を間もなく実装
今回は「「Google Chrome」、新セキュリティー機能「V8 Sandbox」を間もなく実装」についてご紹介します。
関連ワード (セキュリティ等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
「Google Chrome」は最も広く利用されているウェブブラウザーであることから、ずっと標的にされている。そのためハッカー、ならず者、脆弱性などさまざまな問題に対処するため、Googleは常にセキュリティに手を加えている。
Googleが最新の声明で「V8 Sandbox」を紹介した。これはGoogleのJavaScriptエンジンである「V8」の軽量なインプロセスサンドボックスであり、V8内の典型的な脆弱性を防ぐように作られている。
V8 SandboxのReadmeファイルには、「このサンドボックスは、V8によるコード実行をプロセスの仮想アドレス空間(「サンドボックス」)のサブセットに限定し、それによりプロセスの残りから分離することによって、V8の典型的な脆弱性の影響を制限する」とある。
仕組みとしては純粋にソフトウェア内で機能するもので、具体的には、サンドボックスのベースからのオフセットか、サンドボックス外のポインターテーブルへのインデックスに生ポインターを変換することでこれを実現している(ハードウェアサポートのオプションについては、Readmeファイル後段からリンクされている各設計書を参照)。大筋は、モダンOSで採用されているユーザーランドとカーネルの分離(例:UNIXのファイル記述子テーブル)にとてもよく似ている。
V8 Sandboxの設計書が最初に公開されたのは3年ほど前のことだ。以降、試験的なものではなくなったと考えられるところまで進化した。動機については、当初の設計書で次のように述べられている。「V8のバグは多くの場合、並外れて強力であてになるエクスプロイトの構築を許してしまう。さらには、メモリーセーフな言語でも、メモリータギング拡張機能(MTE)や制御フロー整合性(CFI)といったハードウェアを活用する今後のセキュリティ機能でも、緩和される可能性が低い。そのため、現実世界の攻撃者からすると、V8は極めて魅力がある」
Googleが今回のセキュリティ機能を開発したいちばんの理由は、Chromeのゼロデイ脆弱性の多くでV8が中心になっているからだ。「Chromium」チームは(V8 SandboxのReadmeファイルで)次のように述べている。「V8の典型的な脆弱性からプリミティブを構築できることから、このサンドボックスでは、サンドボックスのアドレス空間内のあらゆるメモリーについて、攻撃者が任意に、かつ同時に変更できるものと想定している」
今回のサンドボックス機能による、ブラウザーのスピードダウンを懸念する人がいるかもしれない(サンドボックス化では起こりえることだ)が、Chromiumチームによるベンチーマークによると、通常のワークフローで約1%の速度低下にとどまるようだ。
V8はまだ開発中だが、「Android」「ChromeOS」「Linux」「macOS」「Windows」においてChromeのバージョン123からデフォルトで有効にされるだろう。つまり、間もなく実装されるはずだ。