Skip to main content
QUICK REVIEW

[論文レビュー] Loophole: Timing Attacks on Shared Event Loops in Chrome

Pepe Vila, Boris Köpf|arXiv (Cornell University)|Feb 22, 2017
Security and Verification in Computing被引用数 16
ひとこと要約

この論文は、Google ChromeのI/Oスレッドおよびレンダラースレッドにおける共有イベントループが、サイドチャネルタイミング攻撃に対して脆弱であることを示している。攻撃者は、挿入されたイベントのディスpatch遅延を測定することで、悪意あるWebページがWebページの識別子、ユーザー行動を推測し、隠れチャネルを介してデータを漏洩させることができる。この攻撃は、1ページあたり1つのトレーニングサンプルで、最大75%のページ認識精度を達成する。

ABSTRACT

Event-driven programming (EDP) is the prevalent paradigm for graphical user interfaces, web clients, and it is rapidly gaining importance for server-side and network programming. Central components of EDP are {\em event loops}, which act as FIFO queues that are used by processes to store and dispatch messages received from other processes. In this paper we demonstrate that shared event loops are vulnerable to side-channel attacks, where a spy process monitors the loop usage pattern of other processes by enqueueing events and measuring the time it takes for them to be dispatched. Specifically, we exhibit attacks against the two central event loops in Google's Chrome web browser: that of the I/O thread of the host process, which multiplexes all network events and user actions, and that of the main thread of the renderer processes, which handles rendering and Javascript tasks. For each of these loops, we show how the usage pattern can be monitored with high resolution and low overhead, and how this can be abused for malicious purposes, such as web page identification, user behavior detection, and covert communication.

研究の動機と目的

  • Chromeのイベント駆動アーキテクチャにおける共有イベントループが、情報漏洩のサイドチャネルとして利用可能かどうかを調査すること。
  • 他のプロセスからの機微な情報を推測するために、イベントディスpatch遅延を監視する実用的なタイミング攻撃を実証すること。
  • イベントループのタイミングを用いたWebページ識別、ユーザー行動追跡、クロスオリジン間の隠れ通信の実現可能性を評価すること。
  • CPUスローリングやプロセス隔離などの実際のブラウザ制約下での、これらの攻撃の有効性と隠れ性を評価すること。

提案手法

  • 攻撃は、postMessageなどの非同期JavaScript APIを用いて、レンダラースレッドのイベントループにイベントを注入し、25μsの分解能でディスpatch時間を測定する。
  • ホストプロセスのイベントループに対しては、ルートできないIPアドレスへのネットワークリクエスト(500μs分解能)とSharedWorkerメッセージ(100μs分解能)を活用する。
  • ページ読み込み中のイベント遅延パターンを動的時間ワープ(DTW)を用いて収集・分析し、Webページを分類・識別する。
  • ユーザーがクロスオリジンフォーム(例:Google OAuthログインフィールド)に入力する際のイベントディスpatch遅延の差を測定することで、ユーザー行動を推定する。
  • イベントディスpatchタイミングを変調することで隠れチャネルを確立し、レンダラースレッド経由で200 bit/s、プロセス間で50 bit/sの帯域幅を達成した。
  • 攻撃は、特権アクセスやブラウザ外での実行を一切必要とせず、単一の悪意あるHTMLページ内でのみ実装されている。

実験結果

リサーチクエスチョン

  • RQ1ChromeのI/Oスレッドおよびレンダラースレッドにおける共有イベントループは、情報漏洩のサイドチャネルとして利用可能か?
  • RQ2最小限のトレーニングデータで、イベントディスパッチタイミングをどれだけ正確にWebページ固有に識別できるか?
  • RQ3キーストロークなどのユーザー操作は、クロスオリジンコンテキストにおけるイベントループ遅延を観測することで検出可能か?
  • RQ4イベントループタイミングを用いた隠れチャネルの実現可能な帯域幅はどの程度か?
  • RQ5CPUスローリングやサイト隔離などの既存のブラウザ対策が、これらの攻撃を効果的に防げるか?

主な発見

  • Alexaのトップ500サイトから1ページあたり1つのトレーニングサンプルのみを用いても、最大75%のWebページ認識精度を達成した。
  • OAuthログインフォームでのキーストロークタイミングは、従来のサイドチャネル手法と比較してはるかに低いノイズと少ない特権で監視可能であった。
  • レンダラーメインスレッド経由で200 bit/s、ホストプロセスループ経由で50 bit/sの帯域幅を持つ隠れチャネルを成功裏に実装した。
  • Chrome v57で導入されたバックグラウンドタブスローリングに対しても攻撃は有効であり、10秒以内に攻撃を完了できる。
  • 分類に不可欠なのは、動的時間ワープ(DTW)を距離測定に用いることである。相対的なイベント順序がページを区別する上で重要である。
  • 攻撃はChromeのイベント駆動アーキテクチャの根本的な単一スレッド性を悪用しており、設定ミスではなく、システム的脆弱性である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。