駭客要偷走一台實體伺服器肯定困難重重,但若經由網路連線來偷走數台虛擬機器就容易許多。虛擬化平台的誕生,雖然解決了實體伺服器維運的各種難題,但卻可能引發虛擬機器或虛擬磁碟遭竊的資安問題,對此本文將分享三套vSphere保護秘訣。
當談論到有關於加密保護的議題時,大部分的企業IT只會聯想到針對Email與文件的加密,若再進一步深入討論,可能就會有人提到有關網路傳輸以及資料庫的加密。網路傳輸的加密,可確保用戶從登入的帳號密碼到操作過程中的各種資料傳遞不會遭到竊取,例如常見之Wi-Fi網路的WPA加密、網站的HTTPS(SSL)連線、Email服務的TLS、VPN網路的IPSec連線。
而資料庫加密主要目的在於確保資料表(Table)中所存放的各類型資料,必須透過相同的演算法以及相對的解密金鑰,才能取得正確的資料。常見需要保護的敏感資料包括帳號、密碼、人事資料、財務資料等等。一旦資料庫中的資料表欄位資料受到加密保護,若沒有解密金鑰,便只能透過合法的帳號與權限來取得資料。
然而,有了Email、文件、網路以及資料庫的加密處理後,是否就能高枕無憂?在以實體主機架構為主的年代,這些保護措施確實已經相當足夠。但如今已經是以虛擬化平台架構為主,幾乎所有的伺服器系統、應用程式、服務,甚至於用戶端程式都部署在虛擬機器中。有心人士只要透過網路連線的管道,直接竊取整個虛擬機器到外網,或是由內賊從內網將虛擬機器複製一份至任一儲存裝置,如此就連進入嚴密管制的主機房都不需要,等到下班時間就會被神不知鬼不覺攜出。這樣的結果若是發生在實體主機架構的年代,等同是把整台伺服器偷走。
如何防範這樣的資安事件發生?同樣還是得依賴最先進的加密技術,讓虛擬機器的檔案即便遭到竊取,也無法在其他主機運行此虛擬機器,或是存取相關虛擬磁碟內容。
接著,就一同來實戰學習如何讓運行在VMware vSphere 8架構下的虛擬機器,得到最具完善的加密保護。
金鑰提供者配置
在IT的世界裡,凡需要進行加密保護的安全機制,幾乎都需要使用到金鑰搭配演算法的加解密技術。為了保護最重要的虛擬機器資產,在VMware vSphere的虛擬化平台運行架構中,同樣也需要使用金鑰管理系統來加密虛擬機器的檔案或結合vTPM的虛擬裝置,以保護Guest OS磁碟資料的安全。
接下來,先準備好vSphere架構下所需要的金鑰提供者。在登入vSphere Client網站後,點選至vCenter Server節點下的「安全性」→「金鑰提供者」頁面。如圖1所示,接著在「新增」選單中將會發現有【新增原生金鑰提供者】與【新增標準金鑰提供者】兩個選項,其中標準金鑰提供者可用於整合第三方的金鑰管理系統(Key Management System,KMS)。至於原生金鑰提供者,則可以直接讓vSphere使用於虛擬機器的加密。
如圖2所示,在「新增原生金鑰提供者」頁面中,輸入一個全新的命名,例如vKMS01。至於是否要勾選「僅對受TPM保護的ESXi主機使用金鑰提供者(建議)」選項,則視實際的安全需求來決定,如果是在巢狀的虛擬化環境中進行測試,請勿勾選此設定。在實務的運行環境中,雖然實體的ESXi主機也可以不必啟用TPM裝置,就能夠使用原生金鑰提供者對虛擬機器進行加密,但若多了一層TPM的保護,肯定會讓整體的運行更加安全。設定完畢,按下〔新增金鑰提供者〕按鈕。
剛完成原生金鑰提供者的新增後,便可以在下方的「詳細資料」子頁面中,如圖3所示看到目前金鑰管理伺服器的上線狀態,按下〔備份〕按鈕繼續。
在「備份原生金鑰提供者」頁面中,如圖4所示,可以直接按下〔備份金鑰提供者〕按鈕,或是先勾選「使用密碼保護原生金鑰提供者(建議)」選項來開啟密碼設定頁面,並勾選「我已將密碼儲存在安全的位置」選項,如此一來,將可以得到更加安全的保護措施。務必妥善保存所設定好的密碼,因為當發生災害重建時,唯有此密碼才能夠恢復已加密虛擬機器的連線存取。
完成原生金鑰提供者的檔案(.p12)備份後,在「金鑰管理伺服器」子頁面中,就會看到已成功完成備份的圖示,並且在「金鑰提供者」狀態欄位中將會顯示「作用中」。至於在vSphere資料中心叢集下的所有ESXi主機取得金鑰提供者,以及vCenter Server更新其快取的時間,大約需要五分鐘。
虛擬機器加密原則配置
無論所使用的金鑰管理伺服器是原生還是標準,只要完成vCenter Server與金鑰管理伺服器的信任連線後,就可以建立虛擬機器儲存區原則,以便讓後續需要受加密保護的虛擬機器可以套用此原則。由於此做法是直接針對虛擬機器的檔案進行加密保護,因此適用在使用任何一種Guest OS類型的虛擬機器,包括Windows、Linux以及Mac。
關於虛擬機器儲存區原則的管理,只要在vSphere Client網站的首頁選單中點選「原則和設定檔」,便可以如圖5所示在「虛擬機器儲存區原則」頁面清單中查看到目前預設已經有一個「VM Encryption Policy」可以使用,進一步也可以在它下方的各個子頁面中查看到完整的配置資訊,包括規則、虛擬機器符合性、虛擬機器範本、儲存區相容性。
確認已經完成了虛擬機器加密原則準備後,如圖6所示就可以對於選定的虛擬機器,依序點選「動作」選單中的【虛擬機器原則】→【編輯虛擬機器儲存區原則】。
接著,在「編輯虛擬機器儲存區原則」頁面中,選擇所要套用的虛擬機器儲存區原則即可,如圖7所示。另外,還可以自行決定是否要啟用「針對每個磁碟設定」功能,例如只針對存放重要檔案資料的虛擬磁碟進行加密原則的套用。
再回到「原則和設定檔」→「虛擬機器儲存區原則」頁面,如圖8所示,選取「VM Encryption Policy」原則,之後查看「虛擬機器符合性」子頁面,就會出現所有已套用此原則的虛擬機器清單。
同樣的狀態資訊也可以從虛擬機器的摘要頁面中,查看到「虛擬機器儲存區原則符合性」的狀態顯示為「符合標準」。若發現尚未呈現最新的狀態資訊,可以點選「檢查符合性」超連結,進行狀態的更新。
另一種套用虛擬機器儲存區原則的方法是,先開啟虛擬機器的「編輯設定」頁面,再點選至「虛擬硬體」子頁面,如圖9所示,即可為每一個虛擬硬碟決定是否要設定虛擬機器儲存區原則。若已套用虛擬機器儲存區的加密原則,在此頁面的「加密」選項中就會看到「虛擬機器組態已加密」,以及虛擬硬碟下方出現「已加密」的提示訊息。
如果要針對現行虛擬機器中的所有虛擬磁碟加密,也可以如圖10所示在「虛擬機器選項」頁面中,針對「加密虛擬機器」設定選擇「VM Encryption Policy」原則,並完成所有磁碟的勾選即可。
一旦設定了加密虛擬機器的原則後,下方的「已加密的vMotion」與「已加密FT」兩個選項,將會自動設定為「必要」。如果加密虛擬機器的原則尚未設定,則上述兩個選項設定將可以自行調整成以下三個設定之一:
‧已停用:請勿使用已加密的連線。
‧隨機:如果來源和目的地主機支援,則使用已加密的連線,否則回復至未加密的連線。此設定是預設選項。
‧必要:僅允許已加密的連線,如果來源或目的地主機不支援連線加密,請勿進行連線。
請注意!如果是針對已開啟電源的虛擬機器來配置儲存區的加密原則設定,在「最近的工作」清單中將會立即出現錯誤訊息。
想要對於準備新增的虛擬機器設定加密原則,只要在新增虛擬機器過程的「選取儲存區」頁面中,如圖11所示直接從「虛擬機器儲存區原則」選單中,挑選虛擬機器的加密原則即可。
不管是新增的虛擬機器,還是現行的虛擬機器,只要已完成套用虛擬機器儲存區加密原則,就可以檢視它對於此虛擬機器的設定文件(.vmx)內容會產生什麼樣的變化。只需要開啟虛擬機器檔案的資料存放區就可以下載,在完成下載後使用Windows的記事本來開啟,便會發現最後兩個欄位分別是encryption.keySafe與encryption.data,主要用以存放金鑰識別碼以及加密金鑰資料。
虛擬機器非法複製測試
前面已將所建立的虛擬機器加密原則,套用在一台選定的虛擬機器。現在問題來了,要如何證明已套用加密原則的虛擬機器確實已經受到保護而不會發生虛擬機器檔案被盜的風險呢?
方法很簡單,在此選擇使用VMware Workstation Pro先完成與vCenter Server的連線,並且確認可以正常開啟、關閉以及操作所加密的虛擬機器,請注意!這時候虛擬機器的執行仍是在vCenter架構下的ESXi主機中。
確認可以正常操作此虛擬機器後,緊接著選取該虛擬機器,如圖12所示,按下滑鼠右鍵,然後依序點選【Manage】→【Download】,嘗試下載整個已加密的虛擬機器。
執行之後,系統會要求輸入新的虛擬機器名稱,以及指定虛擬機器檔案下載的存放位置。完成設定後按下〔Download〕按鈕,此時將會看見如圖13所示的錯誤訊息,表示無法直接下載任何已加密的虛擬機器檔案。接下來,嘗試下載任何尚未套用加密原則的虛擬機器,會發現可順利執行下載任務。
除了上述複製已加密虛擬機器的方式外,也可以嘗試直接在vSphere Client網站的資料存放區中,將此虛擬機器的檔案完整下載,然後再到其他非此vSphere架構的ESXi主機或VMware Workstation Pro管理介面中,掛載相關已加密的虛擬磁碟檔案,將會出現無法讀取、讀取失敗等錯誤訊息。若將已加密的虛擬機器檔案完整複製到其他vSphere中的ESXi主機,執行開機時將出現「需要加密金鑰才能開啟此虛擬機器」錯誤訊息。
採用虛擬信賴平台模組(vTPM)
透過電腦主機板內建的TPM(Trusted Platform Module)晶片來加密保護作業系統磁碟資料的安全,以Windows來說,早在Windows Vista版本開始便已經提供,也就是結合大家所熟知的Windows BitLocker功能。而TPM版本的發布與維護,主要是由一個非營利組織的TCG(Trusted Computing Group)機構所負責,過去已被廣泛運用在許多商用的筆記型電腦中,如今又進一步拓展至實體伺服器與虛擬機器磁碟的加密保護。
TPM(Trusted Platform Module)與vTPM(Virtual Trusted Platform Module)之間有何差別呢?其實兩者都是執行相同的功能,只是前者採用硬體的信賴平台模組作為認證或金鑰儲存區,後者則是以軟體式的處理方式來完成相同的任務,在vSphere架構中就是使用.nvram檔案來做為安全的儲存區,而該檔案便是透過虛擬機器加密功能進行加密。
在金鑰管理方式的差異部分,硬體式的TPM包含了預先載入的簽署金鑰(Endorsement Key,EK),這裡面存放了包括私密和公開金鑰,當作唯一的身分識別。至於軟體式的vTPM,則是透過VMCA(VMware Certificate Authority)或是第三方憑證授權機構(CA)方案來提供這些金鑰。
若要在vSphere中使用vTPM功能,其環境必須符合下列需求:
‧虛擬機器使用EFI韌體
‧虛擬硬體版本採用14或更新版本
‧Windows Guest OS的虛擬機器要求vCenter Server 6.7或更新版本
‧目前Windows作業系統支援Windows Server 2008、Windows 7及更新版本。
‧Linux Guest OS的虛擬機器要求vCenter Server 7.0 Update 2或更新版本
‧完成vCenter Server的金鑰提供者設定
如果目前虛擬機器所運行的環境符合上述要求,那麼接下來就可以進一步查看有關於虛擬機器的vTPM配置資訊。開啟虛擬機器的「編輯設定」,並在「虛擬機器選項」子頁面中,如圖14所示,勾選「在下次開機期間強制進入EFI設定畫面」選項,然後重新啟動虛擬機器。
接著,系統將會開啟「Boot Manager」主頁面,如圖15所示,在此除了可以選擇四種開機的方式外,還能夠重置系統配置。選取「Enter setup」,進一步開啟「Boot Maintenance Manager」頁面。
最後,便可以選取「TPM Configuration」設定,來開啟「TrEE Configuration」頁面了,如圖16所示,可以查看到目前TPM配置的版本,以及決定是否要啟用TPM清除功能。
虛擬機器vTPM啟用設定
關於虛擬機器vTPM功能的啟用,可以選擇在執行新增虛擬機器的設定過程中,從「自訂硬體」頁面內按下〔新增裝置〕按鈕並挑選「信賴平台模組」選項來完成設定。
同樣的設定,也可以在關閉虛擬機器後開啟「編輯設定」頁面,接著點選至「虛擬硬體」子頁面中,如圖17所示,再點選「新增裝置」並挑選其中的【信賴平台模組】選項來完成。但必須注意的是,此操作只能在vSphere Client網站中進行,因為在ESXi Host Client網站中,只能從編輯虛擬機器設定中移除虛擬TPM裝置,而無法進行新增。
在完成新增操作後,如圖18所示,如果在「安全性裝置」→「信賴平台模組」欄位中出現「存在」訊息,即表示此虛擬機器能夠使用vTPM功能。未來倘若不需要再使用到此裝置,也可以在此將信賴平台模組的裝置移除。
針對TPM的憑證相關資訊,可以在此虛擬機器的「設定」→「TPM」→「憑證」頁面中,如圖19所示查看到所選定憑證的簽發者、版本、種類、有效日期與時間、演算法等資訊。必要時,還可以對於憑證進行匯出。
在確認虛擬機器已啟用vTPM功能後,開啟虛擬機器電源,進入Guest OS的桌面。凡是相容的Windows版本,便可以在打開「裝置管理員」介面後,查看到在「Security devices」節點下,多了一個「Trusted Platform Module 2.0」項目,如圖20所示。
無論是在Windows Server 2019、Windows Server 2022或Windows 10、Windows 11中,除了可透過傳統的MMC介面開啟「Device Manager」來檢視TPM裝置資訊外,也可以選擇從Windows設定介面中進行檢視。
操作方法很簡單,先開啟「Windows Settings」,點選進入「Update & Security」頁面,再點選「Windows Security」頁面中的「Device security」。接著,在「Device security」頁面中,點選「Security processor」選項中的「Security processor details」超連結。最後,在如圖21所示的頁面中,便可以查看到有關於TPM的版本資訊與現行狀態。
針對Windows作業系統中的TPM管理設定,除了可以使用簡易的GUI操作介面外,對於進階的管理員而言,也可以透過內建的Windows PowerShell來完成,請參閱表1說明。若想知道某一個命令的用法與範例,只要執行「Get-Help 命令名稱 -Detailed」即可得知。
安裝BitLocker功能
成功啟用虛擬機器的TPM裝置後,接下來準備進入到Windows Guest OS中,透過BitLocker功能來加密系統磁碟,以及任何需要受到保護的資料磁碟。而系統對於所產生的加密以及憑證的相關資訊,也將會自動寫入至虛擬機器的.nvram檔案中,並且受到VM Encryption安全加密機制的保護。
無論是最新的Windows Server 2022、Windows 11,還是前一版的Windows Server 2019、Windows Server 2016、Windows 10專業版以及企業版,皆提供支援相容VMware vSphere 8 vTPM的BitLocker功能。Windows Server預設並沒有安裝此功能,而是需要透過「Server Manager」操作介面或Windows PowerShell命令進行安裝。
首先,在「Server Manager」操作介面部分,在「Manage」選單中點選【Add Roles and Features】,再連續按下〔Next〕按鈕,來到「Features」頁面中,如圖22所示勾選「BitLocker Drive Encryption」並按下〔Next〕按鈕,完成安裝並重新開機即可。
若想透過Windows PowerShell命令來安裝BitLocker功能,只要以管理員的身分執行下列命令參數即可:
Install-WindowsFeature BitLocker -IncludeAllSubFeature -Include ManagementTools -Restart
成功安裝後,系統將會自動重新開機。
啟用BitLocker配置
完成安裝BitLocker功能後,就可以加密保護選定的磁碟。至於應該要加密哪一些磁碟呢?對於Windows Server的Guest OS而言,建議將系統磁碟與資料磁碟皆啟用加密保護,以預防虛擬機器在被非法複製後,遭到惡意人士嘗試將作業系統進行啟動,或是將資料磁碟掛接至其他虛擬機器進行資料竊取。
接下來,實際動手來啟用BitLocker功能。首先,如圖23所示,在準備要加密的磁碟上按下滑鼠右鍵,然後點選快速選單中的【Turn on BitLocker】。
如圖24所示,接著在「How do you want to back up your recovery key?」頁面中點選「Save to a file」選項,選定要存放備份修復金鑰檔案的位置。必須注意的是,不可以選擇準備要使用BitLocker加密或是已經加密的磁碟路徑,而是選擇外接的USB磁碟機最為理想,並且最好能夠複製此檔案至更多磁碟來妥善保存,因為一旦此電腦發生故障而無法使用時,還是可以透過此修復金鑰檔案的認證,來繼續存取已加密磁碟中的所有資料。設定完成後,按下〔Next〕按鈕。
在「Choose how much of your drive to encrypt」頁面中,若是針對全新尚未存放檔案的磁碟,選取「Encrypt used disk space only」,系統後續將會自動對新增的檔案進行加密。相反地,如果是針對已經存放許多檔案的磁碟,則建議選取「Encrypt entire drive」,以確保整個磁碟中的檔案階完整受到加密保護。
按下〔Next〕按鈕,如圖25所示,在「Choose which encryption mode to use」頁面中,如果要針對抽取式的USB行動磁碟進行加密,而且這個磁碟機還會繼續在舊版的Windows 7或Windows 8/8.1作業系統中存取,就必須選取「Compatible mode」。
若加密的是本機的固定磁碟,並且也不會將此磁碟移動至舊版的Windows中存取,選取「New encryption mode」將可以獲得更高的安全性保護。若準備加密的虛擬機器Guest OS是Windows Server 2016以上版本,強烈建議選擇「New encryption mode」設定。選擇完畢,按下〔Next〕按鈕。
然後,在「Are you ready to encrypt this drive」頁面中,確認已勾選「Run BitLocker system check」選項,以確保BitLocker能夠正確讀取修復和加密金鑰。按下〔Start encrypting〕按鈕後,如圖26所示,可能會在Windows桌面的右下方看到「重新啟動電腦後將會開始加密」提示訊息,在點選此訊息後,立即重新啟動電腦。一旦成功完成加密任務後,在桌面右下方一樣會出現加密完成的訊息。
在完成了選定磁碟的BitLocker加密後,往後如果需要管理BitLocker的所有磁碟配置,最快速的方法就是在該磁碟的右鍵選單中點選【Manage BitLocker】選項。
如圖27所示,在「BitLocker Drive Encryption」管理頁面中,除了可以繼續選擇加密其他磁碟外,也能夠針對任何已經加密的磁碟執行暫停加密、備份加密金鑰以及關閉BitLocker加密功能等操作。如果需要管理有關於TPM的配置,可以點選頁面左下方的「TPM Administration」超連結。若是一般磁碟與分割區的管理,則點選「Disk Management」超連結。
無vTPM的BitLocker
針對沒有安裝vTPM裝置的虛擬機器而言,是否也能夠在相容的Windows Guest OS中使用BitLocker功能呢?答案是可以,不過Windows預設只能夠對於非系統的磁碟(例如C磁碟)進行加密,也就是用來存放重要檔案資料的磁碟(例如D磁碟),否則在啟動BitLocker功能的操作中將會出現「This device can’t use a Trusted Platform Module.」訊息,如圖28所示。不過,訊息中也同時提示必須先完成相關Windows本機原則的相關設定,才能啟動系統磁碟的BitLocker功能。
如何設定BitLocker的本機原則呢?先在「開始」→「執行」欄位中輸入「gpedit.msc」命令,開啟「本機群組原則編輯器」介面,接著展開至「電腦設定」→「系統管理範本」→「Windows元件」→「BitLocker磁碟機加密」→「作業系統磁碟機」節點頁面中,點選並開啟「啟動時需要其他驗證」原則設定。
接著,在「啟動時需要其他驗證」頁面中,先勾選「已啟用」再勾選「在不含相容TPM的情形下允許使用BitLocker(需要密碼)」設定。再依序修改「設定TPM啟動PIN」選項為「允許啟動PIN搭配TPM」、「設定TPM啟動金鑰」選項為「允許啟動金鑰搭配TPM」、「設定TPM啟動金鑰和PIN」選項為「允許啟動金鑰和PIN搭配TPM」,最後按下〔確定〕按鈕。
完成BitLocker的本機群組原則設定後,便可以立即再次針對系統磁碟執行BitLocker的功能。執行之後,將會先出現「BitLocker磁碟機加密安裝程式」頁面,連續按下〔下一步〕按鈕至「選擇啟動時如何解除鎖定磁碟機」頁面,在此可以選擇系統開機時的解鎖方式。選擇「插入在USB快閃磁碟機」,肯定比較理想,但選擇「輸入密碼」方式會更安全,且Windows Server重新啟動的機率也不高。
接下來,只要繼續完成剩下的BitLocker步驟,便可以成功完成系統磁碟的加密。緊接著,在檔案管理介面中,針對已加密的系統磁碟按下滑鼠右鍵,發現多了一個【變更BitLocker密碼】選項。
進入到「變更啟動密碼」頁面中,便可以依序輸入舊的BitLocker啟動密碼、新的密碼、確認新密碼來完成密碼的異動。
密碼的設定建議越複雜越好,不過無論如何要記住它,否則將無法啟動作業系統,而演變成得依賴備份的修復金鑰來解決。
圖29所示是BitLocker系統開機時的密碼提示,只要在輸入正確的密碼後按下〔Enter〕鍵,即可啟動作業系統。如果忘記啟動密碼,那就得按下〔Esc〕鍵,進行BitLocker的修復操作。
如同TPM的管理工具一樣,關於BitLocker的管理,無論是否有結合TPM裝置來使用,除了一樣可以透過簡易的GUI操作介面之外,對於進階的管理員而言,也可以透過Windows PowerShell來完成,請參閱表2說明。
如果想要查詢某個命令的用法與範例,只要執行「Get-Help 命令名稱 -Detailed」即可。
結語
由於虛擬機器是以檔案的形式存在於主機中運行,因此在資訊安全上,除了必須先做好基本存取權限的控管外,緊接著就必須對於所有存放敏感性資料的虛擬機器,藉由本文所介紹的加密機制來妥善保護,以避免虛擬機器遭竊的資安事件發生,畢竟對於駭客而言,竊取虛擬機器可比偷走實體主機來得容易許多。虛擬機器的加密保護,不僅能夠防範外部的駭客,也可以有效防範內賊。相信只要實體安全與虛擬安全的全面戒備,便可以讓任何有心人士無機可乘。
<本文作者:顧武雄,Microsoft MVP 2004-2016、MCITP與MCTS認證專家、台灣微軟Technet、TechDays、Webcast、MVA特約資深顧問講師、VMware vExpert 2016-217、IBM Unified Communications/Notes/Domino/Connections Certified。>