新型 TIKTAG 攻擊曝光,專門針對谷歌瀏覽器和 Linux 系統
近日,來自三星、首爾國立大學和佐治亞理工學院的韓國研究團隊的研究人員發現一種以 ARM 的內存標記擴展(MTE)為目標的,名為 "TIKTAG "的新型攻擊,黑客可利用這種方式繞過安全防護功能,這種攻擊專門針對谷歌瀏覽器和 Linux 內核的攻擊,導致數據泄露幾率超過 95%。

MTE是ARM v8.5-A架構(及更高版本)新增的一項功能,旨在檢測和防止內存損壞。系統采用低開銷標簽技術,為 16 字節內存塊分配 4 位標簽,確保指針中的標簽與訪問的內存區域相匹配,從而防止內存損壞攻擊。
MTE 有三種運行模式:同步、異步和非對稱,兼顧了安全性和性能。
研究人員發現,通過使用兩個小工具(代碼),即 TIKTAG-v1 和 TIKTAG-v2,他們可以利用投機執行在短時間內泄露 MTE 內存標記,成功率很高。

標簽泄漏圖,來源:arxiv.org
泄露這些標簽不會直接暴露敏感數據,如密碼、加密密鑰或個人信息。但理論上,它可以讓攻擊者破壞 MTE 提供的保護,使安全系統無法抵御隱蔽的內存破壞攻擊。
TIKTAG 攻擊
TIKTAG-v1 利用 CPU 分支預測和數據預取行為中的推測收縮來泄漏 MTE 標記。

TIKTAG-v1 代碼,來源:arxiv.org
研究人員發現,這個小工具在攻擊 Linux 內核時,對投機性內存訪問的功能格外有效,不過需要對內核指針進行一些操作。
攻擊者使用系統調用調用投機執行路徑,并測量緩存狀態以推斷內存標簽。
TIKTAG-v2 利用了投機執行中的存儲到加載轉發行為,這是一個將值存儲到內存地址并立即從同一地址加載的序列。

TIKTAG-v2 代碼,來源:arxiv.org
如果標簽匹配,值將被轉發,加載成功,并影響緩存狀態;如果標簽不匹配,轉發將被阻止,緩存狀態保持不變。
因此,通過探測投機執行后的緩存狀態,可以推斷出標簽檢查結果。
研究人員展示了 TIKTAG-v2 小工具對谷歌 Chrome 瀏覽器,尤其是 V8 JavaScript 引擎的有效性,為利用渲染器進程中的內存破壞漏洞開辟了道路。

通過 MTE 旁路實現的攻擊場景,來源:arxiv.org
行業響應和緩解措施
研究人員在 2023 年 11 月至 12 月期間向受影響的企業報告了他們的發現,并得到了普遍積極的回應。
發表在 arxiv.org 上的技術論文提出了以下針對 TIKTAG 攻擊的緩解措施:
- 修改硬件設計,防止投機執行根據標簽檢查結果修改高速緩存狀態。
- 插入投機障礙(如 sb 或 isb 指令),防止關鍵內存操作的投機執行。
- 添加填充指令,以擴展分支指令和內存訪問之間的執行窗口。
- 增強沙箱機制,將投機性內存訪問路徑嚴格限制在安全內存區域內。
雖然 ARM 認識到了情況的嚴重性,并在幾個月前發布了公告,但它并不認為這是對功能的妥協。
ARM 在公告中寫道:由于 Allocation Tags 對地址空間中的軟件來說并不是秘密,因此揭示正確標簽值的投機機制并不被視為對架構原則的破壞。
Chrome 瀏覽器的安全團隊承認存在這些漏洞,但目前并未打算修復。因為他們認為 V8 沙盒的目的不是保證內存數據和 MTE 標記的機密性。
此外,Chrome 瀏覽器目前默認不啟用基于 MTE 的防御功能,因此修復的優先級較低。
Pixel 8 設備中的 MTE 標記已于今年 4 月報告給了安卓安全團隊,并被確認為符合懸賞條件的硬件漏洞。





















