返回

英特尔、ARM、IBM和AMD处理器易受新的侧通道攻击

发布时间:2022-04-03 08:32:47 574
# 研究# 数据# 攻击# 软件# 软件
Side-Channel Attacks
事实证明,之前披露的几起针对现代处理器的投机性执行攻击(如熔毁和预兆)背后的根本原因被错误地归因于“预取效应”,导致硬件供应商发布了不完整的缓解措施和对策。

与黑客新闻分享其发现,来自格拉茨科技大学和CISPA亥姆霍兹信息安全中心的一组学者最终揭示了为什么内核地址首先被缓存的确切原因,以及提出了几次新的攻击,这些攻击利用了之前未知的潜在问题,使攻击者能够嗅出敏感数据。

这项新研究解释说,微体系结构攻击实际上是由内核中用户空间寄存器的推测性解引用引起的,这不仅影响了最新的英特尔CPU和最新的硬件缓解措施,还影响了ARM、IBM和AMD的几个现代处理器—;以前被认为没有受到影响。

研究人员告诉《黑客新闻》:“我们发现,过去4年里,几篇学术论文中报道的效应没有得到正确理解,导致对应对措施的错误假设。”。

“这种预取效应实际上与软件预取指令或由于内存访问而产生的硬件预取效应无关,而是由内核中用户空间寄存器的推测性解引用引起的。”

除了分析预取效应的实际根本原因外,该研究的其他一些关键发现包括:

  • 发现了几个利用根本原因的新攻击,包括在更受限的上下文中的地址转换攻击、特定场景中寄存器值的直接泄漏,以及针对非L1数据的端到端预兆攻击。
  • 一种新型的跨核心隐蔽通道攻击,在某些情况下,攻击者可以在不依赖共享内存的情况下观察寄存器中存储的地址(或值)的缓存。
  • Spectre的“预取”小工具可以直接泄漏实际数据,这不仅使ZombieLoad攻击在英特尔CPU上有效,可以从内部缓冲区或内存泄漏敏感数据,还可以影响非英特尔CPU。
  • 投机去参考问题—;在某些攻击中,如Rowhammer、缓存攻击和戏剧—;攻击者可以通过web浏览器远程恢复JavaScript变量的物理地址,并通过临时执行过滤信息。

此外,研究人员还证明,即使启用了建议的缓解措施,Intel CPU上的预兆漏洞也可以被利用。这之所以成为可能,是因为在包含“预取”小工具的内核版本上,攻击可以装载在不驻留在一级缓存中的数据上。

从地址转换攻击到预兆


这背后的想法是直截了当的。系统软件依赖CPU的地址转换机制来实现不同进程之间的隔离。每个进程都有自己的虚拟内存空间,不能访问其外部的任意物理内存地址。


因此,地址转换充当一个中间层,将程序使用的虚拟地址空间映射到物理地址到物理地址。

虚拟地址空间还包括一个内核地址空间,用于容纳Linux内核线程,从而使底层硬件在内核模式下轻松处理来自用户线程的特权指令。

而操作系统内核可以通过一种称为内核页表隔离(KPTI或KAISER)和#8212;它强制执行严格的内核和用户空间隔离,以便在用户模式下运行时,硬件不保存任何有关内核地址的信息—;研究人员发现,它不能保证完全免受地址转换攻击,攻击者会试图检查两个不同的虚拟地址是否映射到同一物理地址。

换句话说,“地址转换攻击允许非特权应用程序将任意内核地址提取到缓存中,从而在64位Linux系统上将虚拟地址解析为物理地址。”

虽然最初的思路是,此类攻击与预取指令有关,但新的发现证明了这一点,从而验证了KAISER并不是针对内核隔离的微体系结构侧通道攻击的适当对策。

相反,它利用Spectre BTB SA IP(分支目标缓冲区,相同地址,就地)小工具造成信息泄漏,导致推测性执行,并通过绕过当前的L1TF缓解措施,进一步实施熔毁和预兆(L1终端故障)攻击。

Spectre BTB SA IP是Spectre漏洞的变种,它利用分支目标缓冲区—;CPU中用于分支预测的类似缓存的组件—;在同一地址空间和同一分支位置内执行攻击。

研究人员说:“同样的预取效果也可以用来做预兆。”。“如果三级缓存中存在一个秘密,并且管理程序内核中解除了直接物理映射地址的保护,则可以将数据提取到一级缓存中。如果禁用了不相关的Spectre BTB缓解措施,则即使启用了预兆缓解措施,也可以重新启用预兆。”

“结果是,我们能够在启用了所有缓解措施的情况下,对修补了Foreshadow的旧内核发起预兆攻击,如果只禁用了Spectre-v2缓解措施,则可以对完全修补的内核发起预兆攻击。”

启用Spectre BTB缓解措施,如Retpoline


为了强调侧通道攻击的影响,研究人员建立了一个基于缓存的隐蔽通道,将运行在Intel Core i7-6500U CPU上的进程中的数据过滤到另一个隐蔽进程,实现了10位/秒的传输速率,将发送方到接收方进程的总128字节中继。

此外,研究人员还透露,可以使用一个推测性解引用的寄存器(称为“解引用陷阱”)从Intel CPU的SGX飞地泄漏寄存器内容,使用它在15分钟内恢复存储在64位寄存器中的32位值。

最后,现在可以在web浏览器中使用JavaScript远程装载“某些攻击”,并“使用WebAssembly使用攻击者控制的JavaScript值填充64位寄存器”

为了缓解这些攻击,建议当前的CPU启用Spectre BTB缓解措施,包括retpoline(return trampoline的缩写),其目的是通过将间接分支与投机执行隔离,防止分支目标注入。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线