首页
社区
课程
招聘
[翻译]基于DVFS的GPU电磁侧信道窃听攻击
2022-7-5 19:42 20551

[翻译]基于DVFS的GPU电磁侧信道窃听攻击

2022-7-5 19:42
20551

0x01 简介

随着近年来图形处理单元 (GPU) 的迅速普及,研究和理解它们所带来的安全隐患变得非常重要。现代 GPU 可以通过无线方式来广播敏感信息,从而使许多攻击变得切实可行。在过去的几年中,图形处理单元 (GPU) 已成为现代计算机系统不可或缺的一部分,不仅用于图形渲染,还用于密集的并行计算。鉴于在 GPU 上运行的许多任务都对敏感信息进行操作,人们对 GPU 的安全性,尤其是潜在的信息泄露问题提出了担忧。

 

如果攻击者对其目标使用的 GPU 没有物理或逻辑访问权限,那么攻击者是否仍有可能从这些 GPU 窃取敏感信息?在本文中将通过介绍现代 GPU 的一个新的物理侧信道漏洞以及一些利用它的示例来回答这个问题。具体来说,发现了来自 GPU 的某些电磁 (EM)信号:

 

1)可利用:这些 EM 信号依赖于计算,并且可以揭示有关正在进行的活动的细粒度信息;

 

2)易于测量:此类电磁信号很强,可以传播很远(例如,在许多情况下超过 6 米),甚至可以穿透厚壁。

 

本研究确定了一种新的电磁 (EM) 侧信道漏洞,并在 NVIDIA 和 AMD 的许多 GPU 中都发现了该漏洞。通过两个攻击案例表明,可以利用此漏洞进行实际攻击,即网站指纹攻击和击键时间推理攻击。经过调查发现, GPU 中常用的动态电压和频率缩放 (DVFS) 功能是该漏洞的根本原因,它在节能或提高 GPU 性能方面发挥着重要作用。尽管如此,简单地禁用 DVFS 可能不是一种有效的对策,因为它会引入另一个高度可利用的 EM 侧信道漏洞。这是第一项针对远距离非共享 GPU 的物理侧信道攻击研究。

0x02 背景

A. GPU 架构

GPU 已经从硬连线图形加速器发展为高度并行的可编程计算设备。通常,现代 GPU 包含许多单指令多线程 (SIMT) 处理器。每个 SIMT 处理器都有许多简单的 GPU 内核,每个内核都可以执行标量整数和浮点算术运算。这种 SIMT 处理器被 NVIDIA 称为流式多处理器,AMD 称为计算单元。 SIMT 处理器管理、调度和执行并行线程组,在 NVIDIA 和 AMD 的术语中分别称为warps和wavefronts。

 

为了存储大量数据,现代 GPU 通常具有数 GB 的内存。如此大的 GPU 内存由 GPU 上的所有 SIMT 处理器共享,由多个内存模块组成。这些内存模块属于特殊 DRAM 类型,专为在 GPU 中使用(例如 GDDR5 和 GDDR6)而设计。一般来说,GPU 需要高内存带宽来维持其高计算吞吐量,并且有多个内存控制器用于实现对内存模块的大规模并行访问以达到所需的带宽。 GPU内存独立于主机端的主内存,也以自己的方式进行管理。主内存和 GPU 内存之间的数据传输是通过 PCIe 总线进行的。

B. 动态电压和频率缩放

DVFS 是一种电源管理技术,已广泛用于 CPU。它动态地改变电压和频率以调整性能以实现节能,即根据当前的工作负载主动调节,这可以非常有效地利用能源。随着 GPU 的不断强大,其不断增加的功耗已成为一个根本性的问题。为了解决这个问题,DVFS 技术已应用于 GPU。事实上,几乎每一个现代 GPU 都为 DVFS提供硬件支持。对于 GPU,DVFS 控制其内核和内存的电源电压和频率。

 

通常,GPU DVFS 指定了多个性能级别。每个性能级别定义了 GPU 内核和内存的电压和频率设置。(在性能级别上,GPU 内核的频率和/或电压可能不是固定的,而是可以在特定范围内变化,而 GPU 内存的频率通常不会改变。)GPU DVFS 动态切换性能级别以满足电流计算需要并最大限度地减少功耗、发热和风扇噪音。一般来说,在官方 GPU 驱动程序中确定性能级别的方法是专有的,并且没有很好的文档记录。默认的 GPU DVFS 方法是自动采用的,尽管最终用户可以选择通过手动设置固定频率或提供自定义方法来禁用其功能。

C. 电磁辐射/信号

鉴于设备电路中的电流随时间变化,EM 辐射不可避免地会出现。计算机系统产生的电磁辐射在频谱中分布广泛。由于这些 EM 信号通常携带有关潜在电子活动的信息,这些信息可能与某些高级活动相关联。

 

尽管许多 EM 辐射的来源是未知的,但其中一些实际上很容易确定,例如,由一些周期性活动的组件产生的辐射,例如电压调节器和 DRAM 时钟。由这些具有周期性开关行为的组件产生的电磁信号也很强,并且可能传播到几米的距离。有趣的是,其中一些信号可能会被其他活动以调幅 (AM) 或调频 (FM)的形式无意中调制。例如,电压调节器产生的 EM 信号可能会通过它们供电的电路中的活动进行 AM 调制。因此,这些信号充当载波信号,传达有关调制活动的信息。此外,要测量这些远场 EM 信号,非常简单的设备就足够了。

0x03 威胁模型

