39个关键硬件漏洞隐患盘点

攻防
2月前

1722809048986351.jpg

2018年1月,计算机行业因Meltdown和Spectre两大处理器漏洞而陷入高度警戒。这两个漏洞打破了操作系统内核与用户空间内存之间的基本安全界限。这一缺陷源于现代CPU的性能特点——推测执行,要解决这个问题,全球范围内展开了历史上规模最大的补丁协调工作,涉及CPU制造商、设备制造商以及操作系统供应商。

Meltdown和Spectre虽然并非首个由硬件设计决策引发的第一个漏洞,但它们的广泛影响引发了安全研究界对此类漏洞的兴趣。自那时起,众多研究人员,无论来自学术界还是个人研究者,都开始深入钻研CPU和其他硬件组件的底层运作机制,不断揭露更多的问题。

不推出新一代的组件,就难以彻底解决部分硬件上的缺陷。然而,对于另一些缺陷,我们可以通过更新固件来修复,因为固件是嵌入在硬件芯片中的底层编程代码。无论采取哪种方式,修补这些漏洞都不是一件简单的事情。因此,这样的问题可能在相当长的一段时间内继续对现实世界的设备造成影响。

以下是在 Meltdown 之前和之后发现的一些最重要的 CPU 和内存漏洞。

CPU 侧信道攻击

1、Spectre variant 1
2、Spectre variant 2
3、Meltdown variant 3
4、Meltdown-GP
5、Meltdown-NM
6、Spectre-NG
7、Spectre-PHT
8、Meltdown-RW
9、Foreshadow-OS
10、Foreshadow-VMM
11、Foreshadow-SGX
12、Meltdown-PK and Meltdown-BND
13、Spectre-PHT-CA-OP, Spectre-PHT-CA-IP and Spectre-PHT-SA-OP
14、Spectre-BTB-SA-IP and Spectre-BTB-SA-OP
15、Fallout
16、RIDL
17、Zombieload
18、Starbleed
19、PLATYPUS
20、SRBDS
21、Spectre-BHI
22、Retbleed
23、Hertzbleed
24、SQUIP
25、Zenbleed
26、Downfall
27、Reptar
28、Inception
29、SLAM
30、GhostRace
31、TikTag
32、Indirector

1、Spectre variant 1 (CVE-2017-5753)

CVE-2017-5753,又称“边界检查绕过”漏洞,是一种利用现代CPU分支预测功能进行的攻击手段。攻击者可借助CPU缓存这一侧通道,从其他进程的内存中窃取数据。此漏洞使得一个进程能够非法读取另一进程内的敏感信息,甚至可以跨越用户/内核内存权限边界。该缺陷对Intel、IBM以及部分ARM CPU构成了威胁。

2、Spectre variant 2 (CVE-2017-5715)

Spectre 变体 2 与变体1具有相似的危害影响,不过它采用了名为“分支目标注入”的另一种攻击手段。要有效缓解 Spectre 变体 2 的威胁,必须对受影响的 CPU 微码进行更新,这一更新可以通过升级 BIOS/UEFI 或在操作系统每次启动时自动应用补丁来实现。

3、Meltdown variant 3 (CVE-2017-5754)

Meltdown,又被称为“异常数据缓存加载”(RDCL)或CPU推测执行缺陷变种3,是一种针对现代Intel CPU无序执行功能的漏洞。这一漏洞使得用户进程能够跨越安全边界读取受保护的内核内存。为了修复这一问题,我们只需要通过操作系统更新即可,并且涉及到利用Linux内核页表隔离(KPTI)等机制对内核内存(通常包含敏感机密信息)实施更严格的保护措施。

4、Meltdown-GP (CVE-2018-3640)

这种漏洞是Meltdown的变种,也被称作“Meltdown变体3a”。它通过系统寄存器的预测性读取来引发信息泄露,因此称为“恶意系统寄存器读取”(Rogue System Register Read,简称RSRE)。要解决这个问题,需要对微码进行更新。

5、Meltdown-NM (CVE-2018-3665)

关于Meltdown的推测执行漏洞,也称为LazyFP,它能够泄露浮点单元(FPU)的状态——这是英特尔现代CPU中存在的一种专门的数学协处理器,用于加速对浮点数的运算。FPU状态可能包含来自加密操作的敏感信息。可以通过在操作系统级别强制实施“急切切换”而不是“延迟切换”FPU 上下文来缓解此漏洞。

