不受信任的GPGPU代码(OpenCL等) - 它安全吗?有什么风险?

时间:2011-01-08 19:40:35

标签: security cuda sandbox opencl gpgpu

在典型的CPU上运行不受信任的代码时有很多方法:沙盒,假根,虚拟化......

GPGPU的不可信代码(OpenCL,cuda或已编译的代码)怎么样?

假设在运行此类第三方不受信任的代码之前清除了显卡上的内存,

  • 有任何安全隐患吗?
  • 有什么样的风险?
  • 有什么方法可以阻止他们吗?
    • gpgpu上有沙盒可用吗?
    • 也许二元仪器?
    • 其他技巧?

P.S。我对gpu二进制代码级安全性更感兴趣,而不是高级gpgpu编程语言安全性(但这些解决方案也是受欢迎的)。我的意思是欢迎引用gpu操作码(a.k.a机器代码)。

2 个答案:

答案 0 :(得分:2)

风险与任何C计划相同。另外,您可以冻结整个桌面。通过执行一个很长的计算,我设法做了一次。结果是屏幕不再更新,例如时钟小部件上的时间在该时间段内没有变化。所以你应该使用两个显卡 - 一个用于GPU的东西。

答案 1 :(得分:2)

GPU代码绝对有风险。当前的GPU不提供内存保护,因此基本上每个GPU内核都可以访问所有视频内存。我不确定是否也可以访问主机的内存(通过内存映射可能?)。它不可能抢占内核,它们可以“占用”GPU,如果它也用于图形输出,这会导致冻结。 (通常驱动程序将终止几秒钟后没有退出的内核)

据称,AMD的新GPU系列确实有一些内存保护功能,但我怀疑它们目前还在使用。使用当前的硬件(GeForce 4xx +,Radeon 6xxx +)可以将GPU多处理器分成多个段,但这与实时切片,抢占式多任务处理并不完全相同。 ;)