Retbleed推测执行攻击影响AMD、Intel CPU
2022-7-23 12:1:12 Author: 嘶吼专业版(查看原文) 阅读量:8 收藏

Retbleed

ETH Zurich研究人员Johannes Wikner 和 Kaveh Razavi发现一类新的Spectre-BTI推测执行攻击——Retbleed,影响AMD、Intel等主流CPU。漏洞CVE编号为CVE-2022-29900 (AMD)和CVE-2022-29901 (Intel)。Spectre-BTI攻击利用时间侧信道诱使程序访问内存控制的任意文职和可以泄露信息。与其他利用间接跳转或调用的推测执行攻击不同,Retbleed利用的是return指令。也就是说,很大程度上可以绕过现有针对Spectre-BTI的防护措施。

目前操作系统使用的主要防护措施是retpoline,它将间接跳转和调用用return替换。2018年,retpolines被引入以预防非授权的攻击者通过Spectre-BTI攻击从系统内存中窃取信息。也有研究人员担心return是否会受到Spectre-BTI攻击的影响,但是研究人员认为return利用是不现实的。

研究人员成功在AMD和Intel CPU上触发微架构条件,可以让return像间接分支一样可预测。研究人员也构建了必要的工具来发现Linux kernel中满足这些条件的位置。即使是非特权用户,也可以在kernel地址空间注入分支目标。虽然攻击者无法访问kernel地址空间的分支目标,但是到此类目标的分支会引发page fault,Branch Prediction Unit(分支预测单元)会在发现此类分支后更新自己,并假定其是合法执行的。

利用Retbleed的微架构条件

Intel

在Intel CPU中,当Return Stack Buffer 下溢时,return就会像间接跳转一样。研究人员评估发现了上千个系统调用可以触发的此类条件。而且之前也有Intel CPU间接分支目标预测的研究。

AMD

在AMD CPU中,return会像间接跳转一样,与Return Address Stack的状态无关。使用间接跳转放置return指令,AMD分支预测器就假定会遇到间接跳转而非return,因此预测了一个间接分支目标。也就是说任何通过系统调用引发的return都可以被利用。

受影响的机器

研究人员测试发现AMD Zen 1、Zen 1+、Zen 2和Intel core 6代、7代、8代CPU都受到该攻击的影响。

PoC Demo

Retbleed攻击在Intel和AMD CPU上泄露kernel内存信息的PoC Demo视频如下所示:https://www.youtube.com/embed/dmSPvJxPm80

修复措施

Kernel和hypervisor开发人员已经与Intel和AMD协作提出了应对措施。而在Linux kernel中缓解Retbleed攻击非常复杂,需要修改68个文件,添加1783行代码,删除387行代码。

而且应对Retbleed攻击的成本很高,测试发现为应对Retbleed攻击,在AMD和Intel CPU上的成本分别增加了14%和39%。

相关研究成果已经安全顶会Usenix Security 2022大会录用,论文下载地址:https://comsec.ethz.ch/wp-content/files/retbleed_sec22.pdf

Retbleed 源代码参见GitHub:https://github.com/comsec-group/retbleed

更多参见:https://comsec.ethz.ch/research/microarch/retbleed/

参考及来源:https://comsec.ethz.ch/research/microarch/retbleed/


文章来源: http://mp.weixin.qq.com/s?__biz=MzI0MDY1MDU4MQ==&mid=2247546514&idx=1&sn=ddb87622a0f52b3697182006c39fb96f&chksm=e915e6a8de626fbe47d010888796a9b2da21c78b4fcebcb6e8d458d00c1ba3d38974b2584a0b#rd
如有侵权请联系:admin#unsafe.sh