11

一般的な CPU で信頼されていないコードを実行するには、サンドボックス、偽のルート、仮想化など、多くのアプローチがあります。

GPGPU の信頼できないコード (OpenCL、cuda、または既にコンパイル済みのもの) はどうですか?

そのようなサードパーティの信頼できないコードを実行する前に、グラフィックス カードのメモリがクリアされていると仮定すると、

  • セキュリティリスクはありますか?
  • どのようなリスクがありますか?
  • それらを防ぐ方法はありますか?
    • サンドボックス化はgpgpuで可能/利用可能ですか?
    • 多分バイナリインストルメンテーション?
    • 他のテクニック?

PS 私は、高レベルの gpgpu プログラミング言語のセキュリティよりも、gpu バイナリ コード レベルのセキュリティに関心があります (ただし、これらのソリューションも同様に歓迎されます)。つまり、gpu オペコード (別名マシン コード) への参照は大歓迎です。

4

2 に答える 2

2

GPU コードは間違いなく危険です。現在の GPU はメモリ保護を提供していないため、基本的にすべての GPU カーネルがすべてのビデオ メモリにアクセスできます。ホストのメモリにもアクセスできるかどうかはわかりません(おそらくメモリマッピングを介して?)。カーネルを先取りすることはできません。GPU を「占有」することができ、グラフィックス出力にも使用されるとフリーズが発生します。(通常、ドライバーは、数秒後に終了しないカーネルを終了します)

おそらく、AMD の新しい GPU シリーズにはいくつかのメモリ保護機能が搭載されていると思われますが、現時点ではそれらが使用されているとは思えません。現在の世代のハードウェア (GeForce 4xx+、Radeon 6xxx+) を使用して GPU マルチプロセッサを複数のセグメントに分割することは可能ですが、それはリアルタイム スライスのプリエンプト マルチタスクと実際には同じではありません。;)

于 2011-01-11T19:13:02.980 に答える
2

リスクは、他の C プログラムと同じです。さらに、デスクトップ全体をフリーズさせることもできます。非常に長い計算を実行することで、なんとかそれを行うことができました。その結果、画面が更新されなくなり、たとえば、時計ウィジェットの時刻がその期間変更されなくなりました。したがって、2 つのグラフィックス カードを使用する必要があります。1 つは GPU 用です。

于 2011-01-08T20:50:24.377 に答える