999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

虛擬化安全:機遇,挑戰與未來

2016-11-15 09:38:02劉宇濤陳海波
網絡與信息安全學報 2016年10期
關鍵詞:系統

劉宇濤,陳海波

(上海交通大學并行與分布式系統研究所,上海 200240)

虛擬化安全:機遇,挑戰與未來

劉宇濤,陳海波

(上海交通大學并行與分布式系統研究所,上海 200240)

隨著云計算的流行,虛擬化安全問題受到了廣泛的關注。通過引入額外的一層抽象,虛擬化技術為整個系統提供了更強級別的隔離機制,并為上層軟件提供了一系列自底向上的安全服務。另一方面,抽象的引入所帶來的復雜性提升和性能損失,都對虛擬化安全的研究帶來了巨大的挑戰。介紹了上海交通大學并行與分布式系統研究所近幾年來在虛擬化安全領域所做的一系列具有代表性的工作,包括利用虛擬化提供可信執行環境、虛擬機監控、域內隔離等一系列安全服務,以及對虛擬化環境的可信計算基和跨域調用等方面進行優化的成果,并對當前和未來虛擬化安全領域的問題和探索方向進行了總結。

虛擬化安全;可信執行環境;虛擬機自省;域內隔離;可信計算基;跨域調用

1 引言

虛擬化的定義有廣義與狹義之分。廣義而言,幾乎任何計算機的實體都可以被虛擬化,包括計算機、存儲與網絡等,相應地有系統虛擬化、存儲虛擬化與網絡虛擬化等。而狹義上的虛擬化一般均指系統虛擬化或者硬件虛擬化,是指在計算機上創建出多個虛擬計算環境以運行系統軟件棧。本文主要關注后者。

系統虛擬化這個概念在20世紀70年代就被提出并且流行起來,當時它的主要目的是方便多個用戶共享一臺物理主機,在該場景下,虛擬化環境中的用戶數目少,平臺管理人員可信程度高,系統的攻擊面小,攻擊的經濟收益低,因此虛擬化安全并未受到廣泛關注。直到21世紀,隨著云計算的流行,虛擬化技術重新回到人們的視野之中,在這個時期,虛擬化被廣泛應用的主要目的變成了簡化部署成本,提高硬件資源利用率。其通過服務整合等方式將多臺物理機整合為運行于一臺物理機的多個虛擬機,從而顯著提高IT利用率。近年來,系統虛擬化成為支撐云計算等計算模型的核心技術,虛擬機也成為當前各種計算平臺的主要載體,如從2009年起全球新增的虛擬機數目已經超過新增的物理機數目,亞馬遜 2012年就在45萬臺物理主機上運行了超過300萬臺虛擬機,并預計在2016年底達到800萬臺虛擬機的數目。在規模如此巨大的云計算平臺和虛擬化環境中,用戶數量急劇增多,攻擊成功所造成的經濟損失被放大,整個系統的防護難度也不可避免地變大。IDC(international data corporation)在2008年的一份調查報告中就已經指出:安全性是影響云計算被廣泛接受的最大的一個挑戰。其中,虛擬化安全扮演了一個非常重要的角色。

近十幾年來,特別是當Intel和AMD等各大硬件廠商在自家的處理器中增加了對虛擬化的硬件支持之后,各大公司和高校的研究機構都對虛擬化安全進行了大量深入的研究,并從各個角度提出了可能存在的問題以及相應的解決方案。上海交通大學并行與分布式系統研究所從早期(2007年)開始就在虛擬化安全領域進行了深入的探索,已經有一系列具有代表性的工作發表在國際頂級的會議和期刊上,并且獲得了業界同行的廣泛認可。本文將從以下 3個方面對這一系列工作進行系統的介紹。

首先,利用虛擬化技術為操作系統和上層應用程序提供了一系列自底向上的安全服務。虛擬化技術為傳統的軟件行業帶來了很多機遇,PaaS(platform as a service)、IaaS(infrastructure as a service)等服務平臺為云計算帶來了清晰的運營模式和巨大的用戶數量。在這些新型的服務架構中,新的安全問題也隨之而來,如如何在不可信的虛擬機操作系統上提供可信的安全執行環境?如何在外部監控虛擬機內部的執行環境等。虛擬化技術通過引入一層新的抽象,為這些問題的解決提供了新的思路。

其次,在虛擬化安全領域中,對高可信和高效能2個方面進行了深度的思考和探究,并通過軟硬件相結合的方法,提出一系列相應的解決方案。虛擬化技術通過新的抽象層的引入,固然能解決大量的安全問題,但隨著虛擬化的發展,虛擬化層復雜度的提高,安全可信基和系統性能都會受到不可忽視的影響,如何克服這2個方面所帶來的挑戰,必將很大程度上影響虛擬化安全技術在現實系統部署中的可靠性和可行性。在該方向上的研究是極具必要性的。

最后,根據近幾年學術前沿的研究內容,結合自身的經驗和經歷,總結當前和工作比較相關的其他研究,提出了一些虛擬化安全領域中潛在的探索方向??梢哉f虛擬化安全已經進入了一個新的時期,隨著該領域中研究的進行,也同時出現了許多新的問題,本文嘗試著列舉出其中較為重要的部分,以及相應的可能的解決方案和探究方向。

圖1描述了傳統虛擬化環境中單個物理主機的系統架構。一般意義上,會有一個虛擬化層,處于虛擬機和硬件設備中間,該虛擬化層在功能上主要負責系統的資源管理、虛擬機的調度等。在安全機制上,由于虛擬化層具有較高的運行權限,因此可以對上層的虛擬機提供安全服務,包括攻擊檢測、實時監控等。一般來說,虛擬化層的可信基遠小于操作系統,但是隨著功能的日趨復雜,其可信基也變得越來越大。本文以下所介紹的幾個系統,根據不同的威脅模型會有不同的安全假設,從而決定層級之間相互的依賴關系和信任鏈。

