趕緊自查,AMD和Intel CPU又曝新漏洞
近日,蘇黎世聯(lián)邦理工學(xué)院研究人員 Johannes Wikner 和 Kaveh Razavi發(fā)現(xiàn)了一個(gè)影響眾多舊 AMD 和 Intel 微處理器的漏洞,該漏洞可能繞過當(dāng)前的防御并導(dǎo)致基于 Spectre 的推測執(zhí)行攻擊。
漏洞編號(hào)為CVE-2022-29900 (AMD) 和 CVE-2022-29901 (Intel),安全人員將這些問題稱為 Retbleed。在將該漏洞信息上報(bào)AMD和Intel后,這兩大芯片巨頭已經(jīng)發(fā)布了相關(guān)的緩解措施,并督促用戶進(jìn)行安全更新。
Retbleed是利用分支目標(biāo)注入來泄漏信息的推測執(zhí)行攻擊系列的新成員,我們稱之為 Spectre-BTI(CVE-2017-5715 或 Spectre-V2)。該攻擊利用推測執(zhí)行優(yōu)化技術(shù)的副作用,通過時(shí)序側(cè)通道來欺騙程序訪問其內(nèi)存空間中的任意位置并泄漏私人信息。
推測執(zhí)行試圖通過預(yù)測接下來將執(zhí)行哪條指令,來填充程序的指令流水線以獲得性能提升,同時(shí)如果猜測結(jié)果錯(cuò)誤,也會(huì)撤消執(zhí)行結(jié)果。 Spectre系列攻擊正式利用了這一漏洞,這些錯(cuò)誤執(zhí)行的指令(錯(cuò)誤預(yù)測的結(jié)果)必然會(huì)在緩存中留下執(zhí)行痕跡,從而導(dǎo)致流氓程序可以欺騙處理器執(zhí)行錯(cuò)誤的代碼路徑,和推斷與受害者有關(guān)的秘密數(shù)據(jù)。
換句話說,Spectre 是瞬態(tài)執(zhí)行攻擊的一個(gè)實(shí)例,它依靠硬件設(shè)計(jì)缺陷來“影響”哪些指令序列被推測執(zhí)行,并從受害者的內(nèi)存地址空間中泄露加密密鑰或密碼。雖然已經(jīng)設(shè)計(jì)了像Retpoline(又名“return trampoline”)這樣的保護(hù)措施來防止分支目標(biāo)注入 (BTI),但 Retbleed 旨在繞過這種對(duì)策并實(shí)現(xiàn)推測性代碼執(zhí)行。
AMD 和英特爾CPU
安全人員稱,Retpolines是通過替換間接跳轉(zhuǎn)和返回調(diào)用來工作。Retbleed旨在劫持內(nèi)核中的返回指令,以在內(nèi)核上下文中獲得任意推測性代碼執(zhí)行。通過在受害者返回指令處對(duì)寄存器和/或內(nèi)存進(jìn)行充分控制,攻擊者可以泄漏任意內(nèi)核數(shù)據(jù)。
簡而言之,其核心邏輯是將返回指令視為用于推測執(zhí)行的攻擊向量,并強(qiáng)制將返回作為間接分支進(jìn)行預(yù)測,從而有效地撤消 Retpoline 提供的保護(hù)。為了強(qiáng)化安全,AMD引入了所謂的Jmp2Ret,而英特爾則是使用增強(qiáng)的間接分支限制推測 ( eIBRS ) 來解決潛在的漏洞,即使 Retpoline 緩解措施。
英特爾在安全報(bào)告中強(qiáng)調(diào),由于Windows 操作系統(tǒng)默認(rèn)使用 IBRS,因此不受該漏洞的影響,自然也就不需要更新。目前英特爾與 Linux 社區(qū)合作,為該缺陷提供可用的軟件更新。
參考來源:https://thehackernews.com/2022/07/new-retbleed-speculative-execution.html