SQUIP,一种影响 AMD 处理器并导致数据泄露的新攻击

一群我格拉茨科技大学的研究人员 (奥地利),以前以开发 MDS、NetSpectre、Throwhammer 和 ZombieLoad 攻击而闻名, 揭示了一种新的侧信道攻击 (CVE-2021-46778) AMD 处理器的调度程序队列中用于调度指令在 CPU 的不同执行单元中的执行。

攻击,称为 SQUIP,允许确定在另一个过程中的计算中使用的数据 或虚拟机或组织进程或虚拟机之间的隐藏通信通道,允许数据交换而无需通过系统访问控制机制。

基于第 1、第 2 和第 3 Zen 微架构的 AMD CPU 一代(AMD Ryzen 2000-5000、AMD Ryzen Threadripper、AMD Athlon 3000、AMD EPYC) 被影响到的 当使用同时多线程 (SMT) 技术时。

现代 CPU 使用超标量设计,同时执行多条指令以最大限度地提高性能。 这些 CPU 通过几个阶段处理流水线中的指令:(1) 获取,(2) 解码,(3) 编程/执行,以及 (4) 获取。

攻击基于评估争用发生的程度(争用级别)在不同的调度程序队列中,并通过在同一物理 CPU 上的另一个 SMT 线程中执行的检查操作开始时测量延迟来完成。 为了分析内容,使用了 Prime+Probe 方法,该方法涉及用一组参考值填充队列,并通过测量重新加载时对它们的访问时间来确定更改。

程序/执行阶段可以无序地处理指令以最大化指令级并行性。 我们简要描述每个阶段:

-搜索。 CPU 从 L1i 高速缓存中查找要执行的下一条指令。 
-解码。 为了高效执行,将获得的指令(宏操作)解码为一个或多个更简单的微操作(µops)并放入 µop 队列中。 这些微操作被馈送到后端,在那里它们被调度和执行。
- 计划/运行。 调度器跟踪哪些微操作准备好执行(有可用的输入)并动态地将它们(无序)调度到可用的执行单元。 一个 CPU 内核有多个执行单元,可以有多个算术和逻辑单元 (ALU)、分支执行单元 (BRU)、地址生成单元 (AGU)。

在实验期间 研究人员能够完全重建 4096 位 RSA 私钥 用于使用 mbedTLS 3.0 密码库创建数字签名,该库使用蒙哥马利算法将数字提升到幂模数。 需要 50.500 条轨迹来确定密钥。

总攻击时间为 38 分钟。 演示了在不同进程和受 KVM 管理程序控制的虚拟机之间提供泄漏的攻击变体。 还表明,该方法可用于编排虚拟机之间以 0,89 Mbit/s 的速率和进程之间以 2,70 Mbit/s 的速率进行的隐蔽数据传输,错误率小于 0,8、XNUMX%。

CPU 内核被划分为多个逻辑内核或线程,执行独立的指令流,但共享 L1i 缓存等资源。 这些线程的微操作也动态共享执行单元以允许更高的总利用率。 内核不同部分的分区。
它是通过竞争性交换来完成的。 AMD Zen 架构允许两个线程
每个核心。 这些线程可以来自单个程序,也可以来自不同的程序,由操作系统管理。

英特尔处理器不易受到影响 攻击,因为它们使用单​​个调度队列,而易受攻击的 AMD 处理器为每个执行单元使用单独的队列。

作为阻止信息泄露的解决方案, AMD 推荐 那个开发商 使用始终在恒定时间内执行数学计算的算法,无论正在处理的数据的性质如何,并且还可以防止基于秘密数据的分叉。

最后,如果您有兴趣能够了解更多,可以在 以下链接.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。