2024年ACM ASPLOS会议上,加州大学圣地亚哥分校计算机科学领域专家领导的多大学和行业研究团队展示了他们的研究成果。论文《Pathfinder: High-Resolution Control-Flow Attacks Exploiting the Conditional Branch Predictor》是基于来自加州大学圣地亚哥分校、普渡大学、佐治亚理工大学、北卡罗来纳大学教堂山分校和谷歌等名校及企业专家的研究发现。其中详细介绍了两种新型攻击,研究人员发现这两种针对高端英特尔处理器中条件分支预测器的新型攻击,可能会危及目前使用的数十亿处理器。
他们发现了一种独特的攻击,它是第一个针对分支预测器中名为路径历史寄存器的功能的攻击,该功能跟踪分支顺序和分支地址。因此,与先前缺乏对分支预测器的确切结构的深入了解的攻击相比,暴露出更多具有更高精度的信息。
他们的研究推进了英特尔和AMD解决研究人员提出的问题进度。今天,英特尔将发布安全公告,而AMD将发布安全公报。在软件中,当程序根据不同的数据值导航不同的路径时,会发生频繁的分支。这些分支的方向,无论是“采取”还是“不采取”,都为执行的程序数据提供了至关重要的见解。考虑到分支对现代处理器性能的重大影响,采用了一种被称为“分支预测器”的关键优化。该预测器通过参考存储在预测表中的过去历史来预测未来的分支结果。以前的攻击通过分析这些表中的条目来识别特定地址的最近分支趋势,从而利用了这种机制。
在这项新研究中,研究人员利用现代预测因子对路径历史寄存器(PHR)的利用来索引预测表。PHR记录最近英特尔体系结构中最后194个分支的地址和精确顺序。通过捕捉PHR的创新技术,研究人员证明了不仅能够捕捉最新的结果,而且能够按顺序捕捉每个分支的结果。值得注意的是,它们揭示了所有分支机构的全球秩序。尽管PHR通常保留了最近的194个分支,但研究人员提出了一种先进的技术来恢复更长的历史。
加州大学圣地亚哥分校计算机科学与工程系博士生、该论文的主要作者Hosein Yavarzadeh说:“我们成功地以精确的顺序捕获了数万个分支的序列,利用这种方法在广泛使用的图像库libjpeg处理过程中泄露了秘密图像。研究人员还引入了一种异常精确的Spectre式中毒攻击,使攻击者能够在受害者代码中引发复杂的分支预测错误模式。”加州大学圣地亚哥分校计算机科学教授Dean Tulsen说:“这种操纵导致受害者执行意外的代码路径,无意中暴露了其机密数据。虽然以前的攻击可能会误导一个分支或多次执行的分支的第一个实例,但我们现在有了如此精确的控制,我们可能会误导被执行数千次的分支的第732个实例。”。
该团队提出了一种概念验证,迫使加密算法提前暂时退出,从而暴露出减少的圆形密文。通过这个演示,他们展示了提取秘密AES加密密钥的能力。
普渡大学计算机科学助理教授、加州大学圣地亚哥分校计算机科学博士毕业生Kazem Taram表示:“探路者可以揭示几乎任何受害者程序中几乎任何分支的结果,使其成为迄今为止我们所见过的最精确、最强大的微架构控制流提取攻击。”
研究人员已于2023年11月向英特尔和AMD传达了论文中概述的安全发现。英特尔已将这些问题告知其他受影响的硬件/软件供应商。英特尔和AMD都计划通过以安全公告的形式解决研究提出的问题。