假设有攻击者打算偷听受害者并提取一些敏感信息,例如受害者正在浏览的网页。攻击者虽然在受害者附近,但他们可能仍然相距甚远。例如,攻击者和受害者可能是同事或邻居。此外,它们可以在物理上彼此隔离。例如,受害者可能在攻击者无法访问的单独隔间、办公室或公寓中。

 

受害者使用配备了独立 GPU 的台式计算机系统。 (在此威胁模型中,不考虑笔记本电脑或其他移动计算设备。)GPU 可能是 NVIDIA 或 AMD 的产品。假设受害者使用官方驱动程序及其默认设置,这是现实中最普遍的情况,攻击者能够找到并使用与受害者用于分析的 GPU 相同类型的 GPU(攻击者可能已经知道受害者正在使用什么 GPU,在该先验知识不可用的情况下攻击者仍能够推断出),不要求受害者和攻击者之间共享 GPU 或任何其他计算资源的使用,也不需要存在任何软件漏洞。

A. GPU显存时钟的EM信号

首先,GPU DVFS 定义了多个性能级别,并根据当前 GPU 工作负载在这些级别之间切换。换句话说,GPU 内核和内存的时钟频率经常发生变化。时钟通常会产生强烈的 EM 辐射,因此当性能级别打开/关闭时,希望在频谱中的相应时钟频率上观察到清晰 EM 信号的出现/消失。为了验证这一预期功能,测试了几款由不同供应商制造并配备不同类型 GDDR 的 AMD 和 NVIDIA GPU,如下表所列。这些 GPU 非常常用,几乎所有 AMD 和 NVIDIA 的最新架构都是包括最新的 NVIDIA Ampere 架构。

 

 

通过改变每个 GPU 的性能水平,并检查了相应核心和内存频率下的频谱行为。检查结果如下:

 

(1) GPU 核心时钟产生的电磁辐射几乎找不到;

 

(2) GPU 内存时钟的 EM 信号非常明显,其行为符合预期;

 

(3) EM 信号由许多频率分量组成,这些分量在频谱范围内很广。

 

 

上图(A) 显示,如果 RX 580 内存时钟未设置为相应级别,几乎看不到 2000 MHz 附近的任何信号能量。另一方面,上图 (B) 显示,当时钟设置为 2000 MHz 时,可以在频域中清楚地观察到 RX 580 内存时钟的 EM 信号。而且,可以看到信号在2000 MHz以下的频率范围内有大量的频谱成分。出现这种现象的原因是使用了一种称为扩频时钟 (SSC) 的硬件功能来满足电磁兼容性 (EMC) 规定。 EMC 标准对高于 30 MHz 的任何频率的 EM 信号能量施加了允许的限制,并且许多时钟信号(例如 GPU 内存时钟)的强度足以违反此类法律限制。为了实现 EMC,SSC 使用 FM 调制在一定范围内改变时钟频率,从而减少时钟信号在特定频率上花费的时间,并且能量分布在该频率范围内。

 

自 GDDR5 以来,GPU 内存使用两种类型的时钟运行。一种称为命令时钟(CK),用于发送命令和地址,另一种称为写时钟(WCK),用于数据读取和写入。攻击相关的EM 放射是由 WCK 专门生成的。在 GDDR5 的情况下,WCK 的频率是数据速率的一半。在 GDDR5X 和 GDDR6 的情况下,如果操作模式设置为双倍数据速率 (DDR),WCK 的频率是数据速率的一半,或者如果操作模式设置为四倍数据速率 (QDR),则 WCK 的频率是数据速率的四分之一。

 

由于许多 GPU 具有不同的 WCK 频率集,如果攻击者事先不知道这些知识,攻击者可能会利用这一事实来找出受害者正在使用哪个 GPU。本质上,攻击者监视所有可能的 WCK 频率的频谱,并使用类似于前图 (B) 所示的 EM 信号的外观来确定目标 GPU 具有哪些 WCK 频率。这种侦察信息可用于查明潜在的 GPU。

B. 活动识别

为了使其可利用,电磁信号应该依赖于计算,以便可以推断高级活动以揭示某些敏感信息。现代 GPU 的性能水平通常会迅速变化,以寻求性能和功耗之间的平衡。给定一个创建一些 GPU 工作负载的计算活动,在活动期间可以有多个 GPU 性能级别切换。由于不同的活动可能在不同的时间对 GPU 施加不同的负载,因此应该引发不同的性能级别切换行为,从而可以作为签名。在上面的讨论中已经了解了性能级别切换与目标 EM 信号的出现/消失之间的相关性,这意味着可以利用攻击相关的 EM 辐射来识别不同的活动。

 

为了完全捕捉性能级别切换的行为,攻击者可能会尝试监控 GPU 内存时钟信号可以以同步方式出现的所有频率范围。然而实验表明,没有必要采用这种重量级的方法来获得切换行为的完整图谱,但关注特定性能级别何时开启/关闭的部分图谱足以区分不同的活动。例如,下图展示了在配备 AMD Radeon RX 580 GPU 的系统上启动三个不同程序(Chrome、Firefox 和 LibreOffice Writer)时的频谱图(操作系统是 Ubuntu 18.04,GPU 驱动程序是 AMDGPU 20.20)。本研究关注的频率范围对应于第二低的 WCK 级别。从图中可以看出,频谱图上的条纹外观图案是可以相互区分的,也验证了它们是完全可重复的。这些模式可以被视为指纹,以帮助推断正在启动的程序。

 

 

