PACMAN,一種針對 Apple M1 芯片的新攻擊技術
Security Affairs 網站披露,攻擊者可以通過一種名為 PACMAN 的新硬件攻擊技術,繞過蘋果 M1 處理器上的指針認證(PAC),入侵 MacOS 系統。
據悉,這項技術是由麻省理工學院計算機科學與人工智能實驗室(CSAIL)的研究人員Joseph Ravichandran, Weon Taek Na, Jay Lang和Mengjia Yan 共同發現。
研究人員發現,指針認證碼(PAC)允許檢測和防范內存中指針意外更改。
指針認證實現了一個特殊的 CPU 指令,在存儲指針之前,將一個加密簽名(PAC)添加到指針未使用的高階位,當從內存中讀回指針后,該簽名會被另一條指令移除并進行驗證。
在寫入和讀取之間對存儲值的任何更改都會使簽名無效,這一事件被解釋為內存損壞,并設置指針中的高階位,使指針無效。
研究人員在其發表的研究論文中表示,利用推測執行攻擊來繞過一個重要的內存保護機制--ARM 指針身份認證,這是一個用于執行指針完整性的安全功能。之后研究人員提出了 PACMAN,這是一種新的攻擊方法,它可以通過微架構的側邊渠道投機性地泄露 PAC 驗證結果,而不會造成任何崩潰。
這一攻擊技術消除了在使用指針身份驗證保護的平臺上進行控制流劫持攻擊的主要障礙。
研究人員已通知蘋果公司
值得一提的是,研究人員指出,PACMAN 攻擊只是一種利用技術,并不足以破壞一個系統。但壞消息是,PACMAN 使用的硬件機制不能用軟件更新來修補。
目前,研究人員設計了一個 PAC 諭令,以區分正確的 PAC 和不正確的 PAC,不會引起任何系統崩潰。
攻擊者可以暴力破解正確的 PAC 值,同時抑制崩潰,并對啟用 PA 的受害者程序或操作系統構建控制流劫持攻擊。 PACMAN 攻擊的關鍵洞察力是使用推測執行通過微架構側通道秘密泄露 PAC 驗證結果。
一個 PACMAN gadget 包含以下兩個操作:
- 一個指針驗證操作,推測性地驗證猜測的 PAC 的正確性;
- 一個傳輸操作,通過微架構側通道推測性地傳輸驗證結果。
指針驗證操作由驗證指令(ARMv8.3 中的新指令)執行,如果驗證成功,則輸出有效指針,否則輸出無效指針。
最后,研究人員指出,這種攻擊對于希望實現具有指針身份驗證功能的處理器設計人員具有重要意義,并對未來控制流完整性原語的安全性產生廣泛影響。目前,研究人員已經與蘋果公司分享了其發現。