圖1 傳統虛擬化平臺系統架構

本文首先介紹3個系統,它們以虛擬化層作為可信基,為上層虛擬機提供安全執行環境(CHAOS)、域外監控(TxIntro)和域內隔離(SeCage)機制。除此之外,將嵌套虛擬化層(CloudVisor)和安全處理器(HyperCoffer)作為可信基,為上層虛擬機提供更加安全的保障。最后,利用硬件特性為虛擬化環境提供一個更加高效的跨域調用機制(CrossOver)(如圖2所示)。

2 機遇:自底向上的安全服務

計算機領域中有一句名言,“任何計算機的問題都可以通過額外一層抽象解決”[1]。在計算機發展的歷史中,有許多例子說明了這一點,包括虛擬內存、文件系統、分布式系統等。虛擬化也是這些成功案例的一種。除了資源整合、虛擬機隔離等功能之外,虛擬化技術本身通過新的這一層抽象,就可以更好地為上層虛擬機提供一系列自底向上的安全服務,為創造安全可信的執行環境提供了一個極為有效的道路。

隨著包括Linux、Windows在內的操作系統功能日趨完善,代碼結構也日益復雜,從而漏洞存在的可能性也逐漸增大。根據 CVE(common vulnerabilities and exposures)的統計,從1999年至今,Linux內核的漏洞達到1 437個,其中近5年的漏洞數目更是達到頂峰;Windows的內核同樣脆弱,單單Windows 7這一個操作系統,從2009年至今就有577個漏洞被披露,更別說那些還未被披露的零日漏洞;除此之外,各種服務軟件、運行庫等代碼量都極其龐大,中間存在可能被攻擊者利用的漏洞數不勝數。這些日趨復雜和不安全的運行環境使在云計算平臺中運行安全敏感的應用和服務變得極為困難。虛擬化技術為此提供了一個巨大的機遇。首先,相比于操作系統層,虛擬化層本身的復雜度急劇降低,可信度也隨之提高;其次,新引入的虛擬化層可以對上層軟件的關鍵操作進行攔截,同時對CPU、內存、I/O等資源進行統一管理和調配,從而對整個系統具有唯一的支配權,可以通過預先制定的規則對上層虛擬機進行有效的管理;最后,隨著各大硬件廠商對虛擬化提供越來越多的硬件支持,虛擬化層能夠為上層軟件提供更為細粒度和高效能的安全服務。

本文介紹其中3個具有代表性的工作,分別為上層應用程序提供了可信執行環境,細粒度的域內隔離,以及為虛擬機提供高效的域外監控服務。

2.1 安全執行環境

CHAOS[2,3]作為早期提出在不可信操作系統之上建立安全可信執行環境的系統,開拓了利用虛擬化層保護虛擬機應用層的研究方向。CHAOS的目的在于解決操作系統巨大的可信基所帶來的安全隱患,它的主要貢獻在于引入了一層輕薄的虛擬化層,為上層應用程序提供包括內存隔離、數據加解密、關鍵操作攔截在內的一系列安全服務,如當安全敏感的應用程序需要往磁盤中寫敏感數據,CHAOS虛擬化層會攔截相關操作,對數據進行加密和完整性保護,從而防止惡意的操作系統和其他程序竊取或者篡改隱私數據。

圖2 本文所描述的虛擬化相關安全解決方案

圖3描述了CHAOS的總體框架,假設在虛擬化層上運行的虛擬機操作系統內核是不可信的,它可能會竊取關鍵應用服務的敏感數據,破壞數據的完整性等。為了在這種場景下為關鍵應用提供一個安全的執行環境,引入了安全 VMM(virtual machine monitor)的概念。CHAOS是基于Xen-3.0.2實現的,它主要保護3種類型的敏感數據:CPU上下文、內存數據和I/O數據,因此相應地采用了3項技術。第一,攔截關鍵操作,CHAOS通過二進制重寫技術將安全服務進程中的系統調用入口從原來的 int 0x80改成了 int 0x81,從而使其進行系統調用的時候下陷到虛擬化層,另外,通過修改 IDT(interrupt descriptor table),CHAOS可以攔截所有安全服務進程用戶態和內核態的轉換操作,對CPU上下文進行存儲和恢復,并且將一些敏感的寄存器信息保護起來,防止泄露給惡意的操作系統。第二,內存隔離,CHAOS通過內存映射機制,將安全服務進程的頁表從操作系統的映射中去除,并且對安全服務進程內存頁的訪問進行跟蹤,防止未被授權的讀取和修改,從而保證安全服務進程內存數據的隔離。第三,I/O數據封裝,CHAOS通過I/O系統調用攔截和頁表跟蹤,對端口I/O和內存映射I/O進行加解密的操作,在數據寫入磁盤之前進行加密操作和完整性元數據的更新,讀出磁盤并傳送給安全服務進程之前進行完整性的檢查和解密操作,從而防止惡意操作系統對磁盤數據的竊取和篡改。

圖3 CHAOS系統架構

2.2 高效的虛擬機域外監控

在增強計算機安全的諸多技術中,VMI(virtual machine introspection)是一種新興的技術??偟膩碚f,虛擬機自省是一種域外監控的機制,其利用 VMM,從虛擬機外部增強虛擬機自身的安全。通過直接掃描虛擬機的運行時內存、磁盤、監控網絡行為等操作,VMM可進行殺毒、網絡防火墻等安全操作。相比傳統的運行在虛擬機內部的安全軟件(如殺毒軟件等),虛擬機自省的優勢在于,其安全性不依賴于虛擬機本身。例如在傳統平臺,惡意軟件一旦感染主機成功,首先會禁止安全軟件的功能,甚至將其直接卸載;而使用虛擬機自省技術,安全軟件本身運行在虛擬機外部,因此,即使惡意軟件已經感染了虛擬機,也無法干擾安全軟件的執行。這得益于虛擬化平臺對VMM與虛擬機的執行隔離能力。

