不管是企業內部仍是託管在IDC或雲服務商的虛擬機,如何保障運行的環境是安全的,虛擬機是安全的(虛擬機文件裏的數據以及看到的監視器畫面)成爲此篇文章和你們探討研究的。shell
好比您正在運行的虛擬機,管理員是能夠經過虛擬化平臺經過監視器看到您的系統並操做的,好比關機,開啓,重啓等等操做,其次若是有別有用心的管理員或者不法分子在拿到您虛擬機的虛擬磁盤文件後拷貝到本身的電腦展開查看等,那麼虛擬機裏的數據一覽無遺,甚至嚴重一點的拿到您AD虛擬機的虛擬磁盤後對域控用戶數據庫解密,獲取到企業用戶的登陸信息及密碼,那麼後果就至關嚴重了。數據庫
其次若是有人把虛擬機的虛擬磁盤拷貝出來放到競爭對手的虛擬機環境裏導入運行,那麼是否會有虛擬機業務成果的山寨呢?安全
固然我這裏只是列舉可能出現的風險和案例,針對這樣的問題而展開如何確保虛擬機運行安全以及虛擬機運行所處的環境是可信任的展開話題討論。服務器
針對以上的痛點,在Windows Server 2016開始提供了一個新的技術叫「受保護者服務」可使用受保護的結構(Hyper-V主機環境)爲VM提供更安全的運行環境。受保護的結構主要有三個部分組成:ide
由一個主機保護者服務(HGS)組成 (一般是三個節點的集羣)加密
一個或多個受保護的主機spa
一組受保護的虛擬機(VM)3d
在Windows Server 2016裏只支持Windows系統的虛擬機保護,而在Windows Server 2019裏還新增支持了Linux系統的虛擬機保護。日誌
那麼整個受保護的虛擬機運行在受保護的結構環境中,拓撲以下:orm
對於工做模式只要分爲2中:TPM模式和主機密鑰模式
用到的安全手段主要大體能夠爲四種:TPM(vTPM)、簽名證書、加密證書、Bitlocker
從受保護的主機來判斷是否受信任和安全主要是根據這3點來衡量:提取主機的系統特徵,硬件基準,以及當前運行環境做爲代碼完整性策略
從受保護的虛擬機來判斷虛擬機是否安全主要是根據這4點來衡量:虛擬磁盤模板是否加密,卷簽名目錄,受保護的數據文件PDK(監護人證書:簽名和加密;防禦數據文件全部者:簽名和加密),vTPM
受保護的虛擬機工做關係結構是這樣的:
受保護的虛擬機在受保護的Hyper-V主機工做關係結構是這樣的:
請求開啓受保護的虛擬機VM01
在受保護的主機能夠啓動受保護的VM以前,首先必須證實它是可信任的。爲了證實它是可信任的,它必須向密鑰保護服務(KPS)提供受信任證實。受信任證書經過證實過程得到。
主機請求證實。
受保護的主機請求證實。認證模式由受保護主機服務羣集決定:
TPM可信證實:Hyper-V主機發送的信息包括:
TPM識別信息(承認密鑰)
最近的啓動引導順序的進程信息(TCG日誌)
主機上應用的代碼完整性策略信息(CI)
備註:受保護的Hyper-V主機啓動後每8小時進行一次驗證,若是因爲某種緣由,當受保護的VM嘗試啓動時收保護的主機沒有認證證書也會觸發請求。
主機密鑰證實:Hyper-V主機發送密鑰對的公鑰。HGS驗證主機密鑰是否已註冊。
管理員信任的證實:Hyper-V主機發送Kerberos票證,該票證標識主機所在的安全組。HGS驗證主機屬於先前由受信任的HGS管理員配置的安全組。(在Windows Server 2019中該模式已經取消)
證實成功(或失敗)
成功證實主機受信任所需的檢查:
經過TPM可信證實,驗證主機的TPM標識,引導驗證和代碼完整性策略。
使用主機密鑰證實,僅驗證主機密鑰的註冊。
認證證書已發送給主機
假設證實成功,則向主機發送受信任證書,而且主機被視爲「被保護」(被受權運行受保護的VM)。主機使用信任證書受權密鑰保護服務安全地發放使用受保護虛擬機所需的密鑰
主機請求VM密鑰
受保護的主機沒有啓動受保護的VM(本例中爲VM01)所需的密鑰。要得到必要的密鑰,受保護的主機必須向KPS提供如下內容:
目前的受信任證實
加密密鑰(密鑰保護程序或KPS),包含啓動VM01所需的密鑰。密鑰是使用只有KPS知道的其餘密鑰加密的。
發佈密鑰
KPS檢查受信任證書以肯定其有效性。證書不得過時,KPS必須信任頒發證書的證實服務。
密鑰返回給主機
若是受信任證書有效,KPS會嘗試解密該密鑰並安全地返回啓動VM所需的密鑰。請注意,密鑰已加密到受保護主機的VBS。
主機啓動VM01
那麼部署這樣一套受保護的結構須要多少步驟呢?下面這張圖列了關鍵步驟:
部署這樣一套受保護的Hyper-V環境和受保護的虛擬機最後是能夠經過Powershell來管理,也或者使用SCVMM或Windows Azure Pack來管理的。
過程不復雜,但要注意的點和涉及的知識是比較複雜的。
簡單來講怎麼實現虛擬機安全以及達到的效果,個人總結是:
以簽名證書和加密證書構建獨立的監護域(監護人)
掃描認爲合格的Hyper-V硬件及系統環境做爲基準存放在另外一個獨立域中做爲基準校驗,其中能夠以TPM爲安全芯片加固
虛擬機磁盤進行證書Bitlocker加密,也能夠結合vTPM加固,虛擬磁盤再進行證書籤名綁定惟一性,讓在獨立域中做爲基準校驗
設置虛擬機的全部者和監護域(人)進行定向校驗
虛擬機的每一次啓動都會進行全方位多維度基準校驗,缺一都將致使啓動失敗
虛擬機的虛擬磁盤也是全方位360度無死角加密,不管是網路複製傳輸仍是拷貝都沒法獲取虛擬磁盤內容
受保護的虛擬機在受保護的Hyper-V主機以前移動或傳輸數據也是全加密狀態
若是惡意人員要獲取虛擬機裏的數據,須要具有3大塊:受保護的Hyper-V主機,監護域(人)以及虛擬機文件,想一想都不現實能夠同時拿到這麼多才能獲取到vhdx裏的內容
這項功能我以爲針對業務場景也解決以下需求:
在加域的虛擬機(域成員服務器),從外圍增長了虛擬機的安全加固,但對內使用域管理員帳號進行訪問還須要多種約束手段以及其餘的技術手段作安全輔助;
若是虛擬機是不加域的託管在企業虛擬化平臺上,那麼業務人員直接管理該虛擬機:從外保障了惡意的IT管理員沒法進行數據的竊取和窺竊,從內由直接的使用者放心的使用管理本身的系統。
後續如何實現主要核心三個章節:
最後感謝王澤和高毅的功能介紹,讓我有更深刻的研究與實踐把這樣一個好的技術和功能分享給你們。