蘋果晶片,出大問題了

自從蘋果M系列晶片開售,業界對其溢美之詞便層出不窮。雖然M系列晶片,為Mac銷售提供了巨大幫助,但卻一直存在一些漏洞,並且都非常難以修復。

這兩天,研究人員又發現M系列晶片存在一項新的安全漏洞,這個漏洞就比較離譜了,不但不需要root後提權到kernel,影響面會非常大,而且想要修復,就要拖垮晶片的工作性能。


不用Root權限,1~10小時偷走金鑰

週,安全專家發表了一篇論文,他們稱,在蘋果M系列晶片發現了一個新的漏洞,該漏洞允許攻擊者在執行廣泛使用的加密操作時,發起側信道攻擊,從而在Mac中提取密鑰。

此漏洞存在於CPU的功能-Data Memory-Dependent Prefetcher(DMP,資料記憶體依賴預取器)中,DMP是解決現代運算常見瓶頸而放在記憶體中的新功能,能夠減少主記憶體和CPU間的延遲,目前僅在M系列晶片和英特爾的第13代Raptor Lake微架構中使用。

蘋果晶片中DMP的一個行為在過去一直被忽視:有時候,DMP會將金鑰等敏感資料內容與記憶體位址指標混淆,導致攻擊者可以透過「解引用」操作洩露資訊。即讀取數據並透過側通道洩漏數據,這明顯違反了常量時間的操作範式。

這是一個嚴重的漏洞,會影響各種加密演算法,包括經過強化以抵禦量子電腦攻擊的2048位元金鑰。

研究人員嘗試對DMP發動攻擊,並將這種攻擊命名為GoFetch,它使用一個不需要Root存取權限的應用程序,只需要與macOS系統上安裝的大多數第三方應用程式相同的用戶權限,即可完成攻擊。

M系列晶片的架構是Arm經典的「集群」形式。例如,M1有兩個群集:一個包含四個效率核心(E核心),另一個包含四個效能核心(P核心)。只要GoFetch應用程式和目標加密應用程式運行在同一個效能叢集上,即使運行在該叢集中的不同核心上,GoFetch就可以挖掘足夠的機密來洩漏金鑰。這種攻擊既可以攻擊經典的加密演算法,也可以攻擊最新的量子強化演算法。

目前,研究團隊已對配備M1晶片的蘋果硬體進行了端到端GoFetch攻擊,同時也在其它蘋果晶片上測試了DMP啟動模式,並發現M2和M3也表現出類似的可利用DMP行為。

至於其有效性,研究人員的測試應用程式能夠在不到一小時的時間內提取2048位的RSA密鑰,提取2048位的Diffie-Hellman密鑰則只需兩個多小時。除去離線處理時間,取得Dilithium-2金鑰需要十個小時。

需要強調的是,該漏洞無法直接修補,因為它源自於晶片本身的微架構設計,也就是Apple Silicon晶片的核心部分,這意味著,短期內幾乎無法完全修復。

相反,只能透過在第三方加密軟體中建立防禦措施來緩解漏洞,這些防禦可能會在執行加密操作時大幅降低M系列的效能,尤其是在早期的M1和M2代上。

此前,研究團隊曾向蘋果公司進行了負責人的披露,不過目前,蘋果拒絕對此事發表評論。


蘋果晶片漏洞屢屢暴露

事實上,這並非蘋果晶片第一次被曝漏洞。

2018年,CPU晶片超級漏洞-Meltdown(熔斷)和Spectre(幽靈)被發現,不僅影響了自1997年以來生產的幾乎所有x86設備,同時也影響了彼時所有Mac和iOS設備。這些安全漏洞依賴“推測性執行”,即晶片可以透過同時處理多個指令,甚至無序處理來提高速度。

2020年,騰訊安全玄武實驗室對外公佈了一個蘋果M1晶片的安全漏洞。攻擊者在開啟所有系統保護的情況下,在一秒之內取得了系統的最高權限(root身分),因此可以任意讀寫裝置中儲存的通訊錄、照片、檔案等使用者隱私。

2022年,GoFetch研究團隊在M1和iPhone A14仿生晶片中發現了一個以前未知的「指針追逐DMP」。這項研究來自不同的學者群體,引發了名為Augury的攻擊,這是一種識別並利用洩漏指標的記憶體側通道的攻擊。最終,當使用常數時間編程後,Augury無法將資料資訊和資料位址混合在一起。

