保護Windows Server 2008的虛擬化環境
1、基于角色和權限的安全設置
保護配置為Hyper-V角色的Windows server 2008尤為重要,因為每個來賓操作系統的安全性取決于主機服務器的安全性。奇怪的是Server 2008 安全指南(Security Guide)并沒有涉及Hyper-V角色的內容,安全設置向導(SCW)也是如此。
(1).以Server Core運行Hyper-V角色
安全期間,筆者建議在Windows server 2008的內核版本Server Core系統中運行Hyper-V角色。Server Core是最小限度的Windows安裝,缺少Windows Explorer外殼、對話框、應用程序以及很多服務(而這些會增加開銷并可能會增大攻擊面)。內容越少,可供攻擊的地方就越少,需要打補丁的文件就越少,這樣服務器重啟的次數就越少。如果你覺得沒有圖形界面工具運行Server Core有些不便的話,我們可以通過另一臺有圖形界面工具的計算機遠程管理該服務器。(圖1)

減小攻擊面是保護操作系統的關鍵,所以最好在服務器指定單獨一個虛擬化角色,而且不要在上面安裝額外的軟件或服務。這個最佳策略的一個例外情況是,Hyper-V主機是使用入侵檢測系統(IDS)的絕佳位置。由于所有來賓的網絡通訊都通過主機的網卡,所以在主機上安裝一個IDS檢測器就可以監控所有的來賓操作系統。
(2).精細的權限控制
我們知道,來賓計算機對于主機服務器上的用戶來說是特別脆弱的。因此,謹慎考慮用戶的訪問權限是很重要的。控制用戶訪問權限的最簡單的方法是只允許少量用戶在本地或通過Terminal Services來訪問系統。我們可以使用組策略來決定哪些用戶可以在本地登錄服務器。要這樣做,打開“本地安全策略”控制臺,展開“本地策略”,并選擇“用戶權限分配”。在右邊窗格中雙擊“允許在本地登錄”策略,默認情況下用戶可以Users組可以從本地登錄。接下來,選中Users并單擊“刪除”。我們從這里可以指定哪些用戶或用戶組能夠登錄到系統。(圖2)

一旦我們決定了哪些用戶能夠本地登錄系統,就可以使用“授權管理器”來進一步確定用戶訪問虛擬機的方式。在“開始”菜單的搜索框中輸入azman.msc,打開“授權管理器”控制臺。從“操作”萊單選擇“打開授權存儲”。當“打開授權存儲”對話框出現時, 選擇XML file并找到服務器上的“C:PogramDataMicrosoftWindowsHyper-VinitialStore.xml”文件(默認情況下ProgramData目錄是隱藏的,需要手工輸入該文件的路徑)。當加載了授權存儲,展開“InitialStore.xml”→“Microsoft Hyper-V Services”→“定義”,然后是“規則定義”。在右側的窗格中雙擊User,然后選擇“定義”屬性頁。我們可以在這里增加或刪除用戶能夠執行的操作。(圖3)

從開發角度來說,Hyper-V以其出眾的可編程性以及通過Windows管理規范(WMI)進行控制的能力超越了很多虛擬化產品。但是,這種可編程性允許以來賓操作系統難以預料的方式來控制它,因此,未授權用戶有可能會繞開來賓操作系統中的安全控制。因為WMI處理自動化界面,所以我們可以使用WMI權限限制通過WMI對Hyper-V的訪問。只需在開始菜單的搜索框里輸入wmimgmt.msc并按回車鍵即可。然后,右鍵單擊“WMI控制(本地)”并選擇“屬性”。選擇“安全”屬性頁并展開“Root”→“Virtualization”,選中ms_409。點擊“安全設置”按鈕,可以進行精細的用戶權限調整。(圖4)

