GPU 上的幽灵/崩溃

信息安全 崩溃 幽灵 显卡
2021-08-30 12:03:52

GPU 是否容易受到幽灵/熔毁攻击,因为它们具有使 CPU 可攻击的大部分内容?VRAM中是否有任何信息,如果被盗会造成麻烦?

4个回答

首先,您通常不会期望内核内存被映射到 GPU 中。即使您使用现代 GPU,通常也没有太多支持在进程之间共享内存的方式。

肯定有关于 GPU 内部推测执行的研究论文 - GPU 上的推测执行:一项探索性研究;Liu、Eisenbeis、Gaudiot - 但我不相信任何现有设备都在硬件层面积极完成。

因此,虽然理论上没有什么可以阻止您构建可能允许它的 GPU/OS 设置,但我怀疑这在任何现有产品上都是可能的。

GPU(图形处理单元)不易受到幽灵/熔毁攻击。

这是由于各种原因:

  1. GPU 是一种完全不同设计的处理器。
  2. 它不运行特权代码(例如内核代码)。
  3. 它不运行操作系统。
  4. 它针对矢量计算进行了优化。
  5. 它的微代码构建完全不同。
  6. 它(大多数情况下)没有对特权代码的保护(例如 CPU 上的执行环)。
  7. 它不能(直接)访问 CPU 的寄存器,它确实具有 DMA(直接内存访问),但许多其他设备也是如此。
  8. 安全专家对此进行的研究有限,因此没有人确定它是否易受攻击。
  9. 至于具有相同的部件,这些部件要么在许多设备之间共享,要么在设计上完全不同。GPU 的内存或示例的映射方式与 CPU 的内存不同(尽管它们共享电气标准)。
  10. DMA 访问应该限制在当前执行级别,因为显卡通常由内核控制,没有用户级别的应用程序可以直接访问它。或者发送代码给它。(驱动程序的存在是为了促进用户级别的访问并限制他们可以做的事情。为了最大限度地发挥可用功能。而不是炸毁卡(例如通过设置非法设置)。
  11. 可以在 GPU 上运行的代码在它可以执行的内容方面受到高度限制(指令集是有限的),例如,仅允许间接使用 DMA(首先将其加载到显卡内存中,然后才授予访问权限,反之亦然)。

tldr; GPU 不是 CPU,也不是为多用户/应用程序而设计的。他们有一些防止滥用的保护措施,但其中大部分尚未经过安全专家的测试。

Nvidia 今天(2018 年 1 月 9 日)发布了更新来处理这些问题。所以我会假设存在风险,因为他们已经创建了更新。

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 安全更新

并在上述帖子http://nvidia.custhelp.com/app/answers/detail/a_id/4611中特别提到了 GeForce

Affected Products

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

从根本上说,Meltdown 和 Spectre 是侧通道攻击,它们利用共享相同资源的非特权和特权进程的弱点,资源的可用性是不受保护的信息,并且非特权方可以欺骗特权方以依赖于秘密,即使并且因为请求最终被取消或拒绝。GPU 当然共享资源,非特权进程可以在那里运行代码。如果该代码可以检测到资源冲突并请求它不应该(也不会)接收的数据,我不排除涉及 GPU的类似攻击的可能性。