6 月 18 日消息,韓國安全研究團隊曝光了名為 TIKTAG 的全新推測執(zhí)行攻擊手段,以 ARM 的內(nèi)存標(biāo)記擴展(MTE)為目標(biāo),,可以繞過防止內(nèi)存損壞的關(guān)鍵保護機制,,且成功率高達(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 漏洞表明,,即便是再妥善,、再高級別的保護也可能存在漏洞。
研究人員觀察到兩個效率高,、速度快的主要程序,,包括 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)韧ǖ溃蝗缓笤L問并推測高速緩存的狀態(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ù)這些漏洞并不迫切,。