然而,VMM與虛擬機的強隔離也帶來了語義鴻溝的問題,即VMM無法獲知虛擬機的內部語義。例如,VMM雖然可以讀取虛擬機的所有內存,卻無法直接獲知內存數據的語義信息,這為安全軟件的開發帶來了很大的挑戰。因此,當前的虛擬機自省系統均嘗試通過不同的方法,盡可能縮小語義鴻溝。本文經過分析發現,現有的虛擬機自省系統普遍存在以下3個問題:①沒有一套機制可以及時地觸發虛擬機自?。虎谠谔摂M機自省過程中需要暫停虛擬機,造成性能下降;③即使暫停了虛擬機,仍然會發生虛擬機數據讀取不一致的現象。

因此,文獻[4]提出了一套新的系統TxIntro,它是一種利用硬件事務性內存進行高效的、安全的虛擬機自省的機制。事務內存是在程序并發控制領域提出的一套完整的解決方案,它是 OCC(optimistic concurrency control)的一種解決方案,假設在大多情況下,并發的事務不會相互影響,只有在實際發生沖突的情況下才會發生事務的回滾。2014年,Intel在其第4代Core處理器(代號 Haswell)上裝配了硬件支持的 TSX(transactional synchronization extensions)機制,其中的一套軟件接口(RTM,restricted transactional memory)成為市面上首個為程序員提供的硬件事務內存指令集。TxIntro是首個利用 RTM增強虛擬機自省技術的系統。

如圖4所示,針對以上提到的3個問題,通過內存硬件虛擬化中EPT(extended page table)的映射機制,TxIntro將虛擬機內核中的一些關鍵數據結構(如系統調用表)放入管理虛擬機用戶進程中的 RTM的讀集合中,任意對虛擬機關鍵數據結構的惡意修改都會及時觸發虛擬機自省。另外,它將自省過程置于事務之中,這樣即使不暫停虛擬機,也能防止虛擬機自省過程中數據讀取的不一致,因為如果虛擬機在該過程中對相關數據進行了修改,RTM就會中止這個事務,使其重新執行。

圖4 TxIntro系統架構

不過,RTM本身具有一定的局限性,如某些系統事件(如中斷、系統調用等)會無條件中止執行中的事務;另外,RTM維護的讀寫集合也是有限的,經過測試,RTM維護了4 MB的讀集合和32 kB的寫集合,當事務中的數據超過了讀寫集合的大小,事務同樣會被中止。這些缺陷造成了傳統的虛擬機自省過程無法在事務內存中完成。為此,TxIntro提出了2個創新的優化技術:①虛擬機內部的核植入機制,即在虛擬機內部植入一個和虛擬機其他部分完全隔離的進程,該進程映射了虛擬機內核的內存,從而可以直接讀取內存,避免了大量由于額外遍歷頁表翻譯地址所造成的讀寫操作;②兩階段VMI復制機制,即將虛擬機自省過程中大量的讀寫操作移到事務外部執行,而在事務內部只是進行一致性的檢查,從而大幅度減小了事務內存的讀集合,甚至將寫集合直接降為0。

2.3 細粒度的域內隔離

2014年4月,被廣泛運用于互聯網上公鑰認證和數據加密的開源庫 OpenSSL被發現有一個非常嚴重的安全漏洞,被稱為“心臟出血”(heartbleed)。該漏洞被標識為CVE-2014-0160,產生該漏洞的原因在于其支持的TLS協議中心跳(heartbeat)擴展的處理過程漏掉了一步邊界檢測的步驟,這個漏洞使攻擊者能夠從客戶端與服務器端連接的內存泄露中任意讀取多達64 kB的數據,也就是說,無需任何特權信息或身份驗證,攻擊者就可能從服務器中讀取包括X.509證書的私鑰、用戶名、密碼等在內的關鍵數據。另外,對CVE數據進行分析和統計,發現無論是用戶態還是內核態,隱私內存泄露是一個非常嚴重的問題,從 2000~2015年,共計有 388個已經被披露的相關漏洞,通過這些漏洞,應用程序關鍵數據(如 Nginx服務器的私鑰)在外部攻擊或者惡意操作系統的威脅模型中很容易被泄露。

筆者發現攻擊之所以成為可能,是因為關鍵數據和整個應用程序的軟件棧處于同一個地址空間,該應用程序中任意一個漏洞都可能對關鍵數據的安全造成威脅。另外,操作系統內核可以映射整個用戶態的內存,操作系統過于龐大的可信計算基使關鍵數據被暴露在更大的威脅模型上。細粒度的域內隔離技術是針對這個問題最有效的手段之一,然而如何高效地對大型軟件進行解耦,并且防止在隔離的過程中造成過大的性能損失,是亟需解決的2個問題。

為了實現細粒度且高效可行的域內隔離機制,筆者引入虛擬化環境,并且利用Intel硬件虛擬化中的新特性,提出一套完整的解決方案。SeCage[5]是一種針對應用程序中關鍵數據和相關代碼的高效且細粒度的隔離方法,它通過混合分析技術,對應用程序進行解耦,將操作關鍵數據的關鍵代碼從主程序中分離出來,放入一個通過Intel硬件虛擬化內存隔離出來的安全運行環境中。同時利用Intel硬件虛擬化提供的VMFUNC特性,來提升程序執行流的性能和安全性。

