新漏洞可致虛擬機(jī)、安全飛地及內(nèi)核內(nèi)存泄密,英特爾已做緩解措施。
英特爾處理器再曝安全漏洞,黑客可以突破由虛擬機(jī)管理程序、操作系統(tǒng)內(nèi)核及英特爾SGX安全飛地構(gòu)建的安全邊界,令服務(wù)器和終端系統(tǒng)上的數(shù)據(jù)面臨泄密風(fēng)險。新攻擊技術(shù)可用于獲取受保護(hù)內(nèi)存區(qū)域中的口令及加密密鑰等敏感數(shù)據(jù),且之前的CPU攻擊防護(hù)措施無法阻擋。
一年前,熔斷和幽靈攻擊震驚整個網(wǎng)絡(luò)安全行業(yè),昭示出操作系統(tǒng)內(nèi)核與非特權(quán)應(yīng)用之間,或同一服務(wù)器上不同虛擬機(jī)之間的內(nèi)存隔離并不像之前設(shè)想的那么不可逾越。這些攻擊利用了現(xiàn)代CPU所謂的預(yù)測執(zhí)行這一性能增強(qiáng)功能,通過分析CPU緩存中的數(shù)據(jù)訪問情況來盜取秘密。
熔斷和幽靈攻擊曝光之后,計算機(jī)安全研究社區(qū)又發(fā)現(xiàn)了另外的邊信道攻擊技術(shù),攻擊者無需直接訪問秘密數(shù)據(jù),只要分析數(shù)據(jù)在預(yù)測執(zhí)行期間是怎樣流經(jīng)CPU微架構(gòu)組件的,就能重現(xiàn)想要窺探的秘密。
5月14日,多所大學(xué)和私營產(chǎn)業(yè)的研究人員披露了與熔斷和幽靈具相同影響的新攻擊方法——已于去年遵循負(fù)責(zé)任披露原則向英特爾私下報告。與熔斷和幽靈相比,新攻擊技術(shù)的不同點在于,數(shù)據(jù)泄露利用的是英特爾CPU的緩沖區(qū)而不是緩存。
研究人員用于共享新漏洞信息的網(wǎng)站上寫道:與現(xiàn)有攻擊不同,我們的攻擊可以從CPU內(nèi)部緩沖區(qū) (行填充緩沖區(qū)、加載端口、存儲緩沖區(qū)) 泄露任意在用數(shù)據(jù),包括從未存儲在CPU緩存中的數(shù)據(jù)。研究表明,針對預(yù)測執(zhí)行攻擊的現(xiàn)有防御措施不足以抵御此新攻擊技術(shù),某些時候甚至?xí)骨闆r變得更糟。因為漏洞深藏于英特爾CPU內(nèi)部,即便部署了現(xiàn)有緩解措施,攻擊者仍能運(yùn)用我們的方法獲取到敏感數(shù)據(jù)。
新型攻擊:微架構(gòu)數(shù)據(jù)采樣
英特爾將該新攻擊類型命名為微架構(gòu)數(shù)據(jù)采樣(MDS),并將上報的問題分成了具有各自CVE編號的4個漏洞:
荷蘭阿姆斯特丹自由大學(xué)系統(tǒng)與網(wǎng)絡(luò)安全組(VUSec) 的研究論文分析了其中3個漏洞——MLPDS、MFBDS和MDSUM。VUSec將自己的邊信道攻擊技術(shù)稱為 “流氓在用數(shù)據(jù)加載(RIDL:Rogue In-Flight Data Load)”。
另一篇研究論文由密歇根大學(xué)、伍斯特理工學(xué)院、奧地利格拉斯科技大學(xué)、魯汶大學(xué)和阿德萊德大學(xué)的研究人員共同撰寫,介紹了第四個漏洞MSBDS。他們將自己的技術(shù)命名為 “余波(Fallout)”,可從存儲緩沖區(qū)泄露數(shù)據(jù),也可用于泄露內(nèi)存信息以輔助攻擊者突破內(nèi)核地址空間布局隨機(jī)化(KASLR)安全機(jī)制。KASLR是操作系統(tǒng)中的一種安全機(jī)制,用來增加內(nèi)存崩潰漏洞的利用難度的。
研究人員在網(wǎng)站上寫道:諷刺的是,與前代處理器相比,最近的 Coffee Lake Refresh i9 CPU 中,英特爾為防止熔斷漏洞而引入的硬件反制措施,反而更有利于展開Fallout攻擊。
過去一年中,一些同類漏洞也被其他研究人員各自發(fā)現(xiàn)并報告給了英特爾。
該現(xiàn)象表明研究社區(qū)對CPU及硬件相關(guān)漏洞的興趣正在上升,并再次證明了不同研究人員能夠各自獨立地發(fā)現(xiàn)同樣的漏洞——意味著攻擊者也能。
攻擊原理以及受影響用戶
這些漏洞影響服務(wù)器、桌面電腦及筆記本電腦中所用的現(xiàn)代英特爾CPU。英特爾在其網(wǎng)站及向軟件開發(fā)者提供的白皮書中公布了可能受影響的CPU列表。
VUSec表示,AMD和ARM在審閱了他們的論文后稱其CPU不受新漏洞影響。
漏洞可為惡意進(jìn)程所利用,比如未授權(quán)應(yīng)用甚或瀏覽器內(nèi)運(yùn)行的JavaScript腳本,用以突破內(nèi)存隔離界限,從其他進(jìn)程中獲取數(shù)據(jù)。
VUSec研究人員給出了自己的概念驗證——用一臺虛擬機(jī)從共享同一塊物理CPU核心的另一臺虛擬機(jī)獲取到了其/etc/shadow文件內(nèi)容。共享同一塊物理CPU核心是多租戶云環(huán)境的常見設(shè)置。在另一個概念驗證中,研究人員通過未授權(quán)進(jìn)程從Linux內(nèi)核獲取到了/proc/version信息。
由于是邊信道攻擊,數(shù)據(jù)值并不是直接讀取的,而是通過CPU預(yù)測執(zhí)行期間數(shù)據(jù)被加載進(jìn)緩沖區(qū)的方式推斷出來的。預(yù)測執(zhí)行是用來在進(jìn)程請求指令路徑之前預(yù)先執(zhí)行以加快操作速度的。
預(yù)測執(zhí)行算法試圖在程序?qū)嶋H走上某代碼執(zhí)行路徑之前猜測出該程序?qū)x擇的執(zhí)行路徑。如果猜錯了,那產(chǎn)生的數(shù)據(jù)通常會被丟棄,程序執(zhí)行繼續(xù)沿正確路徑進(jìn)行。看上去似乎沒什么邏輯問題,不過是提高效率節(jié)省時間的一種優(yōu)化而已。然而,預(yù)測執(zhí)行卻也給本地攻擊者留下了推斷出緩存或緩沖區(qū)中數(shù)據(jù)相關(guān)信息的機(jī)會。
VUSec研究人員在論文中表示:RIDL源自一些微優(yōu)化措施,這些微優(yōu)化可導(dǎo)致CPU向預(yù)測性負(fù)載饋送無關(guān)的CPU內(nèi)部在用數(shù)據(jù)。基本上,RIDL相當(dāng)于在安全域隔離墻上放了個玻璃杯,讓攻擊者可以聽到CPU組件間的喃喃自語。
獲取這些數(shù)據(jù)的途徑有兩條:
1) 不分青紅皂白地收集一切,然后進(jìn)行篩選,以求理解并抽取出感興趣的片段;
2) 迫使受害進(jìn)程訪問攻擊者感興趣的那些數(shù)據(jù)。
比如說,在虛擬機(jī)概念驗證攻擊中,研究人員就反復(fù)打開SSH連接并嘗試以root身份驗證登錄。每次嘗試都迫使目標(biāo)虛擬機(jī)的操作系統(tǒng)去訪問含有系統(tǒng)中所有賬戶密碼散列值的/etc/shadow文件。
該嘗試行為花了約24小時才滲漏到足夠的信息以重建出整個shadow文件,但在其他MDS攻擊場景中,目標(biāo)數(shù)據(jù)幾毫秒就能被恢復(fù)出來了。具體耗時取決于攻擊者想要達(dá)成的目標(biāo)和他們選擇的方法。
如何緩解MDS攻擊
英特爾在電子郵件聲明中稱:
我們最近的第八代和第九代英特爾Core處理器,以及第二代Xeon可擴(kuò)展處理器很多都在硬件層就已解決了微架構(gòu)數(shù)據(jù)采樣(MDS)。至于其他受影響產(chǎn)品,今天開始可用的微代碼更新,及相應(yīng)的操作系統(tǒng)及虛擬機(jī)管理軟件更新會加以緩解。我們在網(wǎng)站上提供了更多信息,并持續(xù)鼓勵大家保持系統(tǒng)更新,因為這是受到保護(hù)的最佳方式之一。
CPU微代碼更新為操作系統(tǒng)及軟件開發(fā)人員提供了一條新的指令,可用于覆蓋緩沖區(qū)及防止過期數(shù)據(jù)暴露。與幽靈緩解措施類似,該微代碼更新可作為UEFI/BIOS更新的一部分分發(fā),以便固化該緩解措施;也可由操作系統(tǒng)供應(yīng)商分發(fā),然后在每次重啟時由內(nèi)核再次加載應(yīng)用。
即便缺乏微代碼更新,軟件及操作系統(tǒng)供應(yīng)商也可運(yùn)用特定的指令序列來達(dá)成相同的緩沖區(qū)覆蓋效果。英特爾的白皮書中詳細(xì)記錄了這些指令序列,不同處理器系列各有差異。
基于軟件的緩解措施比微代碼緩解措施對性能的影響更大。但無論哪一種緩解措施,最終都需要操作系統(tǒng)和軟件供應(yīng)商切實開始使用緩沖區(qū)覆蓋指令。這意味著用戶還需從他們的操作系統(tǒng)和虛擬機(jī)管理程序供應(yīng)商處找尋補(bǔ)丁。
VUSec的另一個建議是禁用同步多線程(SMT),也就是英特爾超線程技術(shù)。這么做不能完全緩解所有攻擊,但可以阻止大部分攻擊,并讓其他攻擊更難以執(zhí)行。禁用SMT的不利方面是可能會影響到某些工作負(fù)載的性能。英特爾在其文檔中對使用SMT的環(huán)境有所建議。
值得指出的是,去年與CPU緩沖區(qū)相關(guān)的另一個漏洞被曝光后,OpenBSD開發(fā)人員決定在其內(nèi)核調(diào)度器中默認(rèn)禁用SMT。
當(dāng)時OpenBSD的開發(fā)人員表示:因為很多現(xiàn)代計算機(jī)不再在BIOS設(shè)置中提供禁用超線程的功能,我們在我們的調(diào)度器中提供了禁用額外處理器線程的途徑。而由于我們懷疑超線程存在重大風(fēng)險,我們決定默認(rèn)禁用它們。
同時,VUSec研究人員認(rèn)為“發(fā)現(xiàn)解決特定邊信道預(yù)測執(zhí)行攻擊的緩解措施并非長期解決方案,因為能繞過這些緩解措施的新攻擊會源源不斷涌出。
我們的經(jīng)驗教訓(xùn)是,以軟件緩解措施解決RIDL類攻擊并不輕松,我們需要更底層的緩解措施以終結(jié)預(yù)測執(zhí)行攻擊時代。RIDL不適用于軟件緩解,更底層的緩解措施才是發(fā)展方向。
但問題是,清除預(yù)測執(zhí)行引入的風(fēng)險所需的架構(gòu)性調(diào)整,可能意味著要放棄某些我們已然習(xí)慣的CPU性能——那些我們?nèi)缃褚衙靼资且园踩珵榇鷥r換來的性能。
新漏洞信息共享網(wǎng)站:
MLPDS、MFBDS和MDSUM漏洞研究論文:
https://mdsattacks.com/files/ridl.pdf
MSBDS漏洞研究論文:
https://mdsattacks.com/files/fallout.pdf
英特爾公布的受影響CPU列表:
英特爾有關(guān)緩解措施的信息:
https://www.intel.com/content/www/us/en/architecture-and-technology/mds.html