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

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

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

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

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

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