官术网_书友最值得收藏!

3.1 云存儲虛擬化技術

最早的虛擬化技術可以追溯到20世紀60年代的IBM M44/44X[1]以及IBM 360/370系列主機[2-4],它們最初是用來解決IBM第三代架構和操作系統中多道程序的弱點。近幾十年來,虛擬化技術取得了飛速的發展,已經在服務器虛擬化、桌面虛擬化、應用虛擬化中得到了廣泛的應用,可以支持各類安全計算平臺[5][6]、內核調試[7][8]、服務器加固[9][10]、移動平臺[11][12]以及多操作系統[13]等。

通常,虛擬化服務是在客戶操作系統和底層硬件之間的軟件層中實現的。該軟件層接收來自操作系統的請求,執行相關指令,并且將結果返回給操作系統。這一層通常稱為虛擬機監視器(Virtual Machine Monitor,VMM)[14],可以實現各項任務之間的隔離。

虛擬化技術還可以用于系統安全防護。由于VMM的權限高于客戶操作系統的權限,因此VMM可有效發現與防御客戶操作系統內核中的惡意行為。Overshadow[15]、InkTag[16]、TrustPath[17]以及AppShield[18]等,都是在x86平臺上使用虛擬化技術保護系統安全的重要工作。

本章重點介紹云存儲環境下的虛擬化技術,本節將對云存儲虛擬化技術的基本概念、分類以及虛擬化給云存儲帶來的安全挑戰進行分析與介紹。

3.1.1 虛擬化技術概述

云計算與云存儲依賴虛擬化技術實現各類資源的動態分配、靈活調度、跨域共享,從而極大地提高資源利用效率,并使得IT資源能夠真正成為公共基礎設施,在各行各業得到廣泛應用。

維基百科對虛擬化的定義為:虛擬化是將計算機物理資源如服務器、網絡、存儲資源及內存等進行抽象與轉換后,提供一個資源的統一邏輯視圖,使用戶可以更好地利用這些資源。這些資源的新的虛擬視圖不受原物理資源的架設方式、地理位置或底層資源的物理配置的限制。

因此,可以說虛擬化是一種整合或邏輯劃分計算、存儲以及網絡資源來呈現一個或多個操作環境的技術,通過對硬件和軟件進行整合或劃分,實現機器仿真、模擬、時間共享等[19]。通常虛擬化將服務與硬件分離,使得一個硬件平臺中可以運行以前要多個硬件平臺才能執行的任務,同時每個任務的執行環境是隔離的。虛擬化也可以被認為是一個軟件框架,在一臺機器上模擬其他機器的指令[20]

目前廣泛使用的虛擬化架構主要有兩種類型,根據是否需要修改客戶操作系統,分為全虛擬化(Full Virtualization)和半虛擬化(Para-Virtualization)。全虛擬化不需要對客戶操作系統進行修改,具有良好的透明性和兼容性,但會帶來較大的軟件復雜度和性能開銷。半虛擬化需要修改客戶操作系統,因此一般用于開源操作系統,可以實現接近物理機的性能。兩種虛擬化技術的基本結構如圖3-1所示。

圖3-1 虛擬化平臺的兩種基本結構

在兩種基本結構中,虛擬機監視器(Virtual Machine Monitor,VMM)或虛擬機管理程序(Hypervisor)是虛擬化的核心部分。VMM是一種位于物理硬件與虛擬機之間的特殊操作系統,主要用于物理資源的抽象與分配、I/O設備的模擬以及虛擬機的管理與通信,可以提高資源利用效率,實現資源的動態分配、靈活調度與跨域共享等。早在1974年,Popek等人[21]就提出了VMM的3個本質特征。

(1)VMM提供了與原機器本質上相同的程序執行環境。

(2)運行在該環境中的程序的性能損失很小。

(3)VMM擁有對系統資源的完全控制。

為了提高性能,只有特權指令需要通過VMM來執行,所有非特權指令都直接在硬件上執行。這些特權指令通常是訪問硬件組件或改變系統關鍵數據結構的指令。處理器需要在管理模式中運行,從而能夠執行這些特權指令。

在全虛擬化架構中,VMM直接運行在物理硬件上,通過提供指令集和設備接口來提供對上層虛擬機的支持。全虛擬化技術通常需要結合二進制翻譯[22-24]和指令模擬[25-28]技術來實現。大多數運行在客戶操作系統中的特權指令被VMM捕獲,VMM在這些指令執行前捕獲并模擬這些指令。對于一些用戶模式下無法被捕獲的指令,將通過二進制翻譯技術處理。通過二進制翻譯技術,小的指令塊被翻譯成與該指令塊語義等價的一組新的指令。