因此,只需要考虑 WCK 的一个特定频率,并跟踪相应的 EM 信号能量何时在聚焦频率范围内出现和消失,以获得可用于活动识别的知识(例如,以频谱图的形式)。理论上可以选择任何可能的 WCK 频率,但根据经验,发现第二低的频率通常会产生最佳的利用结果。次低的 WCK 频率比其他频率更好的原因包括:

 

(1)这个频率比其他更高的频率要高得多,特别是当一个活动没有密集地使用GPU时;

 

(2) 注意到它通常比最低的具有更高的信噪比 (SNR)。因此,将重点关注 WCK 在切换到其次低级别时产生的 EM 辐射。

 

为了进一步证实上图中频谱图上的条纹出现模式与 WCK 频率切换行为之间的紧密相关性,还通过 AMD GPU 驱动程序公开的接口获得了 GPU 内存时钟频率变化的轨迹5并将轨迹与频谱图进行比较。实验验证了这些模式与频率变化轨迹很好地匹配,下图显示了对应于上图 (A) 的示例,即启动 Chrome。在下图中,可以看到 WCK 频率在其三个可能的水平之间切换(即蓝色虚线),当 WCK 频率切换到其次低的频率,即 2000 时,将线段设为实心和粗体兆赫。对于构成上图 (A) 中频谱图的每个频谱,绘制了 1990 MHz 至 2000 MHz 频率范围内的幅度平均值(即红色实线)。从图中可以看出,平均幅度的局部峰值与表明 WCK 切换到 2000 MHz 的线段非常匹配。

 

C. 传播距离和穿过墙壁

为了在气隙环境中利用物理侧信道,还需要考虑它可以传播多远以及它是否可以穿过墙壁等障碍物。为此,在前文中列出的 GPU 上进行了几次实验,发现攻击相关的 EM 辐射具有理想的穿墙特性,攻击者可以从足够长的距离进行测量,以实际进行攻击。实验使用 SDR 设备 USRP B210 和超宽带定向天线 RFSPACE UWB-3 进行。

 

当 GPU 机器和天线之间没有障碍物时,仍然可以从中收集攻击相关的 EM 辐射。在这里将收集定义为信噪比至少为 7 dB。一般来说,可以发现最长的测量距离是随方向变化的。由于办公空间的限制,可以到达的最大距离为 6 米。方向的定义如下图所示。可以看到,0°定义为天线垂直于安装主板和GPU的机箱侧,90°定义为天线垂直于安装主板和GPU的一侧。机箱的正面。

 

 

下图显示了使用两种类型的计算机机箱的两种场景。在第一种情况下,使用具有半透明侧板的现代外观电脑机箱(如上图),在第二种情况下,使用每侧均由金属制成的电脑机箱。比较下图(A) 和 (B),可以观察到第一个场景中的半透明侧面板有利于可利用的 EM 信号的传播。如下图 (A) 所示,当使用外观现代的机箱时,无论使用哪种 GPU,都可以从 3 米以上的几乎每个方向捕获攻击相关的 EM 辐射。另一方面,在第二种情况下,全金属电脑机箱可以在逆时针 270° 到 90° 的方向上衰减 EM 信号的强度,但攻击相关的信号仍然可以在一个每个 GPU 在许多其他方向上的距离为 3 米或更多。请注意,如今,具有半透明侧面板的现代计算机机箱主导着市场,实际上在中高端 GPU 用户中非常受欢迎。因此,实际上,攻击者很可能很容易在很远的距离捕获攻击相关的电磁辐射。即使使用全金属侧面的计算机机箱,仍然可以在几米外测量可利用的 EM 信号。

 

 

还将具有现代外观的计算机机箱的 GPU 机器隔离在两个房间中,并测试是否可以从房间外部捕获攻击相关的 EM 辐射。第一个是办公室,墙壁厚达 15 厘米,由石膏制成,第二个是实验室,有很厚的混凝土墙(~15 厘米)。测量并比较了当天线和目标机器相距 1 m 时可利用的 EM 信号的强度,中间有和没有墙壁。下表显示了墙壁造成的 EM 信号强度降低。从 WCK 频率 (MHz) 幅度结果可以看出,石膏墙最多只能降低 1.32 dB 的电磁信号强度,而混凝土墙最多可以降低 8.64 dB 的强度。这些结果表明,普通石膏墙的影响可以忽略不计,而厚混凝土墙对利用这一新发现的 EM 侧信道漏洞的潜在攻击的影响是可控的。

 

0x04 信号转换与增强

尽管可以直接利用派生频谱图来识别活动,但在 SNR 太低而无法在频谱图上产生可见条纹的情况下,这样做会变得非常困难。为了解决这个问题引入了两种信号处理技术,即使 SNR 变得非常低,它们也可以保留目标信号的出现和消失模式。

A. 时间序列推导

SSC 用于将时钟信号的能量分散到一个频率范围内,以满足 EMC 规定。给定一个频率为 fc 的时钟,SSC 实际上将其能量分散到 fc-nfm 处的一系列 N 个子时钟,其中 0 ≤ n < N 并且 fm 是调制频率。通常,fm 为 30 至 33 kHz。由于路径损耗或更好的电磁屏蔽等因素,与背景噪声相比,此类子时钟信号的功率可能变得太弱,利用折叠技术来放大存在的目标内存时钟信号的表现。

 

假设执行 M 点离散傅立叶变换 (DFT) 来导出频谱 X。由于子时钟的频率由 fm 分隔,因此它们应该由 X 中的 Δ DFT 区间分隔,其中:

 

 

fs 是采样率,将 S[i] 定义为 X 的第 i 个、第 (i - Δ)个、···、第[i - (N - 1) × Δ]个DFT区间的大小之和,即有:

 

 

