麻省理工學(xué)院的安全研究人員近日在一篇新論文中公布了一種一種新的攻擊方法,該攻擊方法利用 Arm 處理器中的硬件漏洞,通過一種被稱為 PacMan 的新型硬件攻擊來實現(xiàn)在系統(tǒng)上的任意代碼執(zhí)行,利用了推測性執(zhí)行攻擊繞過Arm指針身份驗證的內(nèi)存保護機制。
安全研究人員以蘋果的M1處理器芯片進行了演示,通過PacMan攻擊手法可以在macOS系統(tǒng)上執(zhí)行任意代碼。
目前該硬件漏洞已確認無法通過軟件進行修復(fù),麻省理工學(xué)院安全專家表示,如果不采取補救措施,該硬件漏洞將影響所有采用Arm芯片架構(gòu)的移動設(shè)備,也將影響部分采用Arm芯片的PC電腦。
根據(jù)中國網(wǎng)絡(luò)安全行業(yè)門戶極牛網(wǎng)(GeekNB.com)的梳理,該漏洞源于指針身份驗證代碼 ( PAC ),這是 arm64e 架構(gòu)中引入的一道安全防線,旨在檢測和保護內(nèi)存中指針(存儲內(nèi)存地址的對象)的意外更改或損壞。通常通過覆蓋內(nèi)存中的控制數(shù)據(jù)(即指針)來利用這些漏洞將代碼執(zhí)行重定向到攻擊者控制的任意位置。
雖然已經(jīng)設(shè)計了諸如地址空間布局隨機化 ( ASLR ) 之類的策略來增加執(zhí)行緩沖區(qū)溢出攻擊的難度,但指針身份驗證代碼(PAC)的目標是以最小的性能損耗驗證指針有效性,通過使用加密哈希為指針身份驗證代碼 (PAC)保護指針,以確保其完整性。
指針身份驗證通過提供一個特殊的 CPU 指令在存儲指針之前將加密簽名添加到指針的未使用高位來實現(xiàn),另一條指令從內(nèi)存中讀回指針后刪除并驗證簽名。在寫入和讀取之間對存儲值的任何更改都會使簽名無效。CPU 將身份驗證失敗解釋為內(nèi)存損壞,并在指針中設(shè)置一個高位,使指針無效并導(dǎo)致應(yīng)用程序崩潰。
PacMan攻擊手法消除了在使用指針身份驗證保護的平臺上進行控制流劫持攻擊的主要障礙,結(jié)合了內(nèi)存損壞和推測執(zhí)行來繞過安全驗證功能,通過微架構(gòu)側(cè)通道泄漏指針身份驗證代碼(PAC)驗證結(jié)果而不會導(dǎo)致應(yīng)用程序崩潰。
簡而言之,攻擊方法可以區(qū)分正確的指針身份驗證代碼(PAC)和不正確的哈希,允許攻擊者在防止應(yīng)用崩潰的同時暴力破解正確的指針身份驗證代碼(PAC)值,并對啟用 PA 的控制流劫持受害者的應(yīng)用程序或操作系統(tǒng)。
防止應(yīng)用崩潰之所以能成功,是因為每個指針身份驗證代碼(PAC)值都是通過使用 Prime+Probe 攻擊的轉(zhuǎn)換后備緩沖區(qū) ( TLB ) 利用基于時間的邊信道來推測性地猜測的。推測執(zhí)行漏洞將無序執(zhí)行武器化,這種技術(shù)用于通過預(yù)測程序執(zhí)行流的最可能路徑來提高現(xiàn)代微處理器的性能。
麻省理工學(xué)院研究論文中還記錄了對蘋果M1處理器的內(nèi)存層次結(jié)構(gòu)所做的逆向工程,這反過來揭示了這種芯片架構(gòu)許多以前從未公開的技術(shù)細節(jié)。
目前該硬件漏洞的波及面還在研究中,專家們還在研究制定修復(fù)方案,相關(guān)資訊極牛網(wǎng)將第一時間跟蹤報道。