《雲環境GPU虛擬化的安全問題研究》是依託湖南大學,由孫建華擔任項目負責人的面上項目。
基本介紹
- 中文名:雲環境GPU虛擬化的安全問題研究
- 項目類別:面上項目
- 項目負責人:孫建華
- 依託單位:湖南大學
中文摘要,結題摘要,
中文摘要
GPU(圖形處理單元)因其在並行計算方面的優勢,正廣泛套用於高性能計算和雲計算領域。GPU虛擬化作為這種趨勢的技術支撐,將GPU設備共享給多個用戶以提高硬體資源的使用和管理效率,但同時也帶來了安全風險。 特別地,雲計算環境GPU虛擬化場景中的安全問題包括以下兩個方面,第一,在串列調度的GPU虛擬化方法中,惡意任務可以獲取其它已完成任務的記憶體殘留狀態,導致信息泄露;第二,在並行調度的GPU虛擬化方法中,多個任務非隔離執行,會造成任務間的越權訪問。本項目以CPU與GPU異構虛擬記憶體管理為基礎,為GPU虛擬記憶體管理提供分頁機制和虛擬物理地址轉換功能,從程式靜態分析與最佳化、異構地址空間隔離、運行時鑒權、頁粒度敏感數據清除等角度,結合已有的GPU虛擬化研究成果,提出針對上述安全問題的系統性解決方案,並實現可部署系統,提高雲環境中GPU共享的安全性,擴展GPU在通用計算領域的適用性。
結題摘要
GPU(圖形處理單元)因其在並行計算方面的優勢,正廣泛套用於高性能計算和雲計算領域。GPU虛擬化作為這種趨勢的技術支撐,將GPU設備共享給多個用戶以提高硬體資源的使用,但同時也帶來了安全風險。對此,我們提出針對上述安全問題的系統性解決方案,提高雲環境中GPU共享的安全性。在記憶體漏洞攻擊設計方面,首先,對GPU堆進行了研究,發現可以利用CUDA的堆溢出來影響其他執行緒的執行,攻擊者可以利用該漏洞來覆蓋函式指針,從而實現操縱程式執行流的目的。另外,對GPU的Shared memory、Texture memory和TLB等多種共享資源進行分析,並結合各自特性,提出隱藏通道的攻擊方法。在記憶體溢出的檢測方面,提出了一種基於地址壓縮技術的動態檢測GPU上記憶體溢出的方法,包括以下內容:為了能檢查到記憶體溢出錯誤,該工具在用戶動態分配的記憶體的首尾兩端都插入了Canary來檢測記憶體溢出;為了對用戶程式造成儘可能小的影響並提供不間斷的保護,該系統利用GPU的高並發性,讓小部分執行緒運行檢測器,大部分執行緒運行用戶程式,從而使檢測器獨立於用戶程式外並對用戶程式進行不間斷、透明的保護。在程式分析方面,構造了一套針對CUDA的基準測試集,其中包含77個與C11標準中的核心語言相對應類別的未定義行為。通過該測試集,可以確定CUDA C中存在未定義行為。針對CUDA C中存在的未定義行為問題,設計了檢測和定位可能導致CUDA程式產生未定義行為代碼的方法,最後通過將該方法部署到CUDA SDK和一組實際的CUDA應用程式。在GPU的堆分配器設計方面,設計了一種快速安全的GPU堆分配器及一種高效的地址隨機化方法,為了有效地選擇隨機算法,實現了三種高效率的隨機算法,並與CUDA中隨機算法的性能進行了比較分析,並設計了有效的機制來解決執行緒之間的衝突問題。在系統級的Cache防禦方面,提出了一種基於動態隨機化的系統級別的防禦方法。該方法從代碼隨機化、棧隨機化、堆隨機化這三個角度細化隨機粒度、將隨機化時刻推遲到運行時、隨機化物理地址,充分提高隨機化水平。同時,套用LLVM的最佳化技術,使用一個編譯轉換器和運行時庫去隨機化程式布局,實現了動態隨機化系統。本研究將推動雲計算環境中GPU 虛擬化的安全研究,具有重要意義。