如果时钟频率 fc 位于 X 的第 k 个区间中,则 S[k] 可以视为所有子时钟的累积能量,与任何 S[i] 相比,它会达到一个更高的值,其中 i不等于k,考虑到子时钟相干地增加相应频率位置的功率这一事实。

 

请注意,尽管 fm 是未知的,但它的搜索空间很小(30 到 33 kHz),它可以被彻底搜索。不正确的 fm 不会产生明显高的 S[k]。另一个未知参数是 N,即子时钟的数量。不过,不需要知道确切的数字。 SSC 生成的 GPU 内存子时钟至少跨越 4 MHz,这意味着即使 fm 为 33 kHz 也至少有 121 个子时钟。因此,如果没有其他信息可用,可以将足够大以使 S[k] 突出的数字 120 选为 N。

 

另一个问题是,虽然 fc 已知且理论上是固定的,但由于时钟抖动,它仍可能在小范围内变化;因此,如果 DFT 频率分辨率是细粒度的(例如,在本文中使用 100 Hz),则直接从 fc 计算的第 k 个区间可能不是最高子时钟真正位于的位置。为了解决这个问题,在 k 附近计算多个 S[i],并将 k 更新为结果明显大于其他结果的那个。

 

值得强调的是,除了应对低信噪比问题外,使用这种时间序列推导技术还可以帮助分离多个相似 GPU 生成的信号。给定两个具有相同次低 WCK 的 GPU,它们在频谱中生成的信号可以混合在一起;观察到一个 GPU 的 fc 的第 k 个区间可能与另一个 GPU 的第 k 个区间不同(例如,由于时钟的缺陷),因此可以导出两条独立的轨迹。

B. 强降噪效果

所有 NVIDIA GPU 中次低的 WCK 频率是 810 MHz,它们的 SSC 子时钟分布在 800 MHz - 810 MHz 频段。 在某些地区, 例如北美联邦通信委员会将 614 MHz - 806 MHz 频段分配给电视通信使用。 如此强的背景噪声引起的污染使得使用上述技术很难找到正确的子时钟位置。 例如,下图 (A) 显示了存在通信信号的频谱,不能依靠比较初始 k 周围的不同 S[i] 来找到最高子时钟的真正位置,因为一个非常大的噪声 peak 很容易使所有子时钟的总和相形见绌。

 

 

为了解决这个问题,建议使用卷积核 [-0.5, 1, -0.5] 处理频谱 X。 换句话说,从 X 导出 X‘ 为:

 

 

经过此操作后,X 中的局部峰值应在 X’中具有正值;否则为负值。因此,该操作将查明包括(大部分)子时钟的所有局部峰值。上图(B)是对(A)进行运算后的频谱图。

 

使用 X‘ 可以帮助减少强背景噪声对找到正确的子时钟位置的负面影响的原因是:

 

(1) 如果最高的子时钟在第 j 个区间中,S[j] 将求和当然是依赖的区间(因为它们对应于子时钟),因此它应该是一个正值;

 

(2) 如果最高子时钟不在第 j 个区间中,则 S[j] 将是独立区间的总和,并且考虑到内核使得随机求和 X‘区间的期望为 0 , S[j] 在这种情况下很可能接近于 0。

 

因此,即使存在强烈的背景噪声,仍然可以找到正确的子时钟位置。

 

 

上图展示了本研究方法在使用 NVIDIA RTX 3060 且存在强背景噪声的情况下的有效性。 次低 WCK 的 EM 信号应该大约每 0.5 s 出现一次,即大约每 0.5 s 在导出的时间序列中应该有一个峰值。 然而,由于强噪声污染了攻击相关的频带,上图 (A) 中的峰值出现模式完全不正确。 应用所提出的方法后,可以在上图 (B)中观察到正确的峰值出现模式。

0x05 网站指纹攻击

为了进一步说明DVFS 引起的 EM 侧信道漏洞的可利用性,本节中展示了攻击者可以利用此漏洞来推断受害用户访问了哪些网页,即网站指纹攻击。

A. GPU 加速的网页渲染

在浏览网站时,GPU 实际上比简单地在屏幕上显示页面要复杂得多。 Chrome 和 Firefox 等现代网络浏览器使用 GPU 不仅用于显示,还用于帮助网页渲染。

 

网页渲染是一个将 HTML 文件连同其关联的级联样式表 (CSS) 和 JavaScript 代码转换为光栅化图像的过程。整个过程包括多个阶段:构建文档对象模型(DOM)树,计算每个 DOM 节点的样式,创建页面布局,将 DOM 表示的页面分层,光栅化每一层,并结合将结果光栅化为最终的屏幕图像。在如此复杂的过程中,GPU 通常被用来加速涉及大量像素的操作。例如,一个层通常被划分为一个瓦片网格,这些瓦片需要被光栅化为位图,然后作为纹理上传到 GPU。在存在 GPU 加速光栅化的情况下,GPU 可以根据某些启发式方法直接用于将许多图块光栅化为纹理(例如,如果图块会受到动画或过渡效果的影响,则最好使用 GPU)。此外,GPU 可用于加速将纹理合成到屏幕图像中。

B. 基于 EM 的网站指纹识别

如上所述,GPU 在现代 Web 浏览器中的网页渲染过程中被广泛使用。由于不同的网页有不同的设计和内容,因此渲染它们很可能会产生不同的 GPU 工作负载。工作负载的这种差异应该能够引起 GPU 性能级别切换的不同模式,并且这些模式可以通过在特定条件下监视 GPU 内存时钟的电磁辐射来近似捕获频率。利用这种派生模式,应该能够将呈现的网页彼此区分开来(即指纹识别)。

 

