プライバシーアップデート

プールパーティーアタックを防ぐ

Braveプライバシーチーム寄稿

この記事は、Braveに搭載された新しいプライバシー機能について説明する、継続的かつ定期的なシリーズの13回目の投稿です。今回は、Brave Softwareとイリノイ大学のSoroush Karamiとの共同研究の成果について紹介します。また、このプロジェクトに協力してくれたカリフォルニア大学サンディエゴ校のMichael SmithとDeian Stefanに感謝します。この投稿は、BraveのプライバシーディレクターであるPeter Snyderが執筆したものの日本語訳です。

要約(TL;DR;)

Braveは、すべてのブラウザに存在する新しい種類のトラッキングに関する脆弱性を発見しました。この攻撃は、上限設定を共有しているリソースのコレクション/プールを使用してサイドチャネルを作成するため、このカテゴリの攻撃をプールパーティアタックと呼んでいます。トラッカーは、これらの(正規のチャネルではない)サイドチャネルを利用して、サイトを横断してユーザを追跡し、プライバシー保護機能を回避することができるのです。

XSLeaksプロジェクトや最近のXSinator論文を含むこれまでの研究でも、似たような攻撃が確認されています。私たちの研究は、プールパーティアタックがこれまで認識されていたよりも強力で実用的、かつ広範であること、そしてすべてのブラウザが影響を受けることを示すことで、これまでのプロジェクトを発展させたものです。

さらに問題なのは、プールパーティアタックによって、Geckoベースのブラウザプロファイルを横断してユーザを追跡できることがわかったことです。Geckoベースのブラウザを標的とする攻撃者は、プライベートブラウジングでの活動を通常のウィンドウでの活動とリンクさせることができます。すなわち、プライベートで知られたくない活動を、本当のアイデンティティにリンクしているのです。

Braveはすでにこれらの問題の修正に取り組んでおり、今後数週間のうちにBraveユーザの皆様への修正の適用を開始する予定です。また、Braveは他のブラウザベンダーとも協力して、この問題に対処しています。このブログ記事は、この研究プロジェクトの成果をまとめたものです。より詳細な情報は、この校了直前版の研究論文に掲載されています。

背景:プライバシーにおけるパーティショニング

より安全なWebプライバシーに対するユーザの期待や法的な要件に応えるため、Webブラウザはより多くの、そしてより強固なプライバシー保護を導入してきました。プライバシー保護の重要な要素の1つは「パーティショニング」です。ブラウザは各サイトに個別の独立したリソースを与え、それぞれのサイトをパーティショニングする(区切る)ことでトラッカーがサイトを横断してあなたを追跡することを防ぎます。

パーティショニングは、とあるサイトのトラッカーが「あなたが他のサイトにおいても同じユーザである」と検知することを防ぎ、一般的なサイト横断型のトラッキングからユーザを保護します。site-a.exampleとsite-b.exampleの両方が同じtracker.exampleのトラッキングスクリプトを含んでいても、パーティショニングによってtracker.exampleは同じ人がそれぞれのサイトを訪れたことを検知することができず、トラッカーがサイト間であなたの身元を結びつけることを防ぎます。

しかしパーティショニングは万能ではありません。パーティショニングがユーザを保護できないケースはたくさんあります(ブラウザのフィンガープリント、ユーザ識別子からのクッキー同期、IPベースのトラッキングなど)それでも、パーティショニングはWebのプライバシーを保護するための有用かつ重要な技術です。

Brave Brave Chrome Chrome Edge Edge Firefox Firefox Safari Safari Tor Browser Tor Browser
DOM Storage
Network State
パーティショニング保護機能の種類

パーティショニングの有用性から、プライバシーを重視するブラウザはさまざまな種類のパーティショニングを導入しています。上の表は、どのブラウザがどのようなパーティショニングの保護機能を備えているかをまとめたものです。DOM Storageとは一般に、サイトがアプリケーションとして使用する値を保存するための API を指します。Network Stateとは、サイトがブラウザ内に暗黙的に値を格納できるその他のさまざまな方法を指します(意図的でなくこの手法を使っているケースもあります)。 ✅ はすべてのブラウザのユーザがデフォルトで利用できる機能を、 ❌ はこれらのブラウザで利用できない機能を、「-」はデフォルトで無効になっているか、ごく一部のユーザのみで有効になっている機能を示しています 1。 また、privacytests.org プロジェクトでは、一般的なブラウザのパーティショニング機能の状態をまとめています。

BraveのDOMストレージパーティショニング機能の詳細については、本シリーズのブログ記事Ephemeral Third-Party Site Storageをご覧ください。

問題点:プールパーティーアタックはパーティショニングをすり抜ける

Braveとイリノイ大学シカゴ校、カリフォルニア大学サンディエゴ校の共同研究者は、Webサイトがブラウザのパーティショニングによるプライバシー保護を回避してトラッキングを行う様々な方法を発見しました。攻撃者は、サイト間で共有されるリソースを操作することで、サイトの境界を越えて通信(つまり追跡)することができるため、私たちはこの種の攻撃を「プールパーティアタック」と呼んでいます。

