武 越,劉向東,段翼真
(中國航天科工集團第二研究院706所,北京100039)
桌面虛擬化,是基于云計算的一種針對用戶桌面的部署模式,將散亂分布于各處的用戶桌面遷移至云中,以虛擬機的形式在云端數(shù)據(jù)中心服務(wù)器上運行虛擬桌面。桌面虛擬化環(huán)境中,用戶應(yīng)用程序具有不同的安全等級,存儲資源也具有不同的安全等級,保證用戶不同安全等級的應(yīng)用程序和存儲資源的持續(xù)隔離至關(guān)重要。但是,大量用戶的虛擬桌面運行在數(shù)據(jù)中心的同一臺服務(wù)器上,打破了傳統(tǒng)用戶桌面運行在各自主機上的物理隔離局面,攻擊者可以利用虛擬化平臺的安全漏洞對虛擬桌面進行攻擊,竊取用戶的敏感數(shù)據(jù)或與用戶進行非法通信,并有可能在攻破一個用戶虛擬桌面之后進而控制服務(wù)器內(nèi)其他用戶的虛擬桌面[1]。
為應(yīng)對桌面虛擬化集中部署帶來的安全威脅,本文首先對現(xiàn)有虛擬桌面進行改進,將用戶虛擬桌面中不同安全等級的應(yīng)用程序運行在不同的虛擬機中,以實現(xiàn)安全隔離;同時對虛擬機和存儲資源依據(jù)不同的安全等級進行虛擬安全域劃分并使用安全標簽進行標識,制定訪問控制策略,防止用戶間非法通信和對存儲資源的越權(quán)訪問;最后,基于以上研究,設(shè)計實現(xiàn)了桌面虛擬化安全訪問控制架構(gòu)。
與傳統(tǒng)本地桌面相比,雖然桌面虛擬化具有其獨特優(yōu)勢,但是也存在相應(yīng)的安全風險。本節(jié)將詳細描述當前桌面虛擬化的現(xiàn)狀,并逐一分析其存在的安全問題。
桌面虛擬化將用戶的終端設(shè)備與桌面環(huán)境解耦合,每個用戶的虛擬桌面運行在云計算數(shù)據(jù)中心服務(wù)器上,用戶使用終端設(shè)備依靠桌面?zhèn)鬏攨f(xié)議訪問虛擬桌面。具體的桌面虛擬化體系架構(gòu)如圖1所示。
圖1 桌面虛擬化體系架構(gòu)
桌面虛擬化具有節(jié)約開銷、易于運維管理、靈活訪問、方便備份的優(yōu)點,很多企業(yè)和行業(yè)基于提升管理維護效率和降低信息外泄風險的考慮,紛紛采用桌面虛擬化技術(shù)改造或重建內(nèi)部信息基礎(chǔ)設(shè)施,將散落分布的用戶終端集中到云計算數(shù)據(jù)中心進行統(tǒng)一管理。桌面虛擬化作為具有前沿革命性的終端部署模式,由于其強大的集中部署和便捷管理,已經(jīng)開始在各個單位企業(yè)中快速實施,逐漸取代了傳統(tǒng)的分布式終端部署模式。
雖然桌面虛擬化具有傳統(tǒng)本地桌面無法比擬的優(yōu)勢,但是隨著虛擬化等技術(shù)的引入,當前桌面虛擬化架構(gòu)面臨新的安全風險。
當前,在桌面虛擬化的部署模式中,大量虛擬桌面運行在同一虛擬化平臺上,導(dǎo)致不同安全等級的應(yīng)用程序運行在同一虛擬化平臺,用戶不同安全等級的數(shù)據(jù)混雜存儲,打破了傳統(tǒng)用戶桌面運行在各自物理主機上的物理隔離,不便于分類管理。同時,不同用戶的虛擬桌面共享服務(wù)器資源 (虛擬機監(jiān)視器 (hypervisor)和包括CPU、內(nèi)存、I/O在內(nèi)的各類服務(wù)器硬件資源[2]),為攻擊者利用虛擬桌面底層的弱隔離性進行攻擊提供了可能。如果同一臺服務(wù)器上的虛擬桌面被攻擊者攻破,那么攻擊者還可以進一步?jīng)_破虛擬桌面的束縛,將安全威脅迅速擴散到服務(wù)器上的其它虛擬桌面中,加劇安全風險。
因此,需要對用戶虛擬桌面的應(yīng)用程序和數(shù)據(jù)依據(jù)不同的安全等級進行分割和管理,并在不同用戶的虛擬桌面之間和同一用戶不同安全等級的應(yīng)用程序和數(shù)據(jù)之間建立堅固的安全訪問控制機制,對用戶之間的訪問行為進行監(jiān)控和約束,對不同安全等級虛擬機之間的通信行為進行管理。
通過分析桌面虛擬化面臨的安全威脅,對現(xiàn)有虛擬桌面結(jié)構(gòu)進行改進并研究相應(yīng)關(guān)鍵技術(shù),本文對桌面虛擬化環(huán)境中的虛擬機和存儲資源依據(jù)不同密級進行分類慣例,制定了相應(yīng)的安全策略,可以增強虛擬桌面的自身安全性,提高虛擬桌面抵御安全威脅的能力,實現(xiàn)對桌面虛擬化中虛擬機和存儲資源的安全訪問控制。
為了將用戶不同安全等級的應(yīng)用程序進行分類管理,本文將用戶不同安全等級的應(yīng)用程序運行在對應(yīng)安全等級的虛擬機中,并使用不同安全防護等級的策略進行防護,對現(xiàn)有的虛擬桌面架構(gòu)進行改進并進行安全增強。改進后的虛擬桌面架構(gòu)如圖2所示。
圖2 改進后的虛擬桌面架構(gòu)
改進后的虛擬桌面架構(gòu)為用戶不同安全等級的應(yīng)用程序提供隔離的運行環(huán)境,對用戶數(shù)據(jù)進行分類管理,可以避免虛擬桌面中的所有應(yīng)用程序全部運行在同一臺虛擬機中過于集中的運行模式帶來的安全威脅,同時能夠分散攻擊者的攻擊目標,為不同安全等級的應(yīng)用程序、數(shù)據(jù)和不同功能的配置信息分配更加明確的運行空間,將攻擊者的攻擊范圍限制在更為狹小的范圍內(nèi),防止攻擊效果的大面積擴散。這樣,攻擊者對一個應(yīng)用程序的攻擊不會影響到其它應(yīng)用程序的正常運行,即使一臺虛擬機被攻破,其它虛擬機中的應(yīng)用程序和系統(tǒng)配置等將不受影響。
數(shù)據(jù)中心服務(wù)器系統(tǒng)文件和配置信息中存在的潛在漏洞也會導(dǎo)致整個虛擬桌面被感染,故對虛擬桌面進行安全改進時,將網(wǎng)絡(luò)代碼 (包括網(wǎng)卡驅(qū)動和協(xié)議棧等)、存儲設(shè)備驅(qū)動 (包括磁盤驅(qū)動,USB閃存驅(qū)動等)和顯示代碼分別移動到專門的虛擬機 (即分別為網(wǎng)絡(luò)管理VM,存儲管理VM,顯示管理VM)中,使攻擊者在發(fā)現(xiàn)了一個潛在代碼漏洞之后,無法繼續(xù)控制或感染虛擬桌面其它部分的正常運行。
為避免虛擬機拆分過細帶來的資源占用問題,各臺虛擬機會共用相同的操作系統(tǒng)只讀文件[3],只為用戶目錄和特殊的系統(tǒng)配置分配專門的存儲空間,避免為每臺虛擬機復(fù)制一個操作系統(tǒng)鏡像造成的磁盤空間浪費。
同時,為便于后端數(shù)據(jù)中心管理,對虛擬機和存儲資源根據(jù)不同的安全等級進行虛擬安全域劃分并使用安全標簽進行標識,制定訪問控制策略,只有符合策略的訪問行為才能生效,防止用戶間的非法通信和對存儲資源的越權(quán)訪問。
虛擬安全域的概念建立在可信虛擬域的基礎(chǔ)之上。可信虛擬域最初由IBM實驗室的研究人員于2005年提出[4],它由一組互相信任的虛擬機組成,這組虛擬機共享相同的安全策略,并且獨立于物理平臺。
基于以上思路,依據(jù)桌面虛擬化環(huán)境中的安全等級對虛擬機進行劃分,將分布在不同物理服務(wù)器上的具有相同安全等級的虛擬機組成一個具有統(tǒng)一安全策略的獨立區(qū)域,即虛擬安全域。虛擬安全域結(jié)構(gòu)如圖3所示。虛擬安全域的管理服務(wù)器負責制定安全策略,并將策略下發(fā)到每臺服務(wù)器的管理虛擬機 (Xen平臺即為Dom0)中,由管理虛擬機執(zhí)行安全策略。
圖3 虛擬安全域結(jié)構(gòu)
不同的虛擬安全域是隔離的,這種隔離不受系統(tǒng)架構(gòu)、hypervisor、虛擬機生命周期和資源分配的影響。在滿足了用戶訪問控制策略并保證了通信的完整性和保密性之后,同一虛擬安全域中具有相同安全等級的虛擬機之間可以自由通信,虛擬安全域的內(nèi)部通信建立在認證和加密信道(例如IPsec)之上。例如,如果用戶A的機密級應(yīng)用程序想要與用戶C的機密級應(yīng)用程序進行通信,首先會由管理虛擬機驗證訪問控制策略,如果用戶A可以訪問用戶C,則兩個機密級虛擬機之間可以進行通信。
安全標簽對虛擬安全域中所有的虛擬機、存儲資源和VLAN進行標識,是對虛擬安全域的直觀表示,數(shù)據(jù)中心虛擬桌面管理員在對虛擬安全域制定隔離策略和其它安全策略時,通過安全標簽指定對應(yīng)的虛擬安全域。
在對桌面虛擬化架構(gòu)進行改進之后,對虛擬桌面的安全防護分為橫向和縱向兩個方面。橫向,對屬于同一用戶虛擬桌面的虛擬機和資源依據(jù)基于用戶的訪問控制策略進行統(tǒng)一管理;縱向,將具有相同安全等級的虛擬機和資源劃分到同一虛擬安全域中,使用相應(yīng)安全等級的防護策略進行隔離保護和通信控制[5]。故使用<用戶,安全等級>二元組形式的安全標簽對各類設(shè)備進行標識,以清晰表明虛擬桌面中虛擬機和存儲資源所屬的用戶和安全等級。
在本文的實現(xiàn)中,依據(jù)虛擬桌面的安全等級,使用不同的安全標簽對虛擬桌面所在的虛擬機和存儲資源進行標注,標簽信息作為虛擬機和資源屬性信息的一部分,只能通過虛擬機監(jiān)視器創(chuàng)建、修改和管理。桌面虛擬化安全訪問控制架構(gòu)依據(jù)安全標簽判斷用戶虛擬桌面能夠訪問的資源和通信的用戶。
虛擬桌面運行在數(shù)據(jù)中心服務(wù)器的虛擬機中,而虛擬機運行在hypervisor之上,所以虛擬機的安全和隔離將最終依賴于hypervisor的堅固。
hypervisor安全增強機制建立在現(xiàn)有hypervisor提供的隔離基礎(chǔ)之上,同時在現(xiàn)有hypervisor中增加訪問控制模塊ACM (access control model),通過ACM中的訪問決策函數(shù),對虛擬機之間的資源共享和通信行為進行仲裁判定和約束控制[6]。詳細的hypervisor安全增強架構(gòu)如圖4所示。
圖4 hypervisor安全增強架構(gòu)
在hypervisor安全增強的訪問控制結(jié)構(gòu)中,有兩組訪問仲裁鉤子 (hook)。第一組鉤子,位于hypervisor中,控制虛擬機對事件通道、grant table、網(wǎng)絡(luò)和虛擬磁盤的訪問,以此約束虛擬機之間的通信和共享行為;另一組鉤子,位于管理虛擬機中 (若在Xen中即為Dom0),控制虛擬機對資源 (虛擬磁盤或磁盤分區(qū))的訪問。這兩組鉤子都會調(diào)用訪問控制模塊ACM中的訪問決策函數(shù)以進行仲裁判定。
通過對hypervisor進行安全增強,可以在桌面虛擬化底層確保系統(tǒng)安全策略的正確執(zhí)行[7],實現(xiàn)對虛擬機行為的強制訪問控制。通過強制訪問控制限制用戶的行為,可以實現(xiàn):①病毒和惡意代碼不會從一個用戶虛擬機傳播到另一個;②數(shù)據(jù)不會輕易從一個用戶虛擬機泄漏到另一個;③攻擊者攻破一臺虛擬機,不會影響其它虛擬機的正常運行。
根據(jù)數(shù)據(jù)中心大規(guī)模部署的特點,對數(shù)據(jù)中心機架上的刀片服務(wù)器進行配置。數(shù)據(jù)中心每個機架上含有固定數(shù)量的刀片服務(wù)器,每個刀片是一個含有獨立處理器、內(nèi)存、網(wǎng)絡(luò)和存儲適配器的計算系統(tǒng)。通過機架上掛載的以太網(wǎng)交換機對刀片進行互聯(lián)并訪問網(wǎng)絡(luò)存儲 (例如SANs),數(shù)據(jù)中心部署方案如圖5所示。圖7中從虛擬桌面系統(tǒng)管理端 (以下簡稱管理端)到刀片、物理交換機、SAN存儲控制節(jié)點 (SVC)的虛線箭頭代表管理應(yīng)用程序?qū)@些組件的配置行為。管理端通過Xen API配置刀片上運行的Xen系統(tǒng),配置操作包括為虛擬機、VLAN、邏輯分離的網(wǎng)絡(luò)和存儲設(shè)備等資源進行邏輯分離和安全標簽標注,不同安全等級的虛擬安全域分別用不同的安全標簽進行標識。
圖5 數(shù)據(jù)中心部署方案
在進行具體部署時,將安全等級不同的虛擬安全域分別部署在不同的刀片上,以實現(xiàn)物理隔離。在Xen中,Domain 0通過軟件模擬的虛擬網(wǎng)橋為刀片上相同虛擬安全域中的虛擬機進行互聯(lián),同時對虛擬網(wǎng)橋使用相同的顏色進行安全標簽標注;同一機架上的不同虛擬安全域之間通過機架上掛載的物理交換機進行網(wǎng)絡(luò)流量交換,不同機架上的虛擬安全域之間通過數(shù)據(jù)中心物理交換機進行網(wǎng)絡(luò)流量交換。
在Xen系統(tǒng)中,相同顏色的虛擬機通過相對應(yīng)的網(wǎng)橋進行互聯(lián),例如所有機密級虛擬機全部通過機密級網(wǎng)橋進行互聯(lián),所有秘密級虛擬機全部通過秘密級網(wǎng)橋進行互聯(lián),這種機制保證了只有同一安全域中的虛擬機之間才能互相通信[8]。
為實現(xiàn)基于安全標簽的存儲隔離,本文將安全訪問控制機制 與 CbCS (capability-based command security)機制進行結(jié)合。CbCS機制最初由Michael Factor等人于2007年提出[9],該機制對 SCSI (small computer system interface)協(xié)議進行擴展,實現(xiàn)了對網(wǎng)絡(luò)存儲設(shè)備的訪問控制。CbCS機制要求:發(fā)出資源訪問請求的虛擬機在對資源進行訪問之前,需要給出對資源具有訪問權(quán)限證明的證書[10]。結(jié)合CbCS機制,在涉密信息系統(tǒng)的桌面虛擬化環(huán)境中,由管理虛擬機為提出資源訪問請求的虛擬機發(fā)放證書,并使用消息認證碼 (MAC)對證書進行安全增強,防止證書被偽造或修改,消息認證碼與存儲資源使用同一個對稱密鑰,使存儲設(shè)備可以對證書進行驗證。
本文的桌面虛擬化安全訪問控制架構(gòu)對于證書的生成增加了一個額外檢驗步驟,即虛擬機和存儲資源必須具有相匹配的安全標簽,否則虛擬機無法獲取到訪問存儲資源的證書。
圖6即為整合了CbCS機制的安全訪問控制機制。具體操作步驟為:步驟一,虛擬桌面系統(tǒng)管理端 (以下簡稱管理端)在管理虛擬機 (在Xen中為Domain 0)上部署訪問控制策略,同時在存儲控制器上建立對稱密鑰;步驟二,管理端對存儲資源進行安全標簽標識;步驟三,管理端為虛擬機分配安全標簽和用于驗證管理端的私鑰,這一私鑰和虛擬機配置信息同時保存在管理虛擬機中;步驟四:管理虛擬機驗證管理端的屬性,并向管理端請求獲取虛擬機訪問存儲資源時使用的證書,在管理端,如果虛擬機和存儲資源具有相同的安全標簽,則同意獲取證書的請求,否則,管理端拒絕請求。最后,虛擬機發(fā)送I/O命令,命令在執(zhí)行之前會被hypervisor截取并進行安全標簽驗證,同時還會被存儲系統(tǒng)截取進行證書認證。
在實現(xiàn)過程中,管理端、存儲系統(tǒng)和管理虛擬機將作為可信計算基的一部分。管理端負責存儲密鑰并根據(jù)隔離策略準確制定訪問控制策略,同時虛擬機信任Domain 0不會將其私鑰和證書泄露。如果虛擬機不遵守CbCS機制,存儲資源將拒絕虛擬機的訪問。
為降低安全威脅,本文中對存儲資源的訪問遵循最小特權(quán)原則,當虛擬機被遷移出系統(tǒng)時,管理虛擬機將會把與虛擬機有關(guān)的認證信息和證書全部刪除。這樣,保證了存儲資源只能被對應(yīng)宿主機上運行的虛擬機訪問。
圖6 安全訪問控制實現(xiàn)方案
Xen中虛擬機之間的網(wǎng)絡(luò)通信通過Domain 0中的虛擬網(wǎng)橋進行實現(xiàn),虛擬網(wǎng)橋?qū)⑺刑摂M機的虛擬網(wǎng)卡與實際物理網(wǎng)卡進行連接,但這樣使得所有虛擬機可以潛在看到所有通信流量,無法保證隔離,不足以滿足大規(guī)模、安全級別高的應(yīng)用環(huán)境的安全需求[11]。
在Xen系統(tǒng)中,Domain 0擁有物理網(wǎng)絡(luò)設(shè)備驅(qū)動,并控制著對系統(tǒng)中客戶虛擬機的網(wǎng)絡(luò)訪問行為[12]。使用網(wǎng)絡(luò)隔離組件在Domain 0中配置合適的VLAN,并將安全標簽技術(shù)應(yīng)用于VLAN中,可以實現(xiàn)虛擬桌面之間的網(wǎng)絡(luò)隔離。具體的隔離通信實現(xiàn)方案如圖7所示。
VLAN通過為以太網(wǎng)幀分配不同的VLAN ID號,實現(xiàn)在一個物理局域網(wǎng)上模擬出多個分離的虛擬局域網(wǎng),對帶有不同ID號的以太網(wǎng)幀進行嚴格隔離。數(shù)據(jù)中心與對應(yīng)的VLAN和虛擬網(wǎng)橋使用相同的安全標簽,并將具有相同安全標簽的虛擬機和虛擬網(wǎng)橋彼此互聯(lián),實現(xiàn)只有相同安全等級的虛擬機之間可以互相通信;不同安全等級的虛擬機之間即使連接到了同一個物理系統(tǒng)中,由于不具有相同的安全標簽,也不能穿過VLAN進行通信。
在實現(xiàn)時,安全虛擬桌面網(wǎng)絡(luò)隔離組件一方面在虛擬化系統(tǒng)內(nèi)部的VLAN上配置安全標簽,另一方面在虛擬化系統(tǒng)與外部進行互聯(lián)的以太網(wǎng)交換機上為VLAN配置安全標簽。這樣,虛擬機在本地系統(tǒng)或遠程系統(tǒng)上只能與含有相同安全標簽的虛擬機進行通信。
本文對當前桌面虛擬化環(huán)境的整體結(jié)構(gòu)和各部分功能進行了研究,分析了當前桌面虛擬化的優(yōu)點和不足,著重針對現(xiàn)有桌面虛擬化訪問控制架構(gòu)中存在的安全問題,對虛擬桌面架構(gòu)進行了改進,并設(shè)計實現(xiàn)了桌面虛擬化安全訪問控制架構(gòu)。
圖7 隔離通信實現(xiàn)方案
本文的安全架構(gòu)中,通過對hypervisor進行安全增強實現(xiàn)了虛擬桌面的強制訪問控制和對虛擬桌面的安全隔離;通過結(jié)合CbCS機制實現(xiàn)了基于安全標簽的安全存儲訪問,防止越權(quán)訪問存儲資源;通過對虛擬網(wǎng)橋配置安全策略實現(xiàn)了網(wǎng)絡(luò)隔離,防止用戶間的非法通信。
[1]Joanna Rutkowska.Security challenges in virtualized envirnments [C]//San Francisco:RSA Confrence,2008:2-5.
[2]Matt Piotrowski.A system for privilege separation of legacy desktop applications [R].UCB/EECS-2010-70.California:University of California at Berkeley,2010:3-6.
[3]Carl Gebhardt,Allan Tomlinson.Secure virtual disk images for grid computing [C]//Third Asia-Pacific Trusted Infrastructure Technologies Conference,2008:19-22.
[4]Luigi Catuogno,Alexandra Dmitrienko.Trusted virtual domains-design,implementation and lessons learned [G].LNCS 6163:Proceedings of the First International Conference on Trusted Systems,2010:156-159.
[5]Jasti A,Shah P,Nagaraj R,et al.Security in multi-tenancy cloud [C]//San Jose:Proceedings of IEEE International Carnahan Conference on Security Technology,2010:35-41.
[6]Yu Lei,Weng Chuliang,Li Minglu,et al.Security challenges on the clone,snapshot,migration and rollback of Xen based computing environments [C]//Guangzhou,China:Proceedings of the Fifth Annual CinaGrid Conference,2012:223-227.
[7]Serdar Cabuk,Chris I Dalton.Towards automated security policy enforcement in multi-tenant virtual data centers [J].Journal of Computer Security,2010,18 (1):89-121.
[8]Udaya Tupakula,Vijay Varadharajan.TVDSEC:Trusted virtual domain security [C]//4th IEEE International Conference on Utility and Cloud Computing,2011:57-64.
[9]Michael Factor,Dalit Naor.Capability based secure access control to networked storage devices [C]//24th IEEE Conference on Mass Storage Systems and Technologies,2007:43-47.
[10]Tim Mather,Subra Kumaraswamy,Shahed Latif.Cloud security and privacy [M].O’Reilly Media,2009:29-30.
[11]Wu Hanqian,Ding Yi,Winer Chuck,et al.Network security for virtual machine in cloud computing [C]//Seoul Korea:Proceedings of 5th International Conference on Computer Sciences and Convergence Information Technology,2010:18-21.
[12]Serdar Cabuk,Chris I Dalton,HariGovind Ramasamy,et al.Towards automated provisioning of secure virtualised networks[C]//Proceedings of ACM CCS,2007:12-14.