之前有安全機(jī)構(gòu)曾爆出Zen 3存在漏洞,內(nèi)部架構(gòu)優(yōu)化可以被利用,對此AMD已經(jīng)正式回應(yīng)。
AMD方面已經(jīng)證實(shí),Zen 3 CPU內(nèi)部的微架構(gòu)優(yōu)化可以被利用,其方式類似于幾代前困擾Intel CPU的Spectre漏洞。禁用該優(yōu)化是可能的,但會帶來性能上的損失,AMD認(rèn)為除了最關(guān)鍵的處理器部署外,其他所有處理器都不值得這樣做。
在最近發(fā)布的一份名為《AMD預(yù)測存儲轉(zhuǎn)發(fā)的安全分析》的白皮書中,AMD描述了該漏洞的性質(zhì),并討論了相關(guān)的后果。簡單來說,預(yù)測性存儲轉(zhuǎn)發(fā)(PSF)的實(shí)現(xiàn),由于其性質(zhì)所致從而重新打開了之前受到Spectre v1、v2和v4威脅的攻擊路線。
AMD將PSF描述為一種硬件優(yōu)化,"旨在通過預(yù)測負(fù)載和存儲之間的依賴關(guān)系來提高代碼執(zhí)行的性能"。與分支預(yù)測(一種啟用了之前Spectre攻擊的功能)一樣,PSF進(jìn)行預(yù)測,以使處理器更快地執(zhí)行后續(xù)指令,然而當(dāng)PSF做出錯誤的預(yù)測時,就會產(chǎn)生漏洞。
AMD表示,不正確的預(yù)測可能是兩種情況的結(jié)果。"首先,有可能存儲/負(fù)載對有一段時間的依賴性,但后來不再有依賴性。" 這種情況是自然發(fā)生的,因?yàn)榇鎯拓?fù)載在程序執(zhí)行過程中會發(fā)生變化。第二種情況發(fā)生在 "如果PSF預(yù)測器結(jié)構(gòu)中有一個別名",而這個別名在不該使用的時候被使用了。這兩種情況都可以被惡意代碼觸發(fā),至少理論上是這樣。
Ryzen 5000和Epyc 7003系列處理器使用Zen 3架構(gòu),受此漏洞影響。
依靠軟件沙盒來保證安全的程序是最容易受到PSF攻擊的。使用硬件隔離的程序 "可能被認(rèn)為是安全的",不會受到PSF攻擊,因?yàn)镻SF投機(jī)不會跨地址空間發(fā)生。它也不會跨權(quán)限域發(fā)生。