从2011年到2019年,AMD处理器一直存在以前未公开的漏洞,使其容易受到两种新型侧信道攻击。这种被称为“TakeAWay”的新型潜在攻击利用AMD推土机微架构中的L1数据(L1D)缓存预测器从处理器中获取敏感数据,并在恢复加密过程中使用密钥,这对设备安全构成了巨大威胁。该研究由格拉茨科技大学和计算机科学与随机系统研究所(IRISA)的研究团队发布,该团队于2019年8月向AMD披露了这些漏洞。AMD在其网站上发布的公告中表示:“我们知道一份新的白皮书声称,利用AMDCPU中的潜在漏洞可能允许恶意行为者操纵与缓存相关的功能,并可能以意想不到的方式传输用户数据。”“然后,研究人员将该数据路径与现有的恢复软件或推测的侧通道漏洞配对。AMD不认为这些是新的攻击。”尽管该通知没有具体说明针对攻击的具体保护措施,但该论文的主要研究人员之一VedadHad?i?表示,该漏洞利用仍然活跃。随着英特尔CPU受到从Meltdown、Spectre、ZombieLoad到最近无法修补的CSME固件缺陷等漏洞的审查,该研究提醒人们,处理器架构不可能完全没有威胁。值得注意的是,研究中列出的一些合作者也没有发现Meltdown、Spectre和ZombieLoad漏洞。Collide+Probe和Load+Reload与IntelSpectre攻击一样,这两种称为“Collide+Probe”和“Load+Reload”的新型攻击利用上述L1D缓存预测器来访问其他方式无法访问的数据。研究人员概述:“通过Collide+Probe,攻击者可以在分时逻辑内核的同时监控受害者的内存访问,而无需知道物理地址或共享内存。通过Load+Reload,我们利用预测器在同一时间获得高精度内存访问受害者在物理核心上的痕迹。“L1D缓存预测器是一种优化机制,旨在降低与访问内存中的缓存数据相关的功耗:”预测器使用虚拟地址上未记录的哈希函数计算μTag。这个μTag用于在预测表中查找L1D缓存模式。因此,CPU必须只以一种方式比较缓存标签,而不是所有可能的方式,以降低功耗。新发现的缓存攻击通过反向哈希函数工程来跟踪L1D缓存内存访问。Collide+Probe利用AMD的L1D缓存预测器中的μTag冲突,而Load+Reload利用预测器处理内存中别名地址的方式。换句话说,这两种攻击技术可用于窃取与攻击者共享同一内存的另一个进程或运行在不同CPU逻辑核心上的同一进程的敏感数据。为了演示受边信道攻击的影响,研究人员建立了一个缓存隐式通道,将数据从运行在AMDCPU上的一个进程中提取到另一个隐蔽进程中,使用80个通道实现了588.9kB/s的最大传输速率。同时,在AMDRyzenThreadripper1920X处理器上并行执行。随着亚马逊、谷歌、微软等越来越多的主流云平台采用AMD的EPYC处理器,云环境下的攻击也备受关注。此外,安全研究人员能够绕过浏览器中的地址空间布局随机化(ASLR),成功地对一些常见的浏览器(即Chrome和Firefox)发起Collide+Probe攻击,减少熵并找到地址信息。ASLR是一种随机化的安全操作并屏蔽CPU内存中代码和关键数据区域的确切位置。换句话说,它可以防止潜在的攻击者猜测目标地址并跳转到内存中的特定区域“在Firefox中,我们能够以98%的成功率和2.33秒的平均运行时间将熵减少15位(σ=0.03s,n=1000),”研究人员指出。使用Chrome,我们能够减少数字,成功率为86.1%,平均运行时间为2.90秒(σ=0.25秒,n=1000)。”随后,研究人员使用同样的Collide+Probe攻击试图泄露内核的内存数据,甚至从T表中恢复加密密钥,并使用AES密码存储加密操作的中间数据。防止此类攻击已经通过各种纯硬件、硬件和软件更改以及纯软件解决方案来防止这两种攻击,包括以允许动态临时禁用预测器和清除内核模式和用户模式之间切换状态的方式设计处理器mode在清除预测变量的模式状态时这已经不是第一次发现AMD处理器容易受到包括Spectre在内的CPU攻击,因此该公司也发布了大量补丁。修复研究中新发现的漏洞目前还不清楚。
