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