研究人员发现2011年到2019年的AMD处理器皆存在旁路攻击漏洞

奥地利格拉茨科技大学研究人员发布的论文指出,AMD为了优化CPU的性能和能耗,在L1D缓存采用一种预测器,以高效率的方式,预测特定内存地址位于哪一个缓存路(Way)中,研究人员可以通过操纵L1D缓存预测器,来泄露AMD处理器的机密数据。

这个被称为Take A Way的漏洞,影响AMD从2011年到2019年的所有处理器,包括使用Zen微基础架构的处理器,不过,AMD在官网上对该漏洞的回应,仅提供针对推测执行漏洞的一般性建议。

研究人员表示,他们对2011年和2019年芯片中,微基础架构的缓存预测器进行逆向工程,找出了两种新的攻击方式,第一种是利用Collide+ Probe方法,这将能让攻击者在分时逻辑核心中,不需要内存实体位置或是共享内存,就能监控受害者内存访问。

第二种方法则是Load+Reload,可利用预测器的漏洞,在同一个实体核心中,获得受害者高精准度的内存访问关注,虽然Load+Reload方法依赖共享内存,但是却不会使缓存块(Cache Line)无效化,可在不触发末级缓存(Last-Level-Cache)驱除(Eviction)的情况下,悄悄地进行攻击。

研究人员展示漏洞的实际攻击范例,利用在Chrome和Firefox浏览器上执行JavaScript程序代码,访问AES加密密钥。且不只是沙盒化的JavaScript,由于受影响的处理器也被用在云计算数据中心中,研究人员也展示了将该漏洞用在虚拟化云计算环境的攻击方法。

论文中也提及该漏洞的补救措施,但未评估修复程序所带来的性能损失,研究人员表示,Take A Way漏洞与Spectre和Meltdown漏洞不同之处在于,Take A Way仅会泄露少量元数据,并非提供完整的数据访问权限。

而AMD也在3月7日回应Take A Way漏洞,他们提到,研究人员将此数据路径和已经缓解的软件和推测性漏洞连接,而AMD并不认为这是新的攻击,并且建议用户更新平台软件和固件,让操作系统采用现有推测执行漏洞的缓解措施,同时实例软件的重要函数库,最好也要使用最新版本,避免受到旁路攻击,除了针对推测执行漏洞的一般性建议,AMD并没有提供任何额外针对Take A Way漏洞的固件补丁或是具体建议。

而漏洞主要研究者在3月8日于推特上表示,这项漏洞仍然没有受到修正,攻击者依然可以寻论文说明的步骤,攻击AMD的处理器。

Well, no. The way predictor still behaves like described in the paper. It leaks info on addresses and is not as severe as#meltdown. Aside from the ASLR breaks, the two attacks are just building blocks similar to Prime+Probe and Flush+Reload.

—Vedad Hadžić (@duxcode)March 8, 2020

有趣的是,这篇论文的致谢,特别感谢了英特尔提供额外的资金,作为慷慨的礼物。这篇研究受注意的原因是,Take A Way漏洞共同作者,过去也披露了许多英特尔的漏洞,包括Spectre和Meltdown,还有ARM、AMD和IBM多个漏洞,论文第一作者也负责任的在推特上,披露了学校以及学生的资助来源,并提到英特尔尊重学术自由与独立性,并且已资助该计划两年。