近年來隨著信息技術在全球的迅猛發展,云計算已受到各界廣泛關注。云計算的特性可歸結為虛擬化、分布式部署和動態擴展性,其中虛擬化是云計算有別于傳統IT環境的最關鍵特性。而在眾多虛擬化技術中,應用最廣泛的當屬服務器虛擬化,此項技術可以將一臺或一群物理服務器構建成虛擬化環境,在其中虛擬出更多可按需靈活配置的虛擬系統,每個系統相互獨立。此項技術可以充分改進硬件資源的利用率,降低能耗,有效實現計算資源整合的目的。然而服務器虛擬化并未止步于此,發展到今天,它已支持跨越IT架構實現各個資源層面的靈活部署,可謂突飛猛進。它的快速發展直接推動了當代云計算應用日趨多樣化和復雜化,開啟了人類跨入大數據時代的大門。
然而萬事有利必有弊。正是由于各種虛擬化技術的引入和發展,使得云計算遇到了傳統IT環境前所未有的安全挑戰。通過和傳統IT環境的對比情況來看,筆者認為云計算的安全問題大致可以劃分為三類:①許多傳統IT環境未能解決的安全問題,延續到云計算中仍然無能為力;②一些傳統IT環境中已經能夠克服的常規安全問題,但進入云計算后表現得更新穎、更復雜、更棘手;③包括服務器虛擬化技術在內的各種虛擬化技術,它們自身存在漏洞缺陷有待完善。
盡管云計算的安全問題飽受爭議,但是它的優勢也是有目共睹的,在沒有找到更優秀的替代技術之前,人們不應因噎廢食,必須迎難而上,針對新的安全困難逐一尋找對策。人們應該明白一個道理,若想找出一攬子的方案來解決云計算中的所有安全問題,那只能是一種不切實際的美麗幻想。云計算的安全課題內容過于寬泛,本文僅從云計算最核心的技術之一——服務器虛擬化技術出發,著重論述基于此項技術所產生的安全風險,并嘗試在生產應用實踐中給出解決方案或思路。
1.服務器虛擬化實現模式介紹
目前市面上流行的服務器擬化軟件有好多種,一些主流的實現技術往往異同并存,因此技術界對它們的技術分類也莫衷一是。本人經過綜合研究,認為當今真正能夠用于商用的企業級服務器虛擬化系統,基于它們的實現模式來分類,大致也只有三大“流派”,分別是:全虛擬化,半虛擬化,以及硬件輔助虛擬化。至于其它如硬件仿真和操作系統級的虛擬化,它們更多是應用于硬件開發環境和個人使用環境,它們目前的技術發展難有質的突破,暫時不可能成為企業級商用虛擬化技術的主流,更不會成為云計算的基礎,因此本文不討論它們的安全問題。本節針對這三種主流虛擬化實現技術進行簡要概述。
1.1 全虛擬化
圖1 全虛擬化示意圖
如圖1所示,全虛擬化的實現方式是:在客戶操作系統(即虛擬機系統)和原始硬件(即物理機硬件資源)之間插入一個虛擬機監視器VMM(Virtual Machine Monitor),又稱為Hypervisor,通過VMM在虛擬機和原始硬件之間進行協調。文獻指出,VMM實時探測虛擬機發出的指令流,動態識別特權或敏感指令(Ring 0),一旦識別出這些指令,VMM就攔截它們,通過二進制轉譯(VMWare的BT技術)來模擬這些指令的行為,向原始硬件發出指令。當然,如果虛擬機發出的只是用戶級的指令(Ring 3),VMM不攔截,因為二進制轉譯對性能將產生巨大負荷,而非關鍵指令并不控制硬件或威脅系統安全,因此可以放行。這種策略在提升效率的同時,也保障了安全。
全虛擬化的典型代表就是VMWare vSphere。它的優點是操作系統無需任何修改就可以直接運行,問題是二進制轉譯工作往往造成性能大幅下降,而且目前尚未找到加速二進制轉譯的好辦法。
1.2 半虛擬化
并行虛擬化(paravirtualization)慣稱為半虛擬化。它與全虛擬化的共同點是,都采用一個VMM實現對底層硬件的共享訪問。但是半虛擬化將許多與虛擬化相關的代碼植入了虛擬機操作系統,于是不再需要VMM捕獲特權指令和二進制轉譯。半虛擬化為每個虛擬機提供一個特殊的API,但要求在客戶操作系統中進行大量修改。文獻[4]描述道,有個智能編譯器協助客戶操作系統通過Hypercall來調用那些無法虛擬化的OS特權指令。傳統的x86處理器提供四級指令環:Ring 0—3。環數越低,表示執行的指令權限越高。OS負責管理硬件和特權指令在Ring 0執行,而用戶級的應用程序只在Ring 3執行。
雖然并行虛擬化可降低負荷,提升虛擬化性能,但它也會導致其它問題。首先,它的兼容性較差,比如像Windows系統就不支持OS核心的修改;其次,維護半虛擬化可能需要大幅修改OS核心,造成維護成本高企;最后,半虛擬化的性能會因工作負載的變化而產生極大差異。與全虛擬化相比,半虛擬化簡單切實,它提供了與未經虛擬化的系統更接近的良好性能。如果大量采用XenLinux系統效果最佳。
值得一提的是,在Xen和微軟Hyper-V中,都引入了一個輔助VMM進行驅動和虛擬化輔助管理的虛擬機,它的權限和安全級別都要高于其余普通的虛擬機,它們都是在VMM啟動之后,先于其余普通虛擬機加載啟動的,否則無法輔助VMM提供虛擬化服務。VMM將許多輔助管理功能剝離到該虛擬機中,因此使得自己瘦身。VMM只包含服務器虛擬化最核心的部分,這也使得VMM的性能和安全性同時得到提升。這種虛擬機在Xen中被定義為Domain0,而在Hyper-V中則定義為父分區。尤其是Hyper-V獨特的技術實現方式,其VMM代碼量小到僅有幾百K字節。
從功能上來說,通常Domain0或父分區可以被看作就是宿主機的操作系統。雖然筆者認為這一特性并非半虛擬化技術的必要特征,但它目前在類似半虛擬化模式中運用普遍。而在VMWare vSphere之中目前仍未引入這一概念,在VMWare中所有的虛擬化功能全部由VMM提供,因此它的代碼量十分龐大。
以Xen為例,圖2展示了半虛擬化的典型實現模式。
圖2 基于Xen的半虛擬化實現模式
1.3 硬件輔助虛擬化
為了簡化服務器虛擬化技術,許多硬件廠商不惜投入大量精力和資本來開發新特性。Intel的VirtualizationTechnology(VT-x)和AMD的AMD-V,在CPU增加了root模式,root模式特權級別高于Ring 0(微軟定義為Ring-1)。令VMM運行于root模式。于是關鍵指令能夠在VMM上直接執行而無需進行二進制轉譯,自然也不必像半虛擬化技術要向虛擬機種植入部分虛擬化功能。虛擬機的狀態保存在VT-x或AMD-V中。但要注意支持Intel VT-x和AMD-V的CPU只是近幾年才在市場上推廣。
盡管硬件輔助虛擬化技術前景美好,但由于嚴格的編程模式要求造成VMM到虛擬機之間的轉換損耗嚴重,目前市場上的硬件輔助虛擬化性能遠遠未達預期,很多指令運行效果反而遜色于VMware的BT技術。但是硬件輔助虛擬化的未來發展前景是值得期待的。
1.4 服務器虛擬化技術的融合
上述三種技術流派能夠在眾多技術中脫穎而出,自然有它們各自成功的道理。但是隨著不同技術流派的相互取長補短,這三種虛擬化流派也大有逐漸融合的趨勢。比如VMware ESX最初借由BT技術實現了全虛擬化,后期也支持硬件輔助虛擬化實現局部功能,而近期它又提出將部分設備資源的虛擬化功能通過半虛擬化方式來實現;又比如開源的Xen早期版本是典型的半虛擬化,它借助Domain0域完成大量虛擬化功能,然而Xen后期版本中又通過另一種不同于BT的技術實現了對全虛擬化的支持,目前它也支持硬件輔助虛擬化;再如內核虛擬機KVM,目前也融合支持三種虛擬化模式,盡管它是一種獨特的虛擬化方式,但大致未跳出三種主流技術的框架;至于微軟的Hyper-V,其虛擬化模式原本就與半虛擬化的Xen很相似,而且它必須借由硬件輔助以達到性能和安全方面的突破。
萬變不離其宗,無論如何,服務器虛擬化技術的首要目的就是要高效靈活地完成不同層面計算資源的調配任務,它將包括CPU、內存、網絡、存儲和其它硬件在內的各類硬件資源嚴格地隔離開來,從而實現資源的動態化部署和充分利用,并且防止資源沖突。
2.服務器虛擬化安全風險解析及解決方案
從上一節描述的幾種技術特性分析,服務器虛擬化技術除了要防范來自傳統IT環境已有的安全威脅,還將面臨由于其自身缺陷所帶來的新的安全問題。與傳統IT環境安全相對比,由服務器虛擬化引起的新安全隱患主要來自三個方面:一是VMM的設計缺陷;二是虛擬機之間通訊引起的風險;三是虛擬化管理平臺存在漏洞。針對來自這些方面的風險,目前有一部分風險已經有了成熟的防范措施,而另一些還需繼續研發出有效措施。
2.1 VMM設計缺陷
當前虛擬機系統的安全機制,都是建立在假設VMM完全安全可信的前提之上的,遺憾的是在幾種服務器虛擬化實現技術中,VMM的安全性并未獲得增強的防護能力。VMM的設計過程中確實存在一些漏洞可供攻擊者利用,此外VMM內部的安全措施無法識別和阻止來自外部的篡改和替換。例如,虛擬機逃逸攻擊(VM Escape)就是對于VMM安全漏洞的利用,如果入侵者獲得VMM的訪問權限,可直接對其他虛擬機進行攻擊,假如入侵者關閉了VMM,將導致宿主機上所有虛擬機關閉。
目前針對VMM的攻擊途徑有兩種:一是通過應用程序接口(API)攻擊,操控一臺虛擬機向VMM發出請求,VMM缺乏安全信任機制來判斷虛擬機發出的請求是否經過認證和授權。二是通過網絡對VMM進行攻擊,如果網絡配置有缺陷,缺乏配套的安全訪問控制,入侵者就可能連接到VMM的IP地址;即使入侵者無法暴力破解VMM的登陸口令,但是依然可以發動拒絕服務攻擊,如果VMM資源耗盡,那么運行在其上的所有虛擬機也將宕機。此外管理人員還無法通過網絡連接VMM,只能重啟VMM和上面所有的虛擬機。
針對上述VMM設計缺陷造成的虛擬化安全風險,目前的主要對策是結合以下兩種手段:①針對API攻擊防范的思路,是將可信計算術與虛擬化技術結合,構建可信虛擬化平臺,形成完整的信任鏈,允許同時運行不同安全等級的應用。宿主機應選用具有可信計算平臺安全模塊的服務器。所謂可信平臺模塊(Trusted platform module,TPM)定義了一套安全規格,TPM是服務器主板上的一塊安全芯片,它能抵抗軟件攻擊,從而可以作為系統的可信根。TPM提供包括密鑰生成,加密,解密,簽名,安全Hash運算,以及隨機數生成等功能,芯片內部的少量的安全存儲空間,可以存儲私鑰和對稱密鑰等敏感信息。通過虛擬化TPM模塊獲得每臺虛擬機的vTPM[7],再與VMM和宿主機、虛擬機之間可以構建完善的信任鏈,保障VMM不受惡意代碼的API攻擊。值得一提的是,從安全戰略角度考慮,如果完全采用國外的TPM,我國安全體系的控制權就將落入他人之手。好在我國和國際上其他組織幾乎是同步進行可信計算平臺的研究,其中最核心的密碼技術完全采用我國自主研發的密碼算法和引擎,我國稱之為可信密碼模塊(Trusted Cryptography Module,TCM),我們也可以將TCM虛擬化成vTCM,供虛擬機使用。②虛擬化平臺中的每臺物理機上的VMM必須嚴格分配不同的Vlan子網,實現網絡的邏輯隔離,只有處于特權級別的虛擬化平臺管理機,才可以通過防火墻訪問控制策略來實現對平臺中所有VMM進行監控管理。
2.2 虛擬機通訊風險
服務器虛擬化之后,與傳統服務器環境相比,網絡格局的變化相當大,相應地產生了許多安全問題。傳統IT環境中的一些有效安全措施,一旦移植到服務器虛擬化網絡環境中就容易出現水土不服現象。
(1)網絡安全防護困難。服務器虛擬化之前。可以用防火墻劃分多個安全域,對不同安全級別的服務器采用不同策略的安全管理。理論上講,嚴密的網絡安全隔離可以限制一臺受到攻擊的服務器將危害向外蔓延。但是自從有了服務器虛擬化技術之后,寄居于同一臺宿主機的所有虛擬機只通過一個共享網卡與外部網絡通信。這就造成安全問題極易擴散的隱患。因此傳統的防火墻部署方式和安全域的劃分模式有必要大幅改進。
此項困難的解決思路是:在Vlan基礎上嚴格設置安全域,這種安全域必須按照安全級別的區別和虛擬機用戶區別兩個維度進行劃分(在云計算中必須如此)。采用分布式防火墻實現虛擬機之間通訊的安全訪問控制,甚至通過VPN通訊。但若要實現虛擬機在異地數據中心的遷移和漂移,那么防火墻策略如何隨著虛擬機的遷移而調整,也需要有解決方案。目前CISCO公司基于其Nexus系列交換機和分布式防火墻已發布了完整的解決方案,但該方案需完全采用CISCO公司的產品和協議,投資成本高昂,并非局部性的升級部署可以實現。
(2)VM Hopping攻擊。一些虛擬化技術為了方便應用且提高性能,虛擬機之間的通訊可以通過共享內存交換方式進行,但這又制造了一個虛擬機之間的通訊風險。入侵者可以通過原本掌握的某臺虛擬機A監控到在同一宿主機H上的另一臺虛擬機B,當入侵者劫持了虛擬機B后,還可能以B為跳板,再以同樣方式繼續入侵其他虛擬機。入侵者甚至可以直接劫持宿主機H,從而完全控制同一宿主機上所有其他虛擬機的運行。這一攻擊過程就叫做VM Hopping。一旦宿主機H的操作系統訪問權限被劫獲,后果將不堪設想。
防范這一問題最好的辦法,仍然是采用具有TPM和TCM的服務器構建可信虛擬化平臺,不過在不支持這些安全可信模塊的原有服務器上就無能為力了。
(3)拒絕服務(DoS)攻擊。此外還有一種服務器虛擬化環境中特有DoS危害擴散問題。在虛擬化環境下,資源(如CPU、內存、硬盤和網絡)均由虛擬機和宿主機共享。因此,針對某一臺虛擬機A的DoS攻擊不僅可能耗盡A自身的資源,還會由此傳遞到整個宿主機H上所有的資源,造成H上的全部虛擬機獲取不到資源而無法正常提供服務。可見在服務器虛擬化環境中的DoS攻擊所造成的傷害影響范圍比傳統IT環境有所放大。
針對DoS攻擊,尤其是分布式拒絕攻擊(DDoS),即使在傳統網絡環境中也難以徹底應對。但是針對上述服務器虛擬化環境中DoS攻擊受害影響范圍易于擴大化的問題,仍然可以采用一些手段進行限制:VMM或宿主機操作系統應實時監控虛擬機的運行性能狀況,一旦發現某臺虛擬機CPU或網絡等利用率過載,VMM或宿主機操作系統可以懷疑該虛擬機受到DoS或其它異常攻擊,它們有權切斷受攻擊虛擬機相應的硬件資源使用權,從而切斷該虛擬機將受攻擊影響擴散至整個宿主機的途徑。
當然,這種策略的有效實施又面臨著另一個問題:即如何防止因錯誤懷疑而錯誤切斷正常虛擬機的資源使用權,并且造成不必要的損失。首先這需要VMM或宿主機系統變得更“智能”,這也許需要基于大量經驗和歷史數據挖掘分析的基礎上做出判斷;其次對于重要業務應用的虛擬機應該部署多臺負載均衡,或者部署容錯服務器等。當然這些實現方法大幅增加了技術難度和投資成本。
2.3 管理平臺漏洞
(1)遠程管理漏洞。此外,各種服務器虛擬化軟件都要通過網絡上的一個遠程管理平臺來管理虛擬機。例如VMWare有VCente,微軟有SCVMM。這些控制臺也可常會引起一些安全風險,例如管理平臺的自助WEB服務系統就可能引起跨站腳本攻擊、SQL注入等傳統風險。攻擊者一旦獲取了管理平臺的管理權限,那么即便他未掌握平臺中虛擬機的登陸口令,也可以直接在管理平臺中關閉任意一臺虛擬機。防范這一問題的思路是:嚴格控制管理平臺的訪問權限控制,若服務器虛擬化管理平臺支持用戶自助式管理服務,應關閉此項服務。用戶自助式服務最多只提供虛擬機資源申請單提交功能,而不允許普通用戶通過服務器虛擬化管理平臺的任何遠程管理入口登陸虛擬機。管理平臺的權限應該通過雙因素認證系統綁定到管理員的身份上。
(2)遷移攻擊和副本離線破解。出于高可用性的設計考慮,主流的服務器虛擬化軟件及其管理平臺均支持虛擬機的遷移。攻擊者如果控制了管理平臺的管理權限,就可以在線地將虛擬機從一臺宿主機移動到另一臺上。由于虛擬機的內容是以特定的鏡像文件格式存儲的,當虛擬機被遷移的過程中,虛擬機或虛擬磁盤的鏡像文件將被重新創建,攻擊者借此機會可以替換原虛擬機的配置文件和參數特性。此外,攻擊者還可能通過網絡復制出某臺虛擬機的鏡像文件。一旦得到完整的鏡像文件,攻擊者可以將其導入自己的虛擬化平臺,擁有充足的時間離線攻克其中的安全設定,包括破解登陸口令,提取通信密鑰,獲取所有重要信息等。由于該鏡像文件只是在線虛擬機的一個副本,追蹤和防范此類威脅是極其困難的。
防范措施:此漏洞的受攻擊的情況與遠程管理漏洞表現不同,但它們的解決辦法基本一致,此處不重復。
(3)數據安全風險。作為云計算的基礎,服務器虛擬化技術必須關注數據的安全問題,包括數據的私密性、完整性和可用性等。由于不同的虛擬機的全部數據存儲在一個共享的物理存儲設備中,如何保證嚴格的數據隔離就顯得尤為重要。
另外,在服務器虛擬化環境中。數據殘留問題更有可能會無意泄露敏感信息。由于虛擬化平臺中的虛擬機可以執行新建、刪除和遷移等操作,這些功能雖然為平臺的管理帶來的巨大的便利性,也為容災備份和高可用性提供了多種實現手段,但是所有這些操作都會留下數據痕跡。因為一臺虛擬機的數據曾經存儲過的空間允許被釋放并再分配給其他虛擬機使用,如果不采用特別措施,服務器虛擬化平臺很難保證存儲資源被重新分配之后,敏感信息是否依然有殘留。
防范上述數據安全風險的關鍵技術就是數據加密。加密技術已經非常成熟,比如對稱密碼技術、非對稱密碼技術等。數據加密還可以結合數據切分、散列存儲等技術一起使用,這樣一來即便是虛擬化平臺管理員,也無法獲取虛擬機得完整數據,更無法破解其中的內容。經過以上技術處理,數據殘留問題也就不成為問題了,出于謹慎考慮,用戶只需對于保存數據的解密秘鑰的極小存儲空間進行多次擦除操作即可(據說連續7次擦除操作即可保證數據不可恢復)。
(4)虛擬機補丁更新管理困難。虛擬機的補丁管理存在以下困難:采用虛擬化管理軟件提供的虛擬機復制克隆等方式,很容易為虛擬機提供一個副本鏡像,作為冷備份存于異地離線庫中,當需要時便可利用啟用異地離線庫中存儲的虛擬機實現災難恢復。但是這臺用于災備的虛擬機的殺毒軟件、系統補丁和應用軟件版本均未即時更新到最新版本,一旦啟用必然出現各種缺陷,這樣的虛擬機在正式啟用后很可能會引發安全問題。
解決方案:目前微軟和VMWare都擁有虛擬機補丁自動更新功能和離線虛擬機服務工具,如果使用的是這些廠商的虛擬化軟件,可以直接啟用功能模塊。現在問題為如何合理制定補丁的自動更新任務表,既保證所有虛擬機的補丁最新,又不對平臺網絡造成太大負擔。
(5)快照和狀態回滾漏洞。這是一項虛擬機特有的管理和備份方式,對于系統和數據的備份和恢復起到重要作用,但卻給入侵者提供了一種攻擊的新方法。入侵者可能將虛擬機恢復到過去某個時間節點的狀態,獲取一些已被刪除的敏感信息。可能的漏洞防范思路:第一能想到的手段依然是數據加密技術,快照和回滾內容經過加密之后,攻擊者想要破解就不那么容易了。此外解密的密鑰必須通過雙因素認證系統綁定到虛擬化平臺管理員的身份上。經過這些處理之后,入侵者既不能從快照和狀態回滾存儲的內容中獲取信息,也不能通過回滾到早期狀態來惡意破壞虛擬機正常服務。
(6)共享剪切版漏洞。許多服務器虛擬化軟件支持虛擬機和宿主機之間的共享剪切板功能,為虛擬化的靈活應用提供便利,但這一功能可能造成安全問題。解決思路:最簡單的想法就是直接禁用此項功能。
3.結語
云計算的安全問題受到許多專業人士的詬病,作為云計算的首要基礎核心的服務器虛擬化技術首當其沖。排除傳統IT環境中共同存在的安全問題,本文只針對服務器虛擬化技術中存在的安全風險進行逐項探討,并給出相應的對策。文中所述各項的安全風險的防范措施,要點可以總結為以下六方面:①采用帶有TPM或TCM的服務器構建可信虛擬化平臺;②采用分布式防火墻實現多維度的安全域劃分;③增強對物理機和虛擬機資源使用情況的實時監控;④多方位禁止普通用戶接入服務器虛擬化平臺的任何管理接口;⑤數據加密技術的充分利用;⑥增強虛擬機補丁管理能力。服務器虛擬化的安全問題顯然不止于此,新的漏洞還將不斷被挖掘出來,安全風險防范措施必須與時俱進,不斷完善。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:服務器虛擬化安全風險防范措施
本文網址:http://www.guhuozai8.cn/html/consultation/10839513393.html