web-dev-qa-db-ja.com

GPUでのスペクター/メルトダウン

GPUは、CPUを攻撃可能にするもののほとんどを備えているため、spectre/meltdown攻撃に対して脆弱ですか? VRAMに盗まれた場合に問題となる情報はありますか?

55
Bálint

まず、通常、カーネルメモリがGPUにマップされることを期待しません。最近のGPUを実行したとしても、一般に、プロセス間でメモリを共有するためのサポートはあまりありません。

GPU内での投機的実行に関する研究論文は確かにあります- GPUでの投機的実行:探索的研究; Liu、Eisenbeis、Gaudiot -しかし、ハードウェアレベルで積極的に行われているとは思いません既存のデバイスによって。

したがって、理論的には、GPU/OSセットアップの構築を妨げるものは何もありませんが、既存の製品でこれが可能かどうかは疑問です。

45
Hector

GPU(グラフィックプロセッシングユニット)は、spectre/meltdown攻撃に対して脆弱ではありません。

これにはさまざまな理由があります。

  1. GPUは、まったく異なる設計のプロセッサです。
  2. 特権コード(カーネルコードなど)は実行しません。
  3. OSは動作しません。
  4. ベクトル計算用に最適化されています。
  5. そのマイクロコードは完全に異なって構築されています。
  6. (ほとんどの場合)特権コード(CPUの実行リングなど)に対する保護がありません。
  7. CPUのレジスタに(直接)アクセスすることはできません。DMA(ダイレクトメモリアクセス))がありますが、他の多くのデバイスにもアクセスできます。
  8. セキュリティに関する専門家が行った調査は限られており、脆弱でないかどうかは誰にもわかりません。
  9. 同じ部品を使用することに関しては、それらの部品は多くのデバイス間で共有されているか、設計が似ていない。 GPUのメモリまたは例は、CPUのメモリとは異なる方法でマッピングされています(ただし、電気的標準は共有されています)。
  10. DMAアクセスは現在の実行レベルに制限する必要があります。グラフィックカードは通常カーネルによって制御されているため、ユーザーレベルのアプリケーションが直接アクセスすることはできません。または、コードを送信することもできます。ユーザーレベルのアクセスを容易にし、ユーザーが実行できることを制限します。使用可能な機能を最大化します。また、カードを爆破しないでください(たとえば、不正な設定を設定することにより)。
  11. GPUで実行できるコードは、実行できるものが非常に制限されています(命令セットは制限されています)DMAは、たとえば間接的にのみ許可されています(最初に、グラフィックカードのメモリにロードしてからアクセスを許可します)およびその逆)。

tldr; GPUはCPUではなく、マルチユーザー/アプリケーション用に設計されていません。それらは乱用に対するある程度の保護を備えていますが、これのほとんどはまだセキュリティの専門家によってテストされていません。

18
LvB

Nvidiaは本日、この問題に対処するアップデートをリリースしました。したがって、更新を作成したため、リスクがあると思います。

http://us.download.nvidia.com/Windows/390.65/390.65-win10-win8-win7-desktop-release-notes.pdf

表2.1 NVIDIAソフトウェアの脆弱性のセキュリティ更新CVE ID NVIDIAの問題番号説明CVE-2017-5753 1975134投機的実行と分岐予測を利用するマイクロプロセッサを搭載したコンピューターシステムでは、サイドチャネル分析を介してローカルユーザーアクセスを持つ攻撃者に情報が不正に開示される可能性があります。この問題の詳細については、NVIDIA製品のセキュリティページに投稿されている投機的なサイドチャネルセキュリティ情報のNVIDIA GPUセキュリティアップデートを参照してください。

また、前述の投稿でGeForceについて具体的に言及しています http://nvidia.custhelp.com/app/answers/detail/a_id/4611

Affected Products

Product                | OS
GeForce, Quadro, NVS   | Windows, Linux, FreeBSD, Solaris
Tesla                  | Windows, Linux
17
Viktor Mellgren

基本的にメルトダウンとスペクターは、同じリソースを共有する非特権プロセスと特権プロセスの弱点を利用するサイドチャネル攻撃であり、リソースの可用性は保護されていない情報であり、非特権サイドが特権サイドをだまして、リソースに依存する方法でリソースを消費させることができます。秘密ですが、リクエストが最終的にキャンセルまたは拒否されるためです。 GPUは確かにリソースを共有し、非特権プロセスはそこでコードを実行できます。そのコードがリソースの競合を検出し、受信するはずのない(そして受信しない)データを要求できる場合、GPUが関与するsimilar攻撃の可能性を除外しません。

1
dawroq