如圖5所示,SeCage隔離方法主要包含了3個步驟:①通過靜態和動態分析相結合的方式,得到預定義好的關鍵數據的數據流,找到該數據可能流向其他內存區域的數據合集,以及和這些數據合集相關的函數代碼,并且通過自動化的方法和GCC(gnu c compiler)提供的section attribute屬性,將關鍵數據和相關代碼從應用程序中解耦出來,放入連續的內存段中;②在虛擬化環境EPT內存管理的基礎上,通過內存隔離機制,為關鍵數據和相關代碼創建獨立的擴展頁表,使一般代碼無法訪問關鍵數據;③利用CPU處理器硬件虛擬化模塊提供的特性EPTP Switching,在運行時通過跳板函數實現高效的執行環境的切換。其中,EPTP Switching的功能是在不產生虛擬機下陷的情況下改變EPT最高級頁表指針的值。由于在第2步時創建了兩套相互隔離的EPT頁表,將它們對應的最高級頁表指針的值填入 EPTP(EPT pointer)數組中,并將該數組的首地址寫入數據結構VMCS(virtual machine control structure)的一個特定的域中。因此,在客戶虛擬機的跳板函數中調用VMFUNC相關指令,并將寄存器設為相應的值,就可以切換不同的 EPTP,從而達到在不下陷的情況下高效地將當前的EPTP切換到之前配置好的任意一個EPTP的目的。

SeCage是基于KVM,實現在Intel Haswell機器上的,筆者將該機制應用在 Nginx+OpenSSL,OpenSSH 和 CryptoLoop上,成功阻止了HeartBleed、rootkit以及相關內核內存泄露的攻擊,保護了包括私鑰在內的關鍵數據不被泄露,達到了很好的域內隔離的效果。另外性能測試結果顯示,SeCage的域內隔離保護機制對Nginx吞吐量和延遲的影響較小,是一個可行的基于虛擬化的安全解決方案。

圖5 SeCage系統架構

3 挑戰:可信基與性能的考量

虛擬化通過引入額外的一層抽象可以有效地解決一系列的安全問題,對上層軟件提供切實的安全服務,從而提高整個系統的可靠性。然而,虛擬化環境下安全性的保證依賴于2個重要的考量因素:可信基的大小和對性能的影響。第2節中提到的利用虛擬化技術提供自底向上的安全服務的方法建立在一個極為重要的前提上:即虛擬化層是可信的,整個系統的可信基包含了虛擬化層的所有軟件棧。然而,隨著虛擬化層功能的日趨復雜,其代碼行數也越來越多,出現漏洞的可能性也在逐漸增大,如根據CVE的統計,截止到2015年,當前主流的3大虛擬化平臺VMWare、Xen和KVM分別被披露了234個、135個和89個已知的漏洞。另外,隨著安全事故的發生(如2010年Google公司的雇員竊取用戶的隱私數據),云平臺中惡意的管理人員也成為了一個潛在的威脅。因此,學術界和工業界都在考慮將虛擬化層移除出可信計算基,并且通過更為精簡的底層軟件系統或者硬件特性來保證整個系統的安全性。在這個研究方向上,本文提出了兩套解決方案,分別采用嵌套虛擬化和安全處理器的特性來增強虛擬化環境中客戶虛擬機的安全等級。

另一方面,如果利用虛擬化技術實現的系統安全解決方案對原生系統的性能造成過大的影響,也會使相應方案無法被接受。一個不可避免的現象是,額外的抽象一定會帶來額外的上下文切換,造成不必要的性能損失,而如何減少這些上下文切換,在降低性能損失的同時保證安全性不受影響,這也是該領域必須解決的問題之一。本文的另一項工作在這個方向上前進了一步,利用現有處理器中的硬件特性對一系列極具代表性的系統進行了優化,在很大程度上減少了它們所帶來的額外的上下文切換和相應的性能損失。

3.1 基于軟件的嵌套虛擬化

近年來,金融改革持續深化,民營銀行、村鎮銀行等相繼設立,其成立時間短、資本規模小、經營管理能力和抗風險能力相對較弱,出現破產的風險相對較高。同時,我國銀行業對外開放的速度、幅度和深度不斷擴大。2017年底,外資銀行在華營業性機構總數已達1013家。外資入股中資銀行的股比限制被正式取消,中外資適用統一的市場準入和行政許可辦法。在此背景下,建立適用于包括民營銀行、外資銀行在內的問題銀行市場化退出機制迫在眉睫。

隨著多租戶云計算平臺中虛擬化層軟件棧的日益龐大和復雜,整個系統的可信基也逐漸增大,租戶在虛擬機中存儲的隱私數據面臨著來自外部和內部共同的威脅。為了增強虛擬化平臺的安全性,避免過大的攻擊面,提出將虛擬化監控器移除出可信計算基。因而發現在虛擬化環境中,虛擬機隱私和完整性的保護和其他功能性的邏輯是相互獨立的,因此提出 CloudVisor[6]系統,它采用嵌套虛擬化技術,將安全保護機制的邏輯從整個虛擬化層剝離出來,由嵌套虛擬化層通過額外的一層抽象對虛擬機監控器進行監控,從而保護虛擬機,防止虛擬機中用戶的隱私數據被虛擬化層無意或者惡意地竊取。

圖6 CloudVisor系統架構

如圖6所示,在CloudVisor的架構中,租戶向云平臺提供加過密的虛擬機鏡像和相應的元數據文件,該鏡像由CloudVisor加載,磁盤數據的寫入和讀取也通過CloudVisor進行加解密。虛擬機監控器將被置于非特權指令集中,并使用EPT表的隔離機制防止租戶虛擬機數據被非法訪問。虛擬機監控器對租戶虛擬機進行的所有敏感操作都將下陷到CloudVisor中接受安全檢查。另外,CloudVisor利用安全硬件提供的 TXT(trusted execution technology)功能為系統提供安全啟動的支持,利用TPM(trusted platform module)技術為租戶提供安全驗證支持。

