GPUに対するサイドチャネル攻撃で「パスワードが盗まれる」、カリフォルニア大の研究チームが実証GPUを介した3種類の攻撃手法を発見

カリフォルニア大学リバーサイド校の研究チームはPC上のGPUから情報を得ることでWeb閲覧の監視やパスワードの窃盗、機械学習のニューラルネットワーク構造を盗む攻撃を容易に実行できることを発見した。

» 2018年11月13日 08時00分 公開
[@IT]

 米カリフォルニア大学リバーサイド校は2018年11月5日(米国時間)、サイバーセキュリティに関する研究チームの発見を報じた。

 攻撃者が被害者のPC上のGPUを「悪用」することで3種類の危険な攻撃が可能になる。Web閲覧の監視と、パスワードの窃盗、クラウドベースアプリケーションへの侵入だ。

研究チームの論文(出典:Zhiyun Qian氏

 研究チームはNVIDIA製GPUのリバースエンジニアリングを行い、グラフィックスとコンピュートスタック、さらに2つを合わせた攻撃を実証した。これらは、GPUに対するサイドチャネル攻撃としてはこれまで見つかっていないものだと、研究チームは考えている。

 この3つの攻撃はいずれも、被害者のコンピュータを監視するよう設計されている悪意あるプログラムを用いる。被害者がこのプログラムをダウンロードすることが、攻撃の成功条件となる。

 デスクトップPCやノートPC、スマートフォンでは、Webブラウザがグラフィックスをレンダリングする際にGPUを使う。この他、クラウドやデータセンターでアプリケーションの実行を高速化する際にも使われる。

 Webグラフィックスは、ユーザーの情報や閲覧行動を明るみに出すきっかけとなる。GPUアクセラレーションの対象となるコンピュートワークロードには、アプリケーションの他、機密のデータやアルゴリズムが含まれており、これらが攻撃によって人目に触れる可能性がある。

 GPUは通常、「OpenGL」などのAPIを使ったプログラムにより駆動される。任意のデスクトップアプリケーションがユーザーレベル権限でOpenGLにアクセスできるため、特権がなくてもあらゆる攻撃が実現可能だ。デスクトップPCやノートPCには、グラフィックスライブラリとドライバがデフォルトでインストールされているため、グラフィックスAPIを使った攻撃を簡単に実装できるという。

 研究チームが実証した3つの攻撃の概要は次の通り。

ユーザーのWeb閲覧を監視する攻撃

 被害者が悪意あるアプリケーションを開くと、アプリケーションはOpenGLを使ってスパイプログラムを作成する。このスパイプログラムは、WebブラウザがGPUを使っている間、ブラウザの動作を推測できるのだという。なぜなら、Webサイトごとにレンダリングされるオブジェクトの数やサイズが異なるからだ。GPUメモリの使用状況をそれぞれ個別に追跡することで、どのWebサイトなのかを判別できる。さらにGPUから得られる情報は、キャッシングの影響を受けず、同じWebサイトを複数回ロードした場合も一貫している。

 研究チームは、まず、GPUメモリ割り当て量が時間の経過によってどのように変化するのか、さらにGPUパフォーマンスカウンタの数値の変化を監視した。次にこれらの結果を機械学習ベースの「分類器」に通すことで、Webサイトごとに異なる高精度の“指紋”を作成した。スパイプログラムは割り当てイベントを取得し、この指紋を参照することで、ユーザーのWeb閲覧行動を監視できるようになった。

ユーザーのパスワードを抽出する攻撃

 ユーザーがパスワードの文字を1文字タイプするごとに、パスワードテキストボックス全体がGPUに、レンダリングすべきテクスチャとしてアップロードされる。連続するメモリ割り当てイベントの時間間隔を監視することで、パスワードの文字数とキーストローク間タイミングを割り出すことができた。以上の情報から、パスワードを推測するための手法は他の研究チームによって既に確立されている。

機械学習のニューラルネットワーク構造を盗む攻撃

 攻撃者は、悪意あるコンピュートワークロードをGPUで起動し、被害者のアプリケーションとともに動作させる。ここで被害者がGPUを用いて機械学習を試みていたとしよう。ニューラルネットワークパラメーターに応じて、キャッシュやメモリ、機能ユニット上の競合の強度とパターンが時間の経過とともに変化し、これによって、測定可能なデータが漏えいする。

 攻撃者は、パフォーマンスカウンタのトレースを機械学習ベースで分類することによって、被害者の秘密のニューラルネットワーク構造、例えば、ディープニューラルネットワークの特定レイヤーのニューロン数などを抽出できる。

 研究チームは発見内容を既にNVIDIAに報告済みだ。NVIDIAは、システム管理者に提供するパッチを作り上げ、ユーザーレベルプロセスからパフォーマンスカウンタへのアクセスを無効にするオプションを公開する意向を研究チームに伝えた。

 さらに研究チームは、論文の草案をAMDとIntelのセキュリティチームに提供し、論文に示した脆弱(ぜいじゃく)性について、自社のGPUでも評価できるようにした。

 研究チームは今後、Androidを搭載したスマートフォンに対するGPUサイドチャネル攻撃の実現可能性を検証する計画だ。

 研究チームは、2018年10月にカナダのトロントで開催された「ACM SIGSAC Conference on Computer and Communications Security(ACM CCS)」で論文のプレゼンテーションを行っている。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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