具体来说,监控 WCK 以次低频率生成的 EM 辐射,并利用时间序列来指纹网页渲染活动。为了说明这一点,以 Google、Amazon 和 Youtube 这三个流行网站为例,比较了在配备 AMD Radeon RX 580 GPU 的系统上在 Chrome 中打开这三个网站时捕获的信号所得出的时间序列。 Chrome 默认使用 GPU 加速的网页渲染。因此,渲染这三个网站的主页应该会创建不同的 GPU 工作负载,因为它们的内容有很大差异(例如,Google 主页更简洁,Amazon 有更多动画,而 Youtube 拥有大量视频)。下图显示了相应的时间序列,正如预期的那样,可以注意到它们之间的明显差异。

 

 

从上图中,可以观察到时间序列数据中的峰值出现非常频繁,对应于 Youtube 和 Google。就 Youtube 而言,打开时有一段视频正在播放,会持续使用 GPU 进行显示(甚至解码);然而,仍然可以看到 GPU DVFS 对性能水平的调整。对于Google ,它的输入框中有一个闪烁的文本光标,其闪烁频率约为 1.67 Hz;并且每次闪烁时,受影响的图块都需要重新光栅化,并且需要由 GPU 重新合成屏幕图像。可以看到,在最初的 1 s 之后,上图(A)中每个宽峰之间的间隔约为 600 ms,这与光标的周期性闪烁行为相匹配。尽管上图 (B)中未显示,但由于其动画广告图片每 5 秒切换一次,Amazon还在大约 0.2 Hz 的时间序列数据中引起周期性峰值出现。

 

 

请注意,用户通常倾向于在浏览器中打开多个选项卡。发现使用多个标签根本不会影响网站指纹识别。原因是 Chrome 和 Firefox 等流行浏览器仅将当前关注的选项卡的工作负载发送到 GPU 以优化资源利用率。为了验证这一点,使用 Chrome 或 Firefox 在一个标签中打开网站,同时在其他几个标签中播放 Youtube 视频,确认攻击相关的 EM 信号模式不会受到其他未聚焦的标签的干扰。上图中给出了一个示例,在 Chrome 选项卡 (0 – 2.8) 中观看 Youtube 视频,直到打开一个新选项卡 (2.8 – 3.2),该视频仍在前一个选项卡中播放,然后打开Twitter 在这个新标签中 (4.2 – 5.4)。该图清楚地说明了上述说法。此外,该图进一步表明,可以在很长的跟踪中识别网页渲染的可能起点。

 

虽然使用多个选项卡没有影响,但更改浏览器窗口大小可能会影响网页渲染工作量,从而对网站指纹识别产生负面影响。尽管如此,据观察,大多数人(如果不是所有人)在使用网络浏览器时只是使用完整的窗口大小。因此,这种影响在现实中可能并不重要。

C. 评估

本研究主要目的是展示对新发现的 EM 侧信道的利用,所以评估只是在一个封闭的世界场景中进行,假设受害者访问了一个热门网站列表,攻击者试图查明这些网页受害者从一组可能性中浏览。评估的重点是 Chrome 网络浏览器,因为它占据了市场份额。在评估中,没有安装任何 Chrome 扩展程序。某些浏览器扩展会影响网页上呈现的内容,从而影响生成的 GPU 工作负载,从而影响 GPU 性能级别切换模式。在实践中,攻击者可能需要在分析期间考虑流行的扩展(例如 AdBlock 和 Ghostery)。

 

尝试使用不同的操作系统,但发现所有 Windows 下的 AMD GPU 在打开网站时很少改变性能水平。 (这个现象应该是它的驱动造成的,留待以后的工作来进一步检查。)因此,只在Linux下评估对AMD GPU的攻击,这里使用了官方驱动AMDGPU 20.20。 相比之下,攻击可以针对 Windows 或 Linux 下的所有 NVIDIA GPU。 将 NVIDIA GTX 1080 与安装了官方 Linux 驱动程序 450.51.06 的 Linux 配对,并将 NVIDIA GTX 1650 与安装了官方 Windows 驱动程序 461.40 的 Windows 配对。 对于 NVIDIA RTX 3060,评估了 Windows 和 Linux 下的攻击。下表总结了这些情况。

 

 

使用 USRP B210 SDR 和 RFSPACE UWB-3 天线来捕获攻击相关的 EM 信号,使用 GNU Radio 来管理整个测量过程并处理捕获的原始数据。 SDR 调整到相应 GPU 的次低 WCK 频率,并设置为使用 25 MHz 采样频率。

 

 

根据Alexa Top Sites 选择了 50 个网站。对于每个网站,测量来自不同方向(315°、0°、30° 和 60°)在不同距离(即为 0.5 m、1 m、3 m 和 6 m),如上表所列。在每个点,在其网页打开时测量 8 秒的 EM 辐射,并重复此过程 50 次。 (为了方便数据采集,使用脚本反复让当前标签返回空白页,等待 5 秒,打开目标网页,并记下后面的迹线对齐时间。)对于每个测量的信号,给定 25 MHz 的采样率,使用 L = M = 250, 000,即每个子序列有 250,000 个样本,使用 250,000 点的 DFT,这意味着 DFT区间分辨率为 100 Hz,每个导出点 S[k ] 表示 10 毫秒。

 

