幽靈漏洞新變種,威脅英特爾和AMD處理器預(yù)計(jì)影響數(shù)十億電腦
3年前困擾英特爾和AMD處理器的幽靈漏洞又回來(lái)了。
5月6日消息,一組弗吉尼亞大學(xué)和加州大學(xué)圣地亞哥分校的學(xué)者發(fā)現(xiàn)了幽靈漏洞新變種,它可以繞過(guò)當(dāng)前處理器上所有針對(duì)幽靈漏洞的防護(hù)措施,幾乎可以將所有設(shè)備一網(wǎng)打盡,包括臺(tái)式機(jī)、筆記本電腦、云服務(wù)器和智能手機(jī)。
Spectre和Meltdown的披露在某種程度上打開(kāi)了一扇閘門,在此后的幾年里,無(wú)盡的攻擊變種被曝光,即使像英特爾、ARM和AMD這樣的芯片制造商一直在努力加入防御措施,以緩解惡意代碼直接從計(jì)算機(jī)內(nèi)核內(nèi)存中讀取密碼、加密密鑰和其他有價(jià)值的信息。
Spectre的核心是一種時(shí)序攻擊的側(cè)信道攻擊,它打破了不同應(yīng)用程序之間的隔離,并利用CPU硬件實(shí)現(xiàn)中的一種稱為推測(cè)執(zhí)行的優(yōu)化方法,欺騙程序訪問(wèn)內(nèi)存中的任意位置,從而竊取信息。
研究人員表示:“Spectre攻擊誘使處理器沿著錯(cuò)誤的路徑執(zhí)行指令,即使處理器恢復(fù)并正確地執(zhí)行任務(wù),黑客也可以在處理器走錯(cuò)路時(shí)訪問(wèn)機(jī)密數(shù)據(jù)。”
新的攻擊方法利用了所謂的微操作緩存(又稱微操作或μops),這是一個(gè)將機(jī)器指令分解成更簡(jiǎn)單的命令并加快計(jì)算速度的片上組件,作為泄露秘密信息的一個(gè)側(cè)面渠道。自2011年以來(lái),基于英特爾生產(chǎn)的機(jī)器中已經(jīng)內(nèi)置了微運(yùn)算緩存。
它是一組安裝在芯片上的組件,作為竊取秘密信息的側(cè)信道,可以將機(jī)器指令分解為更簡(jiǎn)單的命令,并加快計(jì)算速度。自2011年以來(lái),微型操作緩存已經(jīng)被內(nèi)置到基于英特爾的機(jī)器中。
“英特爾對(duì)幽靈漏洞提出的防御方案是LFENCE,將敏感代碼放置在等待區(qū)等待執(zhí)行安全檢查,之后敏感代碼才允許被執(zhí)行。”弗吉尼亞大學(xué)的助理教授和該研究的共同作者Ashish Venkat表示,“但事實(shí)證明,等候區(qū)也是有遺漏的,新的攻擊正是利用了這一點(diǎn)。我們將展示攻擊者如何通過(guò)微操作緩存作為秘密通道來(lái)竊取信息。”
研究人員解釋到,在AMD Zen微架構(gòu)上,可以利用微操作披露的原始信息,實(shí)現(xiàn)帶寬為250Kbps,錯(cuò)誤率為5.59%或168.58Kbps的隱蔽數(shù)據(jù)傳輸通道。
英特爾在指導(dǎo)方針中建議遵守恒定時(shí)間編程原則,這種做法說(shuō)起來(lái)容易做起來(lái)難,因?yàn)閮H靠軟件修改無(wú)法充分緩解投機(jī)執(zhí)行帶來(lái)的威脅。
值得慶幸的是,利用Spectre漏洞很困難。為了防止新的攻擊,研究人員建議刷新微操作緩存,這種技術(shù)首先抵消了使用緩存獲得的性能好處,利用性能計(jì)數(shù)器來(lái)檢測(cè)微操作緩存中的異常情況,并根據(jù)分配給代碼的權(quán)限級(jí)別對(duì)其進(jìn)行區(qū)分,防止未授權(quán)代碼獲得更高的權(quán)限。
研究人員表示:"微操作緩存作為一個(gè)側(cè)信道,有以下幾點(diǎn)危險(xiǎn)之處。首先,它繞過(guò)了所有將緩存作為側(cè)信道的技術(shù)。第二,這些攻擊未被現(xiàn)有的惡意軟件配置文件檢測(cè)到。第三,由于微操作緩存位于管道的前端,在執(zhí)行之前,某些通過(guò)限制投機(jī)性緩存更新來(lái)緩解Spectre和其他瞬時(shí)執(zhí)行攻擊的防御措施,仍然容易受到微操作緩存的攻擊。"