英特爾最近有些流年不利,昨天彭博社爆料蘋果將在本月的WWDC大會(huì)上宣布PC產(chǎn)品處理器架構(gòu)全面轉(zhuǎn)向ARM。如果說合作伙伴跳船只是“外憂”,那么困擾英特爾的處理器安全問題則是更加令人頭疼的“內(nèi)患”。
過去的兩年中,現(xiàn)代CPU(尤其是英特爾生產(chǎn)的CPU)持續(xù)受到一系列無休止的攻擊的困擾,這些攻擊使技術(shù)高超的攻擊者能夠從芯片內(nèi)存中竊取密碼、加密密鑰和其他機(jī)密信息。
周二,壞消息再次傳來,兩個(gè)獨(dú)立的學(xué)術(shù)團(tuán)隊(duì)披露了兩個(gè)新的獨(dú)特漏洞(SGAxe和CrossTalk),這些漏洞使英特爾的Software Guard eXtension(SGX)成為迄今為止公司處理器最敏感(脆弱)的部分。
2015年發(fā)布的SGX,顧名思義,是對(duì)英特爾體系的一個(gè)擴(kuò)展,用于增強(qiáng)軟件的安全性。具體來說是為加密密鑰和其他敏感數(shù)據(jù)提供類似Fort Knox的保護(hù),即使操作系統(tǒng)或虛擬機(jī)被嚴(yán)重破壞這些敏感信息也不會(huì)泄露。
SGX通過創(chuàng)建受信任的執(zhí)行環(huán)境來工作,以保護(hù)敏感代碼及其所用數(shù)據(jù)免受系統(tǒng)上其他任何事物的監(jiān)視或篡改。通俗地講,SGX對(duì)于軟件的保護(hù)并不是識(shí)別或者隔離系統(tǒng)中出現(xiàn)的惡意軟件,而是將合法軟件對(duì)于敏感數(shù)據(jù)(如加密密鑰、密碼、用戶數(shù)據(jù)等)的操作封裝在一個(gè)“小黑匣”中,使得惡意軟件無法對(duì)這些數(shù)據(jù)進(jìn)行訪問。
SGX的安全性和真實(shí)性的關(guān)鍵是創(chuàng)建所謂的安全區(qū)或安全內(nèi)存塊。安全區(qū)內(nèi)容在離開處理器之前已加密并寫入RAM。它們只有在返回后才被解密。SGX的工作是保護(hù)安全區(qū)內(nèi)存,并阻止CPU可信部分以外的任何其他人訪問其內(nèi)容。
周二的漏洞攻擊并非SGX的首次潰敗。2018年,另外一支研究隊(duì)伍利用Meltdown攻擊闖入了堅(jiān)固的“小黑匣”,通過運(yùn)行在一個(gè)“小黑匣”中的攻擊程序(malware)對(duì)其他“小黑匣”的敏感程序?qū)嵤┕簦@樣便打破了SGX的安全。因?yàn)楣舫绦騧alware也運(yùn)行在一個(gè)“小黑匣”中,主機(jī)上的反病毒軟件很難發(fā)現(xiàn)并清除攻擊程序。
Meltdown與Spectre攻擊激發(fā)了處理器漏洞利用的迅猛發(fā)展。就在今年早些時(shí)候,另有一個(gè)研究小組也成功攻破了SGX(https://lviattack.eu/)。
英特爾通過引入微代碼更新來緩解了早期的SGX漏洞。但是,這些緩解措施并未持續(xù)太久,最近的這兩次攻擊促使英特爾忙不迭地設(shè)計(jì)了新的防御措施。英特爾周二發(fā)布了更新,并計(jì)劃在未來幾周內(nèi)將這些更新提供給最終用戶。根據(jù)計(jì)算機(jī)類型的不同,該修復(fù)程序?qū)⒆詣?dòng)安裝或需要手動(dòng)干預(yù)。英特爾用戶,尤其是那些依賴SGX的用戶,應(yīng)與設(shè)備制造商聯(lián)系,并確保盡快安裝更新。
新的SGX攻擊代號(hào)SGAxe和CrossTalk。兩者都使用單獨(dú)的旁路攻擊闖入強(qiáng)化的CPU區(qū)域,這是一種通過測(cè)量時(shí)序差異、功耗、電磁輻射、聲音或來自存儲(chǔ)它的系統(tǒng)的其他信息來推斷敏感數(shù)據(jù)的一種黑客技術(shù)。兩種攻擊的前提大致相同。攻擊者已經(jīng)能夠通過破壞系統(tǒng)完整性的軟件漏洞或惡意虛擬機(jī)破壞目標(biāo)計(jì)算機(jī)的安全性。盡管這種攻擊有著很高的技術(shù)門檻,但這也恰恰正是SGX應(yīng)該防御的情況。
SGAxe能夠竊取大量受SGX保護(hù)的數(shù)據(jù)。一類敏感數(shù)據(jù)是屬于目標(biāo)用戶的數(shù)據(jù),例如,錢包地址或涉及區(qū)塊鏈的金融交易中使用的其他秘密信息。下圖顯示了存儲(chǔ)在安全區(qū)域中的圖像文件。右圖顯示了使用SGAxe提取后的同一圖像。
攻擊可以很容易地竊取SGX用于“證明”的加密密鑰,可以向遠(yuǎn)程服務(wù)器證明該硬件是真正的Intel處理器而不是惡意模擬。遠(yuǎn)程服務(wù)器在進(jìn)行金融交易,播放受保護(hù)的視頻或執(zhí)行其他受限制的功能之前,可能需要連接設(shè)備提供這些證明密鑰。密歇根大學(xué)和澳大利亞阿德萊德大學(xué)的研究人員在題為“SGAxe:SGX在實(shí)踐中潰敗”的論文(https://sgaxe.com/)中寫道:
由于機(jī)器的生產(chǎn)環(huán)境證明密鑰受到損害,服務(wù)器提供的任何機(jī)密信息都可以立即由客戶端的非授信應(yīng)用程序讀取,而客戶端安全區(qū)所產(chǎn)生的所有輸出均無法保障其正確性,這直接導(dǎo)致基于SGX的DRM應(yīng)用程序失效。最后,我們通過遠(yuǎn)程認(rèn)證的能力還意味著基于SGX的安全遠(yuǎn)程計(jì)算協(xié)議也失去效用。
“撂荒”五個(gè)月的漏洞
SGAxe起源于一次更早的攻擊,名為CacheOut,同一攻擊團(tuán)隊(duì)(還有一名參與者)于1月發(fā)現(xiàn)了這種攻擊。 而CacheOut又是2019年5月份一次攻擊的變體,該攻擊于2019年5月公開,業(yè)內(nèi)的代號(hào)五花八門,包括RIDL、Fallout、ZombieLoad和Microarchitectural Data Sampling等,每個(gè)代號(hào)均來自一個(gè)獨(dú)立發(fā)現(xiàn)該缺陷的研究團(tuán)隊(duì)。CacheOut和SGAxe都利用了CVE-2020-0549,該漏洞是發(fā)現(xiàn)RIDL攻擊的研究人員于1月27日(即CacheOut論文發(fā)表的同一天)作為附錄披露的。
RIDL和其他相關(guān)攻擊通常使攻擊者能夠讀取CPU與目標(biāo)共享的數(shù)據(jù)包。從本質(zhì)上講,RIDL類似于鑲嵌在墻上的玻璃,一個(gè)公寓單元的居民可以聽到相鄰單元的情況。英特爾CPU就是公寓房間,而墻是line fill buffer(行填充緩沖區(qū))——硅片上存儲(chǔ)最近訪問的數(shù)據(jù)的填充緩沖區(qū)。就像墻壁泄漏聲音一樣,緩沖區(qū)也會(huì)泄漏時(shí)鐘數(shù)據(jù),攻擊者可以推斷其中包含的數(shù)據(jù)。
英特爾從未修復(fù)芯片中的潛在漏洞。取而代之的是,該公司的工程師發(fā)布了一個(gè)微代碼更新,該更新使CPU在每次處理器開始新的對(duì)安全性敏感的操作時(shí),都用垃圾信息覆蓋緩沖區(qū)內(nèi)容。而CacheOut則找到了一種繞過此緩解措施的方法。
麻煩還在后面
除了繞開英特爾2018年的緩解措施外,CacheOut還引入了一種使漏洞利用更加有效的方法。原始RIDL攻擊的局限性在于,它僅允許攻擊者監(jiān)視相鄰單元中主動(dòng)發(fā)生的對(duì)話,即僅訪問在超線程中處理的數(shù)據(jù)。如果未在同一CPU內(nèi)核共享的超線程中對(duì)其進(jìn)行處理,則攻擊者無法訪問數(shù)據(jù)。但是,使用CacheOut,攻擊者可以克服此限制。更具體地說,在CacheOut中,攻擊者首先從高速緩存中抽取自己選擇的數(shù)據(jù),方法是先將數(shù)據(jù)發(fā)送到行填充緩沖區(qū),然后使用RIDL將其提取出來。如果說RIDL就像墻體鑲嵌的玻璃,讓攻擊者可以聽到鄰居間的隊(duì)話,那么通過CacheOut,攻擊者可以強(qiáng)迫鄰居們討論任何攻擊者想要知道的話題。
至于SGAxe,這是CacheOut的一種新的更有效的用法。它使用稱為分頁的內(nèi)存管理方案將安全區(qū)數(shù)據(jù)移到L1高速緩存中,在那里解密內(nèi)容。然后通過CacheOut將數(shù)據(jù)移到緩沖區(qū),最后使用RIDL技術(shù)將其提取出來。
英特爾發(fā)言人說,一旦將微碼修復(fù)程序安裝在最終用戶計(jì)算機(jī)上,將重新分配安全密鑰,以解決舊密鑰泄露的可能性。發(fā)言人還說,當(dāng)證明服務(wù)使用英特爾推薦的可鏈接簽名模式來檢測(cè)對(duì)平臺(tái)密鑰的欺詐使用時(shí),可以減輕所有證明密鑰暴露的嚴(yán)重性。她還表示,SGAxe和CacheOut在“已應(yīng)用的虛擬環(huán)境中幾乎沒有影響”,2018年發(fā)布的緩解措施,可以用于保護(hù)名為L(zhǎng)1 Terminal Fault的另一種推測(cè)性執(zhí)行漏洞。
但是,密歇根大學(xué)研究員,SGAxe和CacheOut論文的合著者之一丹尼爾·金金(Daniel Genkin)表示,可鏈接簽名模式并非總是有效,不能在所有情況下都減輕證明密鑰泄漏的威脅。他還不同意L1 Terminal Fault緩解可以阻止CacheOut和SGAxe攻擊,但Genkin承認(rèn)這會(huì)使攻擊變得更加困難。
等等…還有CrossTalk
值得注意的是,第二次SGX攻擊基于以前未知的副通道,該副通道是由Intel CPU內(nèi)核使用的未記錄緩沖區(qū)創(chuàng)建的。阿姆斯特丹的弗里耶大學(xué)和蘇黎世聯(lián)邦理工學(xué)院的研究人員稱之為“暫存緩沖區(qū)”,它保留了先前在所有CPU內(nèi)核上執(zhí)行的脫機(jī)指令的結(jié)果。這是此內(nèi)核間緩沖區(qū)的工作原理圖:
該發(fā)現(xiàn)非常重要,原因有若干。首先,當(dāng)前緩沖區(qū)保留了RDRAND和的輸出RDSEED,這是Intel CPU可以執(zhí)行的最敏感的指令之一,因?yàn)樗鼈兲峁┥杉用苊荑€時(shí)所需的隨機(jī)數(shù)。下圖顯示了泄漏的工作方式:
獲得隨機(jī)數(shù)的攻擊者可以使用它們來推斷密鑰。這一發(fā)現(xiàn)使研究人員能夠設(shè)計(jì)出一種推測(cè)執(zhí)行攻擊,該攻擊基于SGX安全區(qū)中生成的ECDSA加密算法提取密鑰。
首次跨內(nèi)核攻擊
同樣重要的是,這個(gè)新發(fā)現(xiàn)的緩沖區(qū)提供的輔助通道使攻擊者能夠發(fā)動(dòng)全球首個(gè)跨CPU內(nèi)核的推測(cè)性執(zhí)行攻擊。此前所有的攻擊都需要攻擊者和目標(biāo)使用相同的處理器內(nèi)核,因此許多安全防御者認(rèn)為將受信任和不受信任的代碼分配給不同的內(nèi)核可有效緩解投機(jī)執(zhí)行攻擊(又稱瞬態(tài)執(zhí)行攻擊)。作為新漏洞的命名,CrossTalk攻擊將迫使研究人員和工程師重新考慮這一假設(shè)。
研究人員在一封電子郵件中寫道:
例如,許多人認(rèn)為禁用Intel SMT(超線程)足以阻止大多數(shù)已知/未來的攻擊,或者,在不同的內(nèi)核上運(yùn)行互不信任的代碼就可以緩解迄今為止的所有攻擊。事實(shí)上,問題比想象得更加嚴(yán)重,基于內(nèi)核的隔離可能還不夠。
在一份研究論文(vusec.net/projects/crosstalk)中,研究人員總結(jié)如下:
通過許多Intel CPU上的此緩沖區(qū),加密的RDRAND和RDSEED指令會(huì)將其輸出泄漏給攻擊者,我們已經(jīng)證明這是一種現(xiàn)實(shí)的攻擊。我們還再次證明,利用這些攻擊來破壞英特爾SGX安全區(qū)中運(yùn)行的代碼是輕而易舉的。
更糟糕的是,緩解現(xiàn)有瞬態(tài)執(zhí)行攻擊的方法幾乎沒有效果。當(dāng)前大多數(shù)緩解措施都依賴于邊界上的空間隔離,由于這些攻擊的跨核心性質(zhì),這些邊界不再適用。新的微代碼更新將這些指令鎖定在整個(gè)內(nèi)存總線上,可以緩解這些攻擊-但前提是沒有尚未發(fā)現(xiàn)的類似問題。
研究人員測(cè)試了2015年至2019年發(fā)布的Intel CPU,發(fā)現(xiàn)證據(jù)表明,大多數(shù)常規(guī)客戶端CPU(包括Xeon E3系列處理器)都容易受到CrossTalk的攻擊。英特爾表示,至強(qiáng)E5 / E7中的服務(wù)器微體系結(jié)構(gòu)不容易受到攻擊。研究人員尚未測(cè)試今年發(fā)布的任何第10代Core CPU,但根據(jù)他們從Intel獲得的信息,其中一些會(huì)受到攻擊。
治病需去根
英特爾解決此錯(cuò)誤的微代碼更新會(huì)在更新活躍緩沖區(qū)之前鎖定整個(gè)內(nèi)存總線,并僅在清除其內(nèi)容后才將其解鎖。進(jìn)行此更改的策略是確保沒有信息暴露給其他CPU內(nèi)核發(fā)出的脫機(jī)請(qǐng)求。英特爾只更新了幾個(gè)對(duì)安全性至關(guān)重要的指令,包括RDRAND、RDSEED和EGETKEY。研究人員說,這意味著其他指令(例如WRMSR)的輸出仍然會(huì)在CPU內(nèi)核之間泄漏。
對(duì)于大多數(shù)英特爾CPU用戶來說,最重要的是,接下來的幾周內(nèi)英特爾需要修復(fù)的漏洞可能在未來幾年中都將成為嚴(yán)重問題。在不相關(guān)的(云計(jì)算)客戶之間共享同一CPU的云環(huán)境,風(fēng)險(xiǎn)可能更高,但是即使在這些環(huán)境中,熟練的工程師也可以做一些事情來減輕攻擊。
本周最新一輪攻擊得出的更大結(jié)論是,困擾英特爾的處理器漏洞利用不太可能在短期內(nèi)緩解。與AMD和ARM處理器相比,英特爾CPU報(bào)告的漏洞數(shù)量“大幅領(lǐng)先”,因此這家全球最大的芯片制造商有責(zé)任重新設(shè)計(jì)安全的開發(fā)生命周期,確保基業(yè)長(zhǎng)青。