四所美國大學的研究人員在周二發表的一篇論文中演示表明,六家主要供應商的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目前構成的威脅很小,但研究和令人驚訝的發現對設計軟硬件的人來說仍然很重要。