(1).將主機與其來賓隔離
當構建一個虛擬服務器的時候,我們應該慎重配置網絡組件。虛擬服務器應該有足夠多的網卡,把虛擬機的網絡適當分段,但是不應該把擁有多種網絡安全性區域的不同虛擬機放置在同一臺主機上。最好的解決方法是把具有相似角色和相似安全需求的虛擬來賓放到同一臺主機上。
我們應該把主機的網絡從它的來賓中隔離出來,這樣只有授權用戶能夠通過可信賴的網絡訪問主機。要這樣做,最好的方法是有一塊網卡,連接到一個隔離的、專門用于管理的網絡上。但是,如果不可能做到的話,應該使用一些技術,例如VLAN、IPsec、VPN、SSL以及包過濾,來限制哪些用戶能通過網絡連接到主機。
當涉及到加固虛擬來賓操作系統的情況時,我們可用與加固物理計算機的相同方法。虛擬機的一個優勢是:因為它們處于一個固定的硬件環境中(虛擬化硬件驅動程序總是相同的),所以我們可以針對使用的不同服務器角色,輕松地構造經過加固的基線模板。。但是一定要小心地保護這些模板,以防它們遭到破壞,而且要使用類似Offline Vitual Machine Servicing Tool這樣的工具給它們打上最新的補丁,使之達到最新狀態。系統加固是一項耗費時間因而經常被忽略的任務。通過使用預先加固過的操作系統模板,可以確保每個新虛擬機都滿足預先確定的基準要求。
正如大家所知,與虛擬機有關的最大風險是任何能夠訪問到虛擬硬盤的用戶可以安裝它們并繞過來賓操作系統的安全機制。防止這一風險的一種方法是在來賓操作系統上實施磁盤加密,至少對敏感數據加密。微軟的加密文件系統(EFS)是保護數據的一個不錯的解決方案。假如虛擬來賓系統上的數據是高度敏感的話,一些全盤加密技術,如Bitlocker也是可以采用的。

(2).與硬件相關的安全設置
我們可以對虛擬機輕松地增加或刪除硬件設備。因此,好的做法是只在必要的時候連接設備,且在用于生產時刪除它們。這一策略對于映射到主機的光驅這樣的設備尤其重要,因為來賓虛擬機也能夠訪問插入到主機光驅中的光盤。
另外,當我們配置虛擬機的硬件時,還應該限制處理器的使用。默認情況下,一臺虛擬機能夠使用100%的物理主機的處理器,這就意味著某人有可能對一臺虛擬機實施拒絕服務DoS)攻擊,而對該系統上的所有其它虛擬來賓都有影響。限制CPU的使用可以確保留下夠的CPU周期來保證主機和其它虛擬機繼續運行。最后,因為在Hyper-V Management Console中訪問一臺虛擬機就相當于物理地使用來賓操作系統的控制臺,所以有必要嚴格遵循所有的安全性方面的最佳策略,例如設置帶密碼保護的屏幕保護以及在計算機不使用時注銷。
3、基于敏感虛擬機的安全措施
有時候我們會有一臺特別敏感的虛擬機,需要更高級別的安全性。虛擬機的一個好處是使用Hyper-V的暫停功能可以輕松地離線系統并快速回到在線狀態。比方說,一臺根證書服務器就很敏感,我們會希望只有在特定任務時才讓它處于在線狀態。
(1).獨立磁盤運行
要保護這些敏感的虛擬機,我們可以在一塊移動硬盤上運行它們。當用完這些虛擬機的時候,把磁盤取下來并嚴密保存。如果有一個大多數時候都處于離線狀態的系統,定時一定要把機器上線一次獲取最新的補丁。
(2).使用啟動密碼
在適當的時候使用啟動密碼防止未授權用戶訪問敏感的虛擬機,盡管筆者不推薦在所有系統上都這樣做。防止某人啟動一臺Windows虛擬機的一個方法,是在操作系統上設置一個syskey密碼。在開始菜單的搜索框里輸入syskey按回車鍵。這樣會打開Startup Key對話框,單擊Update,選擇Password Startup選項,設置一個密碼,然后單擊OK即可。當然,當做了安全部署后一定要更新書面安全策略。
【相關文章】