ニュース
GPUの動作を監視してWeb履歴やパスワードを盗み出すサイドチャネル攻撃手法
2018年11月8日 18:34
米カリフォルニア大学リバーサイド校は5日(米国時間)、同校の研究者らがNVIDIA GPUへのサイドチャネル攻撃を可能とする手法を発見したことを発表した。
同校では、GPUに対する容易なサイドチャネル攻撃として初のものであるとしている。
GPUは、ゲームや3Dオブジェクトのレンダリングだけでなく、デスクトップやノートPC、スマートフォンのWebブラウザ上でもグラフィックスのレンダリングに利用されており、クラウドとデータセンター上のアプリを高速化するためにも使われている。
通常、GPUはOpenGLなどのAPIを使用してプログラミングされており、OpenGLはデスクトップ上の任意のアプリからアクセス可能で、ユーザーレベルの権限を持つ。デスクトップやノートPCには、デフォルトグラフィックスライブラリとドライバがインストールされているため、グラフィックスAPIを使用することで攻撃を簡単に実装できるとする。
今回研究者らは、NVIDIA製GPUをリバースエンジニアリングし、3つの攻撃手法を発見したという。3つともに、GPUの動作を監視することで攻撃を行なっており、対象のPCを監視するよう設計されたマルウェアを利用して攻撃を実現している。
1つ目はWeb上のユーザーの活動を追跡するというもの。ユーザーが悪意あるアプリを開くと、OpenGLを使ってスパイプロセスを作成し、GPUを使用するWebブラウザの動作を推測する。
オブジェクトの数やレンダリングされているオブジェクトの大きさが異なることにより、あらゆるWebサイトにはGPUのメモリ使用率に関して独自の「指紋」のようなものがある。これは同じWebサイトを複数回読み込んでも一貫性があるため、キャッシュの影響を受けない。
研究グループは、GPUのメモリ割り当てをGPUのパフォーマンスカウンタや時間経過とともに監視し、それらを機械学習させることで、Webサイトの“指紋化”を高精度で実現。これによって、すべての割り当てイベントを取得して、ユーザーがWeb上で行なっていることを確認できるという。
2つ目の攻撃は、ユーザーパスワードの抽出を行なうもの。ユーザーが文字を入力するたびに、パスワードのテキストボックス全体が、レンダリングされるテクスチャとしてGPUに送信される。
この連続したメモリ割り当てイベントの間隔を監視することで、パスワード文字の数や、キーストローク間のタイミングなど、パスワードを推測するのに十分な情報を得られるとする。
3つ目の攻撃は、クラウド内のアプリケーションを対象としたもの。対象となるアプリケーション(例ではAI)と一緒に、GPU上で起動する悪意のある計算ワークロードを実行させることで、キャッシュ上の競合の強度とパターン、時間とともに変化するメモリとファンクションユニットなどから、ディープニューラルネットワークの特定のレイヤー内のニューロンの数など、ニューラルネットワークの構造を解析するといったことが可能になるという。
研究グループは、すでに本件についてNVIDIAに報告しており、同社はシステム管理者に対して、ユーザーレベルのプロセスからのパフォーマンスカウンタへのアクセスを無効にするオプションを提供するパッチを公開する予定であるという。また、AMDおよびIntelのセキュリティチームとも情報を共有している。
今後、研究グループはAndroidスマートフォンでもGPUサイドチャネル攻撃が可能かを検証する予定としている。