四所美國大學的研究人員在周二發表的一篇論文中演示表明,六家主要供應商的 GPU 都容易受到一種新發現的攻擊,這種攻擊讓惡意網站可以讀取其他網站顯示的用戶名、密碼及其他敏感的可視化數據。
跨源攻擊允許來自一個域(比如 example.com)的惡意網站有效地讀取來自 example.org 或另一個不同域的網站顯示的像素,然後,攻擊者可以重新構建像素,讓他們可以查看後一個網站顯示的單詞或圖像。這種洩漏違反了一個關鍵的安全原則,該原則構成了保護互聯網的最基本的安全邊界之一,這個原則就叫同源策略(same origin policy),它要求托管在一個網站域上的内容與所有其他網站域隔離開來。
優化帶寬是有代價的
GPU.zip(這種概念驗證攻擊的名稱)始于一個惡意網站,該網站将一個指向它想要讀取的某個網頁的鏈接放在 iframe 中,而 iframe 是一種常見的 HTML 元素,允許網站嵌入廣告、圖像或托管在其他網站上的其他内容。通常情況下,同源策略會阻止任何一個網站查看另一個網站的源代碼、内容或最終的可視化産品。研究人員發現,内部 GPU 和獨立 GPU 都用來提高性能的數據壓縮充當了側信道,他們可以濫用這條側信道繞過限制,逐個竊取像素。
GPU.zip 若要奏效,必須将惡意頁面加載到 Chrome 或 Edge 浏覽器中。當這些浏覽器處理攻擊頁面時,Firefox 和 Safari 在工作方式方面的底層差異阻止攻擊得逞;另一個要求是,在 iframe 中鏈接的頁面不能被配置爲拒絕被跨源網站嵌入。
當 HTML 被嵌入到惡意網站上的 iframe 中時,可能導緻安全威脅,這是十多年來公開的秘密。大多數網站通過 X-Frame-Options 或 Content-Security-Policy 标頭限制跨源嵌入顯示用戶名、密碼及其他敏感内容的頁面,然而并非所有網站都這麽做。維基百科就是一個例子,它顯示賬戶登錄者的用戶名,如果一個人在訪問一個他不信任的網站時想要保持匿名,而如果該網站包含的 iframe 含有指向 https://en.wikipedia.org/wiki/Main_Page 的鏈接,可能會被拒絕。
圖 1. 對用戶去匿名化處理的像素竊取概念驗證(PoC),運行時打開的其他标簽播放視頻。"Ground Truth" 是受害者 iframe(以 "Yingchenw" 登錄維基百科)。"AMD" 是在 Ryzen 7 4800U 上 30 分鍾後的攻擊結果,準确率爲 97%。"Intel" 是在 i7-8700 上 215 分鍾後的攻擊結果,準确率高達 98%。
研究人員表明了 GPU.zip 如何允許他們爲 PoC 創建的一個惡意網站逐個竊取用戶維基百科用戶名的像素。攻擊适用于蘋果、英特爾、AMD、高通、Arm 和英偉達提供的 GPU。在 AMD 的 Ryzen 7 4800U 上,GPU.zip 花了約 30 分鍾來渲染目标像素,準确率達到了 97%,在運行英特爾 i7-8700 的系統上顯示時,攻擊需要 215 分鍾才能重建像素。
研究人員分析的所有 GPU 都使用專有的壓縮形式來優化 PC、手機或顯示目标内容的其他設備的内存數據總線中的可用帶寬。壓縮方案因廠商而異,沒有文檔記錄,因此研究人員對每種壓縮方案進行了逆向工程處理,從而獲得的一種方法使用 SVG(可縮放矢量圖形)圖像格式,在存在壓縮的情況下最大化黑白目标像素之間的 DRAM 流量差異。雖然論文讨論了 GPU.zip,因爲它适用于 iGPU 或内部 GPU,但這種技術同樣适用于獨立或離散 GPU。
研究人員在論文中寫道:我們演示了攻擊者可以利用基于 iGPU 的壓縮信道,在使用 SVG 過濾器的浏覽器(截至 2023 年 4 月的最新版 Google Chrome)中執行跨源像素竊取攻擊,即使 SVG 過濾器是在恒定時間實施的。原因在于,攻擊者可以根據浏覽器中的單個秘密像素,創建高度冗餘或高度非冗餘的模式,由于這些模式由 iGPU 處理,它們不同程度的冗餘導緻無損壓縮輸出依賴秘密像素,依賴數據的壓縮輸出直接轉換爲依賴數據的 DRAM 流量和依賴數據的緩存占用。
因此我們表明,即使在最被動的威脅模型下(攻擊者隻能使用浏覽器中的粗粒度計時器觀察模式的粗粒度冗餘信息,并且缺乏自适應選擇輸入的能力),單個像素也可能被洩露。我們的概念驗證攻擊在一系列設備(包括電腦和手機)上得逞,這些設備來自衆多硬件廠商,采用不同的 GPU 架構(英特爾、AMD、蘋果和英偉達)。令人驚訝的是,我們的攻擊在離散 GPU 上也得逞了,我們的初步結果表明這些架構上還存在軟件透明壓縮。
現在是個威脅?可能不是,但是 ……
數據壓縮是提高軟硬件性能的一項常見特性。它使用複雜運算來表示文件或數據塊中的冗餘,并縮減其擁有的位數,壓縮也是一種常見的側信道,成爲過去十年中幾次攻擊的原因,比如用于解密一些 HTTPS 流量的 CRIME(壓縮比信息洩露變得容易)漏洞,針對 HTTPS 加密的另一種攻擊 BREACH(全稱通過超文本自适應壓縮進行的浏覽器偵察和洩露),2018 年名爲 VORACLE 的攻擊,以及在 2021 年針對存儲器壓縮的實用時序側信道攻擊。
如前所述,GPU.zip 僅在惡意攻擊者網站被加載到 Chrome 或 Edge 中時有效。原因是:要使攻擊有效,浏覽器必須:
1. 允許跨源 iframe 與 cookie 一同被加載
2. 允許在 iframe 上渲染 SVG 過濾器
3. 将渲染任務委托給 GPU
谷歌的代表沒有表明該公司是否計劃改變 Chrome 的行爲以回應研究結果。
與此同時,英特爾的代表在一封電子郵件中表示,這家芯片制造商 " 評估了研究人員提供的發現結果,确定根本原因不在我們的 GPU 上,而在第三方軟件上。"
眼下,GPU.zip 更多的是一種好奇而不是真正的威脅,但前提是 Web 開發人員适當地限制敏感頁面不被跨源網站嵌入。如果最終用戶想要檢查頁面是否實施了此類限制,應該查找源頭中的 X-Frame-Options 或 Content-Security-Policy 标頭。爲此:
1. 打開網頁
2. 打開開發者控制台
3. 重新加載網頁
4. 進入到網絡标簽,檢查主文檔請求
5. 查看 X-Frame-Options 或 Content-Security-Policy 是否在這裏被設置
檢查 www.gmail.com 可以看到 X-Frame-Options 被設置爲 SAMEORIGIN(同源)。
然而,檢查 https://en.wikipedia.org/wiki/Main_Page 卻發現沒有設置這樣的标頭。
明年 5 月在舊金山将舉行第 45 屆 IEEE 安全與隐私研讨會,雖然 GPU.zip 目前構成的威脅很小,但研究和令人驚訝的發現對設計軟硬件的人來說仍然很重要。