CloudVisor基于Xen實現,該架構很好地將安全性與功能性解耦合,在保證功能完備的同時盡量減小了可信計算基的大小,有利于對可信基進行進一步的正確性驗證。CloudVisor中可信基僅有5.5 kB行代碼,相比于龐大的虛擬機監控器具有更加簡單的邏輯及更高的可信性,通過嵌套虛擬化的方式可以較好地控制權限的隔離。

3.2 基于安全處理器的虛擬機隔離

面對當前日益龐大和復雜的虛擬化層軟件棧,基于嵌套虛擬化技術的CloudVisor和類似的工作雖然能夠在很大程度上緩解這個問題,但是它仍然存在2個問題:①額外層級的引入使系統上下文切換的數量增多,性能影響比較大;②基于軟件的方法不能防止包括總線窺探和冷啟動在內的物理攻擊。因此提出利用安全處理器來代替嵌套虛擬化層的純軟件保護。根據研究經驗表明,防篡改的CPU芯片是安全的,但是,一般安全處理器沒有足夠的表達能力,無法用于處理復雜的高層次的語義,如虛擬機和虛擬機監控器以及外部環境之間的數據交互;此外,純粹依靠基于硬件的保護,由于受限制的功能和有限的片上存儲的可擴展性,無法支持數量眾多的虛擬機。因此,筆者提出 HyperCoffer[7,8]系統,這是一個軟件/硬件相結合防止惡意虛擬化監控器竊取和纂改上層虛擬機敏感數據的系統。它提出一種新的方法,讓安全處理器提供安全性增強的機制,而將語義鴻溝交由一個小的軟件層進行語義處理。

如圖7所示,HyperCoffer利用并擴展了傳統的虛擬化環境的安全處理器技術。安全處理器在過去的10年已被廣泛研究,其中最主要的2項技術是在處理器中加入了用于實現數據機密的AISE(address independent seed encryption)算法和用于完整性保護的BMT(bonsai merkle tree)算法的邏輯。HyperCoffer利用安全處理器中的AISE加密邏輯,保證每個虛擬機的數據在芯片外部(包括內存中)是處于加密的狀態,只有在被加載到芯片內部時才變成明文,并且不同的虛擬機通過使用不同的秘鑰被相互隔離;另外,通過BMT的邏輯為所有數據生成一個用于完整性保護的Merkle樹,將樹的最高層父節點保存在芯片內部的數據結構中,從而保證數據被篡改會被馬上檢測出來。為了處理虛擬機特定的語義,保留上層軟件的透明性,HyperCoffer為每一個虛擬機實例提供了一個受保護的軟件層,被稱為虛擬機墊片層。虛擬機墊片層處理客戶虛擬機和虛擬機監控器必要的交互,包含CPU上下文、I/O數據和輔助信息。該墊片機制是高度可擴展的,可以支持任意數量的虛擬機實例。它作為一個重要手段,用于盡量減少所需的硬件變化和消除虛擬機和安全處理器之間的語義差距。

圖7 HyperCoffer系統架構

筆者在基于 Qemu的全系統仿真環境以及Xen虛擬化環境中實現了HyperCoffer的原型,并且利用虛擬機墊片機制運行了未經修改的Windows和Linux虛擬機。Qemu的仿真結果和虛擬機墊片機制的實際測量結果表明,HyperCoffer的性能開銷很小,系統的可信計算基和安全性都得到了全面的提升。

3.3 虛擬化平臺中跨域調用的優化技術

利用虛擬化技術為上層軟件棧提供安全服務的另外一個重要的挑戰是如何降低安全服務所造成的性能損失?,F有的系統架構一般都由多個層級的不同軟件域構成,不管是服務的提供還是安全的保護機制都不可避免地會出現跨域的調用,而當前的硬件體系結構直接支持的跨域調用指令是有限的(如syscall、hypercall等),因此其他的跨域調用就需要通過攔截的方式進行模擬,使單個跨域調用實際上會有更多數目的額外的跨域上下文切換。通過研究發現,現有的一些利用虛擬化環境提高系統安全性的方法會造成3~5倍額外的跨域調用的數目增長,這種模擬的方式不但會造成性能的損失,也不可避免地會給整個系統帶來巨大的復雜性。

針對這個問題,Li等[9]提出CrossOver機制來對當前處理器這種頻繁的多層級跨域調用進行優化。CrossOver的主要思想是將認證(authentication)和授權(authorization)分開,將跨域間通信的認證交給硬件執行而將具體的授權交由軟件執行。具體來說,在初始階段,調用者與被調用者需要請求虛擬機監控器為它們在硬件上注冊一個無法偽造的ID,之后2個域之間的相互調用只需要通過一條新的指令即可直接調用,而不需要經過其他任何權限級和軟件層次。CrossOver通過Intel的硬件虛擬化VMFUNC擴展初步實現了該機制,從而保證相互間不信任的調用者與被調用者能夠高效地調用,同時各自還運行在隔離的地址空間中。

圖8描述了一個利用CrossOver跨虛擬機進行系統調用的例子,在進行這個系統調用之前,2個虛擬機需要向虛擬機監控器進行注冊認證,虛擬機監控器會為它們維護好相應的元數據,在這個場景中就是配置好相應的EPT指針。在進行系統調用時,分發管理模塊會攔截該系統調用,并跳轉至之前映射好的共享代碼頁,之后會加載一個輔助頁表,保存當前上下文信息,并準備好在另一個虛擬機中需要的調用信息,然后執行VMFUNC 指令切換 EPT 到被調用虛擬機中。被調用虛擬機中的分發管理模塊會執行實際的系統調用,并將調用結果返回。將CrossOver實現在Intel Haswell機器和Qemu上,并且利用它優化了包括Proxos在內的4個現有的系統,極大地減小了它們跨域調用的成本,提高了系統的性能。

