s390 (IBM Z) 受保護虛擬化轉儲¶
概述¶
轉儲虛擬機器是除錯其內部問題的基本工具。當受保護的虛擬機器出現問題時尤其如此,因為在它執行時無法從外部訪問其記憶體和暫存器。
然而,在轉儲受保護的虛擬機器時,我們需要保持其機密性,直到轉儲檔案落入虛擬機器所有者手中,只有他/她才能分析它。
虛擬機器轉儲的機密性由 Ultravisor 確保,Ultravisor 提供了一個 KVM 介面,透過該介面可以請求加密的 CPU 和記憶體資料。加密基於客戶通訊金鑰(Customer Communication Key),該金鑰用於以客戶能夠解密的方式加密虛擬機器資料。
轉儲過程¶
轉儲分為 3 個步驟
啟動
此步驟初始化轉儲過程,生成加密種子並提取用於加密虛擬機器轉儲資料的轉儲金鑰。
資料收集
目前可以從虛擬機器中收集兩種型別的資料:記憶體和 vcpu 狀態。
vcpu 狀態包含 vcpu 的所有重要暫存器:通用暫存器、浮點暫存器、向量暫存器、控制暫存器和 tod/計時器。如果在超管理程式(hypervisor)的幫助下模擬指令時轉儲 vcpu,則 vcpu 轉儲可能包含不完整的資料。這在轉儲資料中的一個標誌位表示。基於同樣的原因,不僅要寫入加密的 vcpu 狀態,還要寫入超管理程式中未加密的狀態,這一點非常重要。
記憶體狀態進一步分為加密記憶體及其元資料,元資料包括加密調整和狀態標誌。一旦匯出,加密記憶體即可簡單讀取。匯出的時間無關緊要,因為不需要重新加密。已換出並因此已匯出的記憶體可以從交換空間中讀取並寫入轉儲目標,無需任何特殊操作。
匯出頁面的調整/狀態標誌需要從 Ultravisor 請求。
最終確定
最終確定步驟將提供解密 vcpu 和記憶體資料所需的資料,並結束轉儲過程。當此步驟成功完成時,可以開始新的轉儲啟動。