在半虛擬化架構中,VMM作為一個應用程序運行在客戶操作系統上,利用客戶操作系統的功能實現硬件資源的抽象和上層虛擬機的管理。半虛擬化技術需要對客戶操作系統進行修改,特權指令被替換為一個虛擬化調用(Hypercall)來跳轉到VMM中。虛擬域可以通過Hypercall向VMM申請各種服務,如MMU(Memory Management Unit,內存管理單元)更新、I/O處理、對虛擬域的管理等。VMM為客戶操作系統提供了一些系統服務的虛擬化調用接口,包括內存管理、設備使用及終端管理等,以確保全部的特權模式活動都從客戶操作系統轉移到VMM中。

硬件輔助虛擬化是全虛擬化的硬件實現。由于虛擬化技術應用廣泛,主流硬件制造商在硬件層面提供了虛擬化支持,例如Intel的VT[29]、AMD-V[30]和ARM的VE(Virtualization Extension)[31]。當客戶操作系統執行特權操作時,CPU自動切換到特權模式;完成操作后,VMM通知CPU返回客戶操作系統繼續執行當前任務。硬件虛擬化已被廣泛應用于服務器平臺。

硬件輔助虛擬化不同于半虛擬化需要對操作系統進行修改,同時也不需要二進制翻譯和指令模擬技術,因此比全虛擬化和半虛擬化技術效率都要高。而半虛擬化技術通過改變客戶操作系統的代碼來避免調用特權指令,從而減少了二進制翻譯和指令模擬帶來的動態開銷,因此通常半虛擬化比全虛擬化速度更快。但是半虛擬化需要維護一個修改過的客戶操作系統,因此也將帶來一定的額外開銷。

在虛擬化系統中,有一個特權虛擬域Domain 0。它是虛擬機的控制域,相當于所有VMs中擁有root權限的管理員。Domain 0在所有其他虛擬域啟動之前要先啟動,并且所有的設備都會被分配給這個Domain 0,再由Domain 0管理并分配給其他的虛擬域,Domain 0自身也可以使用這些設備。其他虛擬域的創建、啟動、掛起等操作也都由Domain 0控制。此外,Domain 0還具有直接訪問硬件的權限。Domain 0是其他虛擬機的管理者和控制者,可以構建其他更多的虛擬域,并管理虛擬設備;它還能執行管理任務,比如虛擬機的休眠、喚醒和遷移等。

在Domain 0中安裝了硬件的原始驅動,擔任著為Domain U提供硬件服務的角色,如網絡數據通信(DMA傳輸除外)。Domain 0在接收數據包后,利用虛擬網橋技術,根據虛擬網卡地址將數據包轉發到目標虛擬機系統中。因此,擁有Domian 0的控制權限就控制了上層所有虛擬機系統,這也致使Domain 0成為攻擊者的一個主要目標。

Xen是由英國劍橋大學計算機實驗室開發的一個開放源代碼虛擬機監視器,它在單個計算機上能夠運行多達128個有完全功能的操作系統。Xen把策略的制定與實施分離,將策略的制定,也就是確定如何管理的相關工作交給Domain 0;而將策略的實施,也就是確定管理方案之后的具體實施,交給Hypervisor執行。在Domain 0中可以設置對虛擬機的管理參數,Hypervisor按照Domain 0中設置的參數去具體地配置虛擬機。

作為云計算與云存儲平臺的支撐技術,虛擬化為云存儲帶來極大的優勢。

(1)利用虛擬化技術,云存儲資源以服務的方式提供給用戶,可以極大地提高資源利用效率,從而降低成本,節約能源消耗。

(2)可以實現資源的動態分配與靈活調度,從而可以根據實際需要實時進行配置,可滿足不斷變化的業務需求。

(3)可以利用專業的安全服務提高安全性。個人用戶很難有專業的安全知識,但云服務提供商可以提供專業的安全解決方案。

(4)使得云存儲具有更高的可擴展性,可動態調整資源粒度,并動態進行擴展。

(5)更強的互操作性,云存儲可以實現平臺無關性,也可以滿足各種接口和協議的兼容性。

(6)云服務提供商具備實現容災備份的條件,可以改善災難恢復效率。

3.1.2 虛擬化技術分類

按照被虛擬資源的類型,虛擬化技術可分為存儲虛擬化、網絡虛擬化、服務器虛擬化、桌面虛擬化和應用虛擬化。

1. 存儲虛擬化

存儲網絡工業協會(Storage Networking Industry Association,SNIA)對存儲虛擬化的定義如下。

(1) The act of abstracting, hiding or isolating the internal function of a storage (sub) system or service from applications, compute servers or general network resources for the purpose of enabling application and network independent management of storage or data.(通過對存儲(子)系統或存儲服務的內部功能進行抽象、隱藏或隔離,使存儲或數據的管理與應用、服務器、網絡資源的管理分離,從而實現應用和網絡的獨立管理。)

