GPU不再安全!研究員首次成功發起GPU旁路攻擊

選自 arXiv

作者:Hoda Naghibijouybari、Ajaya Neupane、Zhiyun Qian、Nael Abu-Ghazaleh

機器之心編譯

參與:曉坤、思源

加州大學河濱分校的研究人員發現了三種可能被黑客利用 GPU 來攻破用戶安全與隱私防線的方法。這些技術可用於監視瀏覽器活動、竊取密碼,以及向基於雲端的應用程序發起攻擊。研究報道中描述的第一項指出 GPU 旁路攻擊導致的渲染不安全:「計算機科學家們認爲這是可行的,並且描述了他們如何通過對 Nvidia GPU 進行反向工程,將圖形渲染和計算機堆棧都拉下水」。 論文原標題爲《渲染也不安全:GPU 旁路攻擊是可行的》(Rendered Insecure: GPU Side Channel Attacks are Practical)。其聲稱,這是人們首次成功地對 GPU 發起旁路攻擊。當然,執行這類攻擊,也有着幾項前提:首先,受害設備上必須被安裝了間諜軟件程序,這種惡意代碼可以通過嵌入某個無害的應用程序進入設備。其次,攻擊者必須擁有可以分析 GPU 內存分配機制的機器學習方法。

圖形處理單元(GPU)是大多數現代計算設備的必要組成,用於優化圖形和多媒體處理的性能。GPU 也越來越多地用於加速多種應用,包括安全、計算機視覺、計算金融學、生物信息學等領域,這些都可能涉及敏感數據。

儘管 GPU 安全才剛開始得到探索,人們已經發現了很多種脆弱性。其中 Luo 等人展示了來自 CPU 的計時通道用於計時 GPU 操作。在另一個案例中,攻擊者需要運行 GPU 上的加密內核,並在其自身的進程(CPU side)上測量整個內核執行時間,這和我們的探索 GPU 上的兩個併發 app 之間的旁路(side channel)威脅模型是完全不同的。這些論文都沒有展示一般的旁路攻擊,而這正是這篇論文所關注的主題。

這篇論文探索了在 GPU 上的旁路攻擊是否可行。GPU 通常處理和圖形工作負載(渲染屏幕並可以導出用戶信息和活動)以及計算工作負載(可能包括處理敏感數據的應用或算法)相關的敏感數據。如果可能,這種攻擊將成爲新型的、危險的威脅載體。基於不同的計算模型、並行度、服務器託管、共享特性以及攻擊者可測量的 GPU 堆棧通道,有幾種不同層面的 GPU 旁路攻擊。研究者表明旁路是存在的並且可利用,還展示了在多種英偉達 GPU 上的攻擊,涉及圖形和計算軟件堆棧和應用。

架構旁路攻擊的一個先決條件是資源空間中攻擊者和受害者的服務器託管,從而攻擊者可以創建和測量 contention。研究者對稱地特徵化了間諜可以對受害者進行服務器託管和測量旁路行爲,其中受害者位於英偉達 GPU 家族的圖形和計算堆棧中。在 OpenGL 工作負載的案例中,研究者發現內核(着色器程序)可以被併發地預定,表明有足夠的資源可以支持它們。最後,當工作負載源於 CUDA 和 OpenGL 時,它們以更低的併發粒度交錯使用 GPU(在計算內核粒度交錯)。研究者討論了每種攻擊類型的服務器託管(co-location)可能性。

結合服務器託管的知識,研究者展示了一系列攻擊,其中間諜可以和受害者交錯執行來提取旁路信息。研究者探索了利用(1)內存分配 API;(2)GPU 性能計數器;和(3)時間測量作爲可能的泄露來源。研究者表明所有三種來源都會泄露用戶行爲的旁路信息。研究者成功地建立了三種在多代英偉達 GPU 上的可行以及危險的端到端攻擊。

爲了展示在圖形應用上的攻擊,研究者實現了一個網站指紋攻擊,其能以很高的準確率識別用戶瀏覽網站。研究者展示了這種攻擊的擴展,其最終可以監測用戶在網站上的活動,並捕捉鍵盤敲擊時序。研究者還展示了在計算工作負載上的攻擊,表明間諜通過 GPU 的性能計數器收集旁路信息,能以很高的準確率重構一個神經網絡的內部結構。

研究者探索了針對這種攻擊的可能緩解方法。通過特別分配 GPU 上的 contention 或改變設計可以限制泄露,但可能不太實際。因此,研究者聚焦於限制攻擊者測量泄露的能力。研究者表明用於干涉測量準確率的行爲可以顯著限制泄露並干擾攻擊者提取敏感信息的能力。

本論文的研究貢獻如下:

  • 研究者探索了基於 GPU 內部的資源 contention,實現 GPU 旁路攻擊的可行性。
  • 研究者逆向工程了一系列的英偉達 GPU 模型,並提取可用於 GPU 旁路攻擊的內部調度參數和測量 API。
  • 研究者展示了在圖形和計算 GPU 工作負載上的實際攻擊,以及交叉攻擊。
  • 研究者討論和評估了基於限制脆弱 API 的調用率或精度的攻擊緩解方法。

攻擊場景