6、Spectre-NG (CVE-2018-3639)

也被称为“幽灵变种4”,或称“推理存储绕过”(SSB),这是一种允许在知晓先前的内存写入地址之前就进行内存读取的“幽灵”变种。它能够泄露跨进程的信息。对此问题的缓解需要同时更新微码和操作系统。

7、Spectre-PHT (CVE-2018-3693)

也称为 Spectre 1.1,是 Spectre 的一个变体,它利用推测存储来创建推测缓冲区溢出。它能够绕过之前部分基于软件的针对Spectre的缓解措施,并需要操作系统更新。

8、Meltdown-RW

也称为Spectre 1.2,这种变体通过利用推测存储覆盖只读数据和代码指针。此变体可用于突破软件沙盒限制,与Spectre 1.1相关联。针对这一变体的缓解措施需要操作系统更新。

9、Foreshadow-OS (CVE-2018-3620)

Foreshadow 也称为 L1 终端故障,是一种针对 Intel CPU 的推测性执行攻击,允许从处理器的 L1 数据缓存中提取信息。这在将同一物理 CPU 拆分为多个虚拟 CPU 的虚拟机上下文中尤其敏感,因为这些虚拟 CPU 使用相同的 L1 缓存。此变体允许攻击者从操作系统或 SMM(系统管理模式)中提取信息,SMM 是独立于操作系统的 CPU 操作的替代模式,旨在由 BIOS/UEFI 或低级 OEM 代码使用。

10、Foreshadow-VMM (CVE-2018-3646)

Foreshadow 的一种变体,它会影响虚拟机,并允许在 VM 中运行的客户机操作系统可能从其他客户机虚拟机或虚拟机监控程序本身读取敏感内存。

11、Foreshadow-SGX (CVE-2018-3615)

这是一种Foreshadow变体,它使攻击者得以访问英特尔软件保护扩展(SGX)安全区的内存。SGX是英特尔部分CPU提供的可信执行环境,它使得开发者能够安全地存储数据和运行代码,即便操作系统的其他部分已经遭到破坏。

12、Meltdown-PK and Meltdown-BND

Meltdown-PK(保护密钥绕过)和 Meltdown-BND(边界检查绕过)是 Meltdown 的两种变体,由一组学术研究人员于 2018 年 11 月提出,作为对瞬态执行攻击的更大规模评估的一部分。Meltdown-PK 会影响 Intel CPU,而 Meltdown-BND 会影响 Intel 和 AMD。

13、Spectre-PHT-CA-OP, Spectre-PHT-CA-IP and Spectre-PHT-SA-OP

这是基于CPU的模式历史表(PHT)的Spectre漏洞变体,同时与Meltdown-PK和Meltdown-BND被同一研究团队公开披露。

14、Spectre-BTB-SA-IP and Spectre-BTB-SA-OP 

这些是利用分支目标缓冲区 (BTB) 的 Spectre 攻击的变体。它们于 2018 年 11 月由发现 Meltdown-PK 和 Meltdown-BND 的同一团队披露。该团队当时得出的结论是,“大多数防御措施,包括已部署的防御措施,都无法完全缓解所有攻击变体。

15、Fallout (CVE-2018-12126)

Fallout,也称为微架构存储缓冲区数据采样 (MSBDS),是一种漏洞,其影响类似于 Meltdown,因为它可用于跨安全边界从受保护的内存区域泄漏敏感机密。它是针对 CPU 的新型侧信道攻击的一部分,英特尔称之为微架构数据采样 (MDS)。这种缺陷可能影响到操作系统和虚拟机监控程序,而缓解这一问题的方法在于更新CPU的微码。

16、RIDL (CVE-2018-12127 and CVE-2018-12130)

在MDS攻击的其他两个变种中,一种是名为“微架构加载端口数据采样”(MLPDS),另一种则称为“微架构填充缓冲区数据采样”(MFBDS)。和Fallout攻击相似,针对这两种攻击的缓解措施同样需要对CPU的微码进行升级更新。

17、Zombieload (CVE-2019-11091)

MDS攻击的第四种变种被称为“微架构数据采样不可缓存内存”(MDSUM)。这种攻击方式与Fallout和RIDL相似,都能用于泄露内核或虚拟机管理程序的敏感内存信息。

