近日,苏黎世联邦理工学院研究人员 Johannes Wikner 和 Kaveh Razavi发现了一个影响众多旧 AMD 和 Intel 微处理器的漏洞,该漏洞可能绕过当前的防御并导致基于 Spectre 的推测执行攻击。
漏洞编号为CVE-2022-29900 (AMD) 和 CVE-2022-29901 (Intel),安全人员将这些问题称为 Retbleed。在将该漏洞信息上报AMD和Intel后,这两大芯片巨头已经发布了相关的缓解措施,并督促用户进行安全更新。
Retbleed是利用分支目标注入来泄漏信息的推测执行攻击系列的新成员,我们称之为 Spectre-BTI(CVE-2017-5715 或 Spectre-V2)。该攻击利用推测执行优化技术的副作用,通过时序侧通道来欺骗程序访问其内存空间中的任意位置并泄漏私人信息。
推测执行试图通过预测接下来将执行哪条指令,来填充程序的指令流水线以获得性能提升,同时如果猜测结果错误,也会撤消执行结果。Spectre系列攻击正式利用了这一漏洞,这些错误执行的指令(错误预测的结果)必然会在缓存中留下执行痕迹,从而导致流氓程序可以欺骗处理器执行错误的代码路径,和推断与受害者有关的秘密数据。
换句话说,Spectre 是瞬态执行攻击的一个实例,它依靠硬件设计缺陷来“影响”哪些指令序列被推测执行,并从受害者的内存地址空间中泄露加密密钥或密码。虽然已经设计了像Retpoline(又名“return trampoline”)这样的保护措施来防止分支目标注入 (BTI),但 Retbleed 旨在绕过这种对策并实现推测性代码执行。
安全人员称,Retpolines是通过替换间接跳转和返回调用来工作。Retbleed旨在劫持内核中的返回指令,以在内核上下文中获得任意推测性代码执行。通过在受害者返回指令处对寄存器和/或内存进行充分控制,攻击者可以泄漏任意内核数据。
简而言之,其核心逻辑是将返回指令视为用于推测执行的攻击向量,并强制将返回作为间接分支进行预测,从而有效地撤消 Retpoline 提供的保护。为了强化安全,AMD引入了所谓的Jmp2Ret,而英特尔则是使用增强的间接分支限制推测 ( eIBRS ) 来解决潜在的漏洞,即使 Retpoline 缓解措施。
英特尔在安全报告中强调,由于Windows 操作系统默认使用 IBRS,因此不受该漏洞的影响,自然也就不需要更新。目前英特尔与 Linux 社区合作,为该缺陷提供可用的软件更新。
参考来源:
https://thehackernews.com/2022/07/new-retbleed-speculative-execution.html
精彩推荐