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