异构 CPU-GPU 系统上的机密计算:调研和未来方向
SGX 为敏感工作负载提供了一个安全且隔离的环境(称为 enclave),而无需依赖不受信任的主机操作系统 (OS) 的安全性。SGX 确保执行代码的真实性,维护运行时状态(例如 CPU 寄存器、内存和敏感 I/O)的完整性,并通过密封过程保护存储在持久内存中的 enclave 代码、数据和运行时状态的机密性40。Intel SGX 的威胁模型。攻击者可以控制底层计算平台的整个软件堆栈,包括虚拟机
近年来,信息化的广泛普及和数据的快速爆炸式增长,对集成多个计算核心(如CPU、图形处理单元(GPU)、专用集成电路(ASIC)和现场可编程门阵列(FPGA))的高性能异构系统的需求日益增加。
CPU和GPU的组合由于其多功能性而尤为流行。然而,这些异构系统面临着巨大的安全和隐私风险。隐私保护技术的进步,特别是基于硬件的可信执行环境(TEE),为GPU应用提供了有效的保护。尽管如此,在异构系统中将TEE扩展到GPU所涉及的潜在安全风险仍不确定,需要进一步研究。
为了深入研究这些风险,我们研究了现有流行的GPU TEE设计,并总结和比较了它们的主要影响。此外,我们回顾了针对GPU和部署在CPU上的传统TEE的现有强大攻击,以及减轻这些威胁的努力。我们识别了GPU TEE引入的潜在攻击面,并深入了解了设计安全GPU TEE的关键考虑因素。由于针对异构系统(尤其是 GPU)的新 TEE 正在开发中,因此这项调查非常及时,凸显了了解潜在安全威胁以及构建高效和安全系统的必要性。
CCS 概念:
- 一般和参考 → 调查和概述
- 计算机系统组织 → 异构(混合)系统;
- 安全和隐私 → 硬件攻击和对策;可信计算。
附加的关键词和短语:机密计算、GPU 上的可信执行环境、硬件安全、GPU 攻击
1. 引言
异构计算系统已成为现代技术的基石,其驱动力在于各种应用对提高能源效率和性能的需求。从超级计算机和高性能集群的巨大计算能力到智能手机和笔记本电脑的日常使用,如今各种计算架构都已集成在一起,以实现性能和功耗之间的最佳平衡 1 2。
异构计算是指利用多种计算核心的系统,包括 CPU、GPU、ASIC、FPGA 和神经处理单元 (NPU)。尽管异构计算的概念已经被探索了二十多年,但 GPU 等加速器的最新进展,加上机器学习 (ML) 的爆炸式增长,极大地改变了这些系统。特别是,自 2000 年代中期以来,研究表明,与传统 CPU 相比,GPU 可以将卷积神经网络 (CNN) 和其他流行 ML 模型的训练速度提高 10-30 倍 3 4。这种加速使得使用 GPU 的异构计算系统成为当今 ML 基础设施中不可或缺的一部分,为人工智能 (AI) 技术的快速开发和部署提供关键支持。虽然异构计算系统提供了卓越的性能和能效,但它们也带来了新的挑战。这些系统的复杂架构可能会带来潜在的漏洞和安全风险,尤其是对于它们执行的任务,例如 ML 应用程序。
随着这些系统不断发展并扩大其在计算领域的作用,确保它们的安全性和可靠性至关重要。
为了确保异构计算系统的安全性和保密性,研究人员致力于将传统上用于 CPU 的隐私保护技术应用于 GPU 等加速器。这些技术包括加密方法,如同态加密 (HE) 5 6 7 和安全多方计算 (MPC) 8 6 7 4 9,以及为 GPU 等加速器量身定制的 TEE 10 11 12 13 14 15 16 17 18 19 20。与加密方法相比,TEE 具有某些优势,特别是在性能和易于部署方面,它提供了一种基于硬件的强大安全机制,并且相对易于实现和管理。然而,与加密技术相比,TEE 的安全性依赖于对制造商的信任,并且很难进行严格分析和证明。
最近的研究探索了将 TEE 扩展到 GPU 等加速器,包括 x86 11 12 14 15 16 17 19 20 和 Arm 10 13 18 架构。这些方法中的大多数涉及修改现有的 CPU TEE(尤其是基于进程的 TEE,如英特尔软件保护扩展 (SGX) 和 Arm TrustZone (TrustZone))以保护 GPU 软件堆栈(如 GPU 驱动程序),并提出确保 GPU 内核执行隔离性和机密性的策略。除此之外,NVIDIA 在其 Hopper 架构 16 中引入了一个开创性的商业平台,该平台通过内存加密和隔离执行上下文等功能支持机密计算。然而,在异构计算系统中跨 CPU 和加速器扩展 TEE 所带来的安全威胁仍不确定,需要进一步研究。
在本调查中,我们深入研究了当前加速器 TEE 设计中的潜在漏洞,特别强调了 GPU(称为 GPU TEE)。为此,我们首先回顾和分类致力于创建 GPU TEE 原型的研究工作。这些解决方案针对各个方面:一些旨在保护 GPU 软件堆栈,另一些则侧重于保护在 GPU 上处理的数据的机密性,还有一些提供强大的隔离机制。因此,每种设计都呈现出不同的攻击面。为了识别这些潜在的攻击面,我们对 GPU 上的现有攻击进行了分类和分析,包括架构/逻辑攻击、微架构侧通道和隐蔽通道攻击、物理侧通道攻击和故障注入。异构计算系统中 GPU 的独特架构和可访问性与传统 CPU 相比具有显著差异,而传统 CPU 历来是此类攻击的主要目标。此外,我们还回顾了针对 Intel SGX、Arm TrustZone 和 AMD 安全加密虚拟化 (SEV) 等 CPU TEE 的现有攻击,并研究了它们对在 GPU TEE 上运行的代码和数据的影响。最后,通过综合这些见解,我们讨论了这些强大的攻击媒介在 GPU TEE 中暴露的潜在攻击面。
如图 1 和图 2 所示,GPU 的发展导致了越来越高性能架构的发展。因此,研究越来越关注通过探索新的架构漏洞来调查 GPU 中的潜在攻击面。同样,我们预计最近出现的 GPU TEE 的潜在安全威胁将受到越来越多的关注。我们相信,这项调查为设计 GPU TEE 的关键考虑因素、针对异构计算系统的现有攻击的主要工作流程以及为 CPU TEE 和 GPU 引入的潜在攻击面提供了关键见解。这种理解可以指导未来的研究,以开发异构系统上安全高性能计算的防御措施,并通过改进可信计算基 (TCB) 来增强 GPU TEE 上的机密计算。此外,我们相信我们的工作可以激发创建更多适合各种架构和实际应用的 GPU TEE 原型。
2. 背景
在本节中,我们介绍 GPU 的基础知识、常见的攻击类型以及现有最流行的 TEE 设计。
2.1 通用图形处理单元
通用 GPU (GPGPU) 是专门设计的加速器,旨在处理传统图形渲染以外的各种计算密集型工作负载。凭借其强大的并行计算能力,这些 GPU 非常适合数据分析、机器学习、加密等应用。通常,GPGPU 由多个处理单元组成(即 NVIDIA GPU 中的 CUDA 核心和 Arm GPU 中的着色器核心和执行单元),能够同时执行数千个线程。除了 GPU 之外,还有几种著名的加速器旨在提高特定计算任务的性能。这些包括 FPGA、ASIC 和 NPU。在本次调查中,我们主要关注利用 GPU 的异构系统。
随着 GPU 的发展,英特尔、NVIDIA、AMD、Arm、高通等供应商推出了具有独特架构特性和功能的 GPU。不同的架构特性(例如内存层次结构)可能会在 GPU 上引入不同的攻击面。表 1 中详细介绍了目前广泛使用的 GPU,它们的架构设计各不相同,尤其是内存层次结构,这会影响它们对某些类型攻击的脆弱性(例如,第 5 节中对集成和独立 GPU 的微架构攻击)。为了全面概述这些 GPU,我们将在以下章节中考虑这些方面。
- **集成/独立 GPU。**集成 GPU,例如表 1 中列出的 Intel HD/Iris/UHD/Xe Graphics、Arm 和 Qualcomm GPU,与 CPU 集成在同一芯片或封装上。这些 GPU 与 CPU 共享系统内存。独立 GPU 是独立的专用图形处理单元,与 CPU 分开。它们有自己的专用内存,与系统内存不同(例如,表 1 中列出的 NVIDIA 和 AMD GPU)。
- GPU 虚拟化。图形虚拟化技术 (GVT),又名 Intel GVT,允许单个物理 GPU 在具有专用 GPU 资源的多个虚拟机 (VM) 之间共享。 NVIDIA 的多进程服务 (MPS) 可在单个 GPU 上同时管理多个 CUDA 应用程序,但缺乏真正的 GPU 虚拟化的地址空间隔离,因此不适合多租户系统 21。与 MPS 不同,NVIDIA 的虚拟图形处理单元 (vGPU) 可确保单独的 GPU 地址空间和执行上下文。NVIDIA 的 A100 GPU 架构中引入的多实例 GPU (MIG) 将单个物理 GPU 划分为多个实例。每个 MIG 实例都作为单独的 GPU 运行,具有专用资源,包括计算核心、内存和缓存。
- GPU 源代码的开源状态。GPU 源代码(包括驱动程序和低级架构细节)的可用性因供应商的政策和特定的 GPU 架构而异。例如,AMD(例如 AMD 的 ROCm 22)和英特尔(Mesa 3D Graphics 23)等供应商为特定平台提供开源 GPU 驱动程序。但是,NVIDIA、ARM 和 Qualcomm 通常提供专有驱动程序,限制开发人员对设计细节的访问。因此,许多针对 GPU 攻击的研究工作通常依赖逆向工程来获取诸如转换后备缓冲区 (TLB) 级别、warp 调度程序等详细信息(参见第 5 节)。
2.2 GPU 攻击的类型
近几十年来,一系列攻击已成为现代基于 CPU 的计算系统的重大威胁。随着 GPU 的使用越来越普遍,人们越来越有兴趣探索从 CPU 到 GPU 的潜在安全漏洞。在本次调查中,我们详细介绍了各种攻击媒介,包括架构/逻辑攻击、微架构侧信道和隐蔽通道攻击、物理侧信道攻击和故障注入。
2.2.1 架构/逻辑攻击
这些攻击包括一类利用底层硬件架构中的漏洞或弱点的攻击。这些攻击旨在通过针对关键硬件元素的物理或逻辑设计来破坏系统,包括处理单元(例如处理器、硬件加速器和协处理器)、内存子系统以及负责与其他系统元素交互的通信组件 24。
2.2.2 微架构侧信道和隐蔽通道攻击
微架构侧信道攻击利用处理器微架构的意外行为来提取敏感信息。它们以缓存行为、分支预测或推测执行等组件为目标。这些攻击最初在 CPU 上进行演示,利用各种优化结构,例如缓存 25 26 27 28 和分支预测器 29 30。最近,CPU 上出现了一种新的微架构攻击,称为瞬时执行攻击 31。示例包括 Meltdown 32、Spectre 33 和微架构数据采样 (MDS) 34 35,它们依赖于现代 CPU 中的无序和瞬时(推测)执行。与物理侧信道攻击不同,微架构攻击需要了解特定的微架构及其固有漏洞。
微架构隐蔽通道攻击是侧信道攻击的一种子类型。隐蔽通道涉及两个进程通过非预期通道建立未经授权的通信路径以泄露信息,这使得它们与云计算环境相关 36 37。由于隔离和共享资源使用不完善,恶意进程可以利用此类资源与受害进程建立通信通道。隐蔽通道通常涉及发送者(称为“木马”)和接收者(通常称为“间谍”)。通过隐蔽通道,木马可以传输敏感信息或向间谍泄露数据 38。
2.2.3 物理侧信道攻击
这些被动攻击利用计算设备的物理特性,例如功耗、电磁 (EM) 或时间信息,来深入了解设备的运行情况。
示例包括差分功率分析 (DPA) 等攻击,它利用功耗波动来提取加密密钥或其他敏感数据。与微架构攻击不同,物理侧信道攻击并不总是需要了解设备的内部架构或漏洞。相反,他们利用物理信号和行为无意中泄露信息。
2.2.4 故障注入攻击
故障注入攻击涉及主动将故障或错误引入系统以改变其行为或提取敏感信息。这些攻击通常可分为非侵入式、半侵入式和侵入式 39。非侵入式攻击允许攻击者使用时钟和电压故障、过热、电磁故障、软件故障和远程硬件故障等方法,进行物理或非物理访问。
半侵入式攻击需要对目标芯片进行(部分)解封装,以使用激光和光学故障注入等技术,而侵入式攻击则涉及更直接的方法,例如微探测和 IC 修改,这两种方法都需要深度物理访问。在这项工作中,我们主要关注非侵入式故障注入攻击。
2.3 TEE
大多数现有的 GPU TEE 都依赖于 CPU TEE 来保护 CPU 主机上的 GPU 驱动程序,因为这些驱动程序可能会被攻击者破坏。本节介绍 CPU TEE,包括基于进程的 TEE,例如 Intel SGX 和 Arm TrustZone,它们在进程级别提供隔离,以及基于虚拟化的 TEE,例如 AMD SEV、Arm 机密计算架构 (CCA) 和 Intel 信任域扩展 (TDX),它们在 VM 级别提供隔离。
2.3.1 Intel SGX 概述
SGX 为敏感工作负载提供了一个安全且隔离的环境(称为 enclave),而无需依赖不受信任的主机操作系统 (OS) 的安全性。SGX 确保执行代码的真实性,维护运行时状态(例如 CPU 寄存器、内存和敏感 I/O)的完整性,并通过密封过程保护存储在持久内存中的 enclave 代码、数据和运行时状态的机密性 40。
Intel SGX 的威胁模型。攻击者可以控制底层计算平台的整个软件堆栈,包括虚拟机管理程序、BIOS 和操作系统。具体而言,在这种情况下,攻击者可以 (1) 在特权级别执行任意指令;(2) 根据需要启动、暂停和销毁 enclave 实例;(3) 控制非 enclave 环境中的软件堆栈,包括内存映射、I/O 设备和 CPU 调度等任务 41。
Intel SGX 的 TCB。SGX 的 TCB 是指系统中所有被视为可信并参与提供安全环境的硬件、固件和软件组件。任何 TCB 组件中的漏洞都会危及 SGX 的安全性。TCB 大小是评估 TEE 设计安全性的常用指标,较小的 TCB 大小通常表示代码行或硬件元素较少,这意味着漏洞风险降低。但是,仅基于 TCB 大小来比较两个 TEE 设计的安全性是困难且不合理的 41。正在进行的研究工作重点是使用内存安全的编程语言(例如 Rust-SGX 42)构建较小的 TEE OS。
2.3.2 Arm TrustZone 概述
自 2004 年以来,TrustZone 已集成到 Arm 处理器(Cortex-A)中 43,主要用于移动设备。与 Intel SGX 不同,TrustZone 并非天生就适合云平台,并且缺乏对远程认证的支持,这将使远程方能够验证 TEE 实例的初始状态 41。TrustZone 围绕称为安全世界 (SW) 和正常世界 (NW) 的保护域概念运行。
它还通过在 ARMv8 指令集架构 (ISA) 中引入异常级别 (EL) 来扩展“特权环”的概念。“安全监视器”在最高特权级别 EL3 下运行,同时监督 SW 和 NW。
不受信任的操作系统在网络 (NW) 中运行,称为富执行环境 (REE)。在软件 (SW) 中,受信任的操作系统内核在 EL1 中运行,而安全用户空间在 EL0 中运行。软件 (SW) 和网络 (NW) 之间的分离确保特定的 RAM 区域和总线外设被指定为安全的,从而将访问限制在软件 (SW) 中。
Arm TrustZone 的威胁模型。目前,缺乏 TrustZone 的正式威胁模型。通常假设的攻击者能力如下:攻击者 (1) 可以完全访问设备的 REE,包括操作系统。这可能是经过身份验证的 (root) 用户、安装在设备上的恶意第三方软件或受感染的操作系统;(2) 利用对软件 (SW) 内资源的未经授权的访问并提取敏感信息 44。
Arm TrustZone 的 TCB。在软件 (SW) 中,受信任的操作系统在 EL1 中运行并提供运行时支持以维持受信任应用程序 (TA) 的生命周期,确保它们在用户模式 (EL0) 下安全执行。可信操作系统的核心是可信内核,它为 TA 的调度和管理提供关键的操作系统原语。安全监视器实现了在世界之间进行安全上下文切换的机制,并以 EL3 中的最高权限运行。同时,TEE 引导加载程序将 TEE 系统启动到安全状态 45。简而言之,可信操作系统、安全监视器和 TEE 引导加载程序构成了 TrustZone 辅助 TEE 的 TCB。
2.3.3 基于虚拟化的 TEE
基于进程的 TEE(例如 Intel SGX)需要将应用程序划分为可信部分、安全区和不可信部分,这可能会使开发工作复杂化,因为开发人员必须遵守此安全模型并相应地细分其应用程序。作为回应,供应商现在迭代了他们以前的可信计算 CPU 扩展,以促进跨各种服务器平台的基于虚拟化的机密计算,从而无需对应用程序代码进行大量修改。这里我们概述了三种基于虚拟化的机密计算解决方案:Intel TDX 46、AMD SEV 47 和 Arm CCA 48。
AMD SEV。AMD 推出了具有 Zen 架构的 SEV,以实现云环境中的机密计算。最近的 AMD SEV-Secure Nested Paging (SNP) 49 通过引入安全嵌套分页等功能来增强加密内存的完整性,从而扩展了 AMD SEV 的功能。
Arm CCA。Arm CCA 是 Armv9 中引入的一项高级隔离技术。它保留了 TrustZone 的 NW 和 SW,同时引入了一个专为运行多个机密“领域”而设计的新领域。这些领域虽然与其他领域隔离,但由不受信任的软件组件(例如虚拟机管理程序)管理。轻量级领域管理监视器 (RMM) 50 在领域世界的虚拟机管理程序层内运行,可确保领域之间的内存隔离。CCA 包含一个根世界,以容纳存储在固件中的最高权限监视器代码 18。
Intel TDX。 Intel TDX 利用 Intel 的多密钥全内存加密 (MKTME) 51 和经过 CPU 认证的软件模块来促进安全虚拟机的隔离执行。TDX 模块经过数字签名,并在一种名为 SEAM 的新型处理器模式下执行,可充当分离内核。它为虚拟机管理程序提供了一个接口,用于调度、创建和管理安全虚拟机(称为可信域)。有关 AMD SEV、Arm CCA 和 Intel TDX 的深入比较,我们参考了 52 中的调查。
3. 概述和分类
GPU 上的机密计算是一个新兴领域,它确保在 GPU 上处理的敏感数据免受未经授权的访问和篡改,即使是具有特权访问权限的攻击者也是如此。其他隐私保护技术,如安全多方计算、同态加密和 TEE,提供了不同的安全保障。然而,在这项工作中,我们的主要重点是将 TEE 扩展到 GPU(即 GPU TEE)。从同构系统转向这种异构系统不可避免地会带来新的威胁和安全漏洞。了解这些新的攻击媒介对于设计能够有效缓解这些攻击的系统至关重要。与现有的 CPU TEE 相比,GPU TEE 从几个方面为攻击者提供了独特的机会:
CPU 上的 GPU 软件堆栈:GPU 驱动程序处理资源分配、任务调度和动态电源管理等关键方面。具体而言,在资源分配方面,GPU 驱动程序管理和分配资源,包括内存、处理单元和其他硬件组件。对于任务调度,它们有效地调度和管理任务以确保最佳性能,在 GPU 核心之间平衡工作负载。在动态电源管理中,驱动程序根据工作负载调整电压等参数,优化性能和效率以延长移动设备的电池寿命并降低数据中心的能源成本。在当前的 GPU TEE 中,GPU 驱动程序的保护,特别是它们在 CPU 主机中的位置,可能会引入新的攻击面。此外,一些针对 CPU TEE 的先进攻击也可能影响 GPU 驱动程序。
GPU 上的硬件组件:GPU TEE 仍处于开发的早期阶段。大多数设计都是实验性研究,通常缺乏广泛的硬件修改,导致对 GPU 内存、外围组件互连 Express (PCIe) 总线和电源管理组件等组件的硬件保护不足。
即使是 GPU 制造商设计的产品(例如 NVIDIA H100 GPU)也可能缺乏对某些硬件组件(例如电源管理组件)的保护。因此,针对这些组件的现有攻击也可能转化为 GPU TEE 中的弱点。
架构复杂性:尽管 GPU 的安全性才刚刚开始被探索,但已经记录了一些漏洞和攻击。由于 GPU 的架构复杂性,例如不同并发内核之间的内存共享以及 GPU 类型的多样性(例如集成和离散),一些现有的 GPU TEE 可能无法提供足够的保护。此外,许多设计忽略了缓存级访问保护,使其容易受到基于缓存的 GPU 攻击。
在图 3 中,我们根据相关工作总结了本次调查的基础分类法。在本文的其余部分,我们首先在第 4 节中回顾和讨论现有的 GPU TEE,涵盖它们的威胁模型、硬件修改、TCB 大小和性能开销。在第 5 节中,我们根据第 2 节中列出的攻击类型概述了针对 GPU 的现有攻击。我们还在第 6 节中回顾了针对现有 CPU TEE(例如 Intel SGX、Arm TrustZone 和 AMD SEV)的最新攻击。最后,基于这些 GPU TEE 设计和总结的攻击,我们在第 7 节中讨论了针对现有(和未来)GPU TEE 的潜在攻击。
4. GPU 上的机密计算
我们在表 2 中总结了基于 Intel、AMD 和 ARM 的最先进的 GPU TEE 设计。接下来,我们首先回顾所有现有方案,然后从威胁模型、硬件修改、TCB 大小和在加速器上实现可信执行所产生的性能开销等方面对它们进行讨论。
4.1 GPU 上的可信执行环境
传统 CPU 和云系统已逐渐采用基于硬件的 TEE,以安全地将计算与恶意操作系统或某些硬件攻击(例如对内存总线的监听)隔离开来。然而,GPU 及其云部署在很大程度上尚未纳入对基于硬件的可信计算的支持。随着大量敏感数据被卸载到 GPU 以在云环境中加速,尤其是对于敏感的 ML 工作负载,迫切需要解决无处不在的 GPU 的可信计算要求。研究人员和商业供应商最近提出了各种设计来支持 GPU 上的机密计算。
基于 x86 的 GPU TEE。 Graviton 17 发起了在 GPU 等硬件加速器上进行可信执行的工作。
Graviton 直接在 GPU 内建立 TEE,这需要硬件修改,但避免了对 SGX 等 CPU 端 TEE 的需求。 Graviton 在不受信任的主机和 GPU 之间建立安全通道,通过将所有资源分配请求引导到 GPU 的命令处理器而不是 GPU 驱动程序来监控命令提交和数据传输。 尽管如此,为了保护数据,Graviton 假设 GPU 的封装内存是可以信任的。 假设是,即使有物理访问,攻击者也很难破坏 GPU 封装的完整性并窥探 GPU 和堆叠内存之间的硅互连。
HIX 12 从操作系统驻留驱动程序中删除了控制 GPU 的关键功能,并将其放置在受信任的 GPU 飞地中,扩展了 SGX 飞地并合并了新的 SGX 样式指令,如 ECREATE 和 EADD。
此外,HIX 建立了安全的硬件 I/O 路径,防止操作系统更改 GPU 内存映射 I/O (MMIO) 区域的虚拟到物理地址映射,并防止操作系统推断通过 MMIO 和直接内存访问 (DMA) 传输的命令和数据。与 Graviton 一样,HIX 缺乏可信的 GPU 内存区域,导致 GPU 内存中的数据以明文形式访问。
为了消除对 CPU 或 GPU 芯片进行修改的需要,HETEE 20 引入了数据中心级 GPU TEE,旨在支持广泛的机密计算,而无需进行任何芯片级更改。它有助于在机架内的所有服务器上动态分配安全和非敏感计算任务的计算资源。它们包含一个小型 TCB,例如具有支持任务隔离的定制代码的单个安全控制器,从而降低了设计复杂性并最大限度地减少了与不受信任的操作系统共享资源相关的攻击面。
与 HIX 类似,Honeycomb 15 通过使用 CPU 端 TEE(例如 AMD SEV-SNP)将敏感数据传输到 GPU 并管理对 GPU MMIO 的访问,确保用户和 GPU 之间的安全通信。与以前的设计不同,Honeycomb 采用静态分析来确认相互不信任的 GPU 应用程序包含在其飞地中。这种方法通过将运行时检查移至加载时间来实现更高效的实现。此外,Honeycomb 通过排除用户空间和内核空间 GPU 驱动程序来减少 TCB,而是使用两个安全监视器来拦截和控制应用程序与 GPU 之间的所有流量。Honeycomb 在信任 GPU 的设备内存方面做出了与 Graviton 相同的假设,因为现代 GPU 通常使用同一封装内的 2.5D/3D 硅中介层集成设备内存。
SAGE 11 为可信 GPU 执行提供了一种基于软件的替代方案。它使用在主机上运行的 SGX 飞地作为本地验证器,并使用此飞地引导在 GPU 上建立动态信任根的软件原语。它确保不受信任设备上的用户内核保持不被修改,在不受信任的 GPU 上被调用执行,并且运行时不会被篡改。它补充了现有的基于硬件的 GPU TEE。
鉴于以前的设计忽略了内存安全性(即不加密 GPU 内存),LITE 19 引入了与 CPU 共同设计的 GPU TEE 来建立统一的加密域,其中数据以密文形式存储在 GPU 缓存和内存中。具体而言,LITE 确保数据以加密形式进入 GPU 芯片。然后,软件使用算术逻辑单元 (ALU) 对数据进行解密,对寄存器中的数据进行操作。此外,数据可以暂时以明文形式存储在片上共享内存中。
TNPU 14 为深度神经网络 (DNN) 加速器提出了无树的片外内存保护。核心思想是将连续的内存块分组为图块,并在图块级别提供新鲜度保证。TNPU 使用在主机 CPU 上运行的专用软件模块来管理版本号,这些版本号存储在主机 CPU 安全内存中的“张量表”中。张量表受完整性树保护。
NVIDIA 的 H100 Tensor Core GPU 16 基于 Hopper 架构,引入了用于机密计算的高级功能。要使用 H100 实现机密计算,需要特定的 CPU TEE,例如 Intel TDX、AMD SEV-SNP 和 Arm CCA。除了确保数据和代码的机密性和完整性之外,H100 还可以防御针对 PCIe 总线和双倍数据速率 RAM (DDR) 的基本物理攻击。H100 支持三种不同的操作模式,即 CC-Off、CC-On 和 CC-DevTools。在 CC-On 模式下,H100 以及 CPU 上的驱动程序完全激活所有可用的机密计算功能。在 CC-On 模式下,某些硬件资源(例如性能计数器)被禁用,以防止潜在的侧信道攻击,因为性能计数器可用于推断设备使用行为 53。但是,目前尚不清楚有关具体硬件更改(例如 H100 中的内存加密)的细节。
基于 Arm 的 GPU TEE。由于存在许多架构差异,以前基于 Intel/AMD 平台的设计无法轻易扩展到 Arm GPU。因此,StrongBox 10 引入了第一个 GPU TEE,用于在 Arm 端点上进行安全的通用计算,而无需进行硬件修改或架构更改。它在安全监视器内部署 StrongBox 运行时,以确保 GPU 独立执行。通过结合第 2 阶段转换和 TrustZone 地址空间控制器 (TZASC),StrongBox 指定了六种不同的访问权限类型,以有效管理来自 DMA、GPU 和其他外围设备的安全访问。
CRONUS 13 引入了一种支持各种异构加速器的设计,可在单个加速器内实现空间共享,并确保跨多个加速器的强大隔离。利用 Arm 安全虚拟化技术,CRONUS 将异构计算划分为独立的 TEE 区域。每个区域都封装了一种特定类型的计算,例如 GPU 计算,并允许多个区域在空间上共享单个加速器。
为了支持下一代 Arm 设备上的机密 GPU 计算,CAGE 18 提出了一种 Arm CCA 领域式架构的新方案。它将资源密集型但与数据无关的任务卸载到 NW,同时通过影子任务机制保护领域内的敏感数据。通过配置粒度保护检查 (GPC),CAGE 限制了不受信任组件的访问。此外,它通过在 GPU GPC 中为每个领域提供不同的 GPU 内存视图来隔离 GPU 计算中的领域。CAGE 保持了高硬件兼容性,因为它不需要额外的硬件或对现有 CPU 和 GPU 配置进行修改。
4.2 讨论
在本节中,我们讨论了设计有效且安全的 GPU TEE 的几个关键指标。
威胁模型。基本上所有 GPU TEE 设计都采用与 CPU TEE 类似的威胁模型,旨在为 GPU 创建安全的执行环境。具体来说,他们考虑一个能够控制整个软件堆栈的对手,包括设备驱动程序、客户操作系统和虚拟机管理程序。此外,假设对手对硬件的物理访问有限,从而允许被动物理攻击,例如窥探 PCIe 流量。
这意味着这样的对手可能会泄露或篡改 GPU 应用程序的敏感数据和执行结果。他们还可以访问或篡改 DMA 缓冲区中的用户数据或受害应用程序提交给 GPU 的命令。
关于 GPU 内存保护,许多设计都假设攻击者无法访问 GPU 内存中的机密,或者明确指出针对内存的物理攻击超出了他们的范围。例如,Graviton 17 和 Honeycomb 15 信任 GPU 的设备内存,因为现代 GPU 通常在同一封装内使用 2.5D/3D 硅中介层集成设备内存。这些设计主要侧重于通过更细粒度的访问控制防止攻击者访问存储在 GPU 内存中的敏感数据。为了填补这一空白,LITE 19 设计了一个基于软件的统一加密域来保护存储在 GPU 内存中的敏感数据,包括 L1/L2 缓存和设备内存。此外,NVIDIA H100 16 和 TNPU 14 支持基于硬件的内存加密,而 CAGE 18 要求未来的 CCA 设备内置硬件辅助内存加密支持。
-
硬件变化。早期的 Graviton 17 和 HIX 12 等工作需要对外围组件进行重大修改,例如 GPU 的命令处理器、引入新的 SGX 指令、特定的内存管理单元 (MMU) 页表遍历器和其他硬件更改。GPU TEE 设计修改硬件组件的程度决定了其实际兼容性,即其对各种 GPU 的适用性。许多设计需要进行硬件更改,而这些更改需要很长时间才能部署到生产环境中。因此,LITE 19、SAGE 11 和 Honeycomb 15 等工作寻求纯软件方法来实现可信的 GPU 执行。CAGE 18 主要利用 Arm CCA 和 GPU 中的通用硬件功能,而无需额外的硬件更改或对现有 CPU 和 GPU 进行定制。
-
TCB 大小。GPU TEE 设计中的一个关键挑战是尽可能减小 TCB 大小。大型软件堆栈会增加 TCB,这可能会引入更多漏洞,从而威胁安全性。一种有效且高效的减少 TCB 的方法是将大部分 GPU 软件堆栈放在不受信任的操作系统中,同时仅将控制 GPU 的关键功能保留在 CPU 的受信任区域(例如 SGX 飞地)中。例如,CAGE 18 通过使用其影子任务机制而不是将重量级的 GPU 软件加载到 TEE 中,为领域实现了“精简”的 TCB。它为 CPU 端隔离引入了 2-26K 行代码,为监视器引入了 1,301 行代码,从而实现了当前基于 Arm 的 GPU TEE 中最小的 TCB 大小。
-
性能开销。设计 GPU TEE 的最终目标是确保 GPU 执行的强隔离,同时最大限度地降低与提供安全保障相关的性能开销。比较不同方案的性能开销具有挑战性,因为需要昂贵的重新实施工作,因为每个方案都针对不同的平台并在不同的条件下实施。例如,在 HIX 中,软件组件是在支持硬件修改的模拟系统(如 KVM 和 QEMU)之上实现的。与 GPU 上的不安全基线相比,加密操作的数量、在安全和正常世界之间切换的频率以及完整性检查等几个因素在优化性能方面发挥着重要作用。例如,CAGE 18 在六个 Rodinia 基准测试中的表现比 StrongBox 10 高出 1.96%–13.16%。这种性能提升归因于 CAGE 能够安全地将纯文本数据传输到缓冲区并存储结果,而无需引入额外的加密操作。可以合理地推测,由于 NVIDIA H100 GPU 支持基于硬件的加密,因此其性能负担较小。一旦 NVIDIA H100 GPU 上的机密计算整个工作流程在未来完全可用,跨不同平台进行全面的性能比较将大有裨益。
5. GPU 的安全性
由于 GPU 被广泛用作加速器,近年来,它受到了来自进攻和防御两方面的审查。研究人员探索了硬件架构和软件层面的 GPU 漏洞,展示了实际攻击并提出了缓解措施。我们认为,总结和分析对 GPU 的攻击将有助于探索对 GPU TEE 的潜在攻击。虽然 Naghibijouybari 等人 54 提供了一项全面的调查,对 GPU 安全漏洞和潜在对策进行了分类,但他们的分析并未涵盖自 2022 年下半年以来出现的重大进展。此外,他们主要强调跨不同加速器的微架构攻击,而不考虑利用物理访问或测量的攻击。尽管如此,考虑物理通道对于对 GPU TEE 的潜在攻击至关重要。
在本节中,我们回顾了现有的 GPU 攻击,包括微架构侧通道/隐蔽通道攻击、物理侧通道攻击和故障注入攻击。表 3 提供了攻击、目标 GPU、威胁模型、攻击目标和方法的摘要。
5.1 架构/逻辑攻击
越来越多的研究针对 GPU 或其在 CPU 上的软件堆栈进行攻击。方案 55 56 57 58 侧重于由于最近终止的进程剩余内存而导致的信息泄露。Lee 等人 55 利用 GPU 未初始化新分配的内存页面而产生的漏洞,从而在执行期间和终止后立即泄露受害者存储在 GPU 内存中的数据。在实践中,他们在分析 Chromium 和 Firefox 的剩余纹理时推断出受害者用户访问的网页。Maurice 等人 56 通过观察 GPU 全局内存并不总是归零来恢复先前执行的 GPU 应用程序中的数据。Pietro 等人 57 利用交叉访问和不充分的数据处理来读取另一个进程存储在共享或全局内存中的信息。Zhou 等人 58 演示了恶意程序如何利用 GPU 内存管理策略来突破内存隔离边界并从其他进程恢复图像。 HE 等人 59 发现,英特尔集成 GPU 中存在一个漏洞,该漏洞是由上下文管理缺陷引起的,上下文切换期间不会清除残留寄存器值和共享内存。此类漏洞通常可以通过在将内存重新分配给另一个应用程序之前清除内存(即内存清零)来修复。
5.2 微架构侧通道/隐蔽通道攻击
在本小节中,我们回顾了现有的针对 GPU 的攻击,包括微架构侧通道和隐蔽通道攻击。
5.2.1 针对集成 GPU 的攻击
针对集成 GPU 的攻击因其安全风险而受到关注。集成通过利用共享资源开辟了新的攻击机会,从而导致跨组件微架构攻击。这些攻击的一个关键要求是共置,攻击者运行的代码足够接近受害者以进行交互 54。这种交互可能涉及诱导故障或争用以测量侧通道泄漏。因此,与 CPU 共享同一芯片的集成 GPU 提供了更多的攻击机会。
Dutta 等人 60 开发了两个隐蔽通道,使位于不同组件(CPU 和 iGPU)上的两个恶意应用程序能够通过共享硬件资源交换机密数据。一个通道利用英特尔集成 GPU 内共享的最后一级缓存 (LLC),而另一个通道则依赖于环形总线的争用。Wang 等人 61 通过利用 iGPU 压缩通道来诱导数据相关的 DRAM 流量和缓存利用率,在 Web 浏览器中开发跨源像素窃取攻击。鉴于 LLC 在 CPU 和 GPU 之间共享,他们演示了如何使用 LLC 行走时间来推断 GPU 引起的 CPU 缓存状态变化。Wang 等人 62 将之前对 AES 实现的定时侧信道攻击 63 扩展到 iGPU。
最近的一些研究也深入研究了 GPU,例如 Qualcomm Adreno GPU 和 Apple GPU。在 Arm 的系统级缓存的基础上,Cronin 等人 64 利用 Arm DynamIQ 的 GPU 和共享缓存架构创建了一个网站指纹识别侧信道。 Yang 等人 65 以 Qualcomm Adreno GPU 为目标,研究了渲染用户按键弹出窗口导致的 GPU 过度绘制。每次按键都会导致所选 GPU 性能计数器发生独特的变化,从而可以准确推断这些按键。为了访问 Android 上的 GPU 性能计数器,他们从 GPU 设备文件(例如,Qualcomm Adreno GPU 驱动程序的开源头文件 msm_kgsl.h)读取 GPU PC 的原始值。
5.2.2 对离散 GPU 的攻击
对离散 GPU 的攻击通常可分为两类:(i) 间谍和受害者(或木马)应用程序共位于单个 GPU 上,表示为 sGPU;(ii) 间谍和受害者(或木马)应用程序共位于不同的 GPU 上,表示为 mGPU。例如,这种情况可能涉及配备多个 GPU 的系统,例如 NVIDIA 基于 Pascal 的 DGX-1 系统,包含八个 Tesla P100 GPU。
或者,它可能涉及配备 MIG 启用 GPU 的系统,其中单个物理 GPU 被划分为多个实例,每个实例都充当具有专用资源的独立 GPU,例如 NVIDIA A100 和 H100。
针对单个 GPU 的攻击。此类攻击通常假设仅具有用户级权限的攻击者要么在单个 GPU 上启动 GPU 内核,以从执行时间、性能计数器和其他泄漏向量等测量中获取见解;要么与单个 GPU 上的受害者进程共置以建立隐蔽通道。
下面,我们回顾现有研究并将它们分为以下几个方面:
在基于 GPU 的加密实现中恢复私钥:最近的研究展示了从在 GPU 上运行的加密应用程序中恢复加密密钥(例如 AES 和 RSA 私钥)的能力。 Jiang 等人 63 利用不同线程访问内存时生成的地址之间的时序差异,其中执行时间受合并后唯一内存请求数量的影响。因此,密钥会影响线程访问的地址模式,从而影响观察到的 AES 加密运行时间。在他们的另一项研究 66 中,他们建立了 warp 表查找的执行时间与 warp 内线程生成的共享内存库冲突数量之间的相关性。然后使用这些与密钥相关的时序差异将测量的执行时间与 AES 加密在 GPU 上执行的最后一轮的密钥相关联。Ahn 等人 67 利用负时序相关性恢复 AES 的早期密钥字节,同时对后期的 AES 密钥字节使用缓存冲突攻击。最近,Giner 等人 68 从 AES T 表 GPU 实现中恢复密钥。他们分配一个相当大的缓冲区来占用缓存的很大一部分,执行 AES 加密,然后使用 Prime+Probe 来识别与加密的输入和输出相关的被驱逐的缓冲区偏移量。他们在 6 分钟内恢复了整个 AES 密钥,表现出了卓越的性能,而之前的研究则需要 15 到 30 分钟。此外,除了基于 GPU 的 AES 实现之外,Luo 等人 69 还介绍了一种针对 RSA 实现的定时侧信道攻击。他们利用解密时间与每个解密窗口的减少次数之间的相关性来提取 RSA 私钥。
从基于 GPU 的神经网络 (NN) 推断敏感信息:其他攻击利用侧信道泄漏从 NN 等 ML 模型推断信息。Zhu 等人 70 和 Hu 等人 71 专注于总线的攻击面,特别是 PCIe(如图 4a 所示)。Zhu 等人 70 离线对关键数据结构(例如 GPU 命令头)进行逆向工程,并通过监听设备收集受害 PCIe 数据包以在在线阶段重建模型。被盗的 DNN 模型具有与原始模型相同的参数和语义相同的架构。这种攻击的一个潜在缓解措施是加密 PCIe 流量。相比之下,Hu 等人 71 假设对手无法访问通过总线的数据,只能访问地址,即使使用加密数据也可以进行攻击。
他们对离散 GPU 的内存和 PCIe 总线进行总线监听攻击,获取内核读/写访问量和内存地址跟踪。将提取的架构事件与模型内部架构相关联。另一类攻击发生在两个并发的 GPU 应用程序之间,如图 4b 所示。在 72 中,它们 (i) 通过 GPU 内存利用率应用程序编程接口 (API) 或 GPU 性能计数器实施网站指纹攻击;(ii) 通过按键时序分析在交互期间或在键盘上键入字符时监视用户的网络活动;(iii) 利用 GPU 计算堆栈中的 CUDA 间谍利用共享资源推断 NN 结构。与 72 相比,Wei 等人 73 考虑在不同 VM 上进行应用程序的细粒度时间分片共享,并利用性能计数器上的上下文切换惩罚作为泄漏向量来恢复 DNN 的层组成和超参数。
大多数这些攻击需要对 NVIDIA GPU 细节进行广泛的逆向工程。这是因为 GPU 驱动程序和内部 GPU 工作原理是闭源的,并且关键数据结构未记录(参见第 2.1 节)。换句话说,这些因素在一定程度上增加了攻击的难度,但并不能从根本上阻止攻击。
间谍和受害者同时在单个 GPU 上运行的隐蔽通道攻击:成功的隐蔽通道攻击的关键是识别木马和间谍所使用的共享资源,这通常需要对 GPU 架构进行大量的逆向工程。这一过程对于揭示有关 GPU 组件的详细信息(如 TLB 和其他共享资源)是必不可少的,这些详细信息可用于隐蔽通信。Naghibijouybari 等人 72 首先对硬件块和 warp-to-warp 调度程序进行逆向工程以建立共置,然后了解缓存、功能单元和内存上的争用情况,最后基于这些资源构建隐蔽通道,无错误带宽超过 4 Mbps。由此,他们恢复了 NN 中的神经元数量。Ahn 等人 38 首先对现代 GPU 内的片上网络结构进行逆向工程,并注意到 GPU 的分层组织导致相邻核心之间共享互连带宽。然后,他们利用互连通道的争用,利用时钟寄存器进行发送方-接收方同步,最终建立具有惊人高带宽 24 Mbps 的微架构隐蔽通道。Nayak 等人 74 对 NVIDIA 1080Ti 的 TLB 层次结构细节以及所有 TLB 级别的细节(例如条目数和结合性)进行了逆向工程。他们使用 Prime+Probe 通过共享 L3 TLB 创建隐蔽时序通道。借助 MPS,他们将 GPU 基于 L3 TLB 的隐蔽通道的带宽增加到 81 Kbps。与以前的工作依赖通过 CUDA 或 OpenGL 访问本机 GPU API 进行高精度性能计数器监控不同,Giner 等人 68 不依赖 WebGPU 提供的硬件计时器。相反,他们使用共享内存缓冲区和专用线程来不断增加共享变量,充当计时器。利用此计时器及其 GPU 加速缓存驱逐集构造,他们为 L2 缓存建立了一个 Prime+Probe 缓存隐蔽通道,带宽为 10.9 KB/s。
攻击多个 GPU。在 NVIDIA 的 DGX 机器中,离散 GPU 通过 NVLink 和 PCIe 连接,Dutta 等人 75 对缓存层次结构进行逆向工程,并表明一个 GPU 上的攻击者可以通过 NVLink 在另一个 GPU 的 L2 缓存中创建争用。他们在两个 GPU 之间建立了一个 Prime+Probe 隐蔽通道,带宽达到 4 MB/s。此外,他们的侧信道攻击允许攻击者监视在不同 GPU 上运行的另一个应用程序,从而能够恢复 NN 的神经元数量。通过对最近的 NVIDIA GPU(例如 A100 和 H100)中的 TLB 结构进行逆向工程,Zhang 等人 21 发现了NVIDIA MIG 功能中的一个设计缺陷:MIG 不会对所有 GPU 实例共享的最后一级 TLB 进行分区。他们转储 GPU 内存以找到相应的表条目,并通过 1 MB GPU 内存窗口 (MMIO) 访问目标条目以进行运行时修改。他们最终基于共享 TLB 建立了一个跨 GPU 实例隐蔽通道。总之,这两项研究都首先识别多 GPU 系统中存在的共享资源,例如共享远程 L2 缓存 75 和共享 L3 TLB 21,然后在这些共享资源上创建可见的争用。
5.2.3 对策
对策可总结如下:
- 资源分区:对于利用共享微架构资源的攻击,攻击者和受害者之间的共置至关重要。缓解这种威胁的一种解决方案是静态或动态地划分资源(例如 LLC)76 77 78。通过将间谍和木马分配到不同的缓存分区,它们无法替换彼此的缓存行。第 2.1 节中介绍的 MIG 可能通过隔离独立 GPU 实例之间的资源来缓解这些攻击。然而,Zhang 等人 21 指出,启用 MIG 的 GPU 实例之间的最后一级 TLB 未正确分区,允许使用此漏洞创建隐蔽通道。
- 消除争用:可以通过控制内存控制器中的流量来消除进程之间的争用。这涉及将来自每个处理器的内存请求分组到同一个队列中,可能访问相同的内存组/端口 79 80。例如,TLB-pilot 81 通过考虑最后一级 TLB 的硬件隔离和应用程序的资源需求,将来自不同内核的线程块绑定到不同的流式多处理器组。它在内核启动之前收集内核信息,并通过协调软件和硬件调度以及采用内核拆分策略来减少负载不平衡。还有针对基于合并的相关性时序攻击的防御措施。例如,Kadam 等人 82 83 增加了额外的内存访问,使执行时间更难预测。为了防止基于 GPU 的 AES 中的时序和基于缓存的攻击,Lin 等人 84 使用分散和聚集技术来重新组织 AES 表,避免因时序或地址泄漏而进行依赖于密钥的查找。
5.3 物理侧信道攻击
我们将允许攻击者直接接近或接触 GPU 或其周围硬件组件的攻击归类为基于物理访问的攻击。这样的攻击者在物理上靠近设备并可以直接与其交互。这可能涉及在设备上或附近直接放置传感器或监控设备以捕获物理信号或发射。请注意,我们将从远处监控或操纵目标设备的物理属性,而不直接物理访问设备本身的攻击称为基于远程访问的攻击(在 85 中称为混合攻击)。此类攻击使用例如无线传感器或网络连接设备从远处捕获目标设备发出的信号或发射。
5.3.1 基于物理访问
Luo 等人 86 和 Gao 等人 87 专注于通过利用物理属性来恢复 AES 私钥。Luo 等人利用相关功率分析来分析 GPU 的功耗(即电源迹线),从而迫使攻击者对电源进行检测。Gao 等人采用精确触发机制对 EM 迹线进行采样,并建立启发式泄漏模型以利用并行场景中的并发 MMIO 泄漏。
此方法需要移除 GPU 的散热器并将探针放置在 GPU 芯片表面附近。
Hu 等人 71 利用 MMIO 侧信道攻击来捕获内存访问量和内核执行时间,方法是针对 CPU-GPU 互连或共置 CUDA 间谍。这使他们能够在没有任何 NN 模型先验知识的情况下推断出模型架构。同样,Chmielewski 和 Weissbart 88 使用简单的 MMIO 分析来恢复 NN 模型的部分信息。 Maia 等人 89 展示了如何通过物理传感器利用 GPU 电源线发出的磁通量来恢复 64 个 NN 的完整模型架构。Horvath 等人 90 使用相关 EM 分析来恢复 CNN 模型卷积层中的权重和偏差。
Taneja 等人 85 捕获频率、功率和温度(通过内部传感器监控)的侧信道泄漏,以响应集成和独立 GPU 中执行的工作负载。他们的攻击会观察指令和数据相关行为,根据供应商的不同需要不同的权限级别。例如,Apple 允许非特权访问两者,而 Google 限制温度读数但允许非特权访问电源。
5.3.2 基于远程访问
Zhan 等人 91 将 GPU 中使用的 DVFS 功能确定为 MMIO 侧信道漏洞的根本原因。在受害者使用 NVIDIA 或 AMD GPU 而不共享的情况下,攻击者可以监视受害者的活动并辨别访问过的网页(即网站指纹攻击)。关键思想是在网页渲染期间捕获 GPU 波动的工作负载,这会影响其发出的 MMIO 信号。这些工作负载变化,加上管理热量产生、风扇噪音和最小化功耗的需求,导致 GPU 性能水平发生变化(例如,NVIDIA GPU 中的 P 状态)。因此,当性能级别打开或关闭时,与 GPU 的内存时钟频率相对应的不同 MMIO 信号会出现或消失在频谱中。值得注意的是,这种攻击可以拦截距离最远 6 米的 MMIO 信号泄漏,甚至穿过一堵墙。Liang 等人 92 进行了类似的远场 MMIO 侧信道攻击,以推断 NN 模型中的层数及其类型、内核数量、层大小和步幅。
5.3.3 对策
当这些 EM 信号依赖于计算时,可以利用 GPU 的 MMIO 侧信道,从而揭示有关正在进行的活动的信息。当这些侧信道信号很强并且可以传播几米时,很容易测量。两种对策可以缓解此类漏洞。
(i) 隐藏和掩蔽 93:隐藏旨在降低攻击者可用的信噪比 (SNR)。产生 MMIO 噪声是可能的,但屏蔽计算机以降低发射的 MMIO 信号的强度更有效。
硬件制造商还可以专注于在未来的产品设计中最大限度地减少 MMIO 排放。掩蔽涉及将数据与随机掩码值相结合,以确保可观察到的泄漏与秘密无关。例如,在敏感任务期间创建随机 GPU 工作负载可能会破坏使用模式并降低可预测性 94 91。
但是,由于需要随机掩码和算法的额外复杂性,掩蔽可能很复杂。
(二)粗化粒度:另一种方法是降低 GPU DVFS 对工作负载变化的敏感度。这将使性能更加稳定,泄露的信息更少,敏感数据被推断的可能性也更低 91。然而,这样的变化可能会对 DVFS 的效率优势产生负面影响。
5.4 故障注入攻击
5.4.1 基于软件
Frigo 等人 95 使用基于 GPU 的计时器执行基于 JavaScript 的侧信道攻击,使攻击者能够识别物理内存的连续区域。此方法允许在已识别的内存区域中远程触发 Rowhammer 位翻转。因此,攻击者可以破坏地址空间布局随机化 (ASLR) 并逃避配备集成 Qualcomm Adreno GPU 的 Android 平台上的 Firefox 沙盒。Sabbagh 等人 96 引入了第一个名为“过载”的非侵入式 GPU 故障攻击。通过利用 DVFS 接口,攻击者可以在主机 CPU 上配置超出规格的电压和频率组合,并向 GPU 控制寄存器发送恶意过载命令,在 GPU 内核执行期间引发随机故障。他们还对受害者 CNN 推理执行错误分类攻击 97,通过解决其在时间精度方面的局限性以及缺乏对故障注入如何影响静默数据损坏的分析来改进过载攻击。
然而,与硬件故障注入攻击非常有效的加密算法不同,ML 模型,尤其是训练有素的商业 DNN 模型,本质上具有更高的容错性。这是因为随机硬件故障产生的计算错误通常会被后面的层吸收,不会对准确性产生很大影响。因此,在特定时间点引发硬件故障、优化毛刺电压-频率对以及确定适当的故障持续时间对于在 ML 模型中生成可控且有影响力的故障至关重要。为此,Sun 等人 98 专注于搜索 CNN 模型的敏感目标,确定适当的时间和位置参数,优化故障注入参数,最终将推理准确率平均降低 69.1%。Santos 等人 99 提出了一个两级故障注入框架,将寄存器传输级 (RTL) 故障注入的准确性与软件故障注入的效率相结合。
总体而言,研究人员主要利用软件接口来注入故障,通常利用 DVFS 或 Rowhammer 攻击。 Rowhammer 攻击利用了 DRAM 漏洞,即对内存行的重复访问(即锤击)可能导致相邻行的位翻转,从而导致危险的漏洞,例如从普通用户到系统管理员的权限升级。GPU 固有的高并行性和内存带宽可能使它们更容易受到 Rowhammer 攻击,因为它们可以比 CPU 更快地生成内存访问。
5.4.2 对策
在主内存或内存控制器中实施针对 Rowhammer 漏洞的保护最有效。Frigo 等人95 研究通过实施更严格的内存重用策略来防止攻击者瞄准有价值的数据。一种解决方案是增强 CATT 100 建议的对用户空间应用程序的物理分区。然而,这种方法在复杂性、性能和容量方面带来了权衡,因为动态分配(隔离)页面会增加复杂性并可能对性能产生影响。
关于基于 DVFS 的攻击,可以使对手更难以控制和利用接口。电压和时钟信号监视器可用于检测非常规变化1 。此外,一些供应商已禁用 DVFS 的所有软件可访问接口。例如,英特尔通过 BIOS 设置禁用超频邮箱接口,并通过微代码更新(在 SGX TCB 证明中包含此设置的当前状态)来防御基于 DVFS 的英特尔 SGX 攻击 101。类似的策略也可以应用于 GPU。
6. CPU TEE 的安全性
在本节中,我们介绍针对 CPU TEE 的典型攻击。由于已经存在专注于回顾现有针对 CPU TEE 的攻击的调查论文,并且本调查的目的是探索针对 GPU TEE 的潜在攻击,因此我们在此仅根据其技术细节和现有调查 45 102 103 104 对最常见的攻击进行分类。
6.1 Intel SGX 的安全性
6.1.1 受控通道和基于地址转换的攻击
受控通道攻击是 Xu 等人 105 于 2015 年提出的概念,它利用操作系统的权限来监视和操纵页表。这使攻击者能够发现 enclave 代码的内存访问模式,另请参见 106。这种攻击特别有效,因为虽然 Intel SGX enclave 保护敏感计算免受受损操作系统的攻击,但操作系统仍管理内存并可以观察页面错误,从而推断出有关 enclave 操作的详细信息。 SGX-Step 107 是一种实用工具,可用于执行此类受控通道攻击,具体方式包括配置高级可编程中断控制器 (APIC) 计时器、发出中断和跟踪页表条目。SGX-Step 支持确定性单步执行 enclave 执行,从而可以精确监控一段时间内的内存访问模式。
在无故障页表攻击 108 109 110 中,攻击者利用页表本身,而不是依赖页面错误。
这样,他们就可以通过检查页表属性和/或观察未受保护页表内存的缓存行为来推断目标的内存访问模式。但是,这些攻击仅限于页面级精度。
分段攻击 111 允许攻击者通过操纵分段单元来推断出更精细的内存访问模式,但这仅适用于 32 位 enclave,因为 64 位 enclave 中已禁用分段 102。
6.1.2 基于缓存的攻击
典型的缓存时序通道攻击(在非 SGX 场景中)包括四种主要变体,包括 Evict+Time 112、Evict+Reload 26、Prime+Probe 28 和 Flush+Reload 113,所有这些攻击都依赖于缓存命中和未命中之间的时间差。最近的研究 114 115 116 117 118 119 表明,SGX 飞地与任何其他软件应用程序一样容易受到相同的缓存攻击。事实上,由于 SGX 威胁模型中增强的攻击者,它们可能更容易受到攻击。几篇论文 114 116 117 119 利用 Prime+Probe 方法利用 L1 缓存和共享 LLC 作为攻击面。 Dall 等人 115 采取了略有不同的方法,他们在英特尔的配置区域上使用 Prime+Probe,从而使英特尔自己能够破坏增强隐私 ID (EPID) 不可链接性属性。Memjam 118 利用由 L1 缓存的 4K 别名引起的读写错误依赖关系来进行 Evict+Time 式攻击。
6.1.3 分支预测攻击
与基于地址转换和基于缓存的攻击相比,分支预测攻击提供了更详细的利用率级别。它们以分支预测单元为目标,包括分支目标缓冲区 (BTB) 120 121、页面历史表 (PHT) 122 123 和返回堆栈缓冲区 (RSB) 124。攻击者利用 BTB 来确定受害者是否采取了特定的分支指令。PHT 攻击试图引发受害者和攻击者进程之间的分支冲突,随后推断受害者进程分支的方向。 RSB 攻击依靠污染 RSB 来引发错误推测,从而导致泄漏。
6.1.4 瞬态执行攻击
瞬态执行攻击利用指令的无序和推测执行(总结于第 2.2 节),也在 SGX 的背景下进行了研究。前面提到的 BTB 和 RSB 攻击 120 124 也属于此类攻击,源自 Spectre 33。此外,Foreshadow 攻击 125 通过使用类似 Meltdown 的技术针对 SGX,破坏了飞地执行机密性。
虽然 MDS 攻击 126 127 35 也利用推测和无序执行,但它们主要利用目标微架构的各种特定于实现且未记录的中间缓冲区的信息泄漏。
SGAxe 128 和 Crosstalk 34 扩展了 MDS,以便从 SGX 飞地中提取私钥。
6.1.5 基于软件的故障注入和侧信道攻击
在故障注入攻击中,攻击者通过引入恶意故障来破坏系统的正常运行,然后从故障执行中获取秘密信息。
基于软件的故障攻击将威胁模型从需要物理访问目标设备的本地攻击者扩展到仅具有本地代码执行能力的潜在远程攻击者。多项研究 129 101 130 利用 x86 CPU 上的特权 DVFS 可靠地破坏飞地计算,从而损害飞地的机密性和完整性。Chen 和 Oswald 131 表明,对 SGX 的软件故障攻击也可以通过转向 Supermicro 服务器系统上的管理芯片来发起,甚至可以永久损坏主机 CPU。除了基于电压缩放的攻击外,SGX-Bomb 132 还利用 Rowhammer 漏洞在飞地内存中引发位翻转,导致数据完整性检查失败并随后导致系统锁定。
除了这些故障注入攻击外,Lipp 等人 133 还利用对英特尔运行平均功率限制 (RAPL) 接口的非特权访问来利用侧信道攻击。该接口揭示了与功耗相关的值,从而创建了一个可在英特尔服务器、台式机和笔记本电脑 CPU 上利用的电源侧通道。Wang 等人 134 表明,可以通过频率缩放等间接渠道测量功率泄漏,而 Liu 等人 135 使用节流等相关功能来泄露 SGX 飞地的机密。
6.1.6 基于硬件的攻击
除了基于软件的故障注入攻击外,Chen 等人 131 136 还探索了针对 SGX 飞地的硬件级故障注入攻击。“VoltPillager”是一种低成本工具,可在 CPU 和电压调节器之间的串行电压识别 (SVID) 总线上注入消息,从而破坏英特尔 SGX 飞地的机密性和完整性 136。 Chen 和 Oswald 后来证明,通过电源管理总线 (PMBus) 降压同样可以破坏 SGX 飞地的完整性,从而绕过英特尔针对先前软件降压攻击的对策 129 101 130。“MEMBUSTER” 137 引入了一种片外攻击,通过监听内存总线(使用高规格、昂贵的实验室设备)、提取内存访问模式并使用关键页面白名单和缓存压缩等技术增加缓存未命中来破坏 SGX 飞地的机密性。
6.1.7 基于接口的攻击
如果 SGX 飞地未能严格遵守受信任和不受信任代码之间的安全接口,则可能会危及安全性。尽管有精心设计的开源软件开发工具包 (SDK),但 Van Bulck 等人 138 发现了应用程序二进制接口 (ABI) 和 API 中的几个清理漏洞,导致内存安全和侧信道漏洞。 Alder 等人 139 通过 ABI 探索了影响 SGX 安全区中浮点计算的攻击面,表明控制和状态寄存器并不总是得到正确清理。
最近,人们开始关注 SGX 的符号执行工具 140 141 142。Pandora 140 支持与运行时无关的符号执行精确认证的安全区二进制文件,并验证安全区屏蔽运行时。Pandora 可以在 11 个不同的 SGX 屏蔽运行时中自主发现 200 个新的和 69 个已知的易受攻击的代码位置。
6.1.8 对策
在本节中,我们根据先前的调查 102 104 和我们总结的攻击论文中提出的潜在解决方案,回顾和分类最相关的对策。
- 系统/微代码级对策:CPU 的复杂指令通常由称为微代码的低级软件管理,而不是完全在硬件中实现。因此,英特尔可以发布微代码更新,这通常是最有效的方法。例如,为了应对基于 DVFS 的攻击(如 Plundervolt 101),英特尔发布了微代码更新,通过 MSR 0x150 完全禁用软件电压调节接口。
- 基于编译器的对策:除了英特尔的解决方案外,基于编译器的方法也很有效。确定性多路复用 106 通过主动访问预定顺序中的所有数据和代码,确保页面错误访问模式无论输入值如何都保持一致。 “T-SGX” 143 使用英特尔的事务同步扩展 (TSX) 将异常和中断重定向到特定页面,如果检测到页面错误,则终止程序。Chen 等人 144 提出使用可靠的时间测量进行屏蔽执行,以检查目标程序的执行时间。“Cloak” 145 使用硬件事务内存 (HTM) 来防止恶意缓存观察。同样,故障检测 146 可以帮助缓解基于 DVFS 的故障注入攻击。
- 随机化:“SGX-Shield” 147 利用 ASLR 创建一个安全的 enclave 加载器,秘密随机化内存空间布局,向攻击者隐藏敏感操作。Hosseinzadeh 等人 148 提出运行时控制流随机化,作为 llvm 上的编译器扩展实现。“DR.SGX” 149 通过排列数据位置来破坏内存观察。
- 应用程序/源代码设计:最后,开发人员可以以防侧信道的方式设计安全区应用程序。早期的作品如“OBFUSCURO”150,使用 Oblivious RAM (ORAM) 保护来强制操作,以防止攻击者推断访问模式。几种方案 151 152 153 利用 x86_64 汇编中实现的 Oblivious 原语来设计数据无关的应用程序。这些原语专门在处理器专用的寄存器上操作,确保对安全区外部代码隐藏的内容以及任何寄存器到寄存器的数据操作都是数据无关的。
6.2 Arm TrustZone 的安全性
6.2.1 构建 BUG
Cerdeira 等人 45 检查了从公共通用漏洞和暴露 (CVE) 数据库和供应商公告报告中获得的错误报告,将它们分为验证错误、功能错误和外部错误。这些错误无处不在,经常被利用来提升权限,使攻击者能够完全劫持 Qualcomm 154 和华为 155 设备中的内核或破坏 Samsung Pay 156 等客户端应用程序。
6.2.2 基于缓存的攻击
鉴于在启用 TrustZone 的处理器中缓存在 NW 和 SW 之间共享,一些研究利用由这种缓存一致性引起的争用来提取敏感信息 157 158 159 160 161。几位作者 157 159 161 使用 Prime+Probe 方法来监视 TrustZone 内的缓存活动。
6.2.3 分支预测攻击
与前面提到的对英特尔 SGX 的攻击类似,分支预测器也可用于攻击 TrustZone。由于 BTB 在 NW 和 SW 之间共享,因此可以使用 Prime+Probe 等技术向 NW 泄露安全信息。例如,Ryan 162 成功地从高通硬件支持的密钥库中恢复了一个 256 位私钥。
6.2.4 基于软件的故障注入攻击
一些研究还将基于软件的故障注入攻击扩展到 TrustZone 或基于 TrustZone 的系统。“CLKSCREW” 163 利用对 DVFS 的操纵来诱导错误计算,以突破 TrustZone 硬件强制边界、提取密钥并绕过代码签名操作。
基于 Rowhammer 的攻击也已被改编以破坏 TrustZone 安全性。鉴于超频通常涉及以高频率运行处理器,而这相对容易检测和预防(例如,通过硬件频率锁定),“VoltJockey” 130 采用不同的策略,通过操纵电压而不是频率来在受害核心上产生硬件故障。 Carru 164 使用位翻转绕过安全措施并访问安全内存,从而能够提取 RSA 密钥并破坏 TrustZone 提供的安全存储。
6.2.5 对策
在本节中,我们根据之前的调查 45 和总结的攻击论文中的潜在解决方案对对策进行回顾和分类。
在解决 Arm TrustZone 的架构防御问题时,一些研究工作 165 166 增强了 TEE 组件之间的隔离粒度并减少了在 SW 中运行的代码量,从而降低了在 SW 内发生严重特权升级攻击的风险。对策 167 168 解决了从 NW 访问 TEE 资源时身份验证不足/薄弱的弱点,以及用于跨 NW-SW 边界数据交换的共享内存可能不安全的问题。与英特尔 SGX 不同,TrustZone 缺乏内置的片上内存加密,这促使一些研究 169 170 设计加密策略来弥补这一缺陷。为了进一步加强对 TEE 和 TA 二进制文件的完整性和身份的验证,一些研究 171 172 引入了额外的可信计算原语,例如增强型远程证明和密封存储。为了解决实现错误,“RustZone” 173 通过使用 Rust 实现 TA 来扩展 TrustZone,Rust 本身就提供了内存安全和线程安全。
通过在软件 158 中仔细实现加密算法或使用专用硬件 159,可以缓解缓存侧信道攻击。缓存维护技术也可以有效缓解泄漏。例如,就 BTB 攻击而言,在 NW 和 SW 之间传输时刷新共享的微架构结构可以防止攻击通过 BTB 瞄准密钥。但是,正如 162 在 Nexus 5X 固件中观察到的那样,L1 缓存没有被刷新,这使得基于 Prime+Probe 的攻击仍然可行。
针对基于 DVFS 的故障注入攻击的对策与针对 SGX 的对策类似。与针对 TrustZone 的其他攻击相比,Rowhammer 攻击相对容易缓解。它们依赖于在相邻的内存行中诱导位翻转,只有当非安全内存位于 SW 内的内存行旁边时,它们才可行。如果安全内存位于单独的内存存储设备上,Rowhammer 攻击就变得不切实际。
6.3 AMD SEV 的安全性
6.3.1 内存加密问题
自 AMD SEV 47 发布以来,许多攻击都针对其早期的内存安全机制 174 175 176 177。Hetzelt 和 Buhren 176 利用类似返回导向编程的攻击来利用未加密的 VM 控制块,从而实现对客户 VM 中加密内存的任意读写。此类漏洞已在 SEV-ES 178 中得到解决。Du 等人 175 利用内存加密中的电子代码本 (ECB) 模式通过安装在客户 VM 上的 HTTP 服务器进行选择明文攻击。
Sevurity 179 利用 Xor-Encrypt-Xor (XEX) 模式中的漏洞将任意 2 字节指令插入加密内存,而 Morbitzer 等人 177 通过操纵嵌套页表来破坏机密性,从而更改客户 VM 的虚拟内存。大多数这些攻击源于缺乏完整性保护,但 SEV-SNP 49 通过反向映射表解决了这些问题。相反,“CIPHERLEAKS” 180 允许特权攻击者通过监视受害虚拟机密文的变化来推断客户虚拟机的执行状态或恢复某些明文。
作者强调,AMD 已确认 SEV-SNP 也容易受到 CIPHERLEAKS 攻击 103。
此外,“CROSSLINE”及其由 Li 等人 103 181 编写的变体通过利用地址空间标识符 (ASID) 的不当使用来控制虚拟机对加密内存页面、缓存行和 TLB 条目的访问,从而提取受害虚拟机的内存内容。它们还通过毒害 TLB 条目来损害 SEV 虚拟机的完整性和机密性 182。值得注意的是,SEV-SNP 有望解决这些问题,包括 TLB 滥用。
6.3.2 基于软件的故障注入攻击
Morbitzer 等人 183 利用系统缺乏内存完整性保护,通过 I/O 通道在 SEV VM 中注入故障并执行任意代码,使用虚拟机管理程序定位并触发加密有效负载的执行。但是,SEV-SNP 49 可以通过反向映射表 (RMP) 缓解此问题。Buhren 等人 184 提出了一种电压故障注入攻击,可以在 AMD 安全处理器上执行自定义有效负载,随后通过部署自定义 SEV 固件解密 VM 的内存。
“CacheWarp” 185 提出了一种针对 AMD SEV-ES 和 SEV-SNP 的新型基于软件的故障攻击,利用在架构级别将修改后的客户 VM 缓存行恢复到其先前(陈旧)状态的可能性。此攻击只需要在攻击者选择的点中断 VM,即可使修改后的缓存行无效,而无需将其写回内存。最近,Schlüter 等人 186 介绍了一种新型攻击,其中虚拟机管理程序将精心设计的恶意 #VC(AMD 的新异常,用于促进虚拟机与不受信任的虚拟机管理程序之间的通信)注入受害虚拟机的 CPU,使攻击者能够在虚拟机中诱发任意行为。在另一个相关攻击中,“HECKLER” 187 表明虚拟机管理程序可以注入恶意的非计时器中断来破坏虚拟机。
它们利用具有全局效果的中断处理程序,允许操纵虚拟机的寄存器状态来改变数据和控制流。一般来说,SEV-SNP 仍然容易受到这种基于软件的故障注入攻击。
6.3.3 中断驱动攻击
与 SGX-Step 框架 107 类似,SEV-Step 188 引入了针对 SEV VM 的可靠单步执行。除了此功能之外,SEV-Step 还方便访问常见的攻击技术,例如页面错误跟踪和针对 SEV 的缓存攻击。
6.3.4 对策
大多数与内存相关的攻击已在最近的 AMD 产品更新中得到解决。在这里,我们重点介绍针对故障注入攻击的对策。对于恶意电压下降或故障,类似于用于 SGX 和 TrustZone 的对策,可以实现硬件级电压监控电路和基于软件的检测机制。为了应对通过特定的虚拟机管理程序指令实现细粒度内存写抑制的故障攻击,在硬件级别限制这些指令的使用或实现编译器级别的解决方案可以确保正确的内存操作。对于注入恶意中断的攻击,可以通过监视外部中断或禁用中断处理程序来阻止或检测注入。
7. 关于 GPU TEE 未来方向的结论
在本节中,基于前面讨论的相关工作,我们概述了未来可能与 GPU TEE 相关的潜在攻击。我们注意到,由于 GPU TEE 尚未广泛商业化,因此目前还不可能实际评估这些攻击媒介,但相信未来可能会发现相应的漏洞。
7.1 针对基于 x86 的 GPU TEE 原型的潜在攻击
如第 4 节所述,针对 x86 架构的最新设计各自具有独特的特性,旨在减小 TCB 大小并最大限度地减少硬件修改。这些设计的主要目标是保护 GPU 资源免受受感染操作系统的侵害,包括 GPU 驱动程序。我们在图 5 中概述了关键设计思想并提供了总体概述。具体来说,在这种威胁模型中,攻击者控制整个软件堆栈,包括操作系统、虚拟机管理程序和设备驱动程序。攻击者还旨在破坏用户应用程序和 GPU 之间的硬件和软件 I/O 数据路径。GPU 驱动程序的功能通常分为安全部分和非安全部分,而不是将整个驱动程序移植到 TEE 区域,这会增加 TCB 大小。鉴于攻击者可以破坏操作系统,位于操作系统中的 GPU 驱动程序也在此范围内。GPU 的设备内存是可信的,攻击者无法观察或破坏存储在其中的数据。此外,我们认识到,位于 CPU 和 GPU 两侧的电源和频率管理模块不在保护范围之内。接下来,基于此安全模型,我们将分析在实际应用中部署此类设计时可能构成威胁并泄露信息的潜在攻击。
7.1.1 针对英特尔 SGX 的现有攻击
鉴于 GPU 驱动程序中的基本 GPU 资源管理功能位于 TEE 区域内,第 6.1 节中概述的大多数攻击都可能以该区域为目标来窃取机密(参见图 5 中的攻击面 ➀)。值得注意的是,虽然一些研究可能断言大多数针对 SGX 的旁道攻击超出了范围,但在考虑在实际云平台中部署 GPU TEE 设计时,提供相应的保护至关重要(其中甚至某些形式的恶意内部人员的物理访问也可能相关)。这些潜在泄漏可归类如下:(i) 观察内存访问模式可让攻击者推断出 SGX 区域内程序的控制流,包括决策过程。有了这种洞察力,攻击者可以监视 GPU 命令和数据传输,从而推断出在 GPU 上执行的任务。例如,推断基于 CNN 的视频分析任务每帧中检测到的对象的数量(和大小)可能变得可行 152。(ii) 监视页面错误模式使攻击者能够从某些加密开源软件库(例如 OpenSSL 和 Libgcrypt)的实现中提取加密密钥 106。有了这些知识,攻击者随后可以访问传输到 GPU 的所有敏感信息。(iii) 利用时间通道可让攻击者推断出有关在 GPU 上运行的内核的敏感信息。例如,Telekine 22 展示了攻击者如何通过仅观察 GPU 内核执行的时间来准确地对 ImageNet 中的图像进行分类,而无需访问图像本身。
7.1.2 基于 DVFS 的攻击
为了提高能源效率,许多当前的 CPU 处理器都启用了 DVFS 扩展,该扩展可根据实时计算负载调整处理器核心的频率和电压。此功能现在扩展到 NVIDIA GPU 等加速器。如 Lightning 98 所示,NVIDIA GPU 工作电压可以通过 NVIDIA 驱动程序在 CPU 上执行的软件指令进行更改,这可能使攻击者能够引发瞬态电压故障以进行故障注入攻击。此外,当前的 NVIDIA GPU 为锁相环 (PLL) 和时钟分频器提供不受限制的控制,允许通过使用 NVIDIA 调整频率偏移轻松超频,从而可能促进基于频率的故障注入攻击。因此,对于基于 x86 的 GPU TEE 原型,我们在图 5 中确定了关于基于 DVFS 的攻击的两个攻击面(参见➁ 和 ➅)。
- 在 CPU 方面。在许多现有的 GPU TEE 原型 11 12 14 17 19 20 中,GPU 驱动程序负责 DVFS 参数控制的部分位于其 TCB 之外。因此,攻击者可以从 CPU 端灵活调整 GPU 电压和频率,从而在 GPU 端引发故障。此外,值得调查的是,之前针对 SGX 的攻击是否可以访问相关内存区域以更改 DVFS 参数,即使管理这些参数的 GPU 驱动程序在 SGX 飞地中运行受到保护。
- 在 GPU 方面。由于 GPU 硬件缺乏保护,具有 GPU 硬件物理访问权限的攻击者可以直接操纵 GPU 电压,从而向正在运行的 GPU 内核注入故障。例如,“VoltPillager” 136 可以在 CPU 和主板上的电压调节器之间的 SVID 总线上注入消息,从而实现对 CPU 核心电压的精确控制。最终,这会危及英特尔 SGX 飞地的机密性和完整性。
探索攻击者是否可以将恶意 SVID 数据包(或类似数据包)注入 GPU 卡上的相应总线,为进一步调查提供了一条有趣的途径。
7.1.3 对 PCIe 总线和 GPU 内存的物理攻击
在许多现有的 GPU TEE 原型中,由于缺乏供应商硬件支持(参见图 5 中的攻击面 ➂ 和 ➄),GPU 缺乏可信内存区域,导致 GPU 内存中的数据以明文形式暴露。因此,直接物理访问 GPU 内存可能会危及敏感数据。此外,如果攻击者可以确保(例如通过冷却)受 TEE 保护的内存内容得以保留,并且可以在 GPU 重置后读取,则冷启动攻击 189 可能具有相关性。
此外,由于 PCIe 互连暴露,因此可以通过专用硬件注入恶意 PCIe 数据包。
仅仅保护到 GPU 的路由路径不足以保护通过 MMIO 或 DMA 的 GPU 控制 12。虽然大多数设计都采用经过身份验证的加密来确保传输过程中的数据完整性,但仅凭这一点不足以保护数据的机密性和完整性。例如,某些设计缺乏安全身份验证和建立可信通信通道所必需的硬件信任根,包括加密密钥的安全存储和加密操作的安全执行环境。此外,确保安全启动和固件完整性对于保证安全通道建立过程的正确性至关重要。
7.1.4 针对 GPU 的架构/逻辑攻击
先前针对内存漏洞的攻击(参见第 5.1 节)也是可能的,因为当前的 GPU TEE 设计经常忽略不同 GPU 上下文之间的内存清除(这在上述冷启动攻击的情况下在重置之间也很重要)。因此,安全的内存管理策略(包括内存初始化和清除)对于 GPU TEE 工作流的完整性和安全性至关重要。
7.2 针对基于 NVIDIA Hopper H100 的 GPU TEE 的潜在攻击
除了最先进的基于 x86 的 GPU TEE 原型外,基于 Hopper 架构的 NVIDIA Hopper H100 Tensor Core GPU 最近推出了用于机密计算的高级功能(目前仅对部分用户可用)。根据 NVIDIA 的白皮书 16,H100 依赖特定的 CPU TEE(例如 Intel TDX、AMD SEV-SNP 或 Arm CCA)来实现机密计算。在这里,我们根据图 6 中的白皮书提供了基于 NVIDIA Hopper H100 的 GPU TEE 的通用系统模型。具体来说,在 CPU 方面,此 GPU TEE 在基于 VM 的 TEE 的标准威胁模型内运行 186 187 185。不受信任的虚拟机管理程序将 VM 映像加载到内存中并管理初始配置。远程证明在启动启动过程之前测量 VM 的初始内存状态。在 VM 中执行的软件(包括客户操作系统、用户应用程序和 TEE 的可信模块)是 TCB 的一部分。规范要求虚拟机管理程序设置某些初始状态(例如,vCPU 的数量、支持的硬件功能和内存大小)。硬件会验证这些配置,并且只有在设置正确的情况下才会进入 VM。此外,硬件在退出 VM 之前将某些值(例如,特定的通用寄存器)清零,并管理 VM 上下文切换期间的上下文保存和恢复。
在 GPU 方面,H100 GPU 预计将配备内存加密引擎(很可能是类似于 SGX 的内存加密引擎 (MEE) 190)和其他功能,以确保数据和代码的机密性和完整性,甚至可以防御针对 PCIe 总线和 GPU 内存的基本物理攻击。但是,白皮书没有提供有关这些功能的详细技术信息。
7.2.1 针对基于 VM 的 TEE 的现有攻击
可能是因为基于 VM 的 TEE 是近年来才提出的,目前对针对它们的攻击的研究有限。然而,最近的发展表明,基于软件的故障注入攻击对 AMD SEV-SNP 非常有效。这些攻击将允许对手破坏 VM 中的 GPU 驱动程序,从而实现对 GPU 上运行的敏感任务的精确控制(参见图 6 中的攻击面 ➀)。例如,“WeSee”攻击 186 针对基于 NVIDIA H100 的 GPU TEE 中使用的 AMD SEV-SNP,允许攻击者通过伪造 #VC 进行 MMIO 读取来执行任意内存写入。
此功能将使攻击者能够修改发送到 GPU 的命令和数据。更重要的是,像 CacheWarp 185 这样的攻击在最新的 SEV-SNP 实现中仍然没有得到缓解,它们不依赖于客户虚拟机的具体情况。因此,为基于 NVIDIA H100 的 GPU TEE 配备针对这些攻击的保护措施以保护 GPU 数据的机密性和完整性至关重要。探索针对其他基于 VM 的 TEE(如 Intel TDX)的潜在攻击也很重要,因为它们是基于 NVIDIA H100 的 GPU TEE 不可或缺的一部分。
7.2.2 基于 DVFS 的攻击
与 GPU TEE 原型类似,我们在图 6 中确定了基于 DVFS 的攻击的两个攻击面(参见➀ 和 ➃)。
在 CPU 方面。回想一下,针对基于 VM 的 TEE(例如 AMD SEV-SNP)的现有攻击允许攻击者将权限提升到 root 并将他们选择的任何值写入受害 VM 中的任何位置。因此,具有这些能力的攻击者可能能够使用通过 NVIDIA 驱动程序在 CPU 上执行的软件指令来操纵 GPU 的电压和频率。
在 GPU 方面。H100 白皮书 191 缺乏有关电压和频率管理的详细信息。假设攻击者具有物理访问权限,他们可能会执行类似“VoltPillager” 136 的攻击,将恶意 SVID 数据包或等效数据包注入相关 GPU 卡的总线,从而改变 GPU 电压。
总之,具有所述能力的攻击者可以从 CPU 和 GPU 两方面修改电压和频率。然而,这些变化是否以及如何影响在 NVIDIA H100 GPU 上运行的任务仍不确定。具体而言,目前尚不清楚诱发的故障是否会显著影响任务,例如降低 ML 模型准确性或完全提取私有加密密钥。在撰写本调查时,基于 NVIDIA H100 的 GPU TEE 的完整机密工作流程尚不可用,因为相应的 NVIDIA 库仍在开发中。
7.2.3 GPU 上的微架构侧通道和隐蔽通道攻击
H100 白皮书 191 强调了 Hopper 架构针对机密计算的增强安全功能,特别是在协作多方计算场景中,即具有多个 GPU 的单个租户和具有单个 GPU 的多个租户。
但是,第 5.2 节中讨论的漏洞可能会导致 NVIDIA H100 GPU 上的安全漏洞。
具有多个 GPU 的单个租户。在具有多个 GPU 的单个租户场景中,单个 VM 同时分配多个物理上独立的 GPU,每个 GPU 通过 NVLink 连接。回想一下,Dutta 等人 75 证明,一个 GPU 上的攻击者可以通过 NVLink 在另一个 GPU 的 L2 缓存上引发争用,从而实现跨 GPU 的隐蔽通道和 Prime+Probe 攻击。然而,由于两个关键因素(参见图 6 中的攻击面 ➁),此类攻击在 NVIDIA H100 GPU 模型中可能会面临挑战。首先,攻击者的进程需要通过 NVLink 访问远程 GPU 的内存,这在 NVIDIA H100 GPU TEE 的威胁模型中可能会受到限制。因此,挑战在于如何使间谍进程能够在其中一个指定的 GPU 中运行并访问另一个 GPU 的内存。其次,H100 GPU 具有 50 MB 的 L2 缓存,比 A100 GPU 大 1.25 倍。然而,更大的 L2 缓存具有更多的集合和路径,可以使 Prime+Probe 攻击更加困难,因为攻击者需要填充和监视更多的缓存行。
单个 GPU 上的多个租户。在单个 GPU 上有多个租户的情况下(参见图 6 中的攻击面 ➂),借助 MIG 功能,NVIDIA H100 GPU 可以划分为多个 GPU 实例,每个实例在内存系统路径方面都是独立的,包括片上交叉开关端口、L2 缓存组、内存控制器和 DRAM 地址总线。然而,如第 5.2 节所述,Zhang 等人 21 展示了 MIG 功能的一个设计缺陷,即最后一级 TLB 并未被所有 GPU 实例安全地划分。因此,此缺陷可导致不同 GPU 实例之间发生隐蔽通道攻击。鉴于此模式支持多租户,有必要调查使用 MIG 创建的每个 GPU 实例是否确实具有通过其他微架构组件(例如 L1 缓存、warp 调度程序和命令处理器)的单独且隔离的路径。
7.3 针对基于 Arm 的 GPU TEE 原型的潜在攻击
由于 Arm GPU 的 TEE 存在各种架构差异,已有多项研究对基于 Arm 的 GPU TEE 进行了探索。在图 7 中,我们以 StrongBox 10 提出的设计为基础。StrongBox 是一个合适的基础,因为它是最近推出的,不依赖于特定的 Arm 端点功能,也不需要对 GPU 或 CPU 芯片进行硬件修改。值得注意的是,虽然 Arm 或 Intel 平台上的安全 GPU 计算可能与 Arm 的 CCA 领域风格架构 18 不一致,但我们省略了有关这方面的见解,因为它与基于 NVIDIA Hopper H100 的 GPU TEE 非常相似。在图 7 中,攻击者获得了对内核和整个 GPU 软件堆栈的控制权,包括 GPU 驱动程序和运行时。这种控制使他们能够操纵 GPU 应用程序中的敏感数据和代码。他们可以直接访问用于 GPU 任务的统一内存或操纵外围设备以逃避检测。此外,通过破坏 GPU 驱动程序,攻击者可以破坏 GPU 应用程序的内存管理,从而可能将敏感数据映射到不受保护的区域。与现有的基于 x86 的 GPU TEE 类似,信任被置于 GPU 和安全世界中。基于此威胁模型,我们将在下面讨论潜在的攻击。
7.3.1 针对 Arm TrustZone 的现有攻击
第 6.2 节中总结的针对 TrustZone 的攻击也适用于此基于 Arm 的 GPU TEE 原型。这些侧信道攻击对 TrustZone 的影响间接影响基于 Arm 的 GPU TEE(参见图 7 中的攻击面 ➀ 和 ➁)。潜在后果可总结如下:(i) 攻击者可以将权限提升到 root 以提交大量恶意任务 154 155。但是,在恶意任务和受害者任务之间建立隐蔽通道的可能性不大,因为 GPU 任务在 Arm 端点 GPU 上是按顺序执行的 10。(ii) 攻击者可能会监视缓存活动以从 TrustZone 中提取 AES 密钥 158 159 161,从而损害 CPU 和 GPU 之间传输的数据的机密性。
7.3.2 集成 GPU 上的微架构侧信道和隐蔽通道攻击
如表 3 所述,有几项研究调查了集成 GPU 上的侧信道和隐蔽信道攻击,其中一些可能适用于基于 Arm 的 GPU TEE 原型(参见图 7 中的攻击面 ➂)。
- CPU 和 iGPU 之间的隐蔽通道:Dutta 等人 60 通过 LLC 在 CPU 上的木马进程和英特尔集成 GPU 上的间谍进程(反之亦然)之间建立了双向隐蔽通道。考虑到基于 Arm 的 GPU TEE 中的这种攻击,一种可能的情况是使用在 CPU 的正常世界中启动的木马进程,将位传送给 GPU。然而,由于未记录的 LLC/系统级缓存行为以及 Arm 架构中 CPU 和 GPU 之间缓存利用率的不对称视图,出现了挑战。
- 基于 Arm 的 GPU TEE 的现有威胁模型可能无法有效缓解利用数据依赖型 DRAM 流量和压缩引起的缓存利用率来揭示正常世界中的用户像素的攻击 61。需要进一步测试以评估此类攻击对基于 Arm 的 GPU TEE 的成功率。
7.3.3 对 GPU 内存的物理攻击
大多数现有的基于 Arm 的 GPU TEE 原型主要侧重于提供硬件强制隔离以保护敏感代码和数据,而不是采用像 Intel SGX 的 MEE 这样的内存加密机制。因此,直接物理访问 GPU 内存(也可能通过冷启动攻击 189)可能会危及敏感数据(参见图 7 中的攻击面 ➃)。例如,在 StrongBox 10 中,统一内存中定义为安全任务 RAM 的区域用作为机密 GPU 应用程序保留的固定和非安全内存区域。其主要目的是动态分配内存并建立 GPU 页表映射,从而防止对该区域的未经授权的访问控制。
7.3.4 基于 DVFS 的攻击
与 NVIDIA GPU 中的 DVFS 相比,Arm GPU(例如 Mali 系列)的电压和频率通常由电源管理集成电路 (PMIC) 控制。此组件负责管理各种系统元件(包括 CPU 和 GPU)的电源分配。因此,如图 7 所示(参见攻击面 ➄),具有权限的攻击者可以通过 PMIC 操纵处理器电压和频率设置,从而诱发硬件故障。此外,假设攻击者获得对片上系统 (SoC) 内电压调节器或时钟控制模块的物理访问权限,这促使进一步调查针对这些组件的硬件攻击 136 是否也适用于 Arm GPU。
8. 结论
随着集成 GPU 的异构系统的激增,GPU TEE 正在成为确保机密性和完整性的有效解决方案。在本次调查中,我们首先研究了现有的 GPU TEE 原型和 NVIDIA 的第一个商用 GPU TEE,提供了有关其设计含义和特性的关键见解。我们回顾了最近针对各种类型 GPU 的攻击,包括集成 GPU、单个 GPU 和多个 GPU,以及减轻这些威胁的努力。此外,我们总结了针对常见 CPU TEE(如 Intel SGX、Arm TrustZone 和 AMD SEV)的流行攻击。基于这些见解,我们探索了基于 x86 和基于 Arm 的 GPU TEE 原型以及 NVIDIA H100 GPU 的物理和软件级别的潜在攻击,强调需要仔细分析已经很复杂的攻击面。随着 GPU 架构和 GPU TEE 隔离机制的创新,这个攻击面将进一步扩大,随着这些系统广泛部署在计算领域,安全设计和防御策略需要不断发展。
参考
Ashfaq A. Khokhar, Viktor K. Prasanna, Muhammad E. Shaaban, and C-L Wang. 1993. Heterogeneous computing: Challenges and opportunities. Computer 26, 6 (1993), 18–27. ↩︎
Sparsh Mittal and Jeffrey S Vetter. 2015. A survey of CPU-GPU heterogeneous computing techniques. ACM Computing Surveys (CSUR) 47, 4 (2015), 1–35. ↩︎
Shaohuai Shi, Qiang Wang, Pengfei Xu, and Xiaowen Chu. 2016. Benchmarking state-of-the-art deep learning software tools. In 2016 7th International Conference on Cloud Computing and Big Data (CCBD). IEEE, 99–104. ↩︎
Sijun Tan, Brian Knott, Yuan Tian, and David J Wu. 2021. CryptGPU: Fast privacy-preserving machine learning on the GPU. In 2021 IEEE Symposium on Security and Privacy (SP). IEEE, 1021–1038. ↩︎ ↩︎
Shengyu Fan, Zhiwei Wang, Weizhi Xu, Rui Hou, Dan Meng, and Mingzhe Zhang. 2023. Tensorfhe: Achieving practical computation on encrypted data using gpgpu. In 2023 IEEE International Symposium on High-Performance Computer Architecture (HPCA). IEEE, 922–934. ↩︎
Pratyush Mishra, Ryan Lehmkuhl, Akshayaram Srinivasan, Wenting Zheng, and Raluca Ada Popa. 2020. Delphi: A cryptographic inference system for neural networks. In Proceedings of the 2020 Workshop on Privacy-Preserving Machine Learning in Practice. 27–30. ↩︎ ↩︎
Lucien KL Ng and Sherman SM Chow. 2021. GForce:GPU-Friendly oblivious and rapid neural network inference. In 30th USENIX Security Symposium (USENIX Security 21). 2147–2164. ↩︎ ↩︎
Neha Jawalkar, Kanav Gupta, Arkaprava Basu, Nishanth Chandran, Divya Gupta, and Rahul Sharma. 2023. Orca: FSS-based secure training with GPUs. Cryptology ePrint Archive (2023). ↩︎
Jean-Luc Watson, Sameer Wagh, and Raluca Ada Popa. 2022. Piranha: A GPU platform for secure computation. In 31st USENIX Security Symposium (USENIX Security 22). 827–844. ↩︎
Yunjie Deng, Chenxu Wang, Shunchang Yu, Shiqing Liu, Zhenyu Ning, Kevin Leach, Jin Li, Shoumeng Yan, Zhengyu He, Jiannong Cao, et al. 2022. Strongbox: A gpu tee on arm endpoints. In Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security. 769–783. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Andrei Ivanov, Benjamin Rothenberger, Arnaud Dethise, Marco Canini, Torsten Hoefler, and Adrian Perrig. 2023. SAGE: Software-based Attestation for GPU Execution. In 2023 USENIX Annual Technical Conference (USENIX ATC 23). 485–499. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Insu Jang, Adrian Tang, Taehoon Kim, Simha Sethumadhavan, and Jaehyuk Huh. 2019. Heterogeneous isolated execution for commodity gpus. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. 455–468. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Jianyu Jiang, Ji Qi, Tianxiang Shen, Xusheng Chen, Shixiong Zhao, Sen Wang, Li Chen, Gong Zhang, Xiapu Luo, and Heming Cui. 2022. CRONUS: Fault-isolated, secure and high-performance heterogeneous computing for trusted execution environment. In 2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 124–143. ↩︎ ↩︎ ↩︎
Sunho Lee, Jungwoo Kim, Seonjin Na, Jongse Park, and Jaehyuk Huh. 2022. Tnpu: Supporting trusted execution with tree-less integrity protection for neural processing unit. In 2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA). IEEE, 229–243. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Haohui Mai, Jiacheng Zhao, Hongren Zheng, Yiyang Zhao, Zibin Liu, Mingyu Gao, Cong Wang, Huimin Cui, Xiaobing Feng, and Christos Kozyrakis. 2023. Honeycomb: Secure and Efficient GPU Executions via Static Validation. In 17th USENIX Symposium on Operating Systems Design and Implementation (OSDI 23). 155–172. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
NVIDIA. 2022. NVIDIA confidential computing. https://www.nvidia.com/en-us/data-center/solutions/confidentialcomputing/. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Stavros Volos, Kapil Vaswani, and Rodrigo Bruno. 2018. Graviton: Trusted execution environments on GPUs. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). 681–696. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Chenxu Wang, Fengwei Zhang, Yunjie Deng, Kevin Leach, Jiannong Cao, Zhenyu Ning, Shoumeng Yan, and Zhengyu He. 2024. CAGE: Complementing Arm CCA with GPU Extensions. In Proceedings of the 31st Annual Network and Distributed System Security Symposium. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Ardhi Wiratama Baskara Yudha, Jake Meyer, Shougang Yuan, Huiyang Zhou, and Yan Solihin. 2022. LITE: a low-cost practical inter-operable GPU TEE. In Proceedings of the 36th ACM International Conference on Supercomputing. 1–13. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Jianping Zhu, Rui Hou, XiaoFeng Wang, Wenhao Wang, Jiangfeng Cao, Boyan Zhao, Zhongpu Wang, Yuhui Zhang, Jiameng Ying, Lixin Zhang, et al. 2020. Enabling rack-scale confidential computing using heterogeneous trusted execution environment. In 2020 IEEE Symposium on Security and Privacy (SP). IEEE, 1450–1465. ↩︎ ↩︎ ↩︎ ↩︎
Zhenkai Zhang, Tyler Allen, Fan Yao, Xing Gao, and Rong Ge. 2023. TunneLs for Bootlegging: Fully Reverse-Engineering GPU TLBs for Challenging Isolation Guarantees of NVIDIA MIG. In Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security. 960–974. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Tyler Hunt, Zhipeng Jia, Vance Miller, Ariel Szekely, Yige Hu, Christopher J Rossbach, and Emmett Witchel. 2020. Telekine: Secure computing with cloud GPUs. In 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). 817–833. ↩︎ ↩︎
Intel. 2024. Intel Mesa 3D Graphics Library. https://docs.mesa3d.org/systems.html. ↩︎
Tara Ghasempouri, Jaan Raik, Cezar Reinbrecht, Said Hamdioui, and Mottaqiallah Taouil. 2023. Survey on architectural attacks: A unified classification and attack model. Comput. Surveys 56, 2 (2023), 1–32. ↩︎
Daniel Gruss, Clémentine Maurice, Klaus Wagner, and Stefan Mangard. 2016. Flush+ Flush: a fast and stealthy cache attack. In Detection of Intrusions and Malware, and Vulnerability Assessment: 13th International Conference, DIMVA 2016, Spain, July 7-8, 2016. Springer, 279–299. ↩︎
Daniel Gruss, Raphael Spreitzer, and Stefan Mangard. 2015. Cache template attacks: Automating attacks on inclusive Last-Level caches. In 24th USENIX Security Symposium (USENIX Security 15). 897–912. ↩︎ ↩︎
Fangfei Liu, Yuval Yarom, Qian Ge, Gernot Heiser, and Ruby B Lee. 2015. Last-level cache side-channel attacks are practical. In 2015 IEEE symposium on security and privacy. IEEE, 605–622. ↩︎
Dag Arne Osvik, Adi Shamir, and Eran Tromer. 2006. Cache attacks and countermeasures: the case of AES. In Topics in Cryptology–CT-RSA 2006: The Cryptographers’ Track at the RSA Conference 2006, San Jose, CA, USA, February 13-17, 2005. Proceedings. Springer, 1–20. ↩︎ ↩︎
Dmitry Evtyushkin, Dmitry Ponomarev, and Nael Abu-Ghazaleh. 2016. Jump over ASLR: Attacking branch predictors to bypass ASLR. In 2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 1–13. ↩︎
Dmitry Evtyushkin, Dmitry Ponomarev, and Nael Abu-Ghazaleh. 2016. Understanding and mitigating covert channels through branch predictors. ACM Transactions on Architecture and Code Optimization (TACO) 13, 1 (2016), 1–23. ↩︎
Wenjie Xiong and Jakub Szefer. 2021. Survey of transient execution attacks and their mitigations. ACM Computing Surveys (CSUR) 54, 3 (2021), 1–36. ↩︎
Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Jann Horn, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, et al. 2020. Meltdown: Reading kernel memory from user space. Commun. ACM 63, 6 (2020), 46–56. ↩︎
Paul Kocher, Jann Horn, Anders Fogh, Daniel Genkin, Daniel Gruss, Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas Prescher, et al. 2020. Spectre attacks: Exploiting speculative execution. Commun. ACM 63, 7 (2020), 93–101. ↩︎ ↩︎
Hany Ragab, Alyssa Milburn, Kaveh Razavi, Herbert Bos, and Cristiano Giuffrida. 2021. Crosstalk: Speculative data leaks across cores are real. In 2021 IEEE Symposium on Security and Privacy (SP). IEEE, 1852–1867. ↩︎ ↩︎
Stephan Van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Giorgi Maisuradze, Kaveh Razavi, Herbert Bos, and Cristiano Giuffrida. 2019. RIDL: Rogue in-flight data load. In 2019 IEEE Symposium on Security and Privacy (SP). IEEE, 88–105. ↩︎ ↩︎
David N Muchene, Klevis Luli, and Craig A Shue. 2013. Reporting insider threats via covert channels. In 2013 IEEE Security and Privacy Workshops. IEEE, 68–71. ↩︎
Wu Zhenyu, Xu Zhang, and H Wang. 2012. Whispers in the hyper-space: high-speed covert channel attacks in the cloud. In USENIX Security symposium. 159–173. ↩︎
Jaeguk Ahn, Jiho Kim, Hans Kasan, Leila Delshadtehrani, Wonjun Song, Ajay Joshi, and John Kim. 2021. Network-on-chip microarchitecture-based covert channel in gpus. In MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture. 565–577. ↩︎ ↩︎
Amit Mazumder Shuvo, Tao Zhang, Farimah Farahmandi, and Mark Tehranipoor. 2023. A Comprehensive Survey on Non-Invasive Fault Injection Attacks. Cryptology ePrint Archive (2023). ↩︎
Victor Costan and Srinivas Devadas. 2016. Intel SGX explained. Cryptology ePrint Archive (2016). ↩︎
Mengyuan Li, Yuheng Yang, Guoxing Chen, Mengjia Yan, and Yinqian Zhang. 2024. SoK: Understanding Designs Choices and Pitfalls of Trusted Execution Environments. (2024). ↩︎ ↩︎ ↩︎
Huibo Wang, Pei Wang, Yu Ding, Mingshen Sun, Yiming Jing, Ran Duan, Long Li, Yulong Zhang, Tao Wei, and Zhiqiang Lin. 2019. Towards memory safe enclave programming with rust-sgx. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 2333–2350. ↩︎
Arm. 2004. ARM Security Technology: Building a Secure System using TrustZone Technology. https://www.arm.com/products/security-onarm/trustzone. ↩︎
Sandro Pinto and Nuno Santos. 2019. Demystifying arm trustzone: A comprehensive survey. ACM computing surveys (CSUR) 51, 6 (2019), 1–36. ↩︎
David Cerdeira, Nuno Santos, Pedro Fonseca, and Sandro Pinto. 2020. Sok: Understanding the prevailing security vulnerabilities in trustzone-assisted tee systems. In 2020 IEEE Symposium on Security and Privacy (SP). IEEE, 1416–1432. ↩︎ ↩︎ ↩︎ ↩︎
Intel. 2023. Intel Trust Domain Extensions (Intel TDX). https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/overview.html. ↩︎
AMD. 2023. AMD Secure Encrypted Virtualization (SEV). https://www.amd.com/en/developer/sev.html. ↩︎ ↩︎
Arm. 2023. Arm Confidential Compute Architecture. https://www.arm.com/architecture/security-features/arm-confidential-compute-architecture. ↩︎
AMD Sev-Snp. 2020. Strengthening VM isolation with integrity protection and more. White Paper, January 53 (2020), 1450–1465. ↩︎ ↩︎ ↩︎
Arm. 2023. Arm Realm Management Extension (RME) System Architecture. https://developer.arm.com/documentation/den0129/latest/. ↩︎
Intel. 2023. Intel Multi-Key Total Memory Encryption. https://www.intel.com/content/dam/www/central-libraries/us/en/documents/2022-10/inteltotal-memory-encryption-multi-key-whitepaper.pdf. ↩︎
Roberto Guanciale, Nicolae Paladi, and Arash Vahidi. 2022. SoK: Confidential quartet-Comparison of platforms for virtualization-based confidential computing. In 2022 IEEE International Symposium on Secure and Private Execution Environment Design (SEED). IEEE, 109–120. ↩︎
Hoda Naghibijouybari, Ajaya Neupane, Zhiyun Qian, and Nael Abu-Ghazaleh. 2018. Rendered insecure: Gpu side channel attacks are practical. In Proceedings of the 2018 ACM SIGSAC conference on computer and communications security. 2139–2153. ↩︎
Hoda Naghibijouybari, Esmaeil Mohammadian Koruyeh, and Nael Abu-Ghazaleh. 2022. Microarchitectural attacks in heterogeneous systems: A survey. Comput. Surveys 55, 7 (2022), 1–40. ↩︎ ↩︎
Sangho Lee, Youngsok Kim, Jangwoo Kim, and Jong Kim. 2014. Stealing webpages rendered on your browser by exploiting GPU vulnerabilities. In 2014 IEEE Symposium on Security and Privacy. IEEE, 19–33. ↩︎ ↩︎
Clémentine Maurice, Christoph Neumann, Olivier Heen, and Aurélien Francillon. 2014. Confidentiality issues on a GPU in a virtualized environment. In Financial Cryptography and Data Security: 18th International Conference, FC 2014, Christ Church, Barbados, March 3-7, 2014, Revised Selected Papers 18. Springer, 119–135. ↩︎ ↩︎
Roberto Di Pietro, Flavio Lombardi, and Antonio Villani. 2016. CUDA leaks: a detailed hack for CUDA and a (partial) fix. ACM Transactions on Embedded Computing Systems (TECS) 15, 1 (2016), 1–25. ↩︎ ↩︎
Zhe Zhou, Wenrui Diao, Xiangyu Liu, Zhou Li, Kehuan Zhang, and Rui Liu. 2016. Vulnerable gpu memory management: towards recovering raw data from gpu. arXiv preprint arXiv:1605.06610 (2016). ↩︎ ↩︎
Wenjian HE, Wei Zhang, Sharad Sinha, and Sanjeev Das. 2020. Igpu leak: An information leakage vulnerability on intel integrated gpu. In 2020 25th Asia and South Pacific Design Automation Conference (ASP-DAC). IEEE, 56–61. ↩︎
Sankha Baran Dutta, Hoda Naghibijouybari, Nael Abu-Ghazaleh, Andres Marquez, and Kevin Barker. 2021. Leaky buddies: Cross-component covert channels on integrated cpu-gpu systems. In ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA). IEEE, 972–984. ↩︎ ↩︎
Yingchen Wang, Riccardo Paccagnella, Zhao Gang, Willy R Vasquez, David Kohlbrenner, Hovav Shacham, and Christopher W Fletcher. 2024. GPU. zip: On the Side-Channel Implications of Hardware-Based Graphical Data Compression. In 2024 IEEE Symposium on Security and Privacy (SP). 84–84. ↩︎ ↩︎
Zhendong Wang, Rujia Wang, Zihang Jiang, Xulong Tang, Shouyi Yin, and Yang Hu. 2021. Towards a secure integrated heterogeneous platform via cooperative CPU/GPU encryption. In 2021 IEEE 30th Asian Test Symposium (ATS). IEEE, 115–120. ↩︎
Zhen Hang Jiang, Yunsi Fei, and David Kaeli. 2016. A complete key recovery timing attack on a GPU. In 2016 IEEE International symposium on high performance computer architecture (HPCA). IEEE, 394–405. ↩︎ ↩︎
Patrick Cronin, Xing Gao, Haining Wang, and Chase Cotton. 2021. An exploration of ARM system-level cache and GPU side channels. In Proceedings of the 37th Annual Computer Security Applications Conference. 784–795. ↩︎
Boyuan Yang, Ruirong Chen, Kai Huang, Jun Yang, and Wei Gao. 2022. Eavesdropping user credentials via GPU side channels on smartphones. In Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems. 285–299. ↩︎
Zhen Hang Jiang, Yunsi Fei, and David Kaeli. 2017. A novel side-channel timing attack on GPUs. In Proceedings of the on Great Lakes Symposium on VLSI 2017. 167–172. ↩︎
Jaeguk Ahn, Cheolgyu Jin, Jiho Kim, Minsoo Rhu, Yunsi Fei, David Kaeli, and John Kim. 2021. Trident: A hybrid correlation-collision GPU cache timing attack for AES key recovery. In 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA). IEEE, 332–344. ↩︎
Lukas Giner, Roland Czerny, Christoph Gruber, Fabian Rauscher, Andreas Kogler, Daniel De Almeida Braga, and Daniel Gruss. 2024. Generic and Automated Drive-by GPU Cache Attacks from the Browser. (2024). ↩︎ ↩︎
Chao Luo, Yunsi Fei, and David Kaeli. 2019. Side-channel timing attack of RSA on a GPU. ACM Transactions on Architecture and Code Optimization (TACO) 16, 3 (2019), 1–18. ↩︎
Yuankun Zhu, Yueqiang Cheng, Husheng Zhou, and Yantao Lu. 2021. Hermes attack: Steal DNN models with lossless inference accuracy. In 30th USENIX Security Symposium (USENIX Security 21). ↩︎ ↩︎
Xing Hu, Ling Liang, Shuangchen Li, Lei Deng, Pengfei Zuo, Yu Ji, Xinfeng Xie, Yufei Ding, Chang Liu, Timothy Sherwood, et al. 2020. Deepsniffer: A dnn model extraction framework based on learning architectural hints. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. 385–399. ↩︎ ↩︎ ↩︎
Hoda Naghibijouybari, Khaled N Khasawneh, and Nael Abu-Ghazaleh. 2017. Constructing and characterizing covert channels on gpgpus. In Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture. 354–366. ↩︎ ↩︎ ↩︎
Junyi Wei, Yicheng Zhang, Zhe Zhou, Zhou Li, and Mohammad Abdullah Al Faruque. 2020. Leaky dnn: Stealing deep-learning model secret with gpu context-switching side-channel. In 2020 50th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). IEEE, 125–137. ↩︎
Ajay Nayak, Vinod Ganapathy, and Arkaprava Basu. 2021. (Mis) managed: A novel TLB-based covert channel on GPUs. In Proceedings of the 2021 ACM Asia Conference on Computer and Communications Security. 872–885. ↩︎
Sankha Baran Dutta, Hoda Naghibijouybari, Arjun Gupta, Nael Abu-Ghazaleh, Andres Marquez, and Kevin Barker. 2023. Spy in the GPU-box: Covert and side channel attacks on multi-GPU systems. In Proceedings of the 50th Annual International Symposium on Computer Architecture. 1–13. ↩︎ ↩︎ ↩︎
Jingfei Kong, Onur Aciiçmez, Jean-Pierre Seifert, and Huiyang Zhou. 2009. Hardware-software integrated approaches to defend against software cache-based side channel attacks. In 2009 IEEE 15th international symposium on high performance computer architecture. IEEE, 393–404. ↩︎
Fangfei Liu, Qian Ge, Yuval Yarom, Frank Mckeen, Carlos Rozas, Gernot Heiser, and Ruby B Lee. 2016. Catalyst: Defeating last-level cache side channel attacks in cloud computing. In 2016 IEEE international symposium on high performance computer architecture (HPCA). IEEE, 406–418. ↩︎
Zhenghong Wang and Ruby B Lee. 2007. New cache designs for thwarting software cache-based side channel attacks. In Proceedings of the 34th annual international symposium on Computer architecture. 494–505. ↩︎
Ali Shafiee, Akhila Gundu, Manjunath Shevgoor, Rajeev Balasubramonian, and Mohit Tiwari. 2015. Avoiding information leakage in the memory controller with fixed service policies. In Proceedings of the 48th International Symposium on Microarchitecture. 89–101. ↩︎
Yao Wang, Andrew Ferraiuolo, and G Edward Suh. 2014. Timing channel protection for a shared memory controller. In 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA). IEEE, 225–236. ↩︎
Bang Di, Daokun Hu, Zhen Xie, Jianhua Sun, Hao Chen, Jinkui Ren, and Dong Li. 2021. TLB-pilot: Mitigating TLB Contention Attack on GPUs with Microarchitecture-Aware Scheduling. ACM Transactions on Architecture and Code Optimization (TACO) 19, 1 (2021), 1–23. ↩︎
Gurunath Kadam, Danfeng Zhang, and Adwait Jog. 2018. Rcoal: mitigating gpu timing attack via subwarp-based randomized coalescing techniques. In 2018 IEEE international symposium on high performance computer architecture (HPCA). IEEE, 156–167. ↩︎
Gurunath Kadam, Danfeng Zhang, and Adwait Jog. 2020. Bcoal: Bucketing-based memory coalescing for efficient and secure gpus. In 2020 IEEE International Symposium on High Performance Computer Architecture (HPCA). IEEE, 570–581. ↩︎
Zhen Lin, Utkarsh Mathur, and Huiyang Zhou. 2019. Scatter-and-gather revisited: High-performance side-channel-resistant AES on GPUs. In Proceedings of the 12th Workshop on General Purpose Processing Using GPUs. 2–11. ↩︎
Hritvik Taneja, Jason Kim, Jie Jeff Xu, Stephan Van Schaik, Daniel Genkin, and Yuval Yarom. 2023. Hot Pixels: Frequency, Power, and Temperature Attacks on GPUs and Arm SoCs. In 32nd USENIX Security Symposium (USENIX Security 23). 6275–6292. ↩︎ ↩︎
Chao Luo, Yunsi Fei, Pei Luo, Saoni Mukherjee, and David Kaeli. 2015. Side-channel power analysis of a GPU AES implementation. In 2015 33rd IEEE International Conference on Computer Design (ICCD). IEEE, 281–288. ↩︎
Yiwen Gao, Hailong Zhang, Wei Cheng, Yongbin Zhou, and Yuchen Cao. 2018. Electro-magnetic analysis of GPU-based AES implementation. In Proceedings of the 55th Annual Design Automation Conference. 1–6. ↩︎
Łukasz Chmielewski and Léo Weissbart. 2021. On reverse engineering neural network implementation on GPU. In Applied Cryptography and Network Security Workshops: ACNS 2021 Satellite Workshops, AIBlock, AIHWS, AIoTS, CIMSS, Cloud S&P, SCI, SecMT, and SiMLA, Kamakura, Japan, June 21–24, 2021, Proceedings. Springer, 96–113. ↩︎
Henrique Teles Maia, Chang Xiao, Dingzeyu Li, Eitan Grinspun, and Changxi Zheng. 2022. Can one hear the shape of a neural network?: Snooping the GPU via Magnetic Side Channel… In USENIX Security Symposium. 4383–4400. ↩︎
Peter Horvath, Lukasz Chmielewski, Leo Weissbart, Lejla Batina, and Yuval Yarom. 2023. BarraCUDA: Bringing Electromagnetic Side Channel Into Play to Steal the Weights of Neural Networks from NVIDIA GPUs. arXiv preprint arXiv:2312.07783 (2023). ↩︎
Zihao Zhan, Zhenkai Zhang, Sisheng Liang, Fan Yao, and Xenofon Koutsoukos. 2022. Graphics peeping unit: Exploiting em side-channel information of gpus to eavesdrop on your neighbors. In 2022 IEEE Symposium on Security and Privacy (SP). IEEE, 1440–1457. ↩︎ ↩︎ ↩︎
Sisheng Liang, Zihao Zhan, Fan Yao, Long Cheng, and Zhenkai Zhang. 2022. Clairvoyance: exploiting far-field em emanations of gpu to" see" your dnn models through obstacles at a distance. In 2022 IEEE Security and Privacy Workshops (SPW). IEEE, 312–322. ↩︎
Stefan Mangard, Elisabeth Oswald, and Thomas Popp. 2008. Power analysis attacks: Revealing the secrets of smart cards. Vol. 31. Springer Science & Business Media. ↩︎
Dina G Mahmoud, Vincent Lenders, and Mirjana Stojilović. 2022. Electrical-level attacks on CPUs, FPGAs, and GPUs: Survey and implications in the heterogeneous era. ACM Computing Surveys (CSUR) 55, 3 (2022), 1–40. ↩︎
Pietro Frigo, Cristiano Giuffrida, Herbert Bos, and Kaveh Razavi. 2018. Grand pwning unit: Accelerating microarchitectural attacks with the GPU. In 2018 ieee symposium on security and privacy (sp). IEEE, 195–210. ↩︎ ↩︎
Majid Sabbagh, Yunsi Fei, and David Kaeli. 2020. A novel GPU overdrive fault attack. In 2020 57th ACM/IEEE Design Automation Conference (DAC). IEEE, 1–6. ↩︎
Majid Sabbagh, Yunsi Fei, and David Kaeli. 2021. Gpu overdrive fault attacks on neural networks. In 2021 IEEE/ACM International Conference On Computer Aided Design (ICCAD). IEEE, 1–8. ↩︎
Rihui Sun, Pengfei Qiu, Yongqiang Lyu, Jian Dong, Haixia Wang, Dongsheng Wang, and Gang Qu. 2023. Lightning: Leveraging DVFS-induced Transient Fault Injection to Attack Deep Learning Accelerator of GPUs. ACM Transactions on Design Automation of Electronic Systems 29, 1 (2023). ↩︎ ↩︎
Fernando F dos Santos, Josie E Rodriguez Condia, Luigi Carro, Matteo Sonza Reorda, and Paolo Rech. 2021. Revealing gpus vulnerabilities by combining register-transfer and software-level fault injection. In 2021 51st Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). IEEE, 292–304. ↩︎
Ferdinand Brasser, Lucas Davi, David Gens, Christopher Liebchen, and Ahmad-Reza Sadeghi. 2017. CAn’t touch this: Software-only mitigation against rowhammer attacks targeting kernel memory. In 26th USENIX Security Symposium (USENIX Security 17). 117–130. ↩︎
Kit Murdock, David Oswald, Flavio D Garcia, Jo Van Bulck, Daniel Gruss, and Frank Piessens. 2020. Plundervolt: Software-based fault injection attacks against Intel SGX. In 2020 IEEE Symposium on Security and Privacy (SP). IEEE, 1466–1482. ↩︎ ↩︎ ↩︎ ↩︎
Shufan Fei, Zheng Yan, Wenxiu Ding, and Haomeng Xie. 2021. Security vulnerabilities of SGX and countermeasures: A survey. ACM Computing Surveys (CSUR) 54, 6 (2021), 1–36. ↩︎ ↩︎ ↩︎
Mengyuan Li. 2022. Understanding and Exploiting Design Flaws of AMD Secure Encrypted Virtualization. The Ohio State University. ↩︎ ↩︎ ↩︎
Alexander Nilsson, Pegah Nikbakht Bideh, and Joakim Brorsson. 2020. A survey of published attacks on Intel SGX. arXiv preprint arXiv:2006.13598 (2020). ↩︎ ↩︎
Yuanzhong Xu, Weidong Cui, and Marcus Peinado. 2015. Controlled-channel attacks: Deterministic side channels for untrusted operating systems. In 2015 IEEE Symposium on Security and Privacy. IEEE, 640–656. ↩︎
Shweta Shinde, Zheng Leong Chua, Viswesh Narayanan, and Prateek Saxena. 2016. Preventing page faults from telling your secrets. In Proceedings of the 11th ACM on Asia Conference on Computer and Communications Security. 317–328. ↩︎ ↩︎ ↩︎
Jo Van Bulck, Frank Piessens, and Raoul Strackx. 2017. SGX-Step: A practical attack framework for precise enclave execution control. In Proceedings of the 2nd Workshop on System Software for Trusted Execution. 1–6. ↩︎ ↩︎
Deokjin Kim, Daehee Jang, Minjoon Park, Yunjong Jeong, Jonghwan Kim, Seokjin Choi, and Brent Byunghoon Kang. 2019. SGX-LEGO: Fine-grained SGX controlled-channel attack and its countermeasure. computers & security 82 (2019), 118–139. ↩︎
Jo Van Bulck, Nico Weichbrodt, Rüdiger Kapitza, Frank Piessens, and Raoul Strackx. 2017. Telling your secrets without page faults: Stealthy page Table-Based attacks on enclaved execution. In 26th USENIX Security Symposium (USENIX Security 17). 1041–1056. ↩︎
Wenhao Wang, Guoxing Chen, Xiaorui Pan, Yinqian Zhang, XiaoFeng Wang, Vincent Bindschaedler, Haixu Tang, and Carl A Gunter. 2017. Leaky cauldron on the dark land: Understanding memory side-channel hazards in SGX. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. 2421–2434. ↩︎
Jago Gyselinck, Jo Van Bulck, Frank Piessens, and Raoul Strackx. 2018. Off-limits: Abusing legacy x86 memory segmentation to spy on enclaved execution. In Engineering Secure Software and Systems: 10th International Symposium, ESSoS 2018, France, June 26-27, 2018. Springer, 44–60. ↩︎
Eran Tromer, Dag Arne Osvik, and Adi Shamir. 2010. Efficient cache attacks on AES, and countermeasures. Journal of Cryptology 23 (2010), 37–71. ↩︎
Yuval Yarom and Katrina Falkner. 2014. FLUSH+ RELOAD: A high resolution, low noise, l3 cache Side-Channel attack. In 23rd USENIX security symposium (USENIX security 14). 719–732. ↩︎
Ferdinand Brasser, Urs Müller, Alexandra Dmitrienko, Kari Kostiainen, Srdjan Capkun, and Ahmad-Reza Sadeghi. 2017. Software grand exposure:SGX cache attacks are practical. In 11th USENIX workshop on offensive technologies (WOOT 17). ↩︎ ↩︎
Fergus Dall, Gabrielle De Micheli, Thomas Eisenbarth, Daniel Genkin, Nadia Heninger, Ahmad Moghimi, and Yuval Yarom. 2018. Cachequote: Efficiently recovering long-term secrets of SGX EPID via cache attacks. (2018). ↩︎ ↩︎
Johannes Götzfried, Moritz Eckert, Sebastian Schinzel, and Tilo Müller. 2017. Cache attacks on Intel SGX. In Proceedings of the 10th European Workshop on Systems Security. 1–6. ↩︎ ↩︎
Ahmad Moghimi, Gorka Irazoqui, and Thomas Eisenbarth. 2017. Cachezoom: How SGX amplifies the power of cache attacks. In Cryptographic Hardware and Embedded Systems–CHES 2017: 19th International Conference, Taipei, Taiwan, September 25-28, 2017, Proceedings. Springer, 69–90. ↩︎ ↩︎
Ahmad Moghimi, Jan Wichelmann, Thomas Eisenbarth, and Berk Sunar. 2019. Memjam: A false dependency attack against constant-time crypto implementations. International Journal of Parallel Programming 47 (2019), 538–570. ↩︎ ↩︎
Michael Schwarz, Samuel Weiser, Daniel Gruss, Clémentine Maurice, and Stefan Mangard. 2017. Malware guard extension: Using SGX to conceal cache attacks. In Detection of Intrusions and Malware, and Vulnerability Assessment: 14th International Conference, DIMVA 2017, Bonn, Germany, July 6-7, 2017, Proceedings 14. Springer, 3–24. ↩︎ ↩︎
Guoxing Chen, Sanchuan Chen, Yuan Xiao, Yinqian Zhang, Zhiqiang Lin, and Ten H Lai. 2019. Sgxpectre: Stealing intel secrets from sgx enclaves via speculative execution. In 2019 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 142–157. ↩︎ ↩︎
Sangho Lee, Ming-Wei Shih, Prasun Gera, Taesoo Kim, Hyesoon Kim, and Marcus Peinado. 2017. Inferring fine-grained control flow inside SGX enclaves with branch shadowing. In 26th USENIX Security Symposium (USENIX Security 17). 557–574. ↩︎
Dmitry Evtyushkin, Ryan Riley, Nael CSE Abu-Ghazaleh, ECE, and Dmitry Ponomarev. 2018. Branchscope: A new side-channel attack on directional branch predictor. ACM SIGPLAN Notices 53, 2 (2018), 693–707. ↩︎
Tianlin Huo, Xiaoni Meng, Wenhao Wang, Chunliang Hao, Pei Zhao, Jian Zhai, and Mingshu Li. 2020. Bluethunder: A 2-level directional predictor based side-channel attack against sgx. IACR Transactions on Cryptographic Hardware and Embedded Systems (2020), 321–347. ↩︎
Esmaeil Mohammadian Koruyeh, Khaled N Khasawneh, Chengyu Song, and Nael Abu-Ghazaleh. 2018. Spectre returns! speculation attacks using the return stack buffer. In 12th USENIX Workshop on Offensive Technologies (WOOT 18). ↩︎ ↩︎
Jo Van Bulck, Marina Minkin, Ofir Weisse, Daniel Genkin, Baris Kasikci, Frank Piessens, Mark Silberstein, Thomas F Wenisch, Yuval Yarom, and Raoul Strackx. 2018. Foreshadow: Extracting the keys to the intel SGX kingdom with transient Out-of-Order execution. In 27th USENIX Security Symposium (USENIX Security 18). 991–1008. ↩︎
Claudio Canella, Daniel Genkin, Lukas Giner, Daniel Gruss, Moritz Lipp, Marina Minkin, Daniel Moghimi, Frank Piessens, Michael Schwarz, Berk Sunar, et al. 2019. Fallout: Leaking data on meltdown-resistant cpus. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 769–784. ↩︎
Michael Schwarz, Moritz Lipp, Daniel Moghimi, Jo Van Bulck, Julian Stecklina, Thomas Prescher, and Daniel Gruss. 2019. ZombieLoad: Crossprivilege-boundary data sampling. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 753–768. ↩︎
Stephan Van Schaik, Andrew Kwong, Daniel Genkin, and Yuval Yarom. 2020. SGAxe: How SGX fails in practice. ↩︎
Zijo Kenjar, Tommaso Frassetto, David Gens, Michael Franz, and Ahmad-Reza Sadeghi. 2020. V0LTpwn: Attacking x86 processor integrity from software. In 29th USENIX Security Symposium (USENIX Security 20). 1445–1461. ↩︎ ↩︎
Pengfei Qiu, Dongsheng Wang, Yongqiang Lyu, Ruidong Tian, Chunlu Wang, and Gang Qu. 2020. Voltjockey: A new dynamic voltage scaling-based fault injection attack on intel sgx. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 40, 6 (2020), 1130–1143. ↩︎ ↩︎ ↩︎
Zitai Chen and David Oswald. 2023. PMFault: Faulting and Bricking Server CPUs through Management Interfaces: Or: A Modern Example of Halt and Catch Fire. IACR Transactions on Cryptographic Hardware and Embedded Systems 2023, 2 (Mar. 2023), 1–23. ↩︎ ↩︎
Yeongjin Jang, Jaehyuk Lee, Sangho Lee, and Taesoo Kim. 2017. SGX-Bomb: Locking down the processor via Rowhammer attack. In Proceedings of the 2nd Workshop on System Software for Trusted Execution. 1–6. ↩︎
Moritz Lipp, Andreas Kogler, David Oswald, Michael Schwarz, Catherine Easdon, Claudio Canella, and Daniel Gruss. 2021. PLATYPUS: Softwarebased power side-channel attacks on x86. In 2021 IEEE Symposium on Security and Privacy (SP). IEEE, 355–371. ↩︎
Yingchen Wang, Riccardo Paccagnella, Elizabeth Tang He, Hovav Shacham, Christopher W. Fletcher, and David Kohlbrenner. 2022. Hertzbleed: Turning Power Side-Channel Attacks Into Remote Timing Attacks on x86. In 31st USENIX Security Symposium (USENIX Security 22). Boston, MA, 679–697. ↩︎
Chen Liu, Abhishek Chakraborty, Nikhil Chawla, and Neer Roggel. 2022. Frequency Throttling Side-Channel Attack. In Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security. 1977–1991. ↩︎
Zitai Chen, Georgios Vasilakis, Kit Murdock, Edward Dean, David Oswald, and Flavio D Garcia. 2021. VoltPillager: Hardware-based fault injection attacks against Intel SGX Enclaves using the SVID voltage scaling interface. In 30th USENIX Security Symposium (USENIX Security 21). 699–716. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Dayeol Lee, Dongha Jung, Ian T. Fang, Chia che Tsai, and Raluca Ada Popa. 2020. An Off-Chip Attack on Hardware Enclaves via the Memory Bus. In 29th USENIX Security Symposium (USENIX Security ’20). 487–504. ↩︎
Jo Van Bulck, David Oswald, Eduard Marin, Abdulla Aldoseri, Flavio D Garcia, and Frank Piessens. 2019. A tale of two worlds: Assessing the vulnerability of enclave shielding runtimes. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 1741–1758. ↩︎
Fritz Alder, Jo Van Bulck, David Oswald, and Frank Piessens. 2020. Faulty point unit: ABI poisoning attacks on Intel SGX. In Proceedings of the 36th Annual Computer Security Applications Conference. 415–427. ↩︎
Fritz Alder, Lesly-Ann Daniel, David Oswald, Frank Piessens, and Jo Van Bulck. 2024. Pandora: Principled symbolic validation of Intel SGX enclave runtimes. In 45th IEEE Symposium on Security and Privacy (S&P). ↩︎ ↩︎
Tobias Cloosters, Michael Rodler, and Lucas Davi. 2020. TeeRex: Discovery and exploitation of memory corruption vulnerabilities in SGX enclaves. In 29th USENIX Security Symposium (USENIX Security 20). 841–858. ↩︎
Mustakimur Rahman Khandaker, Yueqiang Cheng, Zhi Wang, and Tao Wei. 2020. COIN attacks: On insecurity of enclave untrusted interfaces in SGX. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems. 971–985. ↩︎
Ming-Wei Shih, Sangho Lee, Taesoo Kim, and Marcus Peinado. 2017. T-SGX: Eradicating Controlled-Channel Attacks Against Enclave Programs… In NDSS. ↩︎
Sanchuan Chen, Xiaokuan Zhang, Michael K Reiter, and Yinqian Zhang. 2017. Detecting privileged side-channel attacks in shielded execution with Déjá Vu. In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security. 7–18. ↩︎
Daniel Gruss, Julian Lettner, Felix Schuster, Olya Ohrimenko, Istvan Haller, and Manuel Costa. 2017. Strong and efficient cache {Side-Channel} protection using hardware transactional memory. In 26th USENIX Security Symposium (USENIX Security 17). 217–233. ↩︎
Chad Spensky, Aravind Machiry, Nathan Burow, Hamed Okhravi, Rick Housley, Zhongshu Gu, Hani Jamjoom, Christopher Kruegel, and Giovanni Vigna. 2021. Glitching demystified: analyzing control-flow-based glitching attacks and defenses. In 2021 51st Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). IEEE, 400–412. ↩︎
Jaebaek Seo, Byoungyoung Lee, Seong Min Kim, Ming-Wei Shih, Insik Shin, Dongsu Han, and Taesoo Kim. 2017. SGX-shield: Enabling address space layout randomization for SGX programs… In NDSS. ↩︎
Shohreh Hosseinzadeh, Hans Liljestrand, Ville Leppänen, and Andrew Paverd. 2018. Mitigating branch-shadowing attacks on intel sgx using control flow randomization. In Proceedings of the 3rd Workshop on System Software for Trusted Execution. 42–47. ↩︎
Ferdinand Brasser, Srdjan Capkun, Alexandra Dmitrienko, Tommaso Frassetto, Kari Kostiainen, and Ahmad-Reza Sadeghi. 2019. DR. SGX: Automated and adjustable side-channel protection for SGX using data location randomization. In Proceedings of the 35th Annual Computer Security Applications Conference. 788–800. ↩︎
Adil Ahmad, Byunggill Joe, Yuan Xiao, Yinqian Zhang, Insik Shin, and Byoungyoung Lee. 2019. OBFUSCURO: A commodity obfuscation engine on Intel SGX. In Network and Distributed System Security Symposium. ↩︎
Olga Ohrimenko, Felix Schuster, Cédric Fournet, Aastha Mehta, Sebastian Nowozin, Kapil Vaswani, and Manuel Costa. 2016. Oblivious Multi-Party machine learning on trusted processors. In 25th USENIX Security Symposium (USENIX Security 16). 619–636. ↩︎
Rishabh Poddar, Ganesh Ananthanarayanan, Srinath Setty, Stavros Volos, and Raluca Ada Popa. 2020. Visor:Privacy-Preserving video analytics as a cloud service. In 29th USENIX Security Symposium (USENIX Security 20). 1039–1056. ↩︎ ↩︎
Qifan Wang, Shujie Cui, Lei Zhou, Ocean Wu, Yonghua Zhu, and Giovanni Russello. 2022. Enclavetree: Privacy-preserving data stream training and inference using tee. In Proceedings of the 2022 ACM on Asia Conference on Computer and Communications Security. 741–755. ↩︎
Gal Beniamini. 2016. TrustZone Kernel Privilege Escalation (CVE-2016-2431). ↩︎ ↩︎
Di Shen. 2015. Exploiting trustzone on android. Black Hat USA 2 (2015), 267–280. ↩︎ ↩︎
Daniel Komaromy. 2018. Unbox Your Phone. https://medium.com/taszksec/unbox-your-phone-part-i-331bbf44c30c ↩︎
Haehyun Cho, Penghui Zhang, Donguk Kim, Jinbum Park, Choong-Hoon Lee, Ziming Zhao, Adam Doupé, and Gail-Joon Ahn. 2018. Prime+count: Novel cross-world covert channels on arm trustzone. In Proceedings of the 34th Annual Computer Security Applications Conference. 441–452. ↩︎ ↩︎
Roberto Guanciale, Hamed Nemati, Christoph Baumann, and Mads Dam. 2016. Cache storage channels: Alias-driven attacks and verified countermeasures. In 2016 IEEE Symposium on Security and Privacy (SP). IEEE, 38–55. ↩︎ ↩︎ ↩︎
Moritz Lipp, Daniel Gruss, Raphael Spreitzer, Clémentine Maurice, and Stefan Mangard. 2016. ARMageddon: Cache attacks on mobile devices. In 25th USENIX Security Symposium (USENIX Security 16). 549–564. ↩︎ ↩︎ ↩︎ ↩︎
Ning Zhang, He Sun, Kun Sun, Wenjing Lou, and Y Thomas Hou. 2016. CacheKit: Evading memory introspection using cache incoherence. In 2016 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 337–352. ↩︎
Ning Zhang, Kun Sun, Deborah Shands, Wenjing Lou, and Y Thomas Hou. 2016. Truspy: Cache side-channel information leakage from the secure world on arm devices. Cryptology ePrint Archive (2016). ↩︎ ↩︎ ↩︎
Keegan Ryan. 2019. Hardware-backed heist: Extracting ECDSA keys from qualcomm’s trustzone. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 181–194. ↩︎ ↩︎
Adrian Tang, Simha Sethumadhavan, and Salvatore Stolfo. 2017. CLKSCREW: Exposing the perils of Security-Oblivious energy management. In 26th USENIX Security Symposium (USENIX Security 17). 1057–1074. ↩︎
Pierre Carru. 2017. Attack TrustZone using Rowhammer. https://grehack.fr/data/2017/slides/GreHack17_Attack_TrustZone_with_Rowhammer.pdf ↩︎
Ferdinand Brasser, David Gens, Patrick Jauernig, Ahmad-Reza Sadeghi, and Emmanuel Stapf. 2019. SANCTUARY: ARMing TrustZone with User-space Enclaves… In NDSS. ↩︎
He Sun, Kun Sun, Yuewu Wang, Jiwu Jing, and Haining Wang. 2015. Trustice: Hardware-assisted isolated computing environments on mobile devices. In 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. IEEE, 367–378. ↩︎
Jinsoo Jang and Brent Byunghoon Kang. 2018. Retrofitting the partially privileged mode for TEE communication channel protection. IEEE Transactions on Dependable and Secure Computing 17, 5 (2018), 1000–1014. ↩︎
Jin Soo Jang, Sunjune Kong, Minsu Kim, Daegyeong Kim, and Brent Byunghoon Kang. 2015. Secret: Secure channel between rich execution environment and trusted execution environment… In NDSS. 1–15. ↩︎
Min Hong Yun and Lin Zhong. 2019. Ginseng: Keeping Secrets in Registers When You Distrust the Operating System… In NDSS. ↩︎
Ning Zhang, Kun Sun, Wenjing Lou, and Y Thomas Hou. 2016. Case: Cache-assisted secure execution on arm processors. In 2016 IEEE Symposium on Security and Privacy (SP). IEEE, 72–90. ↩︎
Andrew Ferraiuolo, Andrew Baumann, Chris Hawblitzel, and Bryan Parno. 2017. Komodo: Using verification to disentangle secure-enclave hardware from software. In Proceedings of the 26th Symposium on Operating Systems Principles. 287–305. ↩︎
Matthew Lentz, Rijurekha Sen, Peter Druschel, and Bobby Bhattacharjee. 2018. Secloak: Arm trustzone-based mobile peripheral control. In Proceedings of the 16th Annual International Conference on Mobile Systems, Applications, and Services. 1–13. ↩︎
Eric Evenchick. 2018. Rustzone: Writing trusted applications in rust. Black Hat Asia (2018). ↩︎
Robert Buhren, Shay Gueron, Jan Nordholz, Jean-Pierre Seifert, and Julian Vetter. 2017. Fault attacks on encrypted general purpose compute platforms. In Proceedings of the Seventh ACM on Conference on Data and Application Security and Privacy. 197–204. ↩︎
Zhao-Hui Du, Zhiwei Ying, Zhenke Ma, Yufei Mai, Phoebe Wang, Jesse Liu, and Jesse Fang. 2017. Secure encrypted virtualization is unsecure. arXiv preprint arXiv:1712.05090 (2017). ↩︎ ↩︎
Felicitas Hetzelt and Robert Buhren. 2017. Security analysis of encrypted virtual machines. ACM SIGPLAN Notices 52, 7 (2017), 129–142. ↩︎ ↩︎
Mathias Morbitzer, Manuel Huber, Julian Horsch, and Sascha Wessel. 2018. SEVered: Subverting AMD’s virtual machine encryption. In Proceedings of the 11th European Workshop on Systems Security. 1–6. ↩︎ ↩︎
David Kaplan. 2017. Protecting VM register state with SEV-ES. White paper (2017), 13. ↩︎
Luca Wilke, Jan Wichelmann, Mathias Morbitzer, and Thomas Eisenbarth. 2020. Sevurity: No security without integrity: Breaking integrity-free memory encryption with minimal assumptions. In 2020 IEEE Symposium on Security and Privacy (SP). IEEE, 1483–1496. ↩︎
Mengyuan Li, Yinqian Zhang, Huibo Wang, Kang Li, and Yueqiang Cheng. 2021. CIPHERLEAKS: Breaking Constant-time Cryptography on AMDSEV via the Ciphertext Side Channel. In 30th USENIX Security Symposium (USENIX Security 21). 717–732. ↩︎
Mengyuan Li, Yinqian Zhang, and Zhiqiang Lin. 2021. Crossline: Breaking" security-by-crash" based memory isolation in amd sev. In Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security. 2937–2950. ↩︎
Mengyuan Li, Yinqian Zhang, Huibo Wang, Kang Li, and Yueqiang Cheng. 2021. TLB Poisoning Attacks on AMD Secure Encrypted Virtualization. In Proceedings of the 37th Annual Computer Security Applications Conference. 609–619. ↩︎
Mathias Morbitzer, Sergej Proskurin, Martin Radev, Marko Dorfhuber, and Erick Quintanar Salas. 2021. Severity: Code injection attacks against encrypted virtual machines. In 2021 IEEE Security and Privacy Workshops (SPW). IEEE, 444–455. ↩︎
Robert Buhren, Hans-Niklas Jacob, Thilo Krachenfels, and Jean-Pierre Seifert. 2021. One glitch to rule them all: Fault injection attacks against amd’s secure encrypted virtualization. In Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security. 2875–2889. ↩︎
Ruiyi Zhang, CISPA Helmholtz Center, Lukas Gerlach, Daniel Weber, Lorenz Hetterich, Youheng Lü, Andreas Kogler, and Michael Schwarz. 2024. CacheWarp: Software-based Fault Injection using Selective State Reset. (2024). ↩︎ ↩︎ ↩︎
Benedict Schlüter, Supraja Sridhara, Andrin Bertschi, and Shweta Shinde. 2024. WeSee: Using Malicious# VC Interrupts to Break AMD SEV-SNP. arXiv preprint arXiv:2404.03526 (2024). ↩︎ ↩︎ ↩︎
Benedict Schlüter, Supraja Sridhara, Mark Kuhne, Andrin Bertschi, and Shweta Shinde. 2024. Heckler: Breaking Confidential VMs with Malicious Interrupts. In USENIX Security. ↩︎ ↩︎
Luca Wilke, Jan Wichelmann, Anja Rabich, and Thomas Eisenbarth. 2024. SEV-Step A Single-Stepping Framework for AMD-SEV. IACR Transactions on Cryptographic Hardware and Embedded Systems 2024, 1 (2024), 180–206. ↩︎
J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, and Edward W. Felten. [n. d.]. Lest We Remember: Cold Boot Attacks on Encryption Keys. In 17th USENIX Security Symposium (USENIX Security 08). ↩︎ ↩︎
Intel Corporation. 2015. Intel R © Software Guard Extensions. https://community.intel.com/legacyfs/online/drupal_files/332680-002.pdf. ↩︎
NVIDIA. 2022. NVIDIA H100 Tensor Core GPU Architecture. https://resources.nvidia.com/en-us-data-center-overview-mc/en-us-data-centeroverview/gtc22-whitepaper-hopper?pflpid=17841&lb-mode=preview. ↩︎ ↩︎
更多推荐
所有评论(0)