18、Starbleed

Starbleed 是 Xilinx 公司生产的现场可编程门阵列(FPGA)在比特流加密过程中被发现的一个设计漏洞。与中央处理器(CPU)不同,CPU内置了适用于大多数计算任务的通用指令集,而FPGA则是一种集成电路,其内部逻辑结构可以由用户进行编程定制。因此,FPGA通常被配置为以更高的效率执行特定的任务,广泛应用于航空航天、金融以及军事等领域的关键安全应用中。

在FPGA上加载的配置文件被称为比特流。为了保护客户的知识产权以及防止FPGA中可能包含的其他机密信息泄露,FPGA制造商,如占据约50%市场份额的Xilinx公司,已经在比特流中加入加密和验证机制。然而,德国波鸿鲁尔大学Horst Goertz教授领导的IT安全研究所的研究人员发现,Xilinx 7系列和Virtex-6 FPGA的比特流安全机制存在设计漏洞,这使得攻击者有可能破解并修改这些比特流。

为了实现 Starbleed 攻击,黑客需要访问 FPGA 上的硬件配置接口,这通常需要对设备进行物理访问。但一些FPGA通过单独的微控制器进行编程和重新编程,这些微控制器可以连接到网络,在这种情况下,可以远程执行攻击。

由于该设计缺陷存在于芯片中,因此无法修补,因此将在未来几代 Xilinx FPGA 中得到纠正。该公司在论文发表之前已收到该漏洞的通知,并已向客户发送了公告。

19、PLATYPUS 

PLATYPUS 是一种名为侧信道的攻击方式,它利用了测量CPU功耗的运行平均功率限制(RAPL)接口进行恶意操作。这种攻击自2011年以来的所有Intel CPU产品线(包括Sandy Bridge系列)都存在。它是首个能够远程执行的差异功耗分析攻击,能够泄露机密信息,比如Linux内核内存和英特尔SGX安全飞地的加密密钥等敏感数据。

该次攻击于2020年11月被公布,是由格拉茨理工大学、英国伯明翰大学以及CISPA亥姆霍兹信息安全中心的一组研究人员共同设计的。为了修复这些漏洞,Linux内核开发团队采取措施,防止了非特权应用程序对RAPL能耗数据的访问,这些漏洞被分别标记为CVE-2020-8694和CVE-2020-8695。

然而,这一举措并不能彻底消除对英特尔SGX的特权攻击途径。英特尔SGX作为一种集成在CPU内部的信任执行环境(TEE),即便操作系统遭受严重损害,也应当保障敏感加密数据的安全性。为此,用户需采取的行动是安装英特尔发布的CPU微码更新。

在研究人员对英特尔CPU的攻击进行测试并确认有效的同时,他们提醒道,包括AMD、Nvidia和ARM在内的其他芯片制造商的产品也配备有可访问的能耗计量器,这些设备可能同样容易受到这种攻击的影响。

20、SRBDS (CVE-2020-0543) 

SRBDS(特殊寄存器缓冲区数据采样)技术,由阿姆斯特丹自由大学的研究人员在2020年研发成功。这项技术揭示了通过CPU核心的侧信道泄露数据的一种推测执行攻击的可能性。在此之前,关于此类攻击及其缓解措施的研究普遍假设攻击者和受害者使用的是同一个CPU核心,原因是泄漏数据的内部CPU缓冲区是由在同一CPU核心上运行的超线程所共享的。

研究发现,部分指令能够从所有CPU内核共用的暂存缓冲区中读取数据,这扩大了已知及此前已缓解的推理执行攻击的攻击范围,比如RIDL(CVE-2018-12127和CVE-2018-12130)。为此,研究团队开发出一种名为CrossTalk的工具。该工具能够检查x86指令在不同环境下的行为,以确定它们在何种情况下会发起非核心内存请求。随后,研究者运用新开发的攻击技术,从暂存缓冲区中泄露英特尔SGX安全飞地所使用的随机数生成器(RNG)输出。利用这个RNG输出的结果,研究人员能够在执行密钥执行的单一数字签名操作后,成功泄漏在独立CPU内核上运行的英特尔SGX安全区域的ECDSA私钥。