(2) The application of virtualization to storage services or devices for the purpose of aggregating, hiding complexity or adding new capabilities to lower level storage resources. Storage can be virtualized simultaneously in multiple layers of a system, for instance to create HSM-like systems.(對存儲服務或設備進行虛擬化,能夠在對下一層存儲資源進行擴展時進行資源合并、降低實現的復雜度。存儲虛擬化可以在系統的多個層面實現,比如建立類似于分級存儲管理(Hierarchical Storage Management, HSM)的系統。)

存儲虛擬化旨在將具體的存儲設備或存儲系統與服務器操作系統分離,通過對具體存儲設備或存儲系統進行抽象,形成存儲資源的邏輯視圖,為存儲用戶提供統一的虛擬存儲池。存儲虛擬化可以屏蔽存儲設備或存儲系統的復雜性,簡化管理,提高資源利用效率;特別對于異構的存儲環境,可以顯著改善資源的管理成本,向用戶提供透明的存儲訪問。

存儲虛擬化包括以下3種方式。

(1)基于主機的存儲虛擬化:采用基于軟件的方式實現資源的管理。由于不需要任何額外硬件,實現簡單,設備成本低。但由于管理軟件在主機上運行,會占用主機的計算資源,擴展性相對較差;同時,可能由于不同存儲廠商軟硬件的兼容性帶來互操作性轉換開銷。

(2)基于存儲設備的存儲虛擬化:通過設備自身的功能模塊實現虛擬化。對于用戶來說,配置與管理簡單,用戶也可以與存儲設備提供商協調管理方法。但由于不同存儲廠商功能模塊的差異,對于異構的網絡存儲環境,會帶來額外的管理成本。

(3)基于網絡的存儲虛擬化:在網絡設備上實現存儲虛擬化功能。該方式也存在異構操作系統和多供應商存儲環境之間的互操作性問題。

2. 網絡虛擬化

網絡虛擬化是指對網絡設備進行虛擬化,即對傳統的路由器、交換機等設備進行擴展,在一個物理網絡上模擬出多個相互隔離的邏輯網絡,使得不同用戶使用獨立的網絡資源時間片,從而提高網絡資源利用效率,實現彈性的網絡。

網絡虛擬化采用基于軟件的方式,從物理網絡元素中分離網絡流量。通常包括虛擬局域網和虛擬專用網。虛擬局域網可以將一個物理局域網劃分成多個虛擬局域網,也可以將多個物理局域網的節點劃分到一個虛擬局域網中,使得虛擬局域網中的通信類似于物理局域網,并對用戶透明;虛擬專用網對網絡連接進行了抽象,允許遠程用戶連接單位內部的網絡,感覺就像在單位網絡中一樣。

網絡虛擬化平臺不僅可以實現物理網絡到虛擬網絡的“一虛一”映射,也能實現物理網絡到虛擬網絡的“多虛一”“一虛多”映射。此處的“一虛多”是指單個物理交換機可以虛擬映射成多個虛擬租戶網中的邏輯交換機,從而被不同的租戶共享;“多虛一”是指多個物理交換機和鏈路資源被虛擬成一個大型的邏輯交換機,即租戶眼中的一個交換機可能在物理上由多個物理交換機連接而成。

歐洲電信標準組織(ETSI)從服務提供商的角度還提出了網絡功能虛擬化(Network Functions Virtualization,NFV),一種軟件和硬件分離的架構,利用虛擬化技術將網絡節點的功能分成幾個功能模塊,然后以軟件的方式實現,使得網絡功能不再局限于硬件架構。文獻[32]對網絡功能虛擬化技術進行了綜述,詳細分析并比較了典型的解決方案,總結了它們的優勢與開銷。

3. 服務器虛擬化

服務器虛擬化是指將虛擬化技術應用在服務器上,將服務器物理資源抽象成邏輯資源,讓用戶不再受限于物理資源。服務器虛擬化的邏輯結構如圖3-2所示。

圖3-2 服務器虛擬化的邏輯結構

服務器虛擬化主要分為3種:“一虛多”“多虛一”和“多虛多”。“一虛多”是指一臺服務器被虛擬成多臺服務器,即將一臺物理服務器分割成多個相互獨立、互不干擾的虛擬環境;“多虛一”就是多臺獨立的物理服務器被虛擬為一臺邏輯服務器,使多臺服務器相互協作,處理同一個業務;“多虛多”則是將多臺物理服務器虛擬成一臺邏輯服務器,然后再將其劃分為多個虛擬環境,即多個業務在多臺虛擬服務器上運行。

常用的服務器虛擬化平臺包括VMware的vSphere、微軟的Hyper-V、劍橋大學的Xen、Qumranet公司的KVM等。

4. 桌面虛擬化