1) Nearby Scenario:从一个就近场景开始,这里只使用N1、N2、N3和N4测量的EM信号来训练分类模型,N5、N6、N7和N8测量的EM信号是用于测试。鉴于 EM 信号已被转换为时间序列,采用 ResNet 模型。(对于每个网站,每个点测量 50 个 EM 信号,有 200 个每个网站的训练时间序列和 200 个测试时间序列。)

 

实际上,攻击者可以在任何距离从任何方向分析电磁信号。因此,这种情况对攻击者有偏见,并且评估低估了可实现的准确性。尽管如此,从结果中可以看出所有情况下的平均分类准确率都在 63% 以上,而 RX 580 的情况下达到了 85.3%。给定一个测试示例,如果随机猜测 50 个网站中的哪一个对应,准确率将仅为 2%(即 1/50)。因此,结果表明大量信息可以通过这个新的 EM 侧信道泄漏。

 

 

一个有趣的案例是比较使用相同 GPU 但在不同操作系统下对应的结果。上表的最后两列显示了这种情况,其中 NVIDIA RTX 3060 在 Windows(最后一列)和 Linux(倒数第二列)下进行评估。可以观察到,除了异常点 N5 之外,其他任何点的性能似乎都非常相似,尽管在 Linux 下稍好一些。还使用 Linux 相关模型对在 Windows 下捕获的数据进行分类,反之亦然,但有趣的是,准确率仅略好于随机猜测(分别为 4.3% 和 5.6%)。这意味着不同操作系统的驱动程序和 Chrome 引擎等因素会强烈影响渲染网页时的 GPU DVFS 行为。请注意,攻击者可以简单地对两个操作系统执行分析并结合训练数据,因此以这种方式训练单个模型来测试性能。结果的准确率变为 64.1%,这与最后一列中的准确率非常相似(即 63.9%)。因此,无论目标上使用哪个操作系统,这种指纹识别都可以工作。

 

AMD RX 5600 和 RX 5700 确实不同,但它们都基于 AMD RDNA 1.0 架构。尝试使用为他们训练的模型来相互交叉指纹。使用针对 RX 5600 训练的模型对 RX 5700 的信号进行指纹识别的准确率为 63.3%,使用针对 RX 5700 训练的模型对 RX 5600 的信号进行指纹识别的准确率为 50.6%。即使它们由不同的供应商制造并使用不同的 GPU 芯片组,仍然可以获得合理的网站指纹结果。这意味着攻击者可以使用针对他/她自己的 GPU 训练的模型来识别另一个类似 GPU 的信号(当然,如果两个 GPU 芯片组也匹配,则更准确)。

 

2) Faraway Scenario:接下来在一个远端场景中进行评估,在F1、F2、F3和F4处测量的EM信号用于训练分类模型,在F5和F6处测量的EM信号用于测试.此外,使用此模型测试在 N6 处测量的信号。评估了两款 GPU,即 AMD RX 580 和 NVIDIA GTX 1650。将 GTX 1650 放置在外观现代的电脑机箱中,而将 RX 580 放置在全金属电脑机箱中。评估结果见下表。

 

 

与之前的附近场景类似,评估也低估了可实现的准确度。尽管如此,可以观察到准确度非常高,而对于 NVIDIA GTX 1650,远距离的性能甚至比近距离的性能要好得多(例如,在 3 m 处达到 95.4%,在 6 处达到 93.2% m,而 1 m 时为 85.4%)。N6 与表 V 中的 GTX 1650 相当,RX 580 相当不错。结果表明,只要可以拾取攻击相关的 EM 信号,方向和距离的差异通常是可以容忍的。

 

在第二个远端场景中,也包括在 N2 和 N4 测量的 EM 信号用于训练,并且仍然测试在 F5、F6 和 N6 测量的 EM 信号。评估结果列于上表。结果表明,在距离和方向这两个剖析因素之间,距离对性能的影响更大。因此,如果资源有限,攻击者应该在分析期间选择距离而不是方向。

0x06 击键时间推理攻击

利用 DVFS 引起的 EM 侧信道漏洞进行的第二个攻击案例,即检测击键事件并了解连续击键之间的时间,研究击键时间推理攻击。即使这种攻击不能直接恢复用户按下的特定键,它仍然被视为一种键盘记录 ,因为可以利用有关击键时间的知识来推断键入的密码或其他单词。因此,这种攻击对安全和隐私构成了更大的危害。

 

结合上一节研究的网站指纹攻击,甚至会造成更严重的侵犯用户隐私的行为。例如,当检测到用户打开了某个网站的登录页面时,攻击者可以尝试通过识别的击键次数来识别输入的用户名和密码的长度,进而攻击者可以进一步尝试推断此类的详细信息。

A. 击键检测

如果能够检测到击键事件并在时间轴上精确地标记它们,那么了解连续击键之间的时间将是一项简单的任务。因此需要调查是否可以从 GPU 内存时钟的电磁辐射中检测到击键,尤其是在用户在网页上打字的时候。

 

本质上,在网页上输入文本框会使相应图层的受影响图块重新光栅化,并重新合成最终的屏幕图像。如前所述,浏览器通常将这些操作生成的计算委托给 GPU 以进行加速。根据之前的观察,GPU 性能水平将因此被 DVFS 改变,并且可以通过监控 GPU 内存时钟的电磁辐射来捕获这种水平切换。因此,希望可以通过利用现代 GPU 中 DVFS 引起的 EM 侧信道漏洞来检测击键事件。

 

