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