トロント大学の研究者らは、GPUThorという新たな攻撃を明らかにした。この攻撃はRowhammer技術を利用し、ECCエラー訂正保護が有効になっている場合でも、一部のNVIDIA製カードのメモリビットを反転させる。研究者らは、この攻撃がサービス拒否状態を引き起こす可能性があるほか、特定のシナリオではGPUのページテーブルを破壊し、権限のないCUDAプログラムが任意のメモリにアクセスして、ホストシステム上でroot権限のセッションを開くことも可能になると示した。これは研究論文の結果による。
GPUThorの特徴とは?
Rowhammer攻撃は、メモリの行に繰り返しアクセスし、隣接する行のビット状態が変化する可能性を高める。研究者らはGPUThorのアクセスパターンを不規則に変更し、GDDR6メモリにおけるTarget Row Refresh(TRR)機構の作動を回避した。この変更は、メモリ要求の統合とTRRの作動頻度に関する、GPU内部の文書化されていない2つの挙動に基づいている。
この攻撃は、GDDR6メモリを搭載したNVIDIAのAmpereシリーズカード、すなわちRTX A4000、RTX A4500、RTX A5000、RTX A6000でテストされた。研究者らによると、この新しい手法は従来の手法と比べ、攻撃対象となるメモリ行のアクティベーション回数を最大6.6倍に増加させ、ECCを無効にした場合には1ギガバイト当たり72,000~377,000回のビット反転を記録した。これらの結果は、従来のGPUHammer攻撃と比べて4,548~23,597倍の増加に相当し、CPUに対する強力なRowhammer攻撃の割合に近づいている。
なぜECCだけでは不十分なのか?
NVIDIAはSECDED ECC機構を使用し、監視対象のメモリブロック内で1ビットエラーを訂正し、2ビットエラーを検出する。しかし研究者らは、ECCを有効にした状態で約387件の2ビットエラーを記録した。これらは機構によって検出できるものの、訂正はできないエラーである。さらに、論文によるとECCが誤って訂正した3ビットエラーも2件発生し、データ破損につながった。
GPUThorの発生率によれば、悪用可能なビット反転を見つけるまでの時間は約1.1分になる可能性がある。GPUHammerでは約21.9時間だった。この差こそが研究の重要性の核心である。エラーが1ビットの範囲からマルチビットのパターンへ移行すると、既存の保護だけではリスクを排除できない。
カードの機能停止と権限昇格
研究者らは、GPUThorによってECCを搭載したRTX A6000をサービス拒否状態にできることを示した。この状態では、カードが2時間ごとに再起動し、ワークロードを終了する。同じカードに対する攻撃を繰り返すと、最終的に交換が必要なカードとして分類される可能性がある。
より危険なシナリオは、GPUのページテーブルの破壊に関係する。研究者らによれば、これにより権限のないCUDAプログラムがメモリへ任意にアクセスし、ホストシステム上でroot権限のシェルを開ける可能性がある。また、サービス拒否の一部の影響を制限する制約が存在する場合でも、SECDEDレベルのECCに依存しているため、A100を含むサーバー向けAmpereカードでは権限昇格が依然として可能な場合があると指摘した。
実際には何が変わるのか?
研究者らは4月29日に結果をNVIDIAへ報告し、同社は8月21日にリスク軽減のためのガイダンスを公開した。NVIDIAは、SYS-ECCの有効化、IOMMU/DMAの分離、GPUエラーのデータの監視、信頼できないワークロードの共有または実行の制限を推奨している。また同社によれば、影響の受けやすさはDRAMの種類、メモリ技術、プラットフォーム設計、メモリ内部の保護機構、システム設定によって異なる。
同じテストではGDDR6XまたはHBM2e上でビット反転は確認されなかった。しかし研究者らは、パッケージ内ECCを備えたHBM3/eおよびGDDR7も、マルチビット反転を発生させられる場合には影響を受ける可能性があると警告している。論文は、可能な場合にはテナント間でのGPU共有を避けること、ECCエラーカウンターを監視すること、信頼できないCUDAワークロードを制限することを推奨している。研究者らによれば、完全な保護には、マルチビットエラーに対するより強力なECCと追加のハードウェア防御の開発が必要となる。