格拉茨科技大學 (TU Graz) 的研究人員利用 WebGPU 瀏覽器介面,成功進行了三種不同的針對圖形處理器的旁路攻擊。這些攻擊速度快到可以在正常瀏覽行為中得逞。
現代網站對電腦的運算能力要求越來越高。因此,除了電腦的中央處理器 (CPU) 之外,瀏覽器近年也開始可以使用圖形處理器 (GPU) 的運算能力。指令碼語言 JavaScript 可以透過 WebGL 和新的WebGPU標準等程式設計介面來利用 GPU 的資源。然而,這也存在風險。格拉茨科技大學應用資訊處理和通訊研究所的研究人員利用包含惡意 JavaScript 的網站,透過 WebGPU 在三種不同的攻擊中,設法窺探其他電腦有關資料、按鍵記錄和加密金鑰的資訊。
呼籲瀏覽器製造商正視問題
WebGPU 目前仍處於積極開發中,但 Chrome、Chromium、Microsoft Edge 和 Firefox Nightly 版本等瀏覽器已經支援它。由於 WebGPU 比 WebGL 更加靈活且設計更現代化,因此該介面在未來幾年將被廣泛使用。「我們的攻擊不需要使用者與網站互動,並且可以在正常上網瀏覽期間執行。透過我們的研究,我們希望明確地向瀏覽器製造商指出,他們需要像對待其他會影響安全和隱私的資源一樣,重視對 GPU 的存取控制,」 格拉茨科技大學應用資訊處理和通訊研究所的盧卡斯·吉納 (Lukas Giner) 說。
研究團隊在安裝了不同NVIDIA和AMD圖形卡的多個系統上進行了攻擊,包括GTX 1000系列、RTX 2000、3000和4000系列NVIDIA顯示卡以及RX 6000系列AMD顯示卡。對於所有三種類型的攻擊,研究人員都利用了 WebGPU 提供的存取電腦高速快取記憶體的功能,該記憶體用於 CPU 和 GPU 進行特別快速短期的資料存取。這個旁路為他們提供了中繼資料,讓他們可以推導出安全相關的資訊。
快取變化作為指標
研究小組透過在 JavaScript 程式碼中使用 WebGPU 自行填充快取,並監控他們自己的資料何時被輸入而從快取中刪除,進而追蹤快取中的變化。這使得能夠相對快速準確地分析按鍵記錄。透過更細緻地分割快取,研究人員還能夠利用第二種攻擊來建立他們自己的秘密通訊頻道,其中填充和未填充的快取片段分別作為 0 和 1,從而作為二進位碼的基礎。他們使用了其中 1024 個快取片段,實現了高達每秒 10.9 千位元組的傳送速率,足以傳輸簡單資訊。攻擊者可以使用此頻道來提取他們能夠在電腦與網際網路斷開連接的區域使用其他攻擊獲得的資料。
第三次攻擊針對用於加密檔案、連接和伺服器的 AES 加密演算法。研究人員同樣填充了快取,但使用他們自己的 AES 加密。快取的反應使他們能夠辨識系統中負責加密的位置並存取受攻擊系統的金鑰。「在即時條件下,我們的 AES 攻擊可能會稍微複雜一些,因為許多加密會在 GPU 上並行運行,」 格拉茨科技大學應用資訊處理和通訊研究所的羅蘭·澤尼(Roland Czerny)說。「儘管如此,我們還是能夠證明我們可以非常精確地攻擊演算法。我們當然會提前將我們的研究結果告知瀏覽器製造商,並希望他們在 WebGPU 的進一步開發中考慮到這個問題。」
這項研究工作和隨附的論文將於 7 月 1 日至 5 日在新加坡舉行的 ACM 亞洲電腦和通訊安全會議上展示。
加入電腦王Facebook粉絲團