この種の攻撃のいくつかの例は過去にも確認されていますが(XSLeaksプロジェクトによるコネクションプールリークに関するドキュメントや、最近ではxsinator.comプロジェクトなど)、今回の研究では3つの重要な新しい発見が含まれています。

  • 第一に、従来の研究で特定された攻撃は、広範な攻撃カテゴリーの中の一部の例のみに特化したものでしたが、私たちはこのような攻撃に対して、ブラウザにはもっと多くの脆弱性が存在することを発見しました。
  • 第二に、このカテゴリの攻撃は、いくつかの先行する研究が指摘するよりも強力です。サイトがプールパーティアタックを使用すると、複数のサイト間で任意のデータを渡すことが可能になります。
  • 第三に、プールパーティアタックは「理論的」なものではなく、Webプライバシーに対する現実的に使用可能で悪用が可能な脅威であるということです。

プールパーティアタックは、すべての一般的なブラウザに存在し、さまざまな方法で悪用される可能性があります。サイトの境界を越えて共有されるリソースプールやリソース制限は、サイト横断的な追跡手法として悪用される可能性があります。Webユーザの追跡に悪用できるブラウザ機能の例としては、WebSocket、サーバ送信イベント、DNSリクエストの制限、プロキシを使用している際の同時HTTPリクエストの制限、Web Speech API関連の制限、などが挙げられます。そして、以下の4つの条件が成立するAPIは、トラッカーによってクロスサイトトラッキングに悪用される可能性があります。

  1. リソースの制限を設けている:サイトは上限に達するまでプールへリソースをリクエストでき、それ以降はサイトがリソースにアクセスをできない。
  2. リソースがパーティショニングされていない:異なるサイト同士が、同じ上限設定のプールからリソースを取得している。
  3. サイトは、プールが使い切られたか、リソースが残っているか調査することができる
  4. サイトは、(プールが枯渇していない場合は)制限なくプールからリソースを消費することができる

より専門的に言えば、プールパーティアタックはすべてのブラウザエンジンに存在するサイドチャネルの一種であり、他のサイドチャネル攻撃よりも悪用しやすいものです。ほとんどのサイドチャネルアタックは、広く共有されているリソース(CPUキャッシュ、メモリキャッシュ、システム割り込みなど)をターゲットにしているため、実際にはノイズが多く、通信が困難です。これに対し、プールパーティアタックは、ブラウザ固有の共有リソースをターゲットにします。つまり、ノイズが少なく、通信が容易なのです。

ソリューション:プールパーティアタックをどのように防ぐか

Braveは、他のブラウザと協力して、プールパーティアタック全般からユーザを保護するよう取り組んでいます。また、Braveは、私たちが確認した中で最も使用されやすいプールパーティアタックからBraveユーザを保護するための防御策を社内で研究しています。これらの防御策は、今後数週間のうちにデスクトップおよびAndroidブラウザに展開し始める予定です。

一般にプールパーティアタックに対する防御は困難です。というのも、根本的に、コンピュータがサイトに提供できるリソースには常に限界があるからです。コンピュータのメモリ容量やディスク容量などには限りがあり、本当に熱心な攻撃者は、常にこの制限を利用してプールパーティー方式の攻撃を行うことができます。Webページの挙動が不審なときにブラウザが自動的に終了するようなことがない限り、このような攻撃は常に可能なのです。

しかし、トラッカーにとってプールパーティアタックを無用なものにするためにブラウザが講じることのできる措置はあります。ブラウザが根本的なレベルで問題を解決できないとしても、ブラウザは少なくとも、トラッカーが行う攻撃を困難なものにし、コスト負荷をかけることができます。私たちの論文では、ブラウザがプールパーティアタックに対して防御できるいくつかの方法を説明していますが、一般的なアプローチは、リソース・プールの制限を高帯域に持ち上げることです。トラッカーがシステム全体を枯渇させるのに大きななリソースを消費する必要がある場合、ユーザはその攻撃に気づきやすくなります。攻撃に気づいたユーザはプールパーティアタックが発生したサイトを訪問しなくなり、サイト(およびサイト上でホストされているトラッカー)がそもそもプール・パーティアタックを行うことを抑止することができます。

Braveは、プールパーティアタックに対する防御策の第一弾を計画しており、間もなくBraveのユーザに対してこれらの防御策の展開を開始する予定です。またBraveは、他のブラウザエンジン提供者(Apple、Google、Mozillaなど)と調整を続け、プールパーティアタックに対するプラットフォームレベルの防御策を設計する予定です。


  1. 私たちは、ChromiumチームがChromiumコードベースにネットワーク状態のパーティショニング機能を構築するために行った困難で、しかし素晴らしい仕事に感謝いたします。これらの機能は、ほとんどのChromeやEdgeユーザにとってデフォルトでは有効ではありませんが、重要なプライバシー保護であり、これらの機能が有効になればChromeやEdgeユーザに重要なプライバシー保護とセキュリティ保護を提供することができるようになります。(Braveユーザはすでに有効です) ↩︎

Related articles

Braveで新しいWebを体験する準備はできましたか?

Braveはプライバシーとパフォーマンスを重視するWebのパイオニアからなるチームによって開発されています。Braveを利用しWebの再構築に協力していただけませんか?