英特尔 CPU 出现新侧信道攻击
2023-4-26 14:50:2 Author: hackernews.cc(查看原文) 阅读量:28 收藏

近日,已发现影响多代 Intel CPU 的新边信道攻击,允许数据通过 EFLAGS 寄存器泄漏。

新的攻击是由清华大学、马里兰大学和中国教育部计算机实验室 (BUPT) 的研究人员发现的,它与大多数其他侧信道攻击不同。

这种新型攻击不像许多其他侧信道攻击那样依赖缓存系统,而是利用瞬态执行中的一个缺陷,可以通过时序分析从用户内存空间中提取秘密数据。

该攻击是 Meltdown 的旁路,Meltdown 是 2018 年发现的一个严重安全漏洞, 影响了许多基于 x86 的微处理器。

Meltdown 利用称为“推测执行”的性能优化功能,使攻击者能够绕过内存隔离机制来访问存储在内核内存中的秘密,例如密码、加密密钥和其他私有数据。

通过软件补丁、微代码更新和硬件重新设计,Meltdown 已 在很大程度上得到缓解;然而,没有任何解决方案可以 100% 解决问题,最新的攻击方法甚至可以在完全打补丁的系统中发挥作用,具体取决于硬件、软件和补丁配置。

瞬态执行定时攻击
在 Arxiv.org 上发表的一篇技术论文中提出的新的侧信道攻击  描述了瞬态执行中 EFLAGS 寄存器变化的缺陷,影响了 JCC(条件代码跳转)指令的时序。

EFLAGS 寄存器是一个 CPU 寄存器,它保存着与处理器状态相关的各种标志,而 JCC 指令是一个 CPU 指令,它允许根据 EFLAGS 寄存器的内容进行条件分支。

攻击分两个阶段进行,第一阶段触发瞬时执行并通过EFLAGS寄存器对秘密数据进行编码,第二阶段测量KCC指令解码数据的执行时间。

微信图片_20230426144534

攻击概述 (arxiv.org)

实验数据表明,该攻击针对 Intel i7-6700 和 Intel i7-7700 实现了 100% 的数据检索(泄漏),并且对更新的 Intel i9-10980XE CPU 取得了一定的成功。实验在 Ubuntu 22.04 jammy 上进行,Linux 内核版本为 5.15.0。

微信图片_20230426144551

用于计时瞬态执行攻击的伪代码 (arxiv.org)

然而,研究人员指出,这种定时攻击不如缓存状态侧信道方法可靠,并且为了在最近的芯片中获得更好的结果,这种攻击必须重复数千次。

由实验数据评估分析得出:“在实验中,我们发现 EFLAGS 寄存器对 Jcc 指令执行时间的影响不像缓存状态那样持久。在瞬态执行后的大约 6-9 个周期内,Jcc 执行时间将不会构建边信道。根据经验,攻击需要重复数千次才能获得更高的准确性。”

研究人员承认,攻击的根本原因仍然难以捉摸,并假设英特尔 CPU 的执行单元中有一个缓冲区,如果执行应该被撤回,则需要时间来恢复,如果随后的指令依赖于该进程,则会导致停顿在缓冲区的目标上。

然而,研究人员仍然提出了一些重要的缓解措施,例如更改 JCC 指令的实现,使对抗性执行在任何情况下都无法测量,或者在瞬态执行后重写 EFLAGS 以减少其对 JCC 指令的影响。


转自 E安全,原文链接:https://mp.weixin.qq.com/s/uPQNKja73QKVT_mi5MHCPg

封面来源于网络,如有侵权请联系删除


文章来源: https://hackernews.cc/archives/43794
如有侵权请联系:admin#unsafe.sh