英特尔最新推出CPU微码更新,旨在解决RDRAND、RDSEED和EGETKEY等核心指令存在的安全漏洞。这些指令若被触发,将导致整个内存总线锁定,直至暂存缓冲区得到清理。这样的处理方式会导致性能显著下降,因此更新的目的仅限于修复特定的指令。

21、Spectre-BHI (CVE-2022-0001, CVE-2022-0002 and CVE-2022-23960) 

Spectre-BHI(分支历史注入)或Spectre-BHB(分支历史缓冲区)是由阿姆斯特丹自由大学的研究人员在2022年3月披露的一种新型攻击方式。该攻击与之前已知的Spectre v2或Spectre-BTI(分支目标注入)攻击有着相似之处,但它是这些原始攻击的变体,影响范围涵盖Intel和ARM CPU。与Spectre-BTI类似,这种新的攻击变种也能从内核内存中窃取敏感信息。不过,它通过破坏CPU预测器的全局历史记录来进行操作,从而规避了CPU供应商所引入的硬件防御措施。

利用原始的Spectre v2漏洞,攻击者能够将目标代码注入到特定位置,并诱导内核执行这些代码。然而,对于新的Spectre-BHI攻击方式,他们必须依靠那些已经存在于历史记录中的代码工具和片段,因为这些代码曾经被运行过,可能包含有价值的信息。这无疑增加了Spectre-BHI的利用难度。尽管如此,这一技术的发展也揭示了Spectre攻击的范围远超之前的认知。

为验证此类攻击,研究人员不当使用了eBPF技术。自Linux内核4.4版本起,这一技术在Linux系统中得以应用,允许在内核层面运行沙盒程序。一旦启用此机制,便极可能利用Spectre-BHI Linux等推理执行漏洞进行攻击。然而,即使禁用该功能,也无法彻底解决这一问题,因为仍有可能存在通过其他工具泄露数据的情况。

22、Retbleed (CVE-2022-29901 and CVE-2022-29900)

Retbleed是一种在2022年7月由苏黎世联邦理工学院的研究人员公开披露的攻击技术。该技术利用了Intel和AMD处理器的推测执行功能,成功绕过了为防范Spectre等之前发现的漏洞而设计的软件防护措施。

2018年,Spectre攻击首次通过间接跳转或调用引发分支目标推测。对此,谷歌的研究人员提出了一种名为“Retpoline”的软件防御策略,通过将返回指令替换为软件中的间接跳转和调用。虽然有人认为利用返回指令不可行,因为它们通常不会触发推测执行,但“Retbleed”漏洞却表明,在特定条件下,如深度调用堆栈下溢回堆栈缓冲区时,返回指令依然可以引发推测执行。研究人员展示了他们在Linux系统上的攻击成果,并发现了一千多种可以实现这一点的条件。

英特尔将此漏洞命名为“返回栈缓冲区溢出”(RSBU)。并表示,采用其硬件缓解策略(包括间接分支限制推测能力,IBRS或增强型IBRS,eIBRS)的设备可以抵抗这一攻击。然而,那些仅因性能考虑而依赖retpoline软件缓解措施的系统,或者使用不具备硬件缓解措施的旧款CPU的系统,则会受到该漏洞的影响。AMD公司认为此次攻击是更大范畴内名为“分支类型混淆”(CVE-2022-23825)的微架构不当行为的组成部分。

23、Hertzbleed (CVE-2022-23823 and CVE-2022-24436)

Hertzbleed 是一种新型侧信道攻击系列,它影响英特尔、AMD 以及可能涉及的 ARM CPU。这一攻击由德克萨斯大学奥斯汀分校、伊利诺伊大学厄巴纳-香槟分校和华盛顿大学的学术研究人员团队于 2022 年 6 月首次公开。该攻击的源于现代 CPU 中的一项功能——动态频率缩放,其目的是在降低功耗的同时,确保 CPU 在散热和功耗限制范围内正常运行。研究发现,不同的数据运算任务会导致 CPU 采用不同的工作频率。

功耗分析攻击虽然并非新出现的技术,但它们往往局限于特定区域。这类技术需要借助功耗测量接口对计算过程中的功耗差异进行监控,进而推测出处理内容的细节。这种被称为侧信道的技术,过去曾被用于窃取密钥等加密信息。