为了验证这个假设,进行了几个实验。首先使用键盘活动生成工具创建一系列关于某些模式的假击键,并检查 GPU 内存时钟的 EM 信号的外观是否与这些模式匹配。下图显示了该实验在 NVIDIA GTX 1080 上执行的示例,其中使用脚本在 Google 的搜索框中重复生成“a”、“b”和“c”的序列。在每个“a”之后,有 200 毫秒的暂停;在每个“b”之后,有 350 毫秒的暂停;并且,在每个“c”之后,会有 500 毫秒的暂停。从该图中,可以很容易地看到峰值的出现与“a”、“b”、“c”键击时序模式相匹配。

 

 

接下来,让三个用户在 Facebook 登录页面的相应框中快速输入“username”和“password”。键盘是戴尔 L30U。下图说明了当参与者中最快的用户正在打字时,根据 NVIDIA RTX 3060 处理的攻击相关的 EM 信号。从结果中确认可以正确检测到击键事件,并且可以精确地导出击键间时间信息。请注意,即使能够通过利用攻击相关的 EM 放射来确定击键之间的时间,也没有发现信号和键入的字符之间有任何相关性。

 

 

还需要提到,如果用户在充满动画的网页上打字,攻击者可能很难正确检测到击键事件。然而,这一限制实际上并没有过多地限制攻击者学习与键入非常有价值的信息(如用户名和密码)相关的击键间时间,因为对于攻击者来说,许多流行或登录页面的登录或注册页面是吉祥的重要的网站被刻意设计得简单明了(例如Google, Amazon, Twitter, PayPal等)。

B. 评估

在本次评估中,主要通过利用已发现的 DVFS 引起的 EM 侧信道漏洞来探索两个连续击键在时间上的接近程度,以使它们仍然可以被检测到。为了便于评估,使用键盘活动生成工具来创建假击键,因为它们在时间上肯定比手动输入精确得多。如上所述,专注于推导在浏览器中的网页上键入时连续击键之间的时间。因此,评估主要是在这种情况下进行的。专门使用 Chrome 作为浏览器。选择Google主页和PayPal登录页面作为评估的代表场所。

 

在信号测量的设置方面(例如,SDR 和天线),捕获的 EM 信号仍然使用 GNU Radio 处理。目前不使用任何自动方法来识别处理数据中的击键事件,而仅执行手动分析。创建击键序列,击键间时间间隔分别为 10 ms、20 ms、30 ms、····。在每个 GPU 目标机器上测试每个序列,以检查是否可以通过派生时间序列中的峰值出现和消失模式检测到序列中的所有击键。下表显示了评价结果。从结果中可以看出,NVIDIA RTX 3060 的时间分辨率最高,可以清晰识别每隔 30 毫秒的击键。 (低于 30 毫秒,例如 20 毫秒时,也能识别 90% 以上的击键。)对于其他 NVIDIA GPU,GTX 1080 和 GTX 1650,也可以实现高分辨率。

 

 

与 NVIDIA GPU 相比,AMD RX 580 的时序分辨率要粗糙得多,几乎为 150 毫秒。造成这种差异的原因是,当 RX 580 处于次低的性能水平时,它似乎比那些经过测试的 NVIDIA GPU 停留的时间更长。因此,如果两个或多个击键在时间上非常接近,它们可以被视为一个击键事件。

0x07 禁用GPU DVFS无效

为了减轻上述利用的可能性,一种直接的方法是通过将 GPU 设置为以特定性能级别运行来禁用 GPU DVFS。然而,这样的对策有两个主要问题。第一个是这种对策会损害性能或能源效率。如果选择了相对较低的性能级别,则与使用GPU进行加速的目的相矛盾;然而,如果选择高性能水平,它的能源效率将非常低。第二个也是更严重的问题是,当使用 NVIDIA GPU 时,这种对策将不幸地引入另一个高度可利用的 EM 侧信道漏洞。

A. AM 调制的电磁辐射

该方法无效的原因是发现了一种新型的可利用的电磁辐射,当 NVIDIA GPU 的性能水平固定时会出现。给定一个 NVIDIA GPU,用户可以使用官方驱动程序中包含的工具将其性能级别设置为最高。发现当性能水平如此固定时,会出现强烈的电磁辐射由 GPU 内存访问无意中进行 AM 调制。换句话说,这些电磁辐射的强度会随着读写数据量的变化而变化。

 

在测试过的所有 NVIDIA GPU(即 GTX 1080、GTX 1650 和 RTX 3060)的情况下,EM 辐射的频率约为数据速率的八分之一。尽管目前不知道此类 EM 信号的确切原因,但猜测是它们是由驱动 GPU 内存系统中某些组件的某些时钟创建的。

 

由于新兴的 EM 辐射将通过 GPU 内存访问进行 AM 调制,即使使用固定的 GPU 内存时钟频率消除了 DVFS 引起的 EM 侧信道漏洞,有关 GPU 内存流量模式的信息也将被编码为这些新的 EM 放射,可用于有效识别高级活动。本质上,这种 EM 辐射充当调制载波信号,承载调制活动信息并传播到很远的距离。

 

 

例如,上图显示了将 NVIDIA GTX 1650 的性能级别设置为最大值时出现的上述攻击相关的载波信号。鉴于 GTX 1650 的最大数据速率为 8 Gbps,关注的 EM 载波信号将达到 1000 MHz。然而,从上图 (A) 中,可以观察到它在 996 MHz 到 1000 MHz 的频率范围内具有许多频谱分量,它说明了频域中攻击相关的载波信号。上图 (A) 中分布在 4 MHz 范围内的这些分量是由 SSC 引起的,这表明载波信号是由时钟引起的。上图(B) 显示了时域中的信号,当 AM 调制时,其幅度将随时间变化。

 

