日前,來自麻省理工學院計算機科學與人工智能實驗室 (簡稱 MIT CSAIL)發(fā)布了一份最新的研究報告,研究人員稱已經(jīng)找到了一種方法來擊敗蘋果 M1 SoC 上所謂的“最后一道安全線”。
漏洞無法修復(fù)
事實上,蘋果 M1 自 2020 年發(fā)布以來,一直廣受業(yè)界好評,其不僅幫助 Mac 達到了新的性能高度,更是開啟了蘋果掌控自己軟硬件生態(tài)的新篇章。
然而,隨著 M1 芯片中內(nèi)置了一個新漏洞的消息發(fā)酵,立即引起了不少安全專家的關(guān)注。
據(jù) IEEE Spectrum 報道,此漏洞存在于 M1 芯片硬件層安全機制 PAC(pointer authentication codes) 中,且達到無法修復(fù)的級別。
MIT CSAIL 計劃在 6 月 18 日舉行的國際計算機體系結(jié)構(gòu)研討會上提交一種攻擊模式,其是由本科畢業(yè)于浙江大學、現(xiàn)任麻省理工學院電氣工程和計算機科學系的助理教授、計算機科學與人工智能實驗室的成員 MENGJIA YAN 領(lǐng)導(dǎo)的研究人員推出。
這種新的攻擊模式叫做 PACMAN,可以繞過 Apple M1 CPU 上的指針身份驗證(PAC),最終導(dǎo)致計算機操作系統(tǒng)的核心變得脆弱。指針身份驗證是一項安全功能,它將加密簽名添加到指針中,可幫助保護 CPU 免受已獲得內(nèi)存訪問權(quán)限的攻擊者的攻擊。
IEEE Spectrum 表示,由于 PAC 可能會陸續(xù)整合到由 64 位 Arm 架構(gòu)構(gòu)建的未來處理器中,因此,這種漏洞可能會變得更加普遍。
具體實現(xiàn)原理
具體來看,MIT CSAIL 的研究人員發(fā)現(xiàn),通過 PACMAN 可以允許攻擊者使用 Apple M1 CPU 物理訪問 Mac,以訪問底層文件系統(tǒng)。
來源:https://pacmanattack.com/
當然,想要通過 PACMAN 這種新型方式來實現(xiàn)攻擊,也是有前提條件的。
首先,攻擊者需要找到一個影響 Mac 上軟件的內(nèi)存 Bug,該 Bug 可以讀取和寫入不同的內(nèi)存地址。然后,該 Bug 利用 M1 硬件架構(gòu)上的細節(jié),能夠使得漏洞執(zhí)行代碼,甚至接管操作系統(tǒng)的能力。
研究人員在驗證過程中表示,“我們先假設(shè)這個漏洞就在那里,但我們把它變成了一個更嚴重的漏洞。”
PACMAN 是在將軟件攻擊的硬件緩解措施與微架構(gòu)側(cè)信道混合在一起時產(chǎn)生的。主要手段就是使用 PACMAN 方式,其能夠利用預(yù)測執(zhí)行泄露 PAC 驗證結(jié)果,且不會引發(fā)系統(tǒng)的任何崩潰。
至于是如何做到這一點的,研究人員稱,這涉及到了現(xiàn)代計算的核心。“幾十年來,計算機一直在使用所謂的推測執(zhí)行來加速處理。在傳統(tǒng)的程序中,下一個指令應(yīng)該遵循哪條指令,通常取決于上一個指令的結(jié)果(想想if/then)?,F(xiàn)代 CPU 不會等待答案,而是會直接進行推測,做出有根據(jù)的猜測之后,開始沿著這些路線執(zhí)行指令。如果 CPU 猜對了,這種推測執(zhí)行能夠節(jié)省很多時鐘周期。如果猜錯了,那么一切會重新開始,處理器沿著正確的指令順序再次開始。重要的是,錯誤計算的值永遠不會對軟件可見。沒有一個程序可以簡單地輸出推理執(zhí)行的結(jié)果。”
然而,在過去幾年中,研究人員已經(jīng)發(fā)現(xiàn)了可以利用推測執(zhí)行來做一些事情的方法,比如從 CPU 中偷偷地拿出數(shù)據(jù)。這些被稱為側(cè)信道攻擊(side-channel attack),因為它們通過觀察間接信號(例如訪問數(shù)據(jù)所需的時間)來獲取數(shù)據(jù)。曾經(jīng)席卷全球的 Spectre 和 Meltdown 便是側(cè)信道攻擊的代表。
MIT 研究人員想出了一種方法來欺騙 CPU 猜測指針身份驗證代碼,這樣就不會出現(xiàn)異常,操作系統(tǒng)也不會崩潰。當然,答案對軟件來說仍然是看不見的,其中涉及用數(shù)據(jù)填充特定的緩沖區(qū),使用 timing 來揭示成功推測取代了哪個部分。
蘋果:對用戶沒有直接風險
截至目前,MIT CSAIL 稱只是展示了 PACMAN 在蘋果 M1 CPU 上的試驗,其他平臺或版本具體情況暫未可知。不過,需要注意的是,PACMAN 類似于幽靈攻擊,不會留下任何日志,因此很多人無法識別出自己的設(shè)備是否在被攻擊的范圍內(nèi)。
那么,這是否會對普通用戶帶來一定影響?
MIT CSAIL 表示,“只要您保持軟件最新,就可以。PACMAN 是一種利用技術(shù) ——就其本身而言,它不能損害用戶的系統(tǒng)。雖然 PACMAN 的原理是通過硬件機制無法通過軟件功能進行修補,但內(nèi)存損壞錯誤可能會出現(xiàn)。”
就在 MIT 研究人員報告了他們的發(fā)現(xiàn)之后,也與蘋果分享了概念驗證攻擊過程和代碼。蘋果的產(chǎn)品團隊向 Yan 的團隊回應(yīng)道:
“我們要感謝研究人員的合作,因為這種概念驗證促進了我們對這些技術(shù)的理解。根據(jù)我們的分析以及研究人員與我們分享的細節(jié),我們得出結(jié)論,這個問題不會對我們的用戶構(gòu)成直接風險,也不足以單獨繞過設(shè)備保護。”
對此,也有網(wǎng)友評論稱,”好巧不巧,前段時間的 WWDC22 上宣布了 M2 的到來,如果說 M1 不安全了,那么也是時候換上 M2 了。“然而,現(xiàn)實來看,對于這一剛爆出的漏洞,M2 芯片上是否已經(jīng)做了修復(fù)還是一個未知數(shù)。
參考:
https://pacmanattack.com/
https://spectrum.ieee.org/pacman-hack-can-break-apple-m1s-last-line-of-defense
http://pacmanattack.com/paper.pdf