英特爾處理器被曝出“Downfall”漏洞:可竊取加密密鑰
今日,谷歌的一位高級(jí)研究科學(xué)家利用一個(gè)漏洞設(shè)計(jì)了一種新的CPU攻擊方法,該漏洞可影響多個(gè)英特爾微處理器系列,并允許竊取密碼、加密密鑰以及共享同一臺(tái)計(jì)算機(jī)的用戶的電子郵件、消息或銀行信息等私人數(shù)據(jù)。
該漏洞被追蹤為CVE-2022-40982,是一個(gè)瞬態(tài)執(zhí)行側(cè)通道問題,影響基于英特爾微架構(gòu)Skylake到Ice Lake的所有處理器。
攻擊者利用這個(gè)安全漏洞可以提取受軟件保護(hù)擴(kuò)展(SGX)保護(hù)的敏感信息。SGX是英特爾基于硬件的內(nèi)存加密技術(shù),可以將內(nèi)存中的代碼和數(shù)據(jù)與系統(tǒng)上的軟件分離開來。
SGX目前僅在服務(wù)器中央處理單元上得到支持,并為那些操作系統(tǒng)都無法訪問的軟件提供可信的隔離環(huán)境。
收集秘密數(shù)據(jù)
谷歌研究員Daniel Moghimi發(fā)現(xiàn)了這個(gè)漏洞,并將其報(bào)告給了英特爾,他說他的垮臺(tái)攻擊技術(shù)利用了gather指令,“在推測執(zhí)行期間泄露了內(nèi)部矢量寄存器文件的內(nèi)容”。
Gather是英特爾處理器內(nèi)存優(yōu)化的一部分,用于加速訪問內(nèi)存中的分散數(shù)據(jù)。然而,正如Moghimi在今天發(fā)表的一篇技術(shù)論文中解釋的那樣:“gather指令似乎使用了一個(gè)跨同級(jí)CPU線程共享的臨時(shí)緩沖區(qū),它將數(shù)據(jù)暫時(shí)轉(zhuǎn)發(fā)給后來依賴的指令,數(shù)據(jù)屬于不同的進(jìn)程,并在同一核心上運(yùn)行g(shù)ather執(zhí)行。”
Moghimi開發(fā)了兩種攻擊技術(shù),一種是收集數(shù)據(jù)采樣(GDS),另一種是收集值注入(GVI),它將GDS與2020年披露的負(fù)載值注入(LVI)技術(shù)相結(jié)合。
通過使用GDS技術(shù),Moghimi 能夠在受控虛擬機(jī)之外的另一個(gè)虛擬機(jī)(VM)上竊取 AES 128 位和 256 位加密密鑰,每個(gè)系統(tǒng)都位于同一 CPU 內(nèi)核的同胞線程上。
研究人員可在10 秒內(nèi)一次性竊取 8 個(gè)字節(jié),最終成功竊取了 AES 圓形密鑰,并將它們組合起來破解了加密。對(duì)于 100 個(gè)不同的密鑰,AES-128 的首次攻擊成功率為 100%。對(duì) AES-256 的首次攻擊成功率為 86%。
研究人員指出,嘗試失敗意味著恢復(fù)整個(gè)密鑰需要多次運(yùn)行攻擊,因?yàn)橹髅荑€的數(shù)據(jù)不會(huì)在 10 秒內(nèi)頻繁出現(xiàn)。
除了加密密鑰外,Moghimi還提供了 GDS 攻擊的變種,這種攻擊可以竊取靜態(tài)的任意數(shù)據(jù),因?yàn)樵趦煞N情況下,CPU 會(huì)將這類信息預(yù)取到 SIMD 寄存器緩沖區(qū)中。
威脅評(píng)估和微代碼性能影響
Moghimi 指出,Downfall 攻擊要求攻擊者與受害者在同一個(gè)物理處理器內(nèi)核上。但惡意軟件等本地程序有可能利用這一漏洞竊取敏感信息。
去年 8 月,英特爾發(fā)現(xiàn)了 Downfall/GDS 漏洞,并與 Moghimi 合作進(jìn)行了研究,并且目前提供了微碼更新來緩解這一問題。
為了給原始設(shè)備制造商(OEM)和通信服務(wù)提供商(CSP)留出測試和驗(yàn)證解決方案的時(shí)間,并為他們的客戶準(zhǔn)備必要的更新,有關(guān)該漏洞的細(xì)節(jié)保密了近一年。
英特爾告訴 BleepingComputer,該問題不會(huì)影響 Alder Lake、Raptor Lake 和 Sapphire Rapids,Downfall 會(huì)影響以下三個(gè)系列的處理器:
- Skylake 系列(Skylake、Cascade Lake、Cooper Lake、Amber Lake、Kaby Lake、Coffee Lake、Whiskey Lake、Comet Lake)
- 虎湖系列
- 冰湖系列(Ice Lake、Rocket Lake)
英特爾修復(fù)和響應(yīng)工程副總裁 Vivek Tiwari 認(rèn)為,試圖在受控實(shí)驗(yàn)室環(huán)境之外利用這一點(diǎn)將是一項(xiàng)復(fù)雜的工作。
英特爾在給 BleepingComputer 的一份聲明中表示,客戶可以查看公司提供的風(fēng)險(xiǎn)評(píng)估指南,并決定通過 Windows 和 Linux 以及虛擬機(jī)管理器(VMM)中的可用機(jī)制禁用微碼緩解功能。
做出這樣的決定可能是出于對(duì)Downfall/GDS緩解措施可能帶來的性能問題的擔(dān)憂,也可能是因?yàn)樵搯栴}對(duì)環(huán)境不構(gòu)成威脅。
英特爾為客戶提供了威脅評(píng)估和性能分析信息,其結(jié)論是在某些環(huán)境中該問題的影響可能很小。在頻繁執(zhí)行收集指令的情況下,存在潛在影響,這是高性能計(jì)算(HPC)環(huán)境所特有的。
不過,該芯片制造商表示,由于攻擊的條件和這些環(huán)境的典型配置,該問題在高性能計(jì)算環(huán)境中可能不會(huì)被視為威脅。
例如,攻擊者需要在與目標(biāo)相同的物理內(nèi)核上運(yùn)行,并能夠運(yùn)行不受信任的代碼等,而這些在這些環(huán)境中并不常見。
基于軟件的緩解措施
要消除 Downfall/GDS 攻擊的風(fēng)險(xiǎn),需要重新設(shè)計(jì)硬件。雖然基于軟件的替代方案是存在的,不過這些方案都有注意事項(xiàng),而且只能暫時(shí)解決問題。Moghimi 提出了四種這樣的替代方案,其中三種有明顯的缺點(diǎn):
- 禁用同步多線程(SMT)可部分緩解 GDS 和 GVI 攻擊,但削減超線程會(huì)帶來 30% 的性能損失,而且跨上下文切換的泄漏仍會(huì)發(fā)生
- 通過操作系統(tǒng)和編譯器禁止受影響的指令,以防止它們向收集泄密;缺點(diǎn)是一些應(yīng)用程序可能會(huì)被打亂,而且如果漏掉某些指令,泄密仍會(huì)發(fā)生
- 禁用收集。缺點(diǎn)是使用該指令的應(yīng)用程序可能會(huì)變得緩慢甚至崩潰
- 防止收集指令后的瞬時(shí)數(shù)據(jù)轉(zhuǎn)發(fā)(添加加載柵欄,如 lfence 指令)可減輕 Downfall,這也是英特爾在最新微代碼更新中采用的解決方案。
不過,Moghimi 表示,要?jiǎng)?chuàng)建這樣的工具并不容易,因?yàn)樗鼈冃枰玫馗采w硬件和支持的指令,鑒于硬件的復(fù)雜性和專有障礙,這是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。
這位研究人員發(fā)布了 Downfall 的代碼,以便其他人可以查看和試用。此外,Daniel Moghimi 還計(jì)劃在美國黑帽安全大會(huì)上討論 Downfall 漏洞和攻擊技術(shù)。
英特爾發(fā)布了 CVE-2022-40982 的安全公告,目前的嚴(yán)重程度為 6.5 級(jí)?;诖寺┒?,該公司還提供了一份技術(shù)文件,以及 Moghimi 關(guān)于 Downfall 的采訪內(nèi)容。