仅在2022年,该行业一些最突出的处理器就暴露出了一些硬件漏洞。从Augury对苹果M1的攻击到最近的PACMAN攻击,很明显,没有任何硬件是100%安全的。

 

Compromised processor

在一系列测试中,ETH专门研究网络安全的研究人员发现普通处理器存在严重漏洞。图片(已修改)由苏黎世联邦理工学院/计算机安全集团提供

 

现在,新发现的漏洞包括英特尔和AMD处理器。本周,苏黎世联邦理工学院的研究人员发现了一种名为Retbleed的新安全漏洞,该漏洞利用推测性计算在计算机硬件中打开后门。

 

五级管道和分支

为了更好地理解Retbleed攻击,了解计算机组织的背景是有帮助的。

大多数现代微处理器,包括英特尔和AMD设计的微处理器,都使用流水线结构来提高性能。标准的五级管道包括:

  1. 指令提取(IF)
  2. 指令解码(ID)
  3. 执行(EX)
  4. 内存访问(MEM)
  5. 回写(WB)

这些阶段中的每一个至少需要一个时钟周期来执行。

 

A standard five-stage pipeline with data forwarding

具有数据转发功能的标准五阶段流水线。图片由Berg等人提供

 

然而,当条件分支指令发生时,这种体系结构面临着特殊的挑战。传统上,程序指令是顺序的,按顺序一个接一个地执行命令。相比之下,对于控制流,程序员使用条件分支语句。这些指令告诉处理器检查一些条件语句(例如,a>b),如果满足条件,则分支到程序的不同部分。

 

什么是推测性执行?

分支的挑战在于,它需要多个时钟周期来获取操作数、检查条件,然后在需要时执行实际的分支。这会严重降低CPU性能。为了绕过这种减速,处理器转而使用一种称为推测执行的技术。

 

Speculative execution

推测性执行用于加快处理器性能。图片由Kocher等人提供

 

通过推测执行,处理器执行分支预测,试图在遇到分支之前预测是否会采取分支。除了分支预测之外,推测执行实际上将执行新分支中的第一对指令。

如果错误地获取了分支,则会恢复更改并获取正确的路径。在现代处理器中,一旦函数被执行,返回指令会使处理器立即返回到使用该函数的原始指令之后的计算机程序中的某个点。

通过这种方式,推测执行允许CPU中更快的性能,其中准确的分支预测允许执行指令,而无需等待通过处理器流水线确定实际的分支条件。

 

苏黎世联邦理工学院公布再出血攻击

在苏黎世联邦理工学院的新论文中,研究人员描述了一种新的“Retbleed”攻击,他们认为AMD和Intel处理器都存在严重漏洞。

Retleage攻击利用返回指令作为推测执行的攻击向量。利用这项技术,研究人员证明了返回指令在某些条件下表现得像间接分支。研究人员能够对这些条件进行逆向工程,发现在投机执行的情况下,特别大量的返回语句会因系统中的泄漏而变得脆弱。

 

In 908 test cases, the researchers found 1,069 vulnerable returns across 96 system calls

在908个测试案例中,研究人员在96个系统调用中发现了1069个易受攻击的返回。图片由Wikner等人提供

 

在这种情况下,当保存返回目标预测的“返回堆栈缓冲区”下溢时,英特尔系统中的返回开始表现为间接跳跃。在AMD系统上,无论返回地址堆栈的状态如何,返回的行为都像间接分支。这些结果表明,研究人员可以控制系统,以实现任意的推测代码执行。

由于英特尔和AMD处理器的广泛性,此次攻击对用户的影响可能很大。然而,研究人员确实注意到,他们早在论文发表之前就通知了英特尔和AMD他们的发现。这些公司有时间研究缓解技术,这些技术在受影响系统的最新软件更新中得到了解决。