前言 近來在虛擬化技術蓬勃發展下,相信一定有很多企業或多或少都已開始導入虛擬化環境,但各個目標不一,有些可能是為了成本節能考量,有些可能是為了管理方便或甚至是為了邁進雲端做準備。虛擬化的導入通常不會一次到位,所以一定會有傳統IT環境與虛擬化環境並存的現象發生,所以我們在看含有虛擬化環境的安全課題時必須把傳統的IT環境一併考量進來。因為虛擬化改變了IT環境,因此一些資訊安全的控制方法也必須跟著改變,甚至是講到更進一步的雲端技術亦然,資安控制方法在必須考量技術與運作的特殊性時,傳統的方法就不見得可以滿足這些環境的安全需求。本文將先從兩個面向來談虛擬化的安全問題,且因為VMware vSphere 4是虛擬化技術的領導廠商,所以本文有關虛擬化安全技術的探討大都是以VMware的虛擬化技術為內容。
VMware的網站上有Released出2010年的vSphere 4 Security Hardening Guide,如圖一。安全指引的範圍包括了ESX/ESXi、VM Container、vCenter及其資料庫與子元件、VMware Update Manager、vNetwork及COS(Console Operating System)等。但VM裏頭安裝的軟體、Guest OS的Security及有關的操作安全上的問題並不在此指引涵蓋的範圍裏。此安全指引在每個大項(諸如Virtualization Host及VM及COS等)中都有針對其子項有建議的設定值,子項都有特定的代碼及其強調的問題點以及這些安全的問題點所適用的環境、所造成的威脅及防護的設定等。本文內容不針對此安全指引再做贅述,此指引的內容就留由讀者自己參考。本文所探討的VMware安全問題主要是針對VMware的built-in的安全設計以及一些在VM管理部署、虛擬網路及儲存網路的安全問題上做探討。
虛擬化的最主要目的當然在於虛擬機的使用,在ESX或ESXi上執行的眾多虛擬機的安全與否當然會影響到Host的安全,相對地,這些虛擬機的安全性也會被其Host的安全性所影響,Virtualization Administrator可以在Host上看到每個虛擬機的Memory及Swap空間等。
一、虛擬機的安全
1.虛擬網路(Virtual Networking)安全的問題
講到網路的安全問題,一般我們會從所謂的Attack Surfaces來做探討。在虛擬網路安全裏我們要特別注意幾個點: 一個是純虛擬化的地方,另一個則是實體網路與虛擬網路的交會點。Hypervisor不允許vmknic與vNIC在同一個Portgroup,因此可避免vkmnic被惡意的VMs所影響。vMotion亦會使用vmknic來與外界溝通,而通常在vMotion時會建議使用SSL來保護敏感資料(或記憶體中資料)不被攔截(事實上,SSL一直都有MITM攻擊的問題),也因此看成是vmknic必須單獨使用一個security zone來減低風險的必要性。vSwitch及Portgroup提供了部份安全機制來保護vSwitch的安全,諸如是否允許MAC Address改變、是否允許偽造的MAC傳送及是否允許Promiscuous Mode等。vSwitch是很簡單的2層交換器,它並沒有很多實體Switch所會發生的Attacks。但對於ARP Spoofing及Layer 3的Attacks卻沒有任何防護,主要是因為這些Attacks是發生在虛擬機(VMs)裏而不是在vSwitch上面。
如非必要,儘量減少VST(Virtual Switch Tagging)及VGT(Virtual Guest Tagging)等 802.1q VLAN的使用。以實體交換器及實體網路卡取代,增加Virtualization Network的Redundancy及網路的隔離(pSwitch),若無法網路隔離,也必須依據不同Requirements或安全等級來設計Security Zones(或者使用Private vSwitch方式來隔離),包括管理的Zone、vMotion的Zone、Storage的Zone、VMs的Zone或是上線區的Zone、開發環境的Zone、測試的Zone,或是安全等級高的Zone及安全等級低的Zone等。
2.VM及VA的部署
最嚴謹的方式就是將所有的VMs都視為不安全的狀況來考慮VMs及Virtual Appliances(VMsafe)的安全問題,尤其是Virtual Appliances可以接觸到Hypervisor,因此必須以更高標準的防護來保證這些VMsafe VA的安全,比方更嚴謹的存取控制及Auditing機制,使用Private vSwitch與實體的外加虛擬化的Security Tools來做縱深防護。來路不明的Virtual Appliances也不可任意部署來使用,最好是使用經過VMware簽章過的vendors所發佈的Virtual Appliances。圖一為使用PVLAN的隔離方式。
3.VM的管理
新加入要Power On的VMs的控管也要特別留意,包括其上的應用程式等也要一併考量風險評鑑問題,新啟動的VMs或Application都有可能影響到Virtualization Host的Disk、CPU及Memory等資源的使用,嚴重的話還可能造成Resource的DoS攻擊,特別是在VMware DRS的環境下。
VM的Life Cycle管理的工具及產品也可提供保護,它可以對VMs的Power On、Power Off、註冊與否及所配置的VMDK與LUN實施Auditing。藉由VM Log的設定,可以藉由減少不必要的Logs數量、Log的Rotate及Log的保留數量來控制Log Files的增長問題。
VMs的新增與刪除也必須同時注意是否有無主的Virtual Disk Files存在Datastore裏,除可避免無謂的佔用空間外還可避免這些Virtual Disk Files被誤用。VMs的設定檔的變更管理也很重要,特別是虛擬化硬體資源設定的變更。除VMware本身的管理工具(例如RCLI、VIC及VI SDK等)可對變更的設定有Audit的Record外,一些商用的工具(例如Tripwire的Configuration Management產品)也可對這些變更管理做良好的稽核記錄,使VM的設定的變更管理更為完善。
Distributed Management Task Force (DMTF)是一個旨在提供簡化及方便的虛擬化環境的管理,它在2007年建立了一個有關VM管理的Open Standard標準,使用Open Virtualization Format (OVF)做為VM部署的方式,OVF是一個平台獨立而且可支援大多數的Virtual Hard Disks,OVF除了包含Virtual Disk外、還包括了VM的規格描述與相關的硬體設定。DMTF亦創立了Virtualization Management Initiative (VMAN)標準,內容涵蓋了包括VM的部署、VM的Discovery and Inventory、VM的Lifecycle的管理、VM新建與刪除、VM的移動與遷移、及VM的效能與狀態的監控等 。
4.VM的加固
VMs本身的Guest OS的安全也是一大重點,但這部份很好處理,因為你就用跟OS部署在實體機器上的加固方式一樣即可,Internet上有很多關於不同OS的Hardening Guide及相對應的工具(Commercial或Non-commercial)可以參考。下圖為vSphere4的Hypervisor的安全設計可使虛擬化環境得到先天設計的安全的防護。
5.VMware Backdoor
Guest OS可以使用一些工具(例如VMware Tools或其他Open Source的Tools)利用VMware Backdoor I/O Port來與Hypervisor做某種程度的溝通以取得一些資訊,例如Copy/Paste的內容,可Touch到的虛擬化硬體,Virtualization Host所使用CPU的Speed,VMware版本、時間及BIOS的UUID等。這些資訊可以被用來Fingerprint出Guest OS是不是run在VM裏,而被駭客拿來當做是準備攻擊的一個點。強制型存取控制(MAC)的使用(或Microsoft的UAC或Linux的SELinux等),都可以利用嚴謹的存取控制來限制這些Tools對VMware Backdoor I/O Port的存取。談資訊安全就是要讓駭客沒有任何可利用來攻擊的地方可以利用(Exploit),而且請記得,安全與效能及便利性本來就是互相替代的。另外,網路上有一些Hardening Guideline,例如DISA STIG(Security Technical Implementation Guide),也建議了一些設定可以有效改善這個安全問題。底下是它建議的設定值: isolation.tools.copy.enable => false isolation.tools.paste.enable => false isolation.tools.setguioptions.enable => false isolation.tools.setinfo.disable => true isolation.tools.connectable.disable => true isolation.tools.diskshrink.disable => true isolation.tools.diskwiper.disable => true
二、其他虛擬機相關的安全
1.VM的Storage存取
VMs到Storage Network也存在著部份的被攻擊點,經由Hypervisor控管的Storage存取比較沒問題,但是那些可不受Hypervisor控管的Storage存取,例如NPIV、iSCSI Initiator或FCoE(如果VMs有FCoE Driver),有可能將存取資源的VMs當成攻擊點進而攻擊到Hypervisor後端的Storage Network。所以比較好的方式是用網路隔開這些VMs直接存取的Storage,避免跟Virtualization Host共用Storage。以目前Virtualization Host常用的四種方式來對後端storage做存取的狀況(這四種方式為NFS, iSCSI, SAN及Local Storage),必須要留意儘量避免虛擬機直接對Storage做存取,如果有直接存取的必要(例如使用iSCSI Initiators、NFS及CIFS的檔案分享、NPIV等),儘量使用Isolated Storage的概念來存取資料,也就是使用獨立分開的storage來提供資料存取服務。另外,在DMZ中(或者說風險較高的Zone)的Virtualization Host或虛擬機所使用的Storage也最好與內部網路(或者說風險較低的Zone)中的Virtualization Host或虛擬機所使用的Storage獨立分開。
2.VMCI介面與VMsafe的存取限制
VMCI與VMsafe可以提供VM對VM或Host的存取,特別是VMsafe CPU/Mem API對其他VM的CPU及Memory的存取,以及VMsafe-Net對虛擬網卡與虛擬交換器上的網路封包的存取、修改與阻擋等等。如下圖,只允許授權的Security Appliance去存取VM的CPU及Memory,因此那些沒被授權的Security Appliance就不能有Introspection Virtual Switch的設定。相對地,被允許使用VMsafe CPU/Mem API存取的VM的設定也必須設定Security Appliance的IP及存取的埠號。
3.部署與管理
VM與Virtual Network的部署必須要有一致性的授權機制,要避免例如網路管理者不知道虛擬網路被變更或新建立的情形;對系統管理者也是一樣,必須要對虛擬機的部署變更與建立取得一致的授權流程。如果無法適當的管理這些Virtual Network或VM,就有可能像是之前我們提到的Security Zone問題,如果一台VM被不經意或非法的部署到重要的Zone裏,可能會對此Zone的整個環境造成威脅。要解決這樣的情況通常必須依賴建全的監控與管理機制,也可藉由軟體的輔助來達成,例如一些商用的虛擬化管理軟體或者像是VMware的LifeCycle Manager。
VM部署對Security Zone的影響對Datastore亦有類似的負面結果,如果Datastore的Disk Space被佔滿就有可能產生DoS的狀況,就算不至於造成DoS也會對Performance有影響。另外,資料的掺混問題也必須特別留意,因為一旦此VM被駭,或是在被部署時就是被精心設計過的,例如Promiscuous Mode被enable,就有可能因為資料的掺混造成重要資料被竊聽或盜取。
VIC的Plug-ins的管理也是一個虛擬化管理面安全的重點,有一些VIC Plug-ins可能不需Authentication就可存取到Virtualization Host上的資料或者執行Scripts,因此最好只安裝經過VMware認證或簽章過的Plug-ins。
管理者有時有P2V(Physical to Virtual)的需求,當要將一台實體機器虛擬化時,如果P2V的過程是跨不同Security Zone的話,試想一下,若一台在DMZ的實體機器被P2V到內部Production的Zone時,萬一此實體機器中毒會是被植入木馬,或是Patch Level非常的低,就有可能在VM被boot起來後就直接在Production Zone產生安全問題,直接影響到此重要的Zone或經由跳板一步步導致內部網路被徹底破壞。建議可以使用具有USB儲存媒體並經安全檢測的中介機器,將此中介機器部署到一個firewalled的Virtual Network(或Pseudo Security Zone),接著使用P2V工具將實體機器虛擬化到USB後Power On,實施安全檢測例如掃毒、木馬檢測及上補丁等等後再將此USB的Virtual Machine使用P2V導入到目標虛擬化環境。下圖為Zone的一個例釋。
三、新一代思科虛擬化環境安全的解決方案
Cisco對於虛擬化環境的安全設計也提出了幾個CVD指引,其中針對思科雲端安全架構也提出了包括VMware及NetApp在內的整合產品的安全設計。但就虛擬機在虛擬化環境中的安全問題,包括必須滿足虛擬機或Virtual Appliances的vMotion與DRS等動態特性在內,思科提出了基於Nexus 1000V的VSG的解決方案,為雲端架構與資料中心帶來了更多的安全保護與符合法規的要求。Cisco VSG使用了內崁在Nexus 1000V VEM中的 vPath(Virtual Network Service Data Path)來提供高效能並具分散式保護的安全方案。 Cisco VSG可與Nexus 1000V VSM與VNMC(Virtual Network Management Center)協同合作,可以讓單位內的網管、系統與資安等Teams在管理面達成協同合作、不相衝突的完善管理環境。Nexus 1000V的VEM及VSM可以讓網管與系統Team分工合作,而資安Team則藉由VNMC根據資訊安全政策來建立Security Profiles與稽核這些Security Profiles的成效。VNMC所建立的動態Profiles可以套用到Nexus 1000V的Ports上,因此這些Profiles就可隨vMotion動態地移動。如下圖所示,Cisco VSG可以讓雲端或資料中心架構上多租戶特性的安全保護得到解決,藉由基於Nexus 1000V的vPath功能與分散式整合特性,讓資安人員可以針對雲端或資料中心內的虛擬機依照不同類型或安全等級用Zone的方式來做區隔保護,根據單位對於虛擬化環境的安全政策套用適當的安全政策到虛擬化環境中,並且這些安全政策可隨vMotion等動態特性移動,確保所有安全政策都可適切且適時的套用到雲端或虛擬化架構中。
結語
虛擬化安全引申出的安全問題還是非常的多,畢竟很多IT人員已習慣傳統的網路設計與資訊安全設計的方法。但網路的隔離還是最安全做法,但若無法做網路的實體隔離,搭配Virtual Firewall與Virtual IPS的使用亦可以加強各個Zones之間的安全問題,但記住Virtual Firewall的DMZ跟實體Firewall的DMZ一樣,都不是安全的區域,要避免把一些重要的VMs或Management Interface放到此區域中。DMZ也可以用專用的Virtualization Host的方式來單獨配置成一個DMZ Zone。
參考文件:
- www.vmware.com
|