然而,研究表明,在计算机处理过程中,频率的调整会导致时序上的不同步。特别值得一提的是,即便没有功率测量接口,这种时序差异也可以从远程进行观测。更为突出的是,Hertzbleed技术甚至能破解所谓的“恒定时间加密”,这种加密方法特意设计以抵御通过时序分析泄露信息的行为。

研究人员针对SIKE(超奇异同源密钥封装)进行了一次创新的选取密文攻击,而SIKE作为一种后量子密钥封装机制,在NIST竞赛中脱颖而出成为决赛选手,并且以其恒定的时间复杂度得到认可。该团队成功实现了远程对SIKE的完整密钥提取。

英特尔最新发布了一本专为加密库开发者量身打造的指南,意图通过软件手段来减轻Hertzbleed漏洞的影响。此外,还有一个替代方案,即在系统运行过程中关闭“超频加速”功能。然而,这种方法可能会对整个系统的性能造成显著下降。 

24、SQUIP (CVE-2021-46778) 

SQUIP 是 2022 年 8 月披露的一种影响 AMD CPU 的侧信道攻击和漏洞。这一攻击是由Lamarr Security Research、格拉茨理工大学以及佐治亚理工学院的研究团队共同设计出来的。在多线程操作期间,该攻击利用了调度程序队列来安排将在CPU上执行的指令。根据AMD的说明,通过监测调度程序队列上的争用级别,攻击者有可能获取到敏感信息。

25、Zenbleed (CVE-2023-20593)

Zenbleed 是 2013 年 7 月在 AMD CPU 的 Zen 2 系列中修补的漏洞。该漏洞是由 Google 的安全研究人员发现的,并被描述为用户释放后的内存漏洞,但适用于 CPU。这是由于 SIMD Zeroupper 指令的推测执行不正确所致,并可能允许攻击者从物理硬件寄存器中泄漏过时的数据。此类数据可能包括敏感信息,例如密码或加密密钥。

26、Downfall (CVE-2022-40982)

Downfall,技术上称为 Gather Data Sampling (GDS),是 2023 年 8 月披露的瞬态执行漏洞,影响多代 Intel CPU。谷歌的安全研究人员发现,该漏洞与Zenbleed类似,因为它允许攻击者泄露属于其他进程和共享同一CPU内核的用户的敏感数据,因为由于推测执行而存储在物理硬件寄存器中的陈旧数据被转发到后续指令。可以使用类似于 Meltdown 使用的技术来提取数据。该漏洞还会影响英特尔软件防护扩展 (SGX) 安全子系统的安全性。 

27、Reptar (CVE-2023-23583) 

Reptar 是谷歌安全研究人员去年发现的第三个 CPU 漏洞,并于 2023 年 11 月进行了修补。该漏洞主要涉及支持快速短重复移动(FSRM)这一新功能的Intel CPU,并有可能导致权限提升问题。这个缺陷是因为在FSRM处于激活状态时,CPU微码未能正确忽略冗余指令前缀,反而以一种异常的方式解释了这些指令。

28、Inception (CVE-2023-20569) 

Inception 是 AMD CPU 中的一个漏洞,可能导致敏感信息泄露。该漏洞于2023年8月由苏黎世联邦理工学院的研究团队公开披露。“Inception”是一种新型推测执行攻击方式,它通过劫持返回指令的瞬态控制流,使攻击者能够在受控制的地址寄存器中将新的预测结果插入CPU分支预测器中。

29、SLAM 

由阿姆斯特丹自由大学研究人员设计的Spectre攻击,基于线性地址掩码(SLAM)这一概念,揭示了在即将上市的AMD、Intel和ARM处理器上如何利用先前未曾公开的Spectre漏洞进行攻击。这些处理器均实现了线性地址掩码功能,这是厂商计划引入的新安全特性:英特尔推出的是线性地址掩码(LAM),AMD的是上地址忽略(UAI),而ARM则是Top Byte Ignore(TBI)。特别需要指出的是,SLAM是首个针对尚未发布但已宣布的CPU功能进行推测执行攻击的技术。

30、GhostRace (CVE-2024-2193)

GhostRace 是阿姆斯特丹自由大学的研究人员于 2024 年 3 月披露的一种新型 CPU 攻击。这种攻击方式主要利用了在推测执行中代码路径上的竞争条件。研究指出,通过操作系统级别的条件分支来实现的同步原语可以被Spectre v1攻击绕过推测路径,进而可能导致目标软件信息的外泄。

