廣西現(xiàn)代職業(yè)技術(shù)學(xué)院 秦 鵬
虛擬化(Virtualization)是一種資源管理技術(shù),是將計(jì)算機(jī)的各種實(shí)體資源,如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,使用戶可以比原本的組態(tài)更好的方式來應(yīng)用這些資源。虛擬化技術(shù)是云技術(shù)中極為重要的關(guān)鍵技術(shù)之一,在資源的有效利用、動態(tài)調(diào)配方面有巨大優(yōu)勢。隨著云技術(shù)的不斷發(fā)展,虛擬化技術(shù)的應(yīng)用更為廣泛,其潛在的安全風(fēng)險日益受到關(guān)注。目前的主流虛擬化技術(shù)有Xen、KVM、VMware、Hyper V等,本文將對Xen和KVM兩種典型的虛擬化技術(shù)進(jìn)行分析對比,對技術(shù)上存在的安全風(fēng)險和應(yīng)對措施進(jìn)行探討[1]。
按虛擬對象劃分,虛擬化技術(shù)可分為軟件虛擬化和硬件虛擬化。軟件虛擬化是指用純軟件的方法在現(xiàn)有的物理平臺上實(shí)現(xiàn)對物理平臺訪問的截獲和模擬。硬件虛擬化指物理平臺本身提供了對特殊指令的截獲和重定向的硬件支持,甚至新的硬件會提供額外的資源來幫助軟件實(shí)現(xiàn)對關(guān)鍵硬件資源的虛擬化,從而提升性能。
按虛擬化程度劃分,虛擬化技術(shù)又可分為半虛擬化和全虛擬化。全虛擬化(Full virtualization),也稱為原始虛擬化技術(shù), 全虛擬化則為虛擬機(jī)提供了完整的虛擬計(jì)算平臺(例如X86),包括處理器、內(nèi)存和外設(shè),支持運(yùn)行任何理論上可在真實(shí)物理平臺上運(yùn)行的操作系統(tǒng),為虛擬機(jī)的配置提供了最大程度的靈活性。KVM是典型的全虛擬化技術(shù)。半虛擬化(Paravirtualization)是一種類似于全虛擬化的熱門技術(shù)。它使用Hypervisor(虛擬機(jī)管理程序)分享存取底層的硬件,但是它的客戶操作系統(tǒng)集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱, 因?yàn)椴僮飨到y(tǒng)自身能夠與虛擬進(jìn)程進(jìn)行很好的協(xié)作[2]。Xen是典型的半虛擬化技術(shù)。
(1)Xen 是一個開放源代碼虛擬機(jī)監(jiān)視器,由劍橋大學(xué)開發(fā)。它打算在單個計(jì)算機(jī)上運(yùn)行多達(dá)100個滿特征的操作系統(tǒng)。操作系統(tǒng)必須進(jìn)行顯式地修改(“移植”)以在Xen上運(yùn)行。這使得Xen無需特殊硬件支持,就能達(dá)到高性能的虛擬化。
在Xen環(huán)境中,主要有兩個組成部分。一個是虛擬機(jī)監(jiān)控器(VMM),也叫hypervisor。Hypervisor層在硬件與虛擬機(jī)之間,是必須最先載入到硬件的第一層。Hypervisor載入后,就可以部署虛擬機(jī)了。在虛擬機(jī)中,其中一個扮演著很重要的角色,就是0號虛擬機(jī),具有很高的特權(quán)。通常,在任何虛擬機(jī)之前安裝的操作系統(tǒng)才有這種特權(quán)。Xen被設(shè)計(jì)成為微內(nèi)核的實(shí)現(xiàn),其本身只負(fù)責(zé)管理處理器和內(nèi)存資源。Xen虛擬化方案在Hypervisor和0號虛擬機(jī)的功能上做了良好劃分,既能夠重用大部分Linux內(nèi)核的成熟代碼,又可以控制系統(tǒng)之間的隔離和針對虛擬機(jī)更加有效的管理與調(diào)度。Xen上面運(yùn)行的虛擬機(jī)既支持半虛擬化,也支持全虛擬化,可以運(yùn)行幾乎所有在X86物理平臺上運(yùn)行的操作系統(tǒng)。此外,最新的Xen內(nèi)核還支持ARM平臺的虛擬化。
(2)KVM(Kernel Virtual Machine,內(nèi)核虛擬機(jī))最初是由一個以色列的創(chuàng)業(yè)公司Qumranet開發(fā)的。KVM基于Linux Kernel,通過加載新的模塊使Linux Kernel本身變成一個Hypervisor。2006年10月,在先后完成了基本功能、動態(tài)遷移以及主要的性能優(yōu)化之后,Qumranet正式對外宣布了KVM的誕生。
KVM是基于虛擬化擴(kuò)展(IntelVT或AMD—V)的X86硬件,是Linux完全原生的全虛擬化解決方案。KVM目前設(shè)計(jì)為通過可加載的內(nèi)核模塊支持廣泛的虛擬機(jī)操作系統(tǒng),如Linux、BSD、Solari s、Window s、Haiku、ReactOS和AROSResearch Operating System。在KVM架構(gòu)中,虛擬機(jī)實(shí)現(xiàn)為常規(guī)的Linux進(jìn)程,由標(biāo)準(zhǔn)Linux調(diào)度程序進(jìn)行調(diào)度。事實(shí)上,每個虛擬CPU顯示為一個常規(guī)的Lihux進(jìn)程。這使KVM能夠使用Linux內(nèi)核的所有功能。
Xen和KVM通過虛擬化技術(shù)提高了物理資源的利用效率,但是虛擬化技術(shù)也面臨虛擬機(jī)逃逸、跳躍攻擊、虛擬機(jī)蔓延、隱通道、DMA攻擊等安全風(fēng)險。由于Xen和KVM均采用了開源的Linux內(nèi)核,Linux操作系統(tǒng)存在的漏洞也是采用Xen和KVM虛擬化技術(shù)產(chǎn)品的漏洞[3]。根據(jù)CVE確認(rèn)的漏洞,Linux內(nèi)核存在的主要漏洞是拒絕服務(wù)漏洞、遠(yuǎn)程溢出漏洞、本地權(quán)限提升和信息泄露漏洞,這也是Xen和KVM主要存在的漏洞,同時在緩沖區(qū)溢出、未授權(quán)訪問、本地整形溢出、命令執(zhí)行等方面也存在少量漏洞。下面將對Xen和KVM面臨的主要幾類安全問題進(jìn)行對策分析。
入侵者可利用虛擬機(jī)軟件的漏洞進(jìn)行攻擊,控制宿主機(jī)操作系統(tǒng),進(jìn)行非授權(quán)操作。利用VMM缺乏安全信任機(jī)制的漏洞,可通過應(yīng)用程序接口發(fā)起攻擊,控制某臺虛擬機(jī)向VMM發(fā)出請求獲取授權(quán)。若利用網(wǎng)絡(luò)配置的缺陷,入侵者可連接到VMM的IP地址進(jìn)而對VMM進(jìn)行網(wǎng)絡(luò)攻擊。應(yīng)對的措施有:(1)定期執(zhí)行漏洞掃描,以及宿主機(jī)操作系統(tǒng)的版本和補(bǔ)丁管理,采用Selinux和sVirt技術(shù),降低操作系統(tǒng)被攻擊的風(fēng)險。(2)構(gòu)建可信虛擬化平臺,宿主機(jī)選用具有可信計(jì)算平臺安全模塊的服務(wù)器,搭建VMM與宿主機(jī)、虛擬機(jī)之間的信任體系。(3)通過管理vLan子網(wǎng)管理分配對網(wǎng)絡(luò)進(jìn)行邏輯隔離,設(shè)計(jì)具有超級權(quán)限的平臺管理虛擬機(jī),利用防火墻訪問控制策略實(shí)現(xiàn)對平臺中的VMM進(jìn)行全面監(jiān)管。
入侵者可通過攻擊某臺虛擬機(jī)劫持在同一宿主機(jī)上的其他虛擬機(jī),并以此為跳板不斷入侵其他虛擬機(jī)。應(yīng)對措施:(1)采取隔離CPU指令隔離,從而使虛擬機(jī)操作系統(tǒng)無法執(zhí)行特權(quán)指令劫持主機(jī)。(2)在Hypervisor層和管理監(jiān)控層運(yùn)行的安全API監(jiān)測虛擬環(huán)境中的所有活動并執(zhí)行安全策略。
虛擬機(jī)數(shù)量接近或超過管理員可以有效管理的數(shù)量,從而過度使用資源和浪費(fèi)license。應(yīng)對措施:(1)實(shí)時監(jiān)控虛擬化環(huán)境中的工作負(fù)載。(2)制定合理的虛擬機(jī)部署和生命周期管理。(3)利用自服務(wù)門戶,幫助管理員控制虛擬資源損耗。
利用虛擬化環(huán)境中的內(nèi)存共享和磁盤共享,傳遞違規(guī)信息。應(yīng)對措施:(1)采用內(nèi)存隔離機(jī)制,虛擬機(jī)之間不能共享內(nèi)存。(2)虛擬機(jī)遷移、關(guān)機(jī)或刪除后,對其使用的內(nèi)存空間進(jìn)行清零。
利用虛擬機(jī)間內(nèi)存共享,攻擊或控制其他虛擬機(jī)的內(nèi)存,破壞或泄露內(nèi)存信息。應(yīng)對措施:禁用虛擬機(jī)間共享內(nèi)存空間。
宿主機(jī)硬件、虛擬化軟件被篡改,植入木馬或惡意固件,危及整個宿主機(jī)及其虛擬機(jī)的安全。應(yīng)對措施:(1)對服務(wù)器、虛擬化軟件和管理平臺組件等設(shè)備的完整性進(jìn)行檢測,并在檢測到完整性收到破壞后具有恢復(fù)的措施。(2)定制化服務(wù)器,去除無用或不必要的服務(wù)器配件。(3)定制虛擬化軟件,裁剪無用或不必要的組件。
虛擬化環(huán)境超級管理員權(quán)限大,同時具備虛擬資源、網(wǎng)絡(luò)、賬號等各種資源管理能力。應(yīng)對措施:按照權(quán)限最小化原則對管理員進(jìn)行授權(quán),減少管理員權(quán)限。
[1]肖強(qiáng),徐文亭,何歡.虛擬現(xiàn)實(shí)技術(shù)和云計(jì)算的應(yīng)用研究[J].信息安全與技術(shù),2015.
[2]劉國樂,何建波,李瑜.Xen與KVM虛擬化技術(shù)原理及安全風(fēng)險[J].保密科學(xué)技術(shù),2015.
[3]孫琳程.虛擬機(jī)KVM與XEN的性能分析[J].電腦知識與技術(shù):學(xué)術(shù)交流,2013:2364-2366.