オープンソースWebブラウザ「Chromium」に2015年以来影響した深刻なセキュリティバグのうち70%程度が、メモリ安全性の問題だったことが分かった。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Chromiumプロジェクトは、オープンソースWebブラウザ「Chromium」のStable(安定版)チャネルに2015年以来影響した深刻なセキュリティバグのうち70%程度が、メモリ安全性の問題だったことを明らかにした。
こうしたメモリ安全性のバグの半分強は、解放済みメモリ使用(use-after-free)に関連していた。
これらのバグは、ユーザーのセキュリティを危険にさらすだけでなく、「Google Chrome」のリリースコストにも影響を与えている。
Chromiumプロジェクトは長年にわたって、コードをサンドボックスで実行することで、ホストマシンが乗っ取られるのを防ぐセキュリティアーキテクチャの強化を進め、Webサイト相互の隔離を図ってきた。この取り組みは一定の成果を挙げてきたが、Chromiumプロジェクトは、サンドボックス化とサイト隔離が限界に到達しつつあると認識している。
プロセスが隔離の最小単位だが、プロセスの隔離は低コストではないことが制約となっている。特にAndroidは、プロセスが増えるとデバイスの健全性全体に影響を与える。バックグラウンドアクティビティー(他のアプリケーションやブラウザタブ)が頻繁に破棄(kill)されるためだ。
複数サイトに関する情報を共有するプロセスは依然としてある。例えば、ネットワークサービスは、C++で実装された大きなコンポーネントだ。任意のネットワークから非常に複雑な入力を解析する。Chromiumプロジェクトはこれを、同プロジェクトの「Rule Of 2」ポリシーの“破滅ゾーン”と呼んでいる。ネットワークサービスは大きなソフトターゲット(攻撃しやすい標的)であり、深刻度が「Critical」な脆弱(ぜいじゃく)性が存在するからだ。
レンダラを特定サイトに結び付けることでサイト隔離が安全性を高めたように、ネットワークサービスも同じようなことが考えられる。多数のネットワークサービスプロセスを作成し、それぞれを特定のサイトまたは起源(こちらの方が望ましい)に結び付けることだ。これにより、ネットワークサービス侵害の深刻度を大幅に軽減できると予想される。ただし、その場合は、Chromiumが必要とするプロセスが爆発的に増え、効率の問題が発生してしまう。
一方、ChromiumプロジェクトがRule Of 2を推進しているため、Chrome開発者はこうした機能をリリースしていない。信頼できないデータを扱うために新しいプロセスを開始すると、コストが高くつく場合があるからだ。
Chromiumプロジェクトはこうした現状を踏まえ、次のように考えている。
Copyright © ITmedia, Inc. All Rights Reserved.