31、TikTag  

TikTag 是一种利用推测执行来绕过 ARM CPU 中称为 Arm 内存标记扩展 (MTE) 的新安全功能的攻击。在操作系统启用该功能后,利用越界内存冲突进行攻击,如导致任意代码执行的缓冲区溢出等行为将变得更加困难。这项技术是由首尔国立大学、三星研究院以及佐治亚理工学院的研究团队共同开发的,并在2024年6月发表的研究论文中对其进行了详细描述。此外,阿姆斯特丹自由大学的学者们还发现MTE容易遭受名为Spectre-MTE的推测执行探测攻击,并提出了StickyTags这一缓解方案。

32、Indirector 

Indirector 是一种新的推测执行攻击,是 Spectre v2 的变体,于 2024 年 7 月披露。该攻击由加州大学圣地亚哥分校的研究人员研发,通过利用高端英特尔CPU(包括Raptor Lake和Alder Lake型号)中的间接分支预测器(IBP)及分支目标缓冲区(BTB),实现了精确的分支目标注入操作。此过程能够跨越进程与权限级别,进而泄露敏感数据。

DRAM内存攻击

1、Rowhammer 
2、Rowhammer.js
3、Drammer 
4、Flip Feng Shui 
5、ECCploit 
6、Throwhammer 
7、RAMBleed 

33、Rowhammer 

Rowhammer 是一种具有安全隐患的物理效应,在SDRAM芯片内部,当同一行的物理存储单元被迅速且连续地读取大量数据时,就会发生这种效应,我们将其称为“锤击”。这一行为可能导致锤击行中的单元格电荷泄漏至相邻行中,进而修改这些行中单元格的值,这种现象被称为“位翻转”。这种情况之所以可能发生,是因为现代SDRAM芯片的单元密度不断提高,尤其是DDR3和DDR4这两种类型的芯片。

虽然 Rowhammer 效应早已为人所知或记录在案,但 Google Project Zero 团队的成员在 2015 年 3 月首次证明它可能具有安全隐患,当时他们揭示了两个基于它的特权升级漏洞。

34、Rowhammer.js

Rowhammer.js 是一个利用JavaScript实现的Rowhammer攻击,它证明了这一漏洞可以通过浏览器远程被利用,只需访问恶意网页即可。对此,各大浏览器厂商已采取缓解措施来应对这一漏洞的攻击。

35、Drammer – CVE-2016-6728

Drammer是于2016年发现的一种针对Android设备的Rowhammer类型漏洞。此前,人们普遍认为移动设备中的存储芯片不会受到此类漏洞的影响。

36、Flip Feng Shui 

针对虚拟机的 Rowhammer 攻击的实现,恶意来宾虚拟机能够操纵物理内存中的位,进而以可控的方式干扰其他虚拟机的运行。为了证实这一实现,研究人员特意破坏了目标虚拟机中的OpenSSH公钥身份验证过程。

37、ECCploit 

ECCploit 是一种攻击,它表明 Rowhammer 类型的攻击甚至可以针对具有纠错码 (ECC) 功能的 SDRAM 芯片。这类内存通常应用于服务器系统,人们普遍认为它们不易受到Rowhammer攻击的影响。

38、Throwhammer 

这种Rowhammer攻击,能够借助快速网卡(例如服务器所用的网卡)内置的远程直接内存访问(RDMA)功能,在网络上进行利用。

39、RAMBleed 

RAMBleed 是首个表明可通过Rowhammer效应从内存单元中窃取数据的攻击,而非仅仅修改其内容。以往基于Rowhammer的攻击通常通过位翻转的方式破坏内存的完整性,从而可能导致权限提升等问题。而RAMBleed则运用了行锤击和侧信道技术,来推断相邻存储单元的信息,并最终从中提取数据。这一机制与Meltdown和Spectre漏洞的效果相似。

* 本文为陈发明编译,原文地址:https://www.csoonline.com/article/567525/hardware-and-firmware-vulnerabilities-a-guide-to-the-threats.html
图片均来源于网络,无法联系到版权持有者。如有侵权,请与后台联系,做删除处理。

— 【 THE END 】—