高性能GPU價格通常超過8,000美元,因此在雲端環境中經常由數十位使用者共用。三項新攻擊展示了惡意使用者如何透過對Nvidia高性能GPU卡進行創新Rowhammer攻擊,取得主機機器的完整root控制權。

這些攻擊利用記憶體硬體越來越容易發生位元翻轉的特性,即記憶體中儲存的0與1會互相轉換。2014年,研究人員首次證明,對DRAM記憶體硬體進行重複且快速的存取(稱為「hammering」)會產生電氣干擾,導致位元翻轉。一年後,另一組研究團隊展示,攻擊者可針對儲存敏感資料的特定DRAM列利用此現象,提升權限至root或繞過安全沙箱保護。當時的攻擊目標為DDR3世代的DRAM。

過去十年間,數十種更新的Rowhammer攻擊陸續出現,包含:

先前研究證明GDDR記憶體也易受Rowhammer攻擊,但效果有限。研究人員僅成功誘發8次位元翻轉,遠低於CPU DRAM的攻擊規模,且損害僅限於降低目標GPU上神經網路的輸出品質。

本週四,兩組獨立研究團隊展示針對Nvidia Ampere世代兩款顯卡的攻擊,將GPU Rowhammer推向全新且更具破壞性的領域:GDDR位元翻轉可讓攻擊者完全控制CPU記憶體,導致主機系統全面妥協。此攻擊需關閉IOMMU記憶體管理功能,該功能在BIOS中預設為關閉。

「我們的研究顯示,Rowhammer不僅在CPU上是嚴重威脅,在GPU上同樣如此,」其中一篇論文共同作者Andrew Kwong表示,該論文題為《GDDRHammer:大幅干擾DRAM列—來自現代GPU的跨元件Rowhammer攻擊》。「透過我們的研究,我們展示攻擊者如何在GPU上誘發位元翻轉,取得對CPU所有記憶體的任意讀寫權限,進而完全掌控機器。」

4月3日更新:週五,研究人員公布第三種Rowhammer攻擊,針對RTX A6000顯卡實現權限提升至root shell。與前兩種不同,該攻擊在IOMMU啟用時仍有效。

「透過破壞GPU頁面表,一個無權限的CUDA核心可取得任意GPU記憶體讀寫權限,並利用NVIDIA驅動程式中新發現的記憶體安全漏洞,將此能力鏈接至CPU端權限提升,」研究人員解釋。「結果是系統全面妥協,取得root shell,且無需關閉IOMMU,讓GPUBreach成為更強大的威脅。」

第一種攻擊為GDDRHammer,名稱前四字母同時代表「Graphics DDR」與「Greatly Disturbing DRAM Rows」。該攻擊針對Nvidia Ampere架構的RTX 6000顯卡。由於Ada世代的RTX 6000使用新版GDDR,研究人員尚未逆向,因此攻擊無效。

GDDRHammer利用新穎的hammering模式與記憶體調整技術,平均每個記憶體銀行誘發129次位元翻轉,較去年GPUHammer的8次大幅提升64倍。更重要的是,GDDRHammer能操控記憶體配置器,破壞GPU頁面表的隔離,進而讀寫GPU記憶體。

「我們的工作與先前攻擊不同之處在於揭露GPU記憶體上的Rowhammer威脅與CPU同等嚴重,且CPU記憶體的Rowhammer防護若未涵蓋GPU記憶體,將不足以防禦,」Kwong說。

目前已有大量理論與實務防護措施針對CPU Rowhammer,但研究顯示攻擊者可繞過這些防護,改為攻擊GPU並藉此入侵CPU。未來防護方案必須同時考慮CPU與GPU記憶體。

第二篇論文《GeForge:敲擊GDDR記憶體以偽造GPU頁面表以謀取利益》大致達成相同效果,但操控對象為最後一級頁目錄,而非頁表。該攻擊在RTX 3060誘發1,171次位元翻轉,在RTX 6000誘發202次。

GeForge同樣利用新hammering模式與記憶體調整,破壞GDDR6記憶體中的GPU頁面表映射,取得GPU記憶體的讀寫權限,進而控制主機CPU記憶體。GeForge在RTX 3060的概念驗證中,最終開啟root shell,讓攻擊者可在主機上執行任意指令。研究人員表示GDDRHammer與GeForge均可對RTX 6000達成相同效果。

