1月5日晚間消息,兩天前,Intel處理器爆出了嚴(yán)重的側(cè)信道攻擊漏洞,漏洞會(huì)導(dǎo)致跨特權(quán)的信息泄露。
該事件持續(xù)發(fā)酵。次日,英特爾針對(duì)CPU安全漏洞一事發(fā)表聲明稱,正與AMD、ARM和軟件廠商合作解決該問(wèn)題。同時(shí),英特爾表示,其他公司的芯片也存在同樣問(wèn)題。谷歌、微軟、亞馬遜等科技巨頭針對(duì)該事件也紛紛采取應(yīng)對(duì)措施。
英特爾在聲明中說(shuō):“最近的報(bào)道稱該安全問(wèn)題是由一種‘漏洞’引起的,而且只有英特爾芯片存在問(wèn)題的說(shuō)法不正確。基于目前分析,使用不同廠商處理器和操作系統(tǒng)的多種計(jì)算設(shè)備,都容易受到這類漏洞的攻擊。
那么,這種漏洞的影響力到底有多大?阿里云技術(shù)專家就此進(jìn)行了解讀。
1、涉事處理器有何背景?
此次漏洞主要有兩種攻擊形式,官方命名為Spectre(幽靈)和Meltdown(熔斷)。其中Spectre出現(xiàn)了2種類攻擊變體,而Meltdown有一種,綜合起來(lái)就是:
變體1: 繞過(guò)邊界檢查(CVE-2017-5753)
變體2: 分支注入 (CVE-2017-5715)
變體3: 越權(quán)數(shù)據(jù)緩存加載(CVE-2017-5754)
在正式開(kāi)講前,先簡(jiǎn)單介紹處理器背景知識(shí)。
現(xiàn)代處理器是通過(guò)在流水線各個(gè)階段同時(shí)執(zhí)行不同的任務(wù)來(lái)提高處理能力的。為了讓這個(gè)流水線機(jī)制更加高效,現(xiàn)代處理器又引入了分支預(yù)測(cè)和亂序執(zhí)行機(jī)制,從而更高效的進(jìn)行運(yùn)算。
其中,分支預(yù)測(cè)主要用于解決在跳轉(zhuǎn)分支完全確定前,通過(guò)預(yù)測(cè)執(zhí)行目標(biāo)地址的代碼來(lái)提高執(zhí)行效率。如果預(yù)測(cè)失敗,流水線會(huì)把預(yù)測(cè)錯(cuò)誤的代碼放棄并回滾狀態(tài)。
而亂序執(zhí)行則通過(guò)將代碼的執(zhí)行順序打亂來(lái)提高平行執(zhí)行能力。
這些處理器優(yōu)化技術(shù)對(duì)于現(xiàn)代處理器的性能提升有很大的幫助。但是近期安全研究者發(fā)現(xiàn),現(xiàn)代處理器架構(gòu)的這些功能可能會(huì)導(dǎo)致安全風(fēng)險(xiǎn),可以被攻擊者利用在特定情況下進(jìn)行攻擊。產(chǎn)生這些的根本原因是流水線對(duì)無(wú)效執(zhí)行狀態(tài)的恢復(fù)不完整,以及亂序執(zhí)行時(shí)對(duì)權(quán)限檢查不完整。這里也充分體現(xiàn)了安全設(shè)計(jì)和性能設(shè)計(jì)的沖突。
此次Intel處理器爆出的側(cè)信道攻擊并不是一個(gè)新話題。安全研究者在這個(gè)方面進(jìn)行了大量的研究,并發(fā)布了很多研究成果。但是這次爆出的問(wèn)題更容易被利用,并且具有實(shí)際的攻擊效果,影響面更大。
側(cè)信道攻擊的基本實(shí)現(xiàn)方法是通過(guò)對(duì)共享資源的使用狀態(tài)來(lái)反推出一些敏感信息。
現(xiàn)代處理器中的緩存機(jī)制是用于減少處理器訪問(wèn)內(nèi)存所需平均時(shí)間的重要設(shè)計(jì)。通過(guò)緩存機(jī)制,處理器會(huì)大大節(jié)省數(shù)據(jù)計(jì)算時(shí)對(duì)內(nèi)存訪問(wèn)時(shí)間。而緩存機(jī)制的性能特點(diǎn)同時(shí)也被安全研究者用來(lái)發(fā)起側(cè)信道攻擊,通過(guò)觀測(cè)數(shù)據(jù)訪問(wèn)性能來(lái)確定數(shù)據(jù)是否在緩存中,從而反推出一些敏感信息。
除此之外還包括了其他處理器共享單元,比如跳轉(zhuǎn)目標(biāo)緩存也都可以被用于側(cè)信道攻擊。
2、漏洞到底有何影響?
Spectre漏洞CVE-2017-5753
該漏洞主要是通過(guò)低特權(quán)級(jí)別的代碼,調(diào)用高特權(quán)級(jí)別的代碼來(lái)實(shí)現(xiàn)攻擊。
由于為了性能加速,現(xiàn)代處理器會(huì)提前做分支預(yù)測(cè),其后在流水線上誤判的預(yù)先執(zhí)行最終并不會(huì)實(shí)際執(zhí)行。但,也是由于性能的原因,流水線執(zhí)行結(jié)束后并沒(méi)有對(duì)所有預(yù)判執(zhí)行的現(xiàn)場(chǎng)做完全修復(fù),從而導(dǎo)致在緩存中會(huì)留下執(zhí)行的痕跡,進(jìn)一步會(huì)導(dǎo)致低特權(quán)惡意軟件可能通過(guò)分支預(yù)測(cè)在緩存中留下的痕跡,在特定代碼情況下猜測(cè)出高特權(quán)的數(shù)據(jù)。
這個(gè)漏洞需要特定的代碼模式才能夠觸發(fā),所以攻擊者必須要在高特權(quán)級(jí)別的代碼,比如操作系統(tǒng)內(nèi)核,虛擬化底層中找到特定模式的代碼用于利用,相對(duì)CVE-2017-5715而言,利用難度小。
Spectre漏洞CVE-2017-5715
對(duì)于漏洞CVE-2017-5753,攻擊者需要找到已經(jīng)存在的特定代碼模式來(lái)展開(kāi)攻擊。如果沒(méi)有現(xiàn)成的攻擊者用于展開(kāi)攻擊的代碼模式,攻擊者需要考慮如何制造出這些便于攻擊的代碼模式。漏洞CVE-2017-5715就是針對(duì)這個(gè)思路展開(kāi)的。
這里的攻擊目標(biāo)是分支目標(biāo)緩存。這是一個(gè)處理器內(nèi)部用于加速分支跳轉(zhuǎn)的內(nèi)部數(shù)據(jù)結(jié)構(gòu),有特定的目標(biāo)預(yù)測(cè)算法。通過(guò)對(duì)這個(gè)算法的操縱可以讓攻擊者預(yù)填入惡意的跳轉(zhuǎn)地址,在流水線上,當(dāng)處理器到正確地址之前,讓處理器執(zhí)行特定的目標(biāo)代碼。當(dāng)然,隨著流水線的最后確認(rèn),這些執(zhí)行也都會(huì)被廢棄,但是對(duì)于緩存的影響依然保留。
Google在攻擊細(xì)節(jié)中給出了反推出KVM的模塊地址思路,但是這個(gè)攻擊對(duì)處理器的架構(gòu)以及內(nèi)部間接分支預(yù)測(cè)的算法有很強(qiáng)的依賴。相對(duì)而言,這個(gè)漏洞是最難利用的,需要一定的先決條件以及很多處理器內(nèi)部信息。
Meltdown漏洞CVE-2017-5754
應(yīng)該說(shuō)這三個(gè)漏洞中,Meltdown是最容易利用也是影響最大的。
本質(zhì)上這個(gè)漏洞是因?yàn)樘幚砥髟趤y序執(zhí)行時(shí),沒(méi)有對(duì)跨特權(quán)的數(shù)據(jù)訪問(wèn)進(jìn)行限制。比如當(dāng)一個(gè)用戶態(tài)的程序訪問(wèn)內(nèi)核數(shù)據(jù)時(shí),最終處理器是會(huì)觸發(fā)頁(yè)訪問(wèn)異常的,但是問(wèn)題出在,當(dāng)流水線上執(zhí)行時(shí),對(duì)于觸發(fā)的頁(yè)異常進(jìn)行了抑制,在處理器真正觸發(fā)頁(yè)異常前,相應(yīng)的代碼還是會(huì)執(zhí)行,導(dǎo)致緩存依舊會(huì)發(fā)生變化。
由于此隱患涉及過(guò)去10年間Intel的絕大部分CPU型號(hào),所以此次安全漏洞引發(fā)的是一次史無(wú)前例的技術(shù)危機(jī)。為了安全起見(jiàn),市面上所有的服務(wù)器、個(gè)人電腦、手機(jī)等都需要升級(jí)應(yīng)對(duì)。但同時(shí)也要看到這個(gè)漏洞有一定的門檻,同時(shí)考慮到升級(jí)了cpu和操作系統(tǒng)之后伴隨的性能下降。不同用戶可以評(píng)估自己的情況來(lái)做出決定。
值得一提的是,在這個(gè)過(guò)程中,所有的云廠商沒(méi)有例外地屬于響應(yīng)最迅速的群體。一方面是要為平臺(tái)上的客戶安全負(fù)責(zé),另一方面這些平臺(tái)聚集了大量的專業(yè)安全工程師。因此可以預(yù)見(jiàn)的是,云平臺(tái)應(yīng)該也是全行業(yè)中第一批能修復(fù)這個(gè)問(wèn)題的群體。
據(jù)悉,阿里云在去年年底與Intel同步關(guān)鍵安全信息,基于內(nèi)核領(lǐng)域的多年深耕,雙方持續(xù)就修復(fù)方案進(jìn)行聯(lián)合驗(yàn)證。截至此文發(fā)布,阿里云暫未受到確定的影響,也沒(méi)有任何信息表明已有客戶因此受到攻擊。
考慮到此次事件的影響面很大,還伴隨著潛在的性能影響,團(tuán)隊(duì)已經(jīng)啟動(dòng)了修復(fù)工作,正在慎重部署熱升級(jí)方案中,正常情況下該方案不會(huì)對(duì)客戶業(yè)務(wù)帶來(lái)影響。已知有部分場(chǎng)景下不支持熱升級(jí)方案。與之相關(guān)的客戶我們也會(huì)另行提前通知。
部分資訊信息轉(zhuǎn)載網(wǎng)絡(luò)或會(huì)員自己投稿發(fā)布,如果有侵犯作者權(quán)力,請(qǐng)聯(lián)系我們刪除處理,聯(lián)系QQ:770276607