那時候,攻擊失敗給當時人們帶來了一種錯覺:DMP並沒有構成太大的威脅。不過,GoFetch表明,DMP比之前想像的更具侵略性,因此也構成了更大的安全風險。任何從記憶體中載入的值都有可能被解引。這使我們能規避Augury的許多限制,並在常量時間編程演示端到端攻擊。

2022年,麻省理工學院(MIT)發現,M1晶片的「指標驗證」(PAC)是廣泛存在於Arm處理器當中的硬體安全機制,而駭客則可透過指標驗證,不留痕跡地攻破M1發的最後一道防線,由於是硬體安全機制,蘋果無法透過更新M1晶片軟體修補程式來修復它。那時候,蘋果表示,這不足為奇。

可以說,自從M系列晶片問世以來,漏洞便不斷襲來,修修補補。而這次的漏洞,可以說是致命的,畢竟用效能無異於拆東牆補西牆,只能期待蘋果有更好的解決方案。


同樣的劇情,又來了

透過漏洞竊取金鑰,透過下降CPU效能的補丁,修復漏洞……這樣的劇情是不是很熟悉?是的,這次劇情和英特爾先前的「Downfall」漏洞門如出​​一轍。

2023年8月,英特爾揭露了一個名為「Downfall」的安全漏洞,追蹤編號為「CVE-2022-40982」。其利用「Gather Data Sampling」從計算機上竊取其他用戶的數據和敏感信息,這次的影響也堪稱史詩級——橫跨第6代的Skylake至第11代​​的Rocket Lake和Tiger Lake。

而後,英特爾針對「Downfall」安全漏洞推出了更新的微碼,對此進行修復,不過有可能會出現效能損失。

根據Phoronix報道,為了了解特定的性能影響,透過雙路Xeon Platinum 8380(Ice Lake)、單路Xeon Gold 6226R(Cascade Lake)、以及消費端的Core i7-1165G7,使用各種軟體包進行了測試。

雙路Xeon Platinum 8380在OpenVKL 1.3.1上的運行速度會降低6%左右,OSPRay 2.12的效能會下降34%,各種涉及人工智慧的工作負載也受到了影響,例如Neural Magic DeepSparse 1.5、Tencent NCNN和QMCPACK,最多會降低17%的效能。單路Xeon Gold 6226R的情況也類似,例如在OSPRay 2.12中損失了33%的性能,在Neural Magic DeepSparse 1.5中下降的幅度為20%。 Core i7-1165G7並不是測試的重點,僅執行了三次測試,不過同樣會帶來損失,效能降低了11%~39%。

從測試結果來看,更新後不可避免地出現效能下降,損失的幅度還比較大,而且涉及各種工作負載。不過英特爾的微碼更新並不是強制性的,而且提供了一種選擇退出機制。如果用戶不太在意漏洞帶來的安全性問題,而更重視效能,那麼可以選擇不去理會。

這樣的劇情,也曾經出現在2018年。影響Intel、AMD和Arm處理器的Meltdown(熔斷)和Spectre(幽靈)記憶體崩潰漏洞讓整個世界陷入恐慌。雖然後來微軟陸續推送了KB4090007等安全性更新來修補此漏洞,但同時卻帶來了電腦效能下降的問題。後來Google開發的「Retpoline」修復方案則解決了效能下載問題,微軟也藉鑒此了方案。後來,為了解決記憶體問題,Arm甚至推出了Morello平台,圍堵記憶體漏洞。

有了類似劇情,有程式設計師評論:「所以,難道說,蘋果是在利用漏洞,不管不顧地讓跑分看起來很高?」也有程式設計師稱,「都學會牙膏倒吸是吧?都學會牙膏倒吸是吧?”

世界上從來沒有密不透風的牆。雖然,我們不知道未來蘋果為了修復漏洞,會不會暴力降低效能,不過M3剛發布沒多久,就遇上這種嚴重漏洞,這種尷尬境地,只能看後續蘋果怎樣修復,而用戶也需要權衡性能和安全,選擇性地進行未來的系統升級。(電子工程世界)