新的“Retbleed”推测性执行攻击影响AMD和Intel CPU

安全研究人员发现了另一个影响许多旧的AMD和Intel微处理器的漏洞,这些漏洞可能绕过当前的防御,导致基于幽灵的推测性执行攻击。
配音重新出血苏黎世ETH研究人员Johannes Wikner和Kaveh Razavi将该问题追踪为CVE-2022-29900(AMD)和CVE-2022-29901(Intel),芯片制造商发布软件缓解措施,作为协调披露过程的一部分。
Retbleed也是一类称为Spectre BTI(CVE-2017-5715或Spectre-V2)的Spectre攻击的最新添加,该攻击利用称为推测执行的优化技术的副作用,通过计时侧通道欺骗程序访问其内存空间中的任意位置,并泄漏私人信息。
像Spectre这样的攻击利用了以下事实:这些错误执行的指令#8212,预测失误的结果#8212,势必会在缓存中留下执行痕迹,从而导致恶意程序欺骗处理器执行错误的代码路径,并推断出与受害者有关的秘密数据。
换句话说,Spectre是瞬态执行攻击的一个实例,它依赖硬件设计缺陷来“影响”推测执行的指令序列,并从受害者的内存地址空间泄漏加密密钥或密码。
虽然已经设计了诸如Retpoline(又名“return trampoline”)之类的安全措施来防止分支目标注入(BTI),但Retbleed旨在绕过此对策并实现推测性代码执行。

研究人员解释说:“Retpoline通过替换间接跳转(在运行时确定分支目标的分支)和返回调用来工作”。
Retbleed旨在劫持内核中的返回指令,以在内核上下文中获得任意推测代码执行。如果对受害者返回指令处的寄存器和/或内存有足够的控制,攻击者可以泄漏任意内核数据
简而言之,其核心思想是将返回指令视为投机执行的攻击向量,并强制语句像间接分支一样进行预测,从而有效地撤消Retpoline提供的保护。
作为一条新的防线,AMD引入了所谓的Jmp2Ret,而Intel则建议使用增强的间接分支限制推测(eIBRS)来解决潜在的漏洞,即使采取了Retpoline缓解措施。
“Windows操作系统默认使用IBRS,因此不需要更新,”英特尔在一份咨询中表示,并指出,它与Linux社区合作,为这一缺陷提供了可用的软件更新。