为了举例说明上图中所示的 EM 信号可以进行 AM 调制和利用,在使用 Chrome 浏览不同网站时检查了该信号。使用三个最流行的网站,Google,Amazon和 Youtube。由于这次性能水平是固定的,无法利用其切换模式来识别这些网站。然而下图表明,减轻 DVFS 引起的 EM 侧信道漏洞后产生的 EM 信号可用于推理网站身份,因为它的幅度在网页渲染期间由 GPU 内存访问调制,这在一般如果正在呈现不同的页面。攻击相关的 AM 调制信号肯定会携带足够细粒度的信息,可以被利用。

 

 

请注意,当 GPU DVFS 被禁用时,仅在 NVIDIA GPU 中发现了这个 EM 侧信道漏洞,而在 AMD GPU 中则没有。然而,这并不意味着禁用 DVFS 就 AMD GPU 而言是完全有效的对策。在 AMD GPU 上禁用 DVFS 时,可能还会出现其他一些未发现的 EM 漏洞。

B. 评估与讨论

为了展示这种 AM 调制的 EM可利用性,评估了使用 Windows 作为操作系统的 NVIDIA RTX 3060 上的网站指纹攻击的性能。评估设置与表五中使用的完全相同,即在 N1、N2、N3 和 N4 处测量的信号用于训练分类模型,在 N5、N6、N7 和 N8 处测量的信号为用于测试。在每个地点,仍然为每个网站捕获 50 个信号。信号测量设置与请问中的设置相同,但有一个例外——将 SDR 调整到 1875 MHz 的中心,因为当设置 RTX 3060 的性能水平时,该频率是相应数据速率的八分之一成为最高的。直接使用时域中的测量信号。由于也是时间序列数据,仍然使用相同的 ResNet 分类模型。评估结果如下图所示。

 

 

从结果中可以发现准确率高达 89.1%,这比利用 DVFS 诱导的 EM 辐射(即 63.9%)要好得多。如此良好的性能表明,可以利用 AM 调制的 EM 信号来有效地发起网站指纹攻击。如果仅考虑禁用 GPU DVFS 实际上用作对策这一事实,那么会出乎意料地发现这种缓解方法有助于而不是阻止攻击。还验证了通过利用这种 AM 调制的 EM 信号来执行击键时间推理。在这种情况下,无论使用哪个 NVIDIA GPU,相隔 20 毫秒的两次击键仍然可以很好地区分。

 

对于利用 AM 调制的 EM时攻击性能显着提高的猜想是,此类 EM 信号中携带的信息粒度比 DVFS 诱导的信息粒度要细得多。尽管 GPU DVFS 足够快以揭示GPU 工作负载的变化,但它无法窥探每个工作负载中更详细的活动。在网站指纹攻击的特定情况下,如果可以获取一些更细粒度的信息,它可能有助于区分在渲染过程中生成类似 GPU 工作负载序列的网页。相比之下,其强度由 GPU 内存访问进行 AM 调制的辐射不可避免地包含有关每个工作负载的调制内存活动的信息。因此,鉴于在利用 DVFS 引起的 EM 侧信道漏洞时经常被错误分类为彼此的网页,当使用 AM 调制的 EM 辐射时,它们变得更容易相互区分。

 

请注意,本节的 EM 侧信道漏洞和 DVFS 引起的漏洞不能同时被利用。 发现只有在性能水平固定时才会出现 AM 调制漏洞。 因此,虽然可以利用 AM 调制的 EM 侧信道漏洞来实现更有效的攻击,但在许多实际情况下会利用 DVFS 引起的漏洞,因为在大多数情况下,用户不会更改 GPU DVFS 上的设置,默认情况下处于活动状态。 但是如果关闭 GPU DVFS,则其他 EM 漏洞可被利用。

0x08 结论

基于利用发现的 EM 侧信道信息,本研究证明了基于GPU进行真实的窃听攻击是切实可行的。对于一个使用GPU 而不共享的受害者,攻击者可以监视受害者并以高精度识别受害者访问的网页(即网站指纹攻击)。此外,还可以进一步推断受害者的击键时间,这可用于恢复输入的单词或口令。由于攻击者可以距离受害者几米远,攻击者甚至可以隐藏在单独的隔间或房间中,因此所提出的攻击实际上非常隐蔽。

 

在本文中展示了存在于许多GPU 中的 EM 侧信道漏洞,并进行了两个案例研究,即网站指纹识别和击键计时攻击,以证明这种新的 EM 漏洞具有高度可利用性。 尽管此漏洞的根本原因被确定为 GPU 中常用的 DVFS 功能,但通过将 GPU 设置为特定性能级别来简单地禁用 DVFS 可能不是有效的对策,因为出现了另一个 AM 调制的 EM 漏洞。 还讨论了一些潜在的缓解方法。 由于GPU信息泄露漏洞的研究才刚刚起步,目前公开的漏洞及其利用只是冰山一角,还有很多可利用的漏洞在潜伏。

参考链接:https://www.computer.org/csdl/proceedings-article/sp/2022/131600b253/1A4Q482CNCo


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2022-7-6 13:00 被CDra90n编辑 ,原因: 忘记写参考引用了
收藏
点赞8
打赏
分享
最新回复 (3)
雪    币: 12059
活跃值: (15389)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
pureGavin 2 2022-7-6 08:52
2
0
感谢分享
雪    币: 388
活跃值: (160375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
飘零丶 2022-7-6 14:34
3
0
感谢分享
雪    币: 226
活跃值: (105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
happysamuel 2022-7-7 00:46
4
0
学习教程,感谢分享!
游客
登录 | 注册 方可回帖
返回