4 未來:新的問題與探索

圖8 利用CrossOver跨域進行系統調用的例子

關于虛擬化安全的研究在繼續,除了上文提到的為上層的軟件棧提供更加可信的安全執行環境和更細粒度的隱私數據保護,為虛擬機提供更為高效和精確的虛擬機監控服務,保證更加精小的可信計算基,提供性能更好的安全機制之外,還有一些其他問題同樣值得探究,在這節中會列舉一些相關的研究,并且說明在這些研究領域還存在哪些問題需要更好的解決方案,以及具有哪些可能的探索方向。

在利用虛擬化技術提供安全可信執行環境這個領域,OverShadow[10]是和CHAOS同個時期的系統,它是基于影子頁表的內存虛擬化技術, 通過截獲虛擬機中用戶態和內核態的上下文切換,加上基于頁表操作的被稱為“隱身”的技術,來保護應用程序的內存,為操作系統和應用程序呈現不同狀態(密文和明文)的內存。同時,其引入了“墊片”的概念,來保證整個系統的向前兼容性。但是在這一系列的工作中,應用程序都會通過系統調用來向操作系統申請服務,因此都無法繞過一種被稱為Iago Attack[11]的攻擊。InkTag[12]解決了這個問題,同時,它是基于EPT內存硬件虛擬化。另外,InkTag還簡化了操作系統的驗證機制,并且提供了訪問控制和文件系統的一致性的特性。最后,還有一個被稱為虛擬機回滾的攻擊用于竊取虛擬機內部的隱私數據,XIA等[13]的研究方案在一定程度上解決了這個問題。總之,該領域經過了長期的研究,已經趨于成熟,還存在的問題就是對上層應用無法進行更為細粒度的保護,SeCage在一定程度上解決了這個問題。另一方面,硬件提供的越來越多的特性也對高效地保護虛擬機內部安全提供了更多的可能性。筆者之前的一些工作,如利用硬件提供的預測執行機制來增強信息流追蹤技術[14],同時做到更好的控制流混淆[15],以及利用性能計數器來增強CFI(control flow integrity)[16,17]等,這些技術都可以被擴展到虛擬化平臺中用于保護虛擬機內部的安全。

在監控虛擬機這個研究領域中,自從 2003年提出虛擬機自省[18]這個概念以來,有大量的研究工作[19,20]致力于解決語義鴻溝的問題,TxIntro提出虛擬機自省中的一致性問題并利用硬件事務內存較徹底地解決了這個問題。然而在虛擬機自省防范惡意 rootkit的領域中還有一個開放性問題,即如何檢測基于DKOM(direct kernel object manipulation)技術的rootkit,當前已經有一些基于內存快照比對的初步方案,但是并不能徹底解決該問題,同時還會造成比較大的性能損失,因此還是一個待解決的問題。

為了減小虛擬化平臺中系統的可信基,研究者們提出了各種不同的虛擬化系統架構,除了基于嵌套虛擬化的CloudVisor之外,其他的基于軟件的方法還包括NOVA[21],一個微內核的虛擬機監控器,把單個整體的虛擬化層分裝成一個基于組件的系統,并通過引入不同組件之間基于組件功能的訪問控制,達到提高虛擬化層安全性的目的;DeHype[22]將虛擬化層的大部分功能放在用戶態的虛擬化層,而在內核態維護一個稱為HyperLet的微型虛擬機監控器,用于處理事件通知和硬件I/O虛擬化;HyperLock[23]利用內核態中內存隔離的機制,將虛擬化層的功能在內核態進行實例的分割與隔離;Xoar[24]通過分割特權級虛擬機的服務,將其劃分成多個可重啟的非特權級服務虛擬機,從而減小系統的可信計算基,達到較好的錯誤和權限隔離。然而,純軟件的方法都還沒有被廣泛應用,除了性能和復雜度的考慮之外,安全性也無法超越基于硬件的方法。在虛擬化平臺系統重構的研究領域中,設計出一套新的基于硬件支持的虛擬化框架將會是一個非常有吸引力的探索方向。

虛擬化層的錯誤隔離和恢復也是一個比較重要并且充滿挑戰性的研究方向,TAN等提出的安全解決方案 TinyChecker[25]在一定程度上解決了這個問題,它借助了嵌套虛擬化的技術,在虛擬化層遭遇錯誤的時候能夠保證虛擬機快速恢復。然而錯誤隔離的問題并沒有得到根本性的解決,特別是在當前的虛擬化環境中,虛擬化層的單點錯誤就能夠造成整個系統的崩潰,影響所有運行于其之上的虛擬機,因此,如何實現一個高效細粒度的虛擬化層錯誤隔離機制是一個非常有意義的探索課題。

除此之外,虛擬化環境中的旁路攻擊在近幾年進入研究人員的視野,大量的研究[26~28]表明虛擬化平臺中的旁路攻擊已經不再只是理論上的攻擊手段,它們可以被用來竊取租戶隱私等。針對這個問題,Catalyst[29]等系統通過重新設計CPU緩存來緩解這個問題,而 Duppel[30]等系統通過引入一些隨機變量來增加攻擊難度。然而旁路攻擊這個問題并沒有得到徹底的解決,針對 LLC(lastlevel cache)的旁路攻擊,目前還沒有有效的軟件防御手段。現有的系統一方面需要修改硬件或者利用了最新的硬件特性,難以在所有商用平臺上推廣使用,另一方面會造成巨大的性能開銷。因此,如何設計出一個兼容性強,性能高的旁路攻擊防御系統依然是一個開放的問題。

