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