SQUIP——攻击AMD处理器,导致数据通过第三方渠道泄露

此前因开发 MDS、NetSpectre、Throwhammer 和 ZombieLoad 攻击而闻名的格拉茨科技大学(奥地利)的一组研究人员披露了针对 AMD 处理器调度程序队列的新型侧信道攻击 (CVE-2021-46778) 的详细信息,用于调度指令在CPU的不同执行单元中的执行。 这种称为 SQUIP 的攻击允许您确定在另一个进程或虚拟机中的计算中使用的数据,或者在进程或虚拟机之间组织一个隐藏的通信通道,允许您绕过系统访问控制机制交换数据。

基于第一、第二和第三代 Zen 微架构(AMD Ryzen 2000-5000、AMD Ryzen Threadripper、AMD Athlon 3000、AMD EPYC)的 AMD CPU 在使用同步多线程技术 (SMT) 时会受到影响。 Intel 处理器不易受到攻击,因为它们使用单​​个调度程序队列,而易受攻击的 AMD 处理器为每个执行单元使用单独的队列。 作为阻止信息泄漏的解决方法,AMD 建议开发人员使用始终在恒定时间内执行数学计算的算法,无论正在处理的数据的性质如何,并避免基于秘密数据的分支。

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

在实验过程中,研究人员能够使用 mbedTLS 4096 密码库完全重建用于创建数字签名的 3.0 位 RSA 私钥,该库使用蒙哥马利算法将数字提升为幂模。 确定密钥需要 50500 条轨迹。 总攻击时间耗时38分钟。 攻击变体被证明在不同进程和由 KVM 管理程序控制的虚拟机之间提供泄漏。 还表明,该方法可用于以 0.89 Mbit/s 的速率组织虚拟机之间和以 2.70 Mbit/s 的速率在进程之间组织隐蔽数据传输,错误率小于 0.8%。

来源: opennet.ru

添加评论