由網(wǎng)絡(luò)安全機(jī)構(gòu)VU Amsterdam(VUSec)研究人員發(fā)現(xiàn)的新攻擊稱為Spectre-BHI(分支歷史注入),英特爾公司和ARM公司為其指定了不同的名稱。研究團(tuán)隊聲稱,它是2017年Spectre v2攻擊的一種擴(kuò)展,其名稱為Spectre-BTI(分支目標(biāo)注入),與Spectrev v2類似,可能導(dǎo)致敏感信息從特權(quán)內(nèi)核內(nèi)存空間泄漏。
VUSec研究人員創(chuàng)建的概念驗證漏洞利用非特權(quán)帳戶從/etc/shadow文件中泄露了root密碼的哈希值。/etc/shadow文件是Linux上的系統(tǒng)文件,只有root管理帳戶才能訪問。從本質(zhì)上來說,該漏洞迫使內(nèi)核將文件加載到內(nèi)存中,通常會在內(nèi)存中保護(hù)它免受非特權(quán)進(jìn)程的訪問,但隨后利用Spectre-BHI攻擊來訪問和泄漏其內(nèi)容。這是對現(xiàn)代操作系統(tǒng)基本安全邊界的一種重大安全突破,而現(xiàn)代操作系統(tǒng)將用戶模式應(yīng)用程序和內(nèi)存空間與特權(quán)內(nèi)核內(nèi)存空間分離。
什么是幽靈(Spectre)?
Spectre是一種安全漏洞,最初于2017年1月披露,它源于現(xiàn)代CPU的性能相關(guān)特性,稱為推測執(zhí)行,CPU試圖提前預(yù)測程序在到達(dá)條件分支時將采用哪條路徑執(zhí)行,并提前在該路徑上執(zhí)行指令。如果基于內(nèi)部算法的預(yù)測結(jié)果很糟糕,則存儲在臨時CPU緩存中的結(jié)果將被丟棄。Spectre之類的推測性執(zhí)行攻擊以及隨后的許多其他攻擊都會欺騙這種機(jī)制,從充當(dāng)側(cè)通道的臨時緩存中泄漏信息。
VUSec研究人員解釋說:“在發(fā)現(xiàn)Spectre的時候,可以輕松地利用分支目標(biāo)注入(BTI或Spectre-v2),這是跨越特權(quán)級別的最危險的Spectre變體。例如,非特權(quán)用戶態(tài)攻擊者可以將任何分支目標(biāo)從用戶態(tài)提供給間接分支預(yù)測器,并欺騙內(nèi)核推測性地跳轉(zhuǎn)到注入的目標(biāo)代碼位置,并執(zhí)行在那里找到的代碼。”
為了降低風(fēng)險,谷歌公司等軟件供應(yīng)商和Linux內(nèi)核開發(fā)人員提出了基于軟件的解決方案,例如retpoline。雖然這些措施很有效,但它們對性能造成了重大影響,因此CPU供應(yīng)商后來開發(fā)了基于硬件的防御措施,英特爾公司的名稱為EIBRS,ARM公司的名稱為CSV2。
VUSec研究人員解釋說:“這些解決方案很復(fù)雜,但它們的要點是,預(yù)測器‘以某種方式’跟蹤執(zhí)行目標(biāo)的特權(quán)級別(用戶/內(nèi)核)。而且正如人們所料,如果目標(biāo)屬于較低的特權(quán)級別,內(nèi)核執(zhí)行將不會使用它(即不再有網(wǎng)絡(luò)攻擊者提供的任意代碼位置來推測性地劫持內(nèi)核控制流)。”
然而,問題在于CPU的預(yù)測器依賴于全局歷史來選擇目標(biāo)條目以推測性地執(zhí)行,正如VUSec研究人員所證明的那樣,這個全局歷史可能會被破壞。換句話說,雖然最初的Spectre v2允許網(wǎng)絡(luò)攻擊者實際注入目標(biāo)代碼位置,然后欺騙內(nèi)核執(zhí)行該代碼,但新的Spectre-BHI/ Spectre-BHB攻擊只能迫使內(nèi)核錯誤預(yù)測,并執(zhí)行歷史上已經(jīng)存在且過去執(zhí)行過的有趣代碼小工具或片段,但這可能會泄露數(shù)據(jù)。
研究人員說:“英特爾eIBRS和Arm CS V2是否損壞?也就是說,緩解措施按預(yù)期工作,但殘留的攻擊面比供應(yīng)商最初假設(shè)的要重要得多。然而,找到可利用的小工具比以前更難,因為網(wǎng)絡(luò)攻擊者不能直接跨權(quán)限注入預(yù)測器目標(biāo)。”
緩解新的Spectre-BHI漏洞
英特爾公司將新的Spectre-BHI漏洞跟蹤為CVE-2022-0001,用于跨權(quán)限變體,CVE-2022-0002用于相同權(quán)限變體。對于這兩種變體,ARM將其跟蹤為CVE-2022-23960。
英特爾公司聲稱,該公司的大多數(shù)CPU都受到了影響,除了Atom系列中的CPU。對于ARM,易受攻擊的CPU型號是Cortex-A15、Cortex-A57、Cortex-A72、Cortex-A73、Cortex-A75、Cortex-A76、Cortex-A76AE、Cortex-A77、Cortex-A78、Cortex-A78AE、Cortex-A78C、Cortex-X1、Cortex-X2、Cortex-A710、NeoverseN1、NeoverseN2和NeoverseV1。
這兩家公司都表示將提供軟件緩解措施。ARM公司有五種不同的緩解措施,具體取決于系統(tǒng)。
對于他們的Linux漏洞利用,VUSec研究人員濫用了eBPF,這是一種自內(nèi)核4.4以來可用的技術(shù),可以在操作系統(tǒng)內(nèi)核中運(yùn)行沙盒程序。研究人員表示,雖然eBPF不是潛在問題的一部分,并且可以發(fā)現(xiàn)其他代碼小工具泄漏數(shù)據(jù),但非特權(quán)eBPF的存在確實極大地促進(jìn)了推測執(zhí)行(和其他)攻擊。這就是這兩家公司建議禁用它的原因,并且一些Linux發(fā)行版已經(jīng)開始默認(rèn)禁用它。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。