论文介绍(2)——分支预测器安全漏洞的建模、推导与自动分析
iamywang

文章简介

本文是我在HPCA 2024上发表的一篇论文,题目为《Modeling, Derivation, and Automated Analysis of Branch Predictor Security Vulnerabilities》。本文的主要贡献是:

  • 我们提出了一种三步建模方法,用于评估微架构设计阶段分支预测器的安全属性。我们的技术抽象地描述了19种分支预测器状态和53种可能影响这些状态的攻击者和受害者的操作。
  • 我们基于提出的模型开发了一个全面的、自动化的评估框架,利用符号执行来分析所有可能的三步组合,从而推导出156种有效的分支预测器攻击模式,其中包括89种以前未曾发现的新攻击。
  • 我们将我们的安全分析框架应用于8种现有的安全分支预测器设计和四种典型的硬件对抗推测执行攻击的措施,结果表明安全分支预测器是提高分支预测器安全性的有前景的解决方案。

引用格式:

1
2
3
4
5
6
7
8
@INPROCEEDINGS{wang2024modeling,
title={{Modeling, Derivation, and Automated Analysis of Branch Predictor Security Vulnerabilities}},
author={Wang, Quancheng and Tang, Ming and Xu, Ke and Wang, Han},
booktitle={2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)},
year={2024},
pages={409-423},
doi={10.1109/HPCA57654.2024.00038}
}

论文摘要

随着针对分支预测器的微架构侧信道攻击日益加剧,计算机系统和用户的安全关键数据面临严重威胁。由于这些攻击的根本原因是在分支预测器微架构设计中忽视了安全问题,因此在设计阶段可以彻底和自动地探索这些问题的分析框架是迫在眉睫的。我们提出了一个全面的、自动化的评估框架,用于检查微架构设计阶段分支预测器的安全保证。我们的技术涉及一个三步建模方法,抽象地表征了19个分支预测器状态和53个可能影响这些状态的操作。随后,我们开发了一个基于符号执行的框架,来研究所有三步组合并推导出156种有效的分支预测器攻击模式,其中包括89种在以前的工作中从未考虑过的新攻击。最后,我们将我们的框架应用于8种安全的分支预测器设计和四种典型的基于硬件的对抗推测执行攻击的措施,以评估它们的安全性能。结果表明,这些安全分支预测器提供了有效的安全保证,并且在对抗推测执行攻击的硬件减轻措施方面表现出色,表明安全分支预测器在减轻分支预测器安全漏洞方面具有很好的前景。

技术路线

19种分支预测器状态建模

针对分支预测器的微架构侧信道攻击涉及攻击者和受害者。在我们的威胁模型中,我们使用A和V来表示攻击者和受害者程序,它们都可以执行分支指令并改变分支预测器的状态。攻击者和受害者可以在同一个处理器的同一个逻辑核心上运行,也可以在同一个处理器的两个不同逻辑核心上运行。我们还假设攻击者和受害者可以处于相同的特权级别(例如,用户模式)或不同的特权级别(例如,用户模式和内核模式)。此外,攻击者可以调用受害者的分支指令来误导分支预测器,即恶意操作由V执行但由A控制,或在自己的地址空间中执行分支指令以污染分支预测器,即恶意操作由A执行并控制。

假设Eval表示分支预测器条目E被值val索引,分支预测器中可能影响条目E状态的三种可能的索引方式如下:
(1)pc表示攻击者利用与目标分支val相同的PC值(用于索引的部分,而不是整个地址)来污染条目E。这种类型的索引存在于PHT和BTB中,因此可能导致PHT或BTB条目被污染。
(2)his表示条目E被PC值和BHB值的混合值索引,这种操作可能导致BHB值被污染,进而导致PHT或BTB条目被污染。
(3)alias表示由于BTB中的哈希冲突或RSB中的堆栈冲突,不同的索引值索引了条目E,并且索引值与val不同,这可能导致BTB或RSB的条目被污染。
(4)由于BTB或RSB的容量有限,目标条目E也可能被从分支预测器单元中驱逐,我们用inv来表示这种情况。

下表列出了分支预测器单元中每个条目的所有19种可能状态。

image

53种分支操作类型建模

在对分支预测器的状态和攻击者、受害者的操作进行建模后,我们提出了针对分支预测器的三步攻击模型,并使用{Step 1→Step 2→Step 3}表示三步操作的组合。在第一步中,执行一个分支操作来将任何分支预测器(PHT/BTB/RSB)的条目设置为已知的初始状态(例如,将PHT的条目的饱和计数器设置为taken,或者从BTB中刷新一个块)。然后,在第二步中,执行另一个分支操作来改变分支预测器单元对应条目的初始状态。此外,在第三步中,通过最后一个分支操作或其他隐蔽信道执行一个时间观察操作。攻击者可以从时间观察操作中推断出秘密数据。

image

