ニュース
» 2020年06月22日 11時00分 公開

リリースコストにも影響:深刻なセキュリティバグの約7割がメモリに由来――Chromiumプロジェクトの調査

オープンソースWebブラウザ「Chromium」に2015年以来影響した深刻なセキュリティバグのうち70%程度が、メモリ安全性の問題だったことが分かった。

[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Chromiumプロジェクトは、オープンソースWebブラウザ「Chromium」のStable(安定版)チャネルに2015年以来影響した深刻なセキュリティバグのうち70%程度が、メモリ安全性の問題だったことを明らかにした。

 こうしたメモリ安全性のバグの半分強は、解放済みメモリ使用(use-after-free)に関連していた。

Chromiumの安定版チャネルに2015年以来影響したセキュリティバグのうち、深刻度が「Critical」または「High」(それぞれ4段階の深刻度のうち、最も深刻、2番目に深刻な段階を指す)のバグ912件の分析に基づいている(出典:The Chromium Projects) Chromiumの安定版チャネルに2015年以来影響したセキュリティバグのうち、深刻度が「Critical」または「High」(それぞれ4段階の深刻度のうち、最も深刻、2番目に深刻な段階を指す)のバグ912件の分析に基づいている(出典:The Chromium Projects)

 これらのバグは、ユーザーのセキュリティを危険にさらすだけでなく、「Google Chrome」のリリースコストにも影響を与えている。

サンドボックス化の限界

 Chromiumプロジェクトは長年にわたって、コードをサンドボックスで実行することで、ホストマシンが乗っ取られるのを防ぐセキュリティアーキテクチャの強化を進め、Webサイト相互の隔離を図ってきた。この取り組みは一定の成果を挙げてきたが、Chromiumプロジェクトは、サンドボックス化とサイト隔離が限界に到達しつつあると認識している。

 プロセスが隔離の最小単位だが、プロセスの隔離は低コストではないことが制約となっている。特にAndroidは、プロセスが増えるとデバイスの健全性全体に影響を与える。バックグラウンドアクティビティー(他のアプリケーションやブラウザタブ)が頻繁に破棄(kill)されるためだ。

 複数サイトに関する情報を共有するプロセスは依然としてある。例えば、ネットワークサービスは、C++で実装された大きなコンポーネントだ。任意のネットワークから非常に複雑な入力を解析する。Chromiumプロジェクトはこれを、同プロジェクトの「Rule Of 2」ポリシーの“破滅ゾーン”と呼んでいる。ネットワークサービスは大きなソフトターゲット(攻撃しやすい標的)であり、深刻度が「Critical」な脆弱(ぜいじゃく)性が存在するからだ。

 レンダラを特定サイトに結び付けることでサイト隔離が安全性を高めたように、ネットワークサービスも同じようなことが考えられる。多数のネットワークサービスプロセスを作成し、それぞれを特定のサイトまたは起源(こちらの方が望ましい)に結び付けることだ。これにより、ネットワークサービス侵害の深刻度を大幅に軽減できると予想される。ただし、その場合は、Chromiumが必要とするプロセスが爆発的に増え、効率の問題が発生してしまう。

 一方、ChromiumプロジェクトがRule Of 2を推進しているため、Chrome開発者はこうした機能をリリースしていない。信頼できないデータを扱うために新しいプロセスを開始すると、コストが高くつく場合があるからだ。

Chromiumプロジェクトの対応方針

 Chromiumプロジェクトはこうした現状を踏まえ、次のように考えている。

  • 攻撃者はイノベーションを行っており、開発者もイノベーションを行って対応していく必要がある
  • プロセスを増やしたり、サンドボックスを強化したりすること(これらは今後も必要)により、十分なイノベーションを実現することはもはやできない
  • 後でバグを封じ込めるのではなく、実装の段階でバグをつぶすことが、攻撃に対抗する最も低コストな方法である

Chromiumプロジェクトの取り組み

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。