基於間諜和受害者的位置,研究者定義了三種攻擊場景。在所有三種場景中,都存在一個只有普通用戶權限的惡意程序,其目標是侵入受害者的程序。

  • 圖形侵入圖形受害者(Graphics spy Graphics):來自圖形的攻擊侵入圖形工作負載(圖 3 左)。由於臺式機或筆記本電腦默認安裝圖形庫和驅動程序,這種攻擊可以很容易利用圖形 API(例如 OpenGL)來測量服務器託管的圖形應用(例如網頁瀏覽器),它們的泄露可以用來推斷敏感信息。
  • CUDA 間諜侵入被攻擊 CUDA(CUDA spy CUDA):來自 CUDA 間諜應用的攻擊者入侵通常在雲端上進行(圖 3 中),其中安裝了 CUDA 庫和驅動器。
  • CUDA 間諜侵入被攻擊圖形(CUDA spy Graphics)(交叉攻擊):在安裝了 CUDA 的用戶系統上,來自 CUDA 間諜的攻擊侵入圖形應用是可能的(圖 3 右)。

圖 3:三種威脅場景。

在第一種威脅場景中,研究者假設攻擊者利用了使用 API 的圖形堆棧(例如 OpenGL、WebGL)。在第二種和第三種威脅場景中,研究者假設攻擊者可以訪問 GPU 來使用 CUDA 或 OpenCL。

Graphics spy Graphics 場景涉及兩種攻擊。第一種,具備間諜軟件和機器學習程序的條件纔可以利用現有的圖形 API(如 OpenGL 或 WebGL)發起攻擊。換言之,一旦用戶打開了惡意應用程序,它就會調用 API 來分析 GPU 正在呈現的內容,比如網頁信息。GPU 的存儲器和性能計數器被其所監視,並饋送給機器學習算法,以解釋數據和創建網站的指紋。加州大學河濱分校指出,鑑於渲染對象數量和尺寸的不同,每個網站在 GPU 內存利用率方面都會留下獨特的痕跡。在多次加載同一個網站時,這個信號的樣式幾乎時一致的,而且不受緩存的影響。研究人員稱,通過這種『網站指紋識別方法』,他們已經能夠實現很高的識別準確率。藉助這項技術,黑客可監控受害者的所有網絡活動。

圖 4:網站的 GPU 內存分配,(a) Google、(b) Amazon 和 (c) Facebook。

表 2:基於內存 API 的網站指紋性能:F-measure (%)、 Precision (%) 和 Recall (%)。

第二種,更糟糕的是,這一漏洞還允許攻擊者從 GPU 數據中提取密碼。當用戶鍵入密碼字符時,整個文本框會被髮送到 GPU 進行渲染。每一次的擊鍵,都會發生這樣的數據傳遞。如此一來,憑藉完善的密碼學習技術,只需監控 GPU 內存中持續的分配事件、並參考間隔時間,理論上攻擊者就可以做到這點。

圖 5:美國銀行網站的用戶活躍度內存追蹤 (a) 爲登錄、(b) 爲開戶:Checking & Saving。

表 3:基於內存 API 的用戶活躍度檢測性能:F-measure (%)、 Precision (%) 和 Recall (%)。

CUDA spy CUDA 場景(攻擊基於雲端的應用程序)則比上述兩種方法要複雜一些。攻擊者可以在 GPU 上啓動惡意的計算型工作負載,與被攻擊者的應用程序一起運行。

根據神經網絡的參數、緩存、內存、以及功能單元上(隨時間而不同的)contention 強度和模式,可以產生可測量的信息泄露。攻擊者在性能計數器的追蹤上使用了基於機器學習的分類,以此提取受害者的私密神經網絡結構,如深層神經網絡特定層中的神經元數量。

表 4:在分類中最有用的計數器(特徵)。

表 5:神經網絡神經元數量檢測性能。

CUDA spy Graphics 場景中,間諜可以在被攻擊者瀏覽網頁時使用英偉達的分析工具收集性能計數器的值,並使用機器學習方法來識別每個網站的指紋。

表 6:在分類中最有用的計數器(特徵)。

表 7:基於性能計數器的網站指紋性能:F-measure (%)、 Precision (%) 和 Recall (%)。

萬幸的是,在團隊向 Nvidia 通報了他們的研究結果後,該公司表示將向系統管理員推出一個補丁,以便外界被禁止從用戶級進程訪問性能計數器。同時,研究團隊還向 AMD 和英特爾安全團隊通報了同樣的事情,以便它們評估這些漏洞是否會在自家產品上被利用。

論文:Rendered Insecure: GPU Side Channel A!acks are Practical

論文地址:論文地址:http://www.cs.ucr.edu/~zhiyunq/pub/ccs18_gpu_side_channel.pdf

圖形處理單元(GPU)通常與計算機設備集成在一起,它可以增強圖形工作負載的性能與能力。此外,鑑於 GPU 強大的並行計算能力,它們越來越多地集成到數據中心和雲端中,從而加速數據密集型工作負載。

在很多應用場景下,GPU 可以在多個應用間進行細粒度的共享,因此它允許間諜應用檢測旁路並嘗試推斷計算機用戶的主要行爲。例如 OpenGL 和 WebGL 能以幀的粒度將工作負載發送到 GPU 中,並允許攻擊者交錯使用 GPU 來通過性能計數器或其它資源追蹤 API 以獲取用戶計算的副產品。

我們使用了兩個應用展示了 GPU 漏洞,首先我們測試了一個基於 OpenGL 的間諜軟件,並發現它可以準確採樣網站指紋、跟蹤網站用戶的活動,甚至可以高精度地推斷輸入密碼時的擊鍵時序。第二個應用展示瞭如何使用 CUDA 間諜應用程序導出另一個使用 CUDA 訓練的神經網絡內部參數,這說明雲平臺存在安全威脅。爲了對抗這些攻擊,本論文建議限制調用率或者返回的細粒度信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章