最后,移動平臺的安全牽涉到每一個終端用戶的隱私安全,筆者之前的研究通過終端與云的相結合技術[31]來保護終端隱私數據的安全,并且利用基于 TrustZone的技術[32]來增強終端線上廣告的安全機制。隨著硬件的不斷發展,ARM也逐漸在移動終端加入了虛擬化技術的支持。然而移動端與服務器端的虛擬化技術相比,在架構、應用場景等方面都具有很大的差別,如何利用移動虛擬化平臺構造一個更為可信的終端環境,將會是一個很有前景的研究方向。

5 結束語

隨著云計算的普及和資源整合的迫切需求,虛擬化平臺必然在整個軟件架構中占據重要地位,如何合理應用虛擬化層這一額外的抽象層,為上層軟件提供進一步的功能和安全的相關服務,以及如何克服虛擬化在安全領域中所帶來的問題,是每一個云計算廠商都需要思考的問題。本文介紹了上海交通大學并行與分布式系統研究所近幾年來在虛擬化安全領域做出的一系列貢獻,包括利用虛擬化為上層軟件提供自底向上的安全服務,以及探索虛擬化環境中可信計算基和性能的優化,并且總結了現在和未來虛擬化安全領域還存在的問題和可能的探索方向。相信這些會對該領域的發展產生一定的借鑒意義。

[1] SPINELLIS D. Another level of indirection. Beautiful code[M]. CA: O'Reilly. 2007.

[2] CHEN H, CHEN J, MAO W, et al. Daonity-grid security from two levels of virtualization[J]. Information Security Technical Report,2007, 12(3): 123-138.

[3] CHEN H, ZHANG F, CHEN C, et al. Tamper-resistant execution in an untrusted operating system using a virtual machine monitor[R]. FDUPPITR-2007-0801.

[4] LIU Y, XIA Y, GUAN H, et al. Concurrent and consistent virtual machine introspection with hardware transactionalmemory[C]// 2014 IEEE 20th International Symposium on High Performance Computer Architecture. 2014: 416-427.

[5] LIU Y, ZHOU T, CHEN K, et al. Thwarting memory disclosure with efficient hypervisor-enforced intra-domain isolation[C]//The 22th ACM Conference on Computer and Communications Security. 2015.

[6] ZHANG F, CHEN J, CHEN H, et al. CloudVisor: retrofitting protection of virtual machines in multi-tenant cloud with nested virtualization[C]//The 23rd ACM Symposium on Operating Systems Principles. 2011: 203-216.

[7] XIA Y, LIU Y, CHEN H. Architecture support for guest-transparent VM protection from untrusted hypervisor and physical attacks[C]// IEEE 19th International Symposium on High Performance Computer Architecture. 2013:246-257.

[8] XIA Y, LIU Y, GUAN H, et al. Secure outsourcing of virtual appliance[J]. IEEE Transactions on Cloud Computing, 2015:1.

[9] LI W, XIA Y, CHEN H, et al. Reducing world switches in virtualized environment with flexible cross-world calls[C]//The 42nd Annual International Symposium on Computer Architecture, ACM. 2015:375-387.

[10] CHEN X, GARFINKEL T, LEWIS E C, et al. Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems[C]//ASPLOS. 2008.

[11] CHECKOWAY S, SHACHAM H. Iago attacks: why the system call API is a bad untrusted RPC interface[C]//The 18th International Conference on Architectural Support for Programming Languages and Operating Systems. 2013.

[12] HOFMANN O S, KIM S, DUNN A M, et al. Inktag: secure applications on an untrusted operating system[C]//ASPLOS. 2013.

[13] XIA Y, LIU Y, CHEN H, et al. Defending against VM Rollback Attack[C]//The 2nd International Workshop on Dependability of Clouds Data Centers and Virtual Machine Technology. 2012.

[14] CHEN H, WU X, YUAN L, et al. Practical and efficient information flow tracking using speculative hardware[C]//The 35th International Symposium on Computer Architecture. 2008.

[15] CHEN H, YUAN L, WU X, et al. Control flow obfuscation with information flow tracking[C]//The 42nd International Conference on Microarchitecture. 2009.

[16] YUAN L, XING W, CHEN H, et al. Security Breaches as PMU deviation: detecting and identifying security attacks using performance counters[C]//ACM SIGOPS Asia-pacific Workshop on Systems. 2011.

[17] XIA Y, LIU Y, CHEN H, et al. CFIMon: detecting violation of control flow integrity using performance counters[C]//The 42nd Annual IEEE/IFIP International Conference on Dependable Systems and Networks. 2011.

[18] GARFINKEL T, ROSENBLUM M, et al. A virtual machine introspection based architecture for intrusion detection[C]//NDSS. 2003.

[19] PAYNE B D, DE CARBONE M, LEE W. Secure and flexible monitoring of virtual machines[C]//ACSAC. 2007: 385-397.

[20] SRINIVASAN D, WANG Z, JIANG X, et al. Processout-grafting: an efficient out-of-vm approach for fine-grained process executionmonitoring[C]//CCS. 2011: 363-374.

[21] STEINBERG U, KAUER B. NOVA: a micro-hypervisorbased secure virtualization architecture[C]//The 5th European Conference on Computer Systems, ACM. 2010:209-222.

[22] WU C, WANG Z, JIANG X. Taming hosted hypervisors with(mostly) deprivileged execution[C]//NDSS. 2013.

[23] WANG Z, WU C, GRACE M, et al. Isolating commodity hosted hypervisors with hyperlock[C]//The 7th ACM European Conference on Computer Systems. 2012: 127-140.