桌面虛擬化是指將計算機的終端系統(也稱為桌面)進行虛擬化,用戶可以通過任何設備,在任何地點、任何時間通過網絡訪問屬于個人的桌面系統。

桌面虛擬化可以實現多種方式接入,支持個性化桌面、支持多虛擬機、支持主流操作系統、支持網絡存儲空間的動態分配,使桌面系統的靈活性、安全性、可控制性和可管理性得到了保障。但從虛擬化桌面系統的整體安全角度來看,在接入、傳輸、管理與服務、數據存儲和用戶等各個方面,都會產生安全風險,忽略任何一個細節都會導致全局的安全問題。

5. 應用虛擬化

應用虛擬化是指將應用程序從底層操作系統分離出來,支持虛擬桌面與應用軟件虛擬化間的無縫集成。應用虛擬化為應用程序提供了一個虛擬的運行環境,把應用對底層的系統和硬件的依賴抽象出來,可以解決版本不兼容的問題。

應用虛擬化把應用程序的人機交互邏輯與計算邏輯分離開來。在用戶訪問一個虛擬化后的應用時,用戶計算機只需要把人機交互邏輯傳送到服務器端,服務器端便會為用戶開設獨立的會話空間,應用程序的計算邏輯在這個會話空間中運行,然后把變化后的人機交互邏輯傳送給客戶端,并且在客戶端相應設備展示出來,從而使用戶獲得如同運行本地應用程序一樣的訪問感受,因此極大地方便了應用程序的部署、更新和維護。

應用虛擬化通常采用“沙盒”技術實現安全性,它在計算機系統內部構建了一個獨立的虛擬空間,當發現程序的可疑行為時讓程序繼續運行,直至確定為病毒才終止,然后執行“回滾”機制,將病毒的痕跡和動作抹去,將系統恢復到正常狀態。由于病毒一直是在虛擬空間運行,所以不會對真實的計算機系統產生破壞。

3.1.3 虛擬化帶來的安全挑戰

虛擬化技術可以極大地提高資源利用效率、節約社會資源與能源,這與當前全球倡導的節能減排、綠色環保、保護生態、節約資源、改善環境、構建人與自然和諧的地球系統不謀而合。

盡管虛擬化技術有很多優勢,但是也帶來了很多的安全問題。因為云存儲中的虛擬化技術是建立在網絡服務之上,因此所有網絡安全問題在云存儲中都存在。本章主要討論虛擬化技術本身帶來的安全問題。虛擬化技術帶來的安全挑戰總結如下。

(1)在虛擬化環境下,不同虛擬主機間的網絡及邏輯邊界被模糊化,傳統互聯網環境下的網絡防火墻、網絡入侵檢測防護技術失去了作用。實現虛擬機間高效的安全隔離是一大安全挑戰。

(2)虛擬化環境下,“一虛多”“多虛多”導致攻擊者可以利用已有的虛擬主機使用權限,對同一虛擬化平臺和網絡上的其他虛擬主機進行非法訪問、嗅探和攻擊等。實現虛擬機間高效的認證與訪問控制是一大安全挑戰。

(3)虛擬化平臺在傳統的“網絡—系統—應用”的架構上增加了虛擬機監視器(VMM)或虛擬機管理程序(Hypervisor),從而增加了一層軟件棧,其軟件本身存在的安全漏洞以及增加的攻擊點,會導致更多的安全風險。因此,如何更加精確、有效地配置與管理VMM或Hypervisor的特殊權限是一大安全挑戰。

(4)虛擬化平臺下存在的安全漏洞及網絡入侵在不同虛擬機之間容易擴散,導致單臺虛擬機的安全問題可能影響整個虛擬化平臺。如果虛擬機隔離不當,就有可能出現非法訪問其他虛擬機或竊聽虛擬機間通信的情況。如何有效限制各類攻擊的擴散及最小化影響相鄰虛擬機是一大安全挑戰。

(5)當某一虛擬存儲資源被一個虛擬機使用過后并重新分配給其他虛擬機時,新的虛擬機可能獲取前一虛擬機的數據,從而導致數據泄露風險。如何有效限制同一虛擬資源被重復利用時帶來的安全風險是一大安全挑戰。

主站蜘蛛池模板: 贡觉县| 台北县| 汕头市| 肇庆市| 内黄县| 萨迦县| 汉寿县| 河北省| 新干县| 黔西| 炎陵县| 鹤岗市| 永顺县| 临西县| 四川省| 太仆寺旗| 乐都县| 庆阳市| 延津县| 新平| 崇左市| 克什克腾旗| 基隆市| 永康市| 梁河县| 武夷山市| 彰化市| 浙江省| 辽阳市| 武功县| 长岛县| 文水县| 扬中市| 响水县| 静海县| 兴山县| 郑州市| 昭通市| 榆树市| 乌拉特后旗| 伊金霍洛旗|