您所在的位置: 首頁(yè) >
安全研究 >
安全通告 >
MIT爆出蘋(píng)果M1芯片重大漏洞
MIT爆出蘋(píng)果M1芯片重大漏洞:補(bǔ)丁無(wú)法修復(fù)
新漏洞突破了蘋(píng)果 M1 芯片的最后一道安全線。
2020 年 11 月,蘋(píng)果 M1 處理器正式發(fā)布,憑借其優(yōu)越性能和低功耗表現(xiàn)一度引發(fā)轟動(dòng)。
自?xún)赡昵巴瞥鲆詠?lái),還沒(méi)有發(fā)生過(guò)針對(duì) M1 芯片的嚴(yán)重攻擊,這表明其安全系統(tǒng)運(yùn)行總體良好,其中指針身份驗(yàn)證機(jī)制(Pointer Authentication Code,PAC)被稱(chēng)作「最后一道防線」。
在目前所有基于 Arm 的定制芯片上,蘋(píng)果均部署了指針身份驗(yàn)證,包括 M1、M1 Pro 和 M1 Max。高通、三星在內(nèi)的一些芯片制造商也宣布或希望推出支持硬件級(jí)別安全功能的新型處理器。
近日,來(lái)自 MIT CSAIL 的學(xué)者們重點(diǎn)介紹了一種可禁用蘋(píng)果 M1 芯片指針身份驗(yàn)證機(jī)制的新型硬件攻擊,名為「PACMAN」,這種攻擊能夠阻止 M1 芯片檢測(cè)到軟件漏洞攻擊。
論文鏈接:http://pacmanattack.com/paper.pdf
該研究團(tuán)隊(duì)由 MIT 電氣工程與計(jì)算機(jī)科學(xué)系助理教授 Mengjia Yan 領(lǐng)導(dǎo),成員包括 Joseph Ravichandran、Weon Taek Na、Jay Lang。他們將在本月即將舉行的計(jì)算機(jī)體系結(jié)構(gòu)頂會(huì) ISCA 2022 會(huì)議上重點(diǎn)介紹「PACMAN」。
Mengjia Yan
「PACMAN」能夠削弱 PAC 防御能力的攻擊模式,從而使得計(jì)算機(jī)操作系統(tǒng)變得易受攻擊。由于 PAC 可能會(huì)集成到未來(lái)基于 64 位 Arm 架構(gòu)構(gòu)建的處理器中,因此該漏洞可能會(huì)變得更加普遍。團(tuán)隊(duì)表示,他們尚未對(duì)新發(fā)布的同樣支持指針身份驗(yàn)證的 M2 芯片進(jìn)行測(cè)試。
對(duì)于越來(lái)越多采用蘋(píng)果設(shè)備的企業(yè)而言,這一漏洞值得重視。據(jù)調(diào)查,美國(guó)企業(yè)中約有 23% 的用戶(hù)目前使用 Mac 設(shè)備?!溉绻荒芫徑膺@種情況,我們的攻擊將影響到大多數(shù)移動(dòng)設(shè)備,甚至可能在未來(lái)幾年影響到桌面設(shè)備?!拐撐闹袑?xiě)道。
PACMAN 原理
現(xiàn)代計(jì)算機(jī)系統(tǒng)日趨復(fù)雜,往往會(huì)暴露出一些可能存在漏洞的攻擊面。從軟件層來(lái)說(shuō),內(nèi)存損壞漏洞(例如緩沖區(qū)溢出)可以被攻擊者利用來(lái)改變被攻擊者程序的行為,或完全控制被攻擊者程序。從硬件層來(lái)說(shuō),微架構(gòu)邊信道漏洞(例如 Spectre 和 Meltdown)可以被利用來(lái)泄漏被攻擊者程序地址空間內(nèi)的任意數(shù)據(jù),目前,安全領(lǐng)域的研究者通常分別探索軟件和硬件的缺陷,比如兩種沒(méi)有交集的攻擊模型的兩個(gè)漏洞。
而在 MIT 這項(xiàng)研究中,團(tuán)隊(duì)探索了內(nèi)存損壞漏洞和微架構(gòu)邊信道漏洞之間的協(xié)同作用,展示了如何使用硬件攻擊來(lái)協(xié)助軟件攻擊,以繞過(guò)強(qiáng)大的安全防御機(jī)制。
這個(gè)名為 「PACMAN」 的漏洞,會(huì)假設(shè)計(jì)算機(jī)上已經(jīng)存在一個(gè)軟件錯(cuò)誤,可以讀取和寫(xiě)入不同的內(nèi)存地址。然后,它利用 M1 硬件架構(gòu)的一個(gè)細(xì)節(jié),賦予漏洞執(zhí)行代碼并可能接管操作系統(tǒng)的能力。
就是說(shuō),他們假設(shè)漏洞存在,然后將其變成更嚴(yán)重的漏洞。
這里需要先理解指針身份驗(yàn)證是什么,以及名為推測(cè)執(zhí)行的處理器架構(gòu)細(xì)節(jié)如何工作。
2017 年,ARM 在 ARMv8.3 中推出了指針身份驗(yàn)證,作為一項(xiàng)保護(hù)指針完整性的安全特性。具體來(lái)說(shuō),「指針身份驗(yàn)證」是一種防止軟件攻擊破壞那些包含內(nèi)存地址或指針的數(shù)據(jù)的方法。例如,惡意代碼可能會(huì)執(zhí)行緩沖區(qū)溢出攻擊,將比預(yù)期更多的數(shù)據(jù)寫(xiě)入內(nèi)存的一部分,多余的數(shù)據(jù)會(huì)溢出到指針的地址并覆蓋它。這可能意味著計(jì)算機(jī)軟件不會(huì)執(zhí)行存儲(chǔ)在原始地址的代碼,而是轉(zhuǎn)移到存儲(chǔ)在新地址的惡意軟件。
指針身份驗(yàn)證將加密簽名附加到指針的末尾。如果指針被惡意操作,簽名將不再配對(duì)。通常,PAC 用于保護(hù)系統(tǒng)操作系統(tǒng)的核心,即內(nèi)核。如果攻擊者操縱內(nèi)核指針,指針與其身份驗(yàn)證代碼之間的不匹配將產(chǎn)生所謂的「異?!?,系統(tǒng)將崩潰,從而結(jié)束惡意軟件的攻擊。惡意軟件必須非常幸運(yùn)才能猜到正確的代碼,概率大約 65000 分之一。
PACMAN 找到了一種讓惡意軟件不斷猜測(cè)的方法,而不會(huì)出現(xiàn)任何引發(fā)崩潰的錯(cuò)誤猜測(cè)。關(guān)于它是如何做到這一點(diǎn)的,就涉及到現(xiàn)代計(jì)算的核心。
幾十年來(lái),計(jì)算機(jī)一直在使用所謂的推測(cè)執(zhí)行來(lái)加速處理。在典型的程序中,下一條指令應(yīng)該遵循哪條指令,通常取決于前一條指令的結(jié)果(想想 if/then)。但如今 CPU 不會(huì)等待答案,而是會(huì)推測(cè)接下來(lái)會(huì)發(fā)生什么,并開(kāi)始按照這些思路執(zhí)行指令:
如果 CPU 猜對(duì)了,這種推測(cè)性的執(zhí)行會(huì)節(jié)省很多時(shí)鐘周期;如果結(jié)果證明猜錯(cuò)了,所有的工作都被扔掉,處理器按照正確的指令序列重新開(kāi)始。重要的是,錯(cuò)誤的計(jì)算值永遠(yuǎn)不會(huì)對(duì)軟件可見(jiàn)。沒(méi)有任何程序可以簡(jiǎn)單地輸出推測(cè)執(zhí)行的結(jié)果。
然而,近年來(lái)研究人員找到了利用推測(cè)執(zhí)行從 CPU 中偷數(shù)據(jù)等操作的方法。這被稱(chēng)為邊信道攻擊(side-channel attack),因?yàn)樗鼈兺ㄟ^(guò)觀察間接信號(hào)來(lái)獲取數(shù)據(jù),例如訪問(wèn)數(shù)據(jù)需要多長(zhǎng)時(shí)間,Spectre 和 Meltdown 漏洞就是如此。
Yan 的團(tuán)隊(duì)想出了一種欺騙 CPU 在猜測(cè)指針驗(yàn)證碼的方法,這樣就不會(huì)出現(xiàn)異常,操作系統(tǒng)也不會(huì)崩潰。當(dāng)然,答案仍然是軟件看不到的,其中用數(shù)據(jù)填充特定緩沖區(qū),并使用 timing 來(lái)發(fā)現(xiàn)成功的推測(cè)替換了哪個(gè)部分。
打開(kāi)處理器安全新方向
在這項(xiàng)研究中,除了 PACMAN 攻擊之外,研究者也在將微架構(gòu)邊通道攻擊擴(kuò)展到蘋(píng)果處理器方面做出了重要的貢獻(xiàn)。有兩個(gè)重要的結(jié)果值得強(qiáng)調(diào):首先,他們對(duì) TLB 組織進(jìn)行了逆向工程,在 Apple M1 處理器上使用 Speculative_execution ,對(duì)基于 TLB 的邊通道進(jìn)行首次攻擊。其次,他們展示了 PACMAN 跨特權(quán)級(jí)別攻擊的工作,這意味著攻擊啟用 PA 的操作系統(tǒng)內(nèi)核是可行的。
關(guān)于 PACMAN,蘋(píng)果的產(chǎn)品團(tuán)隊(duì)向 Yan 的小組提供了如下回復(fù):「我們要感謝研究人員的幫助,因?yàn)檫@個(gè)概念驗(yàn)證促進(jìn)了我們對(duì)技術(shù)的理解。根據(jù)我們的分析以及研究人員與我們分享的詳細(xì)信息,我們得出結(jié)論:此問(wèn)題不會(huì)對(duì)我們的用戶(hù)構(gòu)成直接風(fēng)險(xiǎn),并且不足以自行繞過(guò)設(shè)備保護(hù)。
其他熟悉 PACMAN 的研究人員表示,它到底有多危險(xiǎn)還有待觀察?!傅?PACMAN 讓我們?cè)谠O(shè)計(jì)新的安全解決方案時(shí)多了一份擔(dān)憂(yōu)和考量」,加州大學(xué)河濱分校計(jì)算機(jī)工程系主任、架構(gòu)安全專(zhuān)家 Nael Abu-Ghazaleh 說(shuō)道。近年來(lái),處理器制造商一直在為其設(shè)計(jì)添加指針身份驗(yàn)證以外的其他安全解決方案。他懷疑:既然 PACMAN 已經(jīng)被披露,一些研究將開(kāi)始尋找針對(duì)這些新型解決方案的投機(jī)攻擊。
Yan 的團(tuán)隊(duì)探索了一些 PACMAN 的簡(jiǎn)單解決方案,但往往會(huì)增加處理器的整體漏洞。但 Abu-Ghazaleh 認(rèn)為 Yan 的團(tuán)隊(duì)打開(kāi)了通往處理器安全新方向的大門(mén)。
誠(chéng)如 Yan 所說(shuō):「以前人們認(rèn)為軟件攻擊是獨(dú)立的,與硬件攻擊是分開(kāi)的。而我們正試圖研究?jī)煞N威脅模型之間的交叉點(diǎn)。在這種新的復(fù)合威脅模型下,還有許多未充分研究的緩解機(jī)制,我們將 PACMAN 攻擊視為起點(diǎn)。」
文章來(lái)源:機(jī)器之心