随后,我们在三步攻击模型中对可能影响分支预测器状态的攻击者和受害者的所有53种可能操作进行建模。我们使用A和V分别表示攻击者和受害者的操作。此外,我们使用A⋆或V⋆来表示攻击者或受害者在此步骤中不操作目标分支预测器条目。然后,我们使用Acc来表示攻击者在第三步中观察隐蔽信道状态的操作,除了分支预测器之外的其他隐蔽信道。然后,假设目标条目对应于安全关键数据(例如,加密密钥),我们使用Aval或Vval来表示将目标条目设置为valid的操作(即访问安全关键数据)。我们还使用Ainv/Vinv来表示通过将目标条目从分支预测器中驱逐来将目标条目设置为invalid的操作。此外,我们使用Apc/Vpc/Ahis/Vhis/Aalias/Valias来表示通过带有索引pc/his/alias的分支指令将目标条目的状态更改为mispredict的操作。

三步分支预测器模拟器

我们开发了一个三步分支预测器模拟器,其中每一步代表攻击者或受害者的可能操作,并基于攻击者在第三步观察到的信息(分支时间或隐蔽信道)分析有效的攻击模式。这个三步分支预测器模拟器是用Rust实现的,其中模拟器的输入是攻击者和受害者在三步攻击模型中的所有53种可能操作,输出是对于每个三步组合是否有效的三步攻击模式。根据我们先前对分支预测器的建模,对于PHT有729种不同的三步组合,对于BTB有4859种三步组合,对于RSB有729种三步组合。因此,在我们的建模标准下,有6317种不同的三步模式。

image

在分支预测器模拟器中,我们为目标分支预测器条目定义了一个当前状态,并假设条目的初始状态是未知的。然后,当执行三步组合的每一步时,根据不同操作类型更新目标条目的状态。例如,如果攻击者执行Apc/Vpc,目标条目的状态将更新为mispredict;如果攻击者执行Aval/Vval,目标条目的状态将更新为valid;如果攻击者执行Acc/A⋆,目标条目的状态将不会更新。

对于安全关键的分支操作Aval/Vval,我们将其扩展为两种不同的状态,一种用于更新分支预测器状态,另一种用于不更新分支预测器状态。此外,如果前两步是安全关键的分支操作Aval/Vval,则只扩展后者操作为两种不同的状态。此外,由于我们认为第三步是时间观察步骤,即使操作是Aval/Vval,我们也不会在这一步扩展状态。因此,对于包含Aval/Vval的三步组合,存在两种不同的三步执行路径,我们使用攻击者观察这两条路径之间的时间差异的能力作为判断是否为有效攻击模式的标准。

实验结果

156种有效攻击模式挖掘与分析:

根据我们的三步分支预测器模拟器,我们得出总共156种不同的安全漏洞,包括PHT的28个条件分支预测漏洞、BTB的56个间接分支预测漏洞、BTB的30个调用指令预测漏洞、BTB的30个返回地址预测漏洞以及RSB的12个返回地址预测漏洞。下表列出了所有针对分支预测器的156种三步攻击模式。

image

现有安全设计安全属性建模与分析——156种攻击模式:

然后,我们在三步模型中为现有的安全设计建模攻击者和受害者的操作。在对8种现有的典型安全分支预测器设计进行建模后,我们使用三步分支预测器模拟器评估这些安全设计的安全性。表5显示了不同安全分支预测器在每个分支预测器单元中防护安全漏洞的有效性以及仍然存在的漏洞总数。其中,“/”左侧的值表示在该安全设计下该分支预测器单元存在的漏洞数量,“/”右侧的值表示之前为该分支预测器单元推导出的漏洞总数。

image

结果表明,PSC在理想情况下可以非常有效地防护PHT的安全漏洞,因为这种机制使攻击者无法确定性地错误训练分支预测器。然后,HyBP可以有效地防护针对BTB的三步攻击组合,并且在所有安全漏洞防护设计中最为有效,可以减轻156种三步攻击组合中的123种。

现有安全设计安全属性建模与分析——推测执行攻击:

除了安全分支预测器设计外,研究人员还提出了许多针对推测执行攻击的硬件防御策略。接下来,我们将这些安全分支预测器与这些防御策略在对抗推测执行攻击方面的表现进行比较。根据Hu等人提出的防御策略分类,我们选择了四种在现有防御中引入相对较低性能开销的代表性硬件防御进行评估。

image

然后,我们评估了这四种硬件防御对推测执行攻击的安全漏洞覆盖情况,如上表所示。结果表明,这些硬件防御只能缓解有限数量的推测执行攻击或仅缓解特定的缓存隐蔽信道攻击。相比之下,安全分支预测器设计可以缓解更多的推测执行攻击,例如两级加密、Noisy-XOR-BP、LS-BP和HyBP。因此,与硬件防御相比,安全分支预测器设计是缓解分支预测器安全漏洞的有效且可行的解决方案。

开源代码

https://github.com/iamywang/bp-security-framework

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务
总字数 29.4k 访客数 访问量