IT之家 6 月 18 日消息,韓國安全研究團隊曝光了名為 TIKTAG 的全新推測執(zhí)行攻擊手段,以 ARM 的內(nèi)存標(biāo)記擴展(MTE)為目標(biāo),可以繞過防止內(nèi)存損壞的關(guān)鍵保護(hù)機制,且成功率高達(dá) 95% 以上。
MTE 是 ARM v8.5-A 架構(gòu)(及后續(xù)版本)新增的一項功能,主要是檢測和防止內(nèi)存損壞。系統(tǒng)采用低開銷標(biāo)簽技術(shù)(Lower overhead tagging),分配 4 bits 來標(biāo)記 16 byte(1 byte= 8 bits)內(nèi)存塊。這種機制有助于確定標(biāo)簽上的指針與被訪問內(nèi)存區(qū)域的標(biāo)簽一致,從而減少未經(jīng)授權(quán)的內(nèi)存訪問和濫用。
IT之家注:MTE 分為同步、異步和非對稱三類,每一類都平衡了安全性和性能。不過 TIKTAG 漏洞表明,即便是再妥善、再高級別的保護(hù)也可能存在漏洞。
研究人員觀察到兩個效率高、速度快的主要程序,包括 TIKTAG-v1 和 TIKTAG-v2,它們以推測執(zhí)行為目標(biāo),泄露 MTE 內(nèi)存標(biāo)簽。
TIKTAG-v1
TIKTAG-v1 中使用的功能包括分支預(yù)測中的推測收縮和 CPU 的數(shù)據(jù)預(yù)取。
研究人員發(fā)現(xiàn),這個小工具在攻擊 Linux 內(nèi)核時,對投機性內(nèi)存訪問的功能格外有效,不過需要對內(nèi)核指針進(jìn)行一些操作。
惡意代碼會更改內(nèi)核指針,并通過系統(tǒng)調(diào)用函數(shù)調(diào)用使用高速緩存?zhèn)韧ǖ?;然后訪問并推測高速緩存的狀態(tài)以獲取內(nèi)存標(biāo)記。
TIKTAG-v2
TIKTAG-v2 主要關(guān)注處理器時序推測中的存儲到加載轉(zhuǎn)發(fā)。
第一步是將值存儲到內(nèi)存地址,并同時從同一地址加載。該值被傳遞到下一個標(biāo)簽,成功加載并改變共享緩存狀態(tài)。
另一方面,不匹配會阻止轉(zhuǎn)發(fā),緩存狀態(tài)保持不變。如果攻擊者在投機執(zhí)行后檢查緩存狀態(tài),就能推斷出標(biāo)簽檢查結(jié)果。
事實證明,TIKTAG-v2 對目標(biāo)漏洞進(jìn)程(谷歌 Chrome 瀏覽器)是有效的,重點針對 V8 JavaScript 引擎在內(nèi)的部分。
回應(yīng)
Arm 公司在公告中表示 TIKTAG 攻擊非常強大,然后指出,使用推測方法在體系結(jié)構(gòu)層面披露分配標(biāo)記仍然是安全的。他們在公告中強調(diào),分配標(biāo)記在地址空間中并不隱蔽。
ARM 在公告中寫道:由于 Allocation Tags 對地址空間中的軟件來說并不是秘密,因此揭示正確標(biāo)簽值的投機機制并不被視為對架構(gòu)原則的破壞。
谷歌 Chrome 瀏覽器的安全團隊指出了這些問題,但選擇不修復(fù)它們,并指出 V8 沙盒不會對內(nèi)存數(shù)據(jù)和 MTE 標(biāo)記保密。此外,到目前為止,Chrome 瀏覽器還沒有啟用基于 MTE 的防御功能,因此修復(fù)這些漏洞并不迫切。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。