セキュリティ

GPUの脆弱性を利用すればブラウザ上に表示されたウェブページの内容を丸ごと盗むことが可能

by Diego Torres Silvestre

コンピューターに内蔵されているGPUは、グラフィックスレンダリングだけでなく効率的な並列計算のためにも使用される演算装置。このGPUで長らく存在が指摘されているものの修正されずに無視され続けている脆弱性を用いることで、ブラウザ上でレンダリングされているウェブページを丸ごと盗み見ることが可能であると指摘されています。

Stealing Webpages Rendered on Your Browser by Exploiting GPU Vulnerabilities - IEEE Conference Publication
https://ieeexplore.ieee.org/document/6956554

プログラマーはグラフィックスAPI(DirectXOpenGLなど)とコンピューティングAPI(CUDAOpenCLなど)という2種類のAPIを使用してGPUにアクセスすることができます。グラフィックスAPIは、投影・シェーディング・テクスチャマッピングといったグラフィックス操作のための機能を提供するもので、コンピューティングAPIは非グラフィックスアプリケーションのためにクエリ最適化・パケットルーティング・侵入検知システム・暗号エンジンといった機能を提供するものです。

グラフィックスAPIとコンピューティングAPIの最も大きな違いは、メモリの管理容易性です。コンピューティングAPIは異なるユーザーが同じGPUを共有可能ですが、グラフィックスAPIは単一ユーザーしかサポートしていません。コンピューティングAPIは専用スクリーンを必要とせず、異なるGPUプロセスの逐次実行のみをサポートするため、複数のユーザーがコンピューティングAPIを使用して同じGPUを共有することができます。グラフィックスAPIを使用する時にリモートユーザが同じGPUを共有できるようにする技術(VirtualGL)もありますが、これらを用いることはキーロガーなどの危険に晒されることとなるそうです。

GPUドライバはグラフィックスAPIを使用してGPUメモリを管理しますが、プログラマーはCPU・GPU間のデータ転送や割り当て解除などを、コンピューティングAPIを使用して手動で管理することができます。また、GPUにはいくつかのタイプのメモリ(グローバル、ローカル、プライベートメモリなど)がありますが、グラフィックス関連のメモリ(フレームバッファやZバッファなど)を除いてコンピューティングAPIを使用して制御できます。対照的に、グラフィックスAPIはそのようなメモリを管理する機能を持たず、メモリ効率のよいグラフィック操作を実行するためだけに最適化された機能を提供します。

by Rafael Pol

しかし、コンピューティングAPIの高い共有性によりGPUは新しく割り当てられたメモリバッファを初期化しない、という問題があり、これが重大なセキュリティ上の脅威を招く可能性があると研究者たちは指摘しています。これまでにも多くの研究で、メモリが初期化されない点が指摘されてきましたが、最新の研究ではGPUメモリが初期化されない脆弱性を用いることで、実行中および終了直後の両方でGPUメモリに保持されたデータを盗み出す攻撃が可能になると示されています。

報告によると、ChromiumFirefoxといったウェブページのレンダリングを高速化するためにGPUを使用する「GPUアクセラレーション」を用いるブラウザでは、GPUメモリにレンダリングされたウェブページのダンプデータが残ってしまうとのこと。このダンプデータを検出して分析すると、ウェブページに表示されていた内容を推測することが可能となってしまうそうです。なお、分析にはピクセルシーケンスマッチングとRGBヒストグラムマッチングの両方を使用したテクスチャ分析を行うとのこと。

分析精度を確かめるため、NVIDIA製のGPUを搭載したPCでChromiumを用いてAlexaによるトップ1000ウェブサイトの中から無作為に100ページを訪問したところ、95.4%というかなりの高精度で「どのページを閲覧していたか?」を正しく推測することに成功しています。

以下の画像の下部がGPUメモリから検出できるダンプデータ。これを分析することで上部のGoogleロゴが表示されていたことを正確に推測することが可能となるというわけ。


GPUの性能はより強力になっており、多くのアプリケーションがGPUの演算能力を用いてパフォーマンスの向上を狙っています。しかし、今回の研究結果からもわかるようにGPUがセキュリティ上の問題を抱えていることは明らかであるため、GPUメーカーやプログラマーはこの脆弱性に対処するための対策を講じるべきである、と研究の報告書には記されています。

この記事のタイトルとURLをコピーする

・関連記事
IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE

Intelの内蔵GPUでメモリ内のウイルスチェックを効率化する「Accelerated Memory Scanning」 - GIGAZINE

Intelが脆弱性「Spectre」「Meltdown」をハードウェアレベルで対策したCPUを2018年後半にリリースすると発表 - GIGAZINE

NVIDIAのハイエンドGPU「Titan V」は計算結果がその度に異なる気分屋すぎて技術者が悲鳴 - GIGAZINE

in セキュリティ, Posted by logu_ii

You can read the machine translated English article here.