【论文精读】SAGE:Software-based Attestation for GPU Execution

SAGE: Software-based Attestation for GPU Execution

Ivanov A, Rothenberger B, Dethise A, et al. {SAGE}: Software-based attestation for {GPU} execution[C]//2023 USENIX Annual Technical Conference (USENIX ATC 23). 2023: 485-499.


Abstarct

作者聚焦于 purely software-basedGPU TEE 工作,纯软件的 TEE 有三大好处:

  1. 作为硬件 TEE 的补充,弥补其漏洞
  2. 不需要对 GPU 进行硬件上的修改
  3. 不需要额外在 GPU 上嵌入硬件密钥

作者提出了 SAGE 的设计,a software-based attestation mechanism for GPU execution。保证在 A100 上安全执行代码,在 CPU 和 GPU 上可能存在恶意代码的前提下,保障 code integrity and secrecy, computation integrity, data integrity and secrecy

Introduction

公有云场景下,越来越多的机密任务需要卸载到 GPU 上执行,亟需实现 GPU TEE 机制,但是 硬件 GPU TEE存在问题,硬件修改使得技术部署到广泛利用存在 lag time,且不利于各大厂商适配更优秀的后继产品。

解决这个问题的一大途径就是 software-based GPU TEE,作者通过调研发现,software-based CPU TEE 部分通过 verification function & checksum 机制实现。认证方发送 VFuntrusted platform,要求 a correct checksum value that is returned before a threshold point in time

作者发现,还没有研究在 GPU 上实现 VF 机制,可能是因为会面临额外的挑战:

  1. 实现 VF 的原则:
  • code secrecy and integrity
  • data secrecy and integrity
  • in the presence of a malicious OS
  • malicious code on GPU
  • a malicious CPU-GPU interconnect
  1. 实现 VF 的挑战:
  • GPU 没有 RNG Generator
  • GPU 开发文档的匮乏
  • 没有相关工具链支持编写 native GPU microcode
  • 很难对 GPU 执行进行优化

作者在本文中实现了 SAGE 系统,支持在 A100 上建立 TEE。使用主机侧运行的 Intel SGX enclave 作为验证方,启动软件原语建立 dynamic RoT,并设立共享密钥用于建立安全会话通道。SAGE 的成功启动可以保证:用户内核未经修改地在 GPU 上执行,在执行过程中没有受到恶意地攻击。此外,作者还在 GPU 上实现了 TRNG

Problem Definition

Design Goals And Assumptions

设计目标:

  1. Verifiable code execution on the GPU: 建立无害的代码执行环境,保证代码执行的完整性和机密性
  2. Data integrity and confidentiality: 数据的完整性和机密性
  3. Dynamic root of trust without hardware support: 动态的在 GPU 上建立 TCB

场景假设:

  1. 被验证的 GPU 和验证方在一台机器上
  2. 验证方了解 GPU 的硬件配置

Threat Model

  1. TCB
  • CPU, GPU 固件
  • Intel SGX TCB
  1. Attacker’s Capabilities
  • remote adversary
  • has full control over the software of the untrusted host system
  1. Out Of Scope
  • SGX 的攻击面
  • system availability attacks
  • 未公开的攻击面

SAGE Overview

alt text

如上图,SAGE 包含两个主要部分:VerifierVF。远程用户可以验证 VerifierVerifier 向 GPU 发送 VF

alt text

如上图,Verifier 首先发送 VF 给 GPU,验证返回结果和计算时间。验证通过会设立共享安全密钥,之后只有密钥加密的指令才能在 GPU 上执行。

Verification Function (VF)

VF 的核心设计原则是,任何意料之外的干扰,都会导致可分辨的执行时间的延长和校验和的错误。

if an attacker alters the verification function but wants to forge a correct checksum value, needs to do “more work”, causing a time overhead

VF 需要满足的特性:

  1. Time-optimal implementation: 时间上最优,不存在相同的实现,能在更短的时间完成相同的功能。
  2. Maximize resource usage during checksum computation:如果存在其他恶意内核在 GPU 上执行,其占用 SM 资源会导致 VF 的 SM 寄存器数据被迫转到内存中,导致校验和错误。
  3. Predictable execution time: 执行时间可预测并且稳定,方便设置时间阈值。
  4. Challenge-dependent checksums: 支持挑战-响应协议,防止重放攻击。

Self-Verifying Checksum Function

VF code 可以被划分为三个部分:VF Init & VF Checksum Function & Checksum epilogue:

  1. VF Init:
  • 根据外来 Challenge,给每个 thread 分配初始随机数
  • 在每个 thread 上启动 VF Checksum Function
  1. VF Checksum Function (per thread):
  • 伪随机访问 VF code
  • 根据上条结果,更新 Checksum
  • 根据上条结果,动态更新 VF code
  • 循环
  1. Checksum epilogue
  • thread => warp => block => grip => checksum responce

alt text

checksum 可以作为整个 VF code 的指纹,而 VF Checksum Function 也是 VF code 的一部分,故称为 Self-Verifying Checksum Function

checksum 数值的验证:主机侧同步模拟。

checksum 时间的验证:在时间阈值内,时间阈值的确定方式如下图:

alt text

Untampered Execution Environment

Security Analysis

  1. Pre-computation
  • 攻击方式:攻击者提前计算 checksum 中间值,节省计算时间
  • 防御:checksum 的值依赖于随机的挑战
  1. Computation optimizations
  • 攻击方式:攻击者自行设计效率更高的 VF',节省计算时间
  • 防御:SAGE 保证 VF 的效率是最高的
  1. Attacks on the host system
  • 攻击方式:攻击者在线提取若干挑战值对应的 checksum,发起重放攻击
  • 防御:SAGE 的挑战空间很大,不可能发生碰撞
  1. Attacks on the device / Resource takeover
  • 攻击方式:提前占据 GPU,干扰 VF code 的执行
  • 防御:SAGE 占据所有的 GPU 资源,一旦有其他内核占用资源,会导致验证失败。同时将指令设置为强有序模式,只有在特定的指令顺序、特定的初始参数、特定的指令操作下才能得到正确的结果。
  1. Memory copy attacks
  • 攻击方式:
  1. Proxy attacks
  • 攻击方式:攻击者窃听主机侧发送的挑战,使用代理 GPU 运算后返回结果
  • 防御:对于同一机器的代理 GPU,SAGE 按照性能降序建立 RoT;对于网络上的代理 GPU,调整循环次数等参数确保网络延迟超出时间阈值
  1. Time-of-check to time-of-use attacks / Execution environment takeover
  • 攻击方式:攻击者在启动用户内核前和用户内核结束后,趁机占据 GPU
  • 防御:SAGE 保证 VF 验证结束后立马启动用户内核,且当用户内核结束后,仍需运行内核必须重启整个认证过程
  1. Replay attacks

-