「透過操控GPU地址轉換,我們發動攻擊,突破GPU上下文的機密性與完整性,」GeForge論文作者寫道。「更重要的是,我們在損壞的GPU頁面表中偽造系統孔徑映射,存取主機物理記憶體,實現Linux下的使用者至root權限提升。據我們所知,這是首個在GPU端實現主機權限提升的Rowhammer攻擊。」

週五曝光的第三種攻擊GPUBreach採用不同手法,利用GPU驅動本身的記憶體安全漏洞。其關鍵優勢是即使IOMMU限制GPU直接存取記憶體至驅動擁有的緩衝區,仍能提升權限至root。研究人員表示,GPUBreach透過破壞這些緩衝區的元資料,讓驅動(在CPU核心權限下執行)執行攻擊者控制的越界寫入,繞過IOMMU防護,無需關閉IOMMU。

與其他兩種攻擊相同,GPUBreach也使用記憶體調整技術。

Nvidia GPU驅動將頁面表存放於低階記憶體保留區,該區域不易被Rowhammer翻轉。為繞過此設計,GDDRHammer與GeForge將頁面表導向未受保護的區域。GDDRHammer透過Rowhammer翻轉位元,調整存取權限,達成此目的。

「由於頁面表決定可存取的記憶體,攻擊者可修改頁面表條目,賦予自己對GPU所有記憶體的任意存取權限,」Kwong透過電子郵件解釋。「更重要的是,我們發現攻擊者可修改GPU上的頁面表指向CPU記憶體,從而讀寫CPU所有記憶體,徹底妥協機器。」

GeForge論文共同作者Zhenkai Zhang描述記憶體調整過程如下:

「給定導向目標,我們先隔離包含該目標的2MB頁框。接著使用稀疏的統一虛擬記憶體(UVM)存取,耗盡驅動預設的低階頁面表配置池,並在適當時機釋放隔離頁框,使其成為驅動的新頁面表配置區。然後,精確推進配置,使頁目錄條目落在該頁框的易受攻擊子頁上。最後觸發位元翻轉,使損壞的頁目錄條目指向攻擊者控制的記憶體,並填充偽造的頁面表條目。」

Nvidia代表在電子郵件中表示,使用者若想了解是否易受攻擊及應採取何種措施,可參考去年GPUHammer攻擊後於7月發布的相關說明頁面,未進一步說明。

研究人員指出,RTX 3060與RTX 6000顯卡皆易受攻擊。啟用BIOS中預設關閉的IOMMU可修補此漏洞。IOMMU(輸入輸出記憶體管理單元)將裝置可見虛擬地址映射至主機物理地址,可限制GPU存取敏感記憶體。

「在我們的攻擊情境中,IOMMU可限制GPU存取主機敏感記憶體位置,」Kwong說。「但IOMMU預設在BIOS中關閉,以最大化相容性,且啟用IOMMU會因地址轉換開銷而帶來性能損失。」

如前述更新,GPUBreach研究人員表示IOMMU防護無法阻擋其攻擊。

另一種防護是啟用GPU的錯誤更正碼(ECC),Nvidia允許透過指令列啟用。與IOMMU類似,啟用ECC會因減少可用記憶體而帶來性能負擔,且部分Rowhammer攻擊仍能突破ECC防護。

GPU使用者應了解,目前已知易受Rowhammer攻擊的僅限於2020年推出的Ampere世代RTX 3060與RTX 6000顯卡。雖然不排除Nvidia及其他廠商新世代顯卡也可能受影響,但學術研究通常落後產品推出速度,現階段無法確定。

頂級雲端平台通常提供遠超消費者機器的安全防護。另需注意,目前尚無Rowhammer攻擊在野外實際被利用的案例。

這項研究的真正價值在於提醒GPU製造商與使用者,Rowhammer攻擊對這些平台的安全威脅可能極為嚴重。更多關於GDDRHammer與GeForge的資訊可參考相關連結。

本文持續更新,補充GPUBreach的最新細節。