[24] COLP P, NANAVATI M, ZHU J, et al. Breaking up is hard to do: security and functionality in a commodity hypervisor[C]//The 23rd ACM Symposium on Operating Systems Principles. 2011:189-202.[25] TAN C, XIA Y, CHEN H. TinyChecker: transparent protection of VMs against hypervisor failures with nested virtualization[C]//The Second International Workshop on Dependability of Clouds Data Centers and Virtual Machine Technology. 2012.

[26] OSVIK D A, SHAMIR A, TROMER E. Cache attacks and countermeasures: the case of aes[C]//Topics in Cryptology-CT-RSA 2006. 2006:1-20.

[27] YAROM Y, FALKNER K. Flush+ reload: a high resolution, low noise, l3 cache side-channel attack[C]//The 23rd USENIX Security Symposium (USENIX Security 14). 2014:719-732.

[28] SHI J, SONG X, CHEN H, et al. Limiting cache-based side- channel in multi-tenant cloud using dynamic page coloring[C]//The 7th Workshop on Hot Topics in System Dependability. 2011:194-199.

[29] LIU F, GE Q, YAROM Y, et al. CATalyst: Defeating last-level cache side channel attacks in cloud computing[C]//IEEE Symposium on High-Performance Computer Architecture. 2016.

[30] ZHANG Y, REITER M K. Düppel: retrofitting commodity operating systems to mitigate cache side channels in the cloud[C]//The 20th ACM Conference on Computer and Communications Security. 2013: 827-837.

[31] XIA Y, LIU Y, TAN C, et al. TinMan: eliminating confidential mobile data exposure with security-oriented offloading[C]//The 10th European Conference on Computer Systems. 2015.

[32] LI W, LI H, CHEN H, et al. AdAttester: secure online advertisement attestation on mobile devicesusing trustzone[C]//The 13th International Conference on Mobile Systems, Applications, and Services. 2015.

劉宇濤(1989-),男,福建龍巖人,上海交通大學博士生,主要研究方向為操作系統、虛擬化安全和手機安全。

陳海波(1982-),男,湖南邵陽人,上海交通大學教授、博士生導師,主要研究方向為系統軟件、系統結構與系統安全。

Virtualization security: the good, the bad and the ugly

LIU Yu-tao, CHEN Hai-bo

(Institution of Parallel and Distributed Systems, Shanghai Jiaotong University, Shanghai 200240, China)

The virtualization security has increasingly drawn widespread attention with the spread of cloud computing in recent years. Thanks to another level of indirection, virtualization can provide stronger isolation mechanisms,as well as bottom-up security services for upper-level software. On the other side, the extra indirection brings complexity and overhead as well, which poses huge challenges. A series of recent representative work done by the institute of parallel and distributed system shanghai jiaotong university, including providing security services of trusted execution environment, virtual machine monitoring, intra-domain isolation, as well as optimizing trusted computing base and cross-world calls in the virtualization environment. Finally the problems and directions in the space of virtualization security were summarized.

virtualization security, trusted execution environment, virtual machine introspection, intra-domain isolation, trusted computing base, cross-world call

TP309.2

A

10.11959/j.issn.2096-109x.2016.00091

2016-08-25;

2016-09-27。通信作者:陳海波,haibochen@sjtu.edu.cn

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 无码'专区第一页| 天天爽免费视频| 国产超碰在线观看| 日本午夜影院| 亚洲三级电影在线播放| 久久天天躁狠狠躁夜夜2020一| 亚洲国产理论片在线播放| 亚洲日本一本dvd高清| 丰满人妻中出白浆| 香蕉eeww99国产在线观看| 精品乱码久久久久久久| 丁香亚洲综合五月天婷婷| 夜夜操狠狠操| 在线一级毛片| 毛片一区二区在线看| 欧美日本不卡| 色综合成人| 国产精品亚洲一区二区三区在线观看| 曰AV在线无码| 国产成人做受免费视频| 欧美日韩在线亚洲国产人| 久久伊人操| 欧美yw精品日本国产精品| 国产av无码日韩av无码网站| 丰满人妻久久中文字幕| 精品一区二区无码av| 国产精品手机在线观看你懂的| 九九视频在线免费观看| 欧美伊人色综合久久天天| 人人澡人人爽欧美一区| 免费一级毛片不卡在线播放| 青青青国产免费线在| 亚洲色偷偷偷鲁综合| 亚洲国产中文综合专区在| 在线日韩一区二区| 亚洲日本www| 亚洲国产成人久久精品软件| 久久综合色播五月男人的天堂| 香蕉eeww99国产在线观看| 91亚洲精选| 91麻豆精品国产91久久久久| 国产精品亚洲一区二区三区在线观看| 亚洲永久视频| 伊人天堂网| 国产剧情无码视频在线观看| 福利国产在线| 综合亚洲色图| 美女无遮挡免费网站| 国产日韩久久久久无码精品| 在线观看国产黄色| yjizz国产在线视频网| 国产精品乱偷免费视频| 欧美成a人片在线观看| 91激情视频| 九九九久久国产精品| 成年女人a毛片免费视频| 色网站免费在线观看| 国产二级毛片| 亚洲国产天堂久久九九九| 亚洲国产精品不卡在线 | 国产精品毛片一区| 国产91在线免费视频| www精品久久| 色婷婷视频在线| 亚洲无码视频图片| 成人在线视频一区| 野花国产精品入口| 天堂成人av| 手机看片1024久久精品你懂的| 呦女亚洲一区精品| 欧美自慰一级看片免费| 在线精品欧美日韩| 98精品全国免费观看视频| 久久久波多野结衣av一区二区| 国产亚洲第一页| 亚洲欧美日韩成人高清在线一区| 国产免费a级片| 国产高清又黄又嫩的免费视频网站| 国产偷倩视频| 成人午夜视频网站| 天天躁日日躁狠狠躁中文字幕| 91尤物国产尤物福利在线|