趙曉東,曾慶凱
(1.南京大學(xué) 計算機(jī)軟件新技術(shù)國家重點實驗室,江蘇 南京210093;2.南京大學(xué) 計算機(jī)科學(xué)與技術(shù)系,江蘇 南京210093)
由于應(yīng)用程序和操作系統(tǒng)自身缺陷的存在及惡意程序可能對執(zhí)行環(huán)境造成的干擾和破壞,目前操作系統(tǒng)和應(yīng)用程序等軟件并不是處于一個完全安全的環(huán)境中。利用系統(tǒng)虛擬化技術(shù)解決與軟件安全相關(guān)的問題,提高操作系統(tǒng)和應(yīng)用程序的安全性成為虛擬化研究的一個重要方向?;谔摂M化技術(shù)的可信計算、程序隔離執(zhí)行、惡意軟件分析和入侵檢測等安全技術(shù)被廣泛研究。研究人員利用系統(tǒng)虛擬化技術(shù)提供為安全敏感應(yīng)用程序提供更安全的隔離執(zhí)行環(huán)境、更小的可驗證的計算基,將不同的應(yīng)用程序和操作系統(tǒng)隔離防止它們之間的干擾和破壞,從虛擬機(jī)抽象底層來獲得程序和系統(tǒng)更真實有效的執(zhí)行狀態(tài)和運(yùn)行信息。
系統(tǒng)虛擬化實現(xiàn)在一臺物理主機(jī)上虛擬出多個虛擬機(jī)(virtual machine,VM),每個虛擬機(jī)可看作是一個物理主機(jī)的副本。各虛擬機(jī)相互隔離并運(yùn)行獨(dú)立的操作系統(tǒng),虛擬機(jī)的資源由虛擬機(jī)監(jiān)控器(virtual machine monitor,VMM)統(tǒng)一管理。系統(tǒng)虛擬化本質(zhì)上是多個VM利用一組物理資源,由VMM實現(xiàn)對底層資源的劃分和共享,向上表現(xiàn)出多組虛擬計算資源[1]。
VMM是系統(tǒng)虛擬化的核心,根據(jù)VMM提供的平臺類型,VMM可以被分為兩類[2]:
(1)完全虛擬化:由VMM來虛擬實現(xiàn)現(xiàn)實平臺,對虛擬機(jī)來說,虛擬平臺和實現(xiàn)平臺一致,操作系統(tǒng)無需作任何修改即可運(yùn)行在虛擬平臺上。原有的x86體系結(jié)構(gòu)沒有為虛擬化提供硬件支持,完全虛擬化只能全部由軟件模擬實現(xiàn)。但完全軟件虛擬化會存在優(yōu)先級壓縮、性能開銷大等弊端。
針對這個問題,硬件廠商修改硬件結(jié)構(gòu)在CPU、芯片組和I/O設(shè)備中增加針對虛擬化的支持,比如Intel VT和AMD SVM技術(shù)等。它們幫助系統(tǒng)軟件更高效的實現(xiàn)虛擬化功能?,F(xiàn)有的常用VMM平臺,比如Xen、VMware、KVM等都支持硬件虛擬化技術(shù)。
(2)類虛擬化:類虛擬化中VMM呈現(xiàn)給操作系統(tǒng)的平臺抽象與現(xiàn)實平臺并不完全等價,需要修改操作系統(tǒng)來與VMM配合來實現(xiàn)虛擬化。類虛擬化可避開硬件結(jié)構(gòu)的缺陷,提高性能。VMM平臺比如Xen,即支持完全虛擬化,也支持類虛擬化。
系統(tǒng)虛擬化提供了隔離的執(zhí)行環(huán)境,且VMM具有軟件層中最高特權(quán)級,為安全應(yīng)用帶來多方面優(yōu)勢:
(1)隔離性:VMM管理的多個虛擬機(jī)獨(dú)立運(yùn)行在隔離的環(huán)境中,不會被其他虛擬機(jī)的干擾和破壞。
(2)高特權(quán)級:VMM比運(yùn)行在其上的操作系統(tǒng)有更高特權(quán)級,通過VMM可管理運(yùn)行在上層的操作系統(tǒng)和應(yīng)用程序的軟硬件資源。
(3)多實例:一個物理機(jī)上運(yùn)行多個虛擬機(jī),可將應(yīng)用程序組件分布到多個虛擬機(jī)提供不同的安全等級,消除完全物理隔離方式的局限性。
(4)可信計算基(trust computing base,TCB):VMM相對于操作系統(tǒng)來說代碼量更小,更易于實現(xiàn)安全驗證。通過VMM為應(yīng)用程序提供執(zhí)行環(huán)境,可大幅減小安全應(yīng)用的TCB大小。
針對系統(tǒng)虛擬化提供的安全優(yōu)勢,本節(jié)主要討論利用系統(tǒng)虛擬化的安全技術(shù)的研究文獻(xiàn)及最新進(jìn)展。最近幾年,在S & P和CCS等安全會議上每年都有與此類別的論文,而SOSP和OSDI等系統(tǒng)會議也常有相關(guān)研究。下面選取較為典型的研究作下介紹。
Proxos[3]將系統(tǒng)調(diào)用劃分為可信和不可信兩部分,可信部分由一般虛擬機(jī)提供,而不可信調(diào)用將由應(yīng)用程序私有的可信虛擬機(jī)提供,并允許應(yīng)用程序開發(fā)者確定應(yīng)用程序系統(tǒng)調(diào)用的路由規(guī)則。Proxos還設(shè)計了代理模塊來控制程序?qū)σ话闾摂M機(jī)資源的訪問及可信虛擬機(jī)與一般虛擬機(jī)間的切換。系統(tǒng)實現(xiàn)的原型對Xen和上層操作系統(tǒng)Linux的修改添加了一萬多行,應(yīng)用程序的路由配置一般也只需幾百行,最終性能開銷在15%左右。
TrustVisor[4]利用VMM來完成應(yīng)用程序安全敏感代碼的強(qiáng)制驗證和隔離執(zhí)行。研究引入程序邏輯片(pieces of application logic,PAL)的概念,PAL是由應(yīng)用程序開發(fā)者決定的應(yīng)用程序的安全敏感片段,由不需要上下文和操作系統(tǒng)等支持且有保密性和完整性需求的代碼和數(shù)據(jù)組成。TrustVisor利用硬件虛擬化的支持構(gòu)造一個特定功能的微型VMM,引入了3種工作模式:①傳統(tǒng)客戶模式,該模式正常執(zhí)行操作系統(tǒng)和其他應(yīng)用程序;②安全客戶模式,執(zhí)行被隔離的PAL;③主模式,擁有最高特權(quán)級的VMM執(zhí)行。VMM為PAL建立安全的隔離環(huán)境,將PAL和不可信環(huán)境隔離。TrustVisor還實現(xiàn)一個稱為μTPM的軟件模塊來模擬硬件TPM功能,為PAL分配一個μTPM實例完成代碼可信驗證。TrustVisor代碼量在一萬多行左右,大大縮減了PAL的TCB大小。
SP3[5]保護(hù)模型中應(yīng)用程序可以直接請求VMM加密自己的某個內(nèi)存頁面,使操作系統(tǒng)和其他應(yīng)用程序只能得到該頁面的密文內(nèi)容。為減少頻繁加密和解密帶來的開銷,SP3采取了兩個優(yōu)化措施:①頁面冗余,在VMM中存儲加密頁面的解密副本,在解密時由VMM重定向請求到副本頁面;②延時同步,在頁面被修改時并不同步頁面的鏡像,直到頁面鏡像被訪問時才同步頁面。通過優(yōu)化,系統(tǒng)原型大約只有3%的性能開銷,不過只能提供頁級加密保護(hù),并需修改操作系統(tǒng)。
Overshadow[6]則無需修改操作系統(tǒng)和應(yīng)用程序利用VMM的影子頁表,為應(yīng)用程序提供透明的加密機(jī)制。應(yīng)用程序的內(nèi)存頁面被生成兩種不同視圖,應(yīng)用程序自身使用正常的內(nèi)存頁面視圖,而操作系統(tǒng)和其他應(yīng)用程序使用加密的頁面視圖。VMM跟蹤和管理每個加密頁中包含的資源,同時對加密頁生成hash值來防止其被惡意修改。對于非內(nèi)存的資源比如文件等,則利用內(nèi)存映射功能將其映射為內(nèi)存頁面,實現(xiàn)對其的加密。Overshadow中操作系統(tǒng)可以管理應(yīng)用程序的資源,但不能直接訪問加密資源,并增加用戶態(tài)shim部件處理系統(tǒng)內(nèi)核與應(yīng)用程序間的控制流轉(zhuǎn)換及指針型參數(shù)和返回值的調(diào)整。
Lycosid[7]、VMwatcher[8]都是通過虛擬機(jī)自?。╲irtual machines introspection,VMI)來檢測虛擬機(jī)中隱藏進(jìn)程。Lycosid在VMM中統(tǒng)計虛擬機(jī)內(nèi)每個進(jìn)程消耗的CPU時間,并與虛擬機(jī)內(nèi)得到的進(jìn)程消耗的CPU時間匹配,推斷可能的隱藏進(jìn)程。VMwatcher則提出一種稱為客戶視圖轉(zhuǎn)換的技術(shù),在虛擬機(jī)外系統(tǒng)化地建立虛擬機(jī)的語義視圖,與內(nèi)部視圖比較發(fā)現(xiàn)隱藏的惡意軟件。它需要使用虛擬機(jī)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)及函數(shù)定義來自省VMM中得到的低級別狀態(tài),將其重構(gòu)為與VM內(nèi)部相等價的信息,完成對虛擬機(jī)內(nèi)語義的系統(tǒng)化重建。
與需要系統(tǒng)的數(shù)據(jù)及函數(shù)定義等信息完成VMI不同,Virtuoso[9]提出一種只需系統(tǒng)API定義即可自動產(chǎn)生自省程序的方法。Virtuoso首先在目標(biāo)系統(tǒng)中運(yùn)行包含被自省的功能的程序,記錄程序執(zhí)行的指令序列。然后對指令序列使用程序切片技術(shù)找到與功能相關(guān)的指令,如果一次執(zhí)行不成功,則多次執(zhí)行分析過程。最后合并多次分析得到的二進(jìn)制指令,并轉(zhuǎn)化為自省程序。
Lares[10]將虛擬化的優(yōu)勢運(yùn)用到主動監(jiān)控中。它在不可信虛擬機(jī)中加入鉤子截獲可能的敏感事件。當(dāng)敏感事件發(fā)生時,將相關(guān)信息傳遞至安全虛擬機(jī)內(nèi)的安全工具中,由安全工具使用VMI等功能完成分析,再將結(jié)果返回不可信虛擬機(jī)。Lares在不可信虛擬機(jī)中增加自包含的trampoline部件,部件不依賴操作系統(tǒng)功能,在事件發(fā)生時通過VMM完成信息傳遞和交互。為防止鉤子和trampoline被惡意修改,在VMM中將它們的頁表設(shè)置為只讀。Hooksafe[11]對Lares中hooks較為分散,利用頁表保護(hù)性能開銷大的問題作改進(jìn)。它分析內(nèi)核中鉤子的訪問情況,得到內(nèi)核對所有鉤子的訪問點,將鉤子集中到一片連續(xù)的只讀內(nèi)存中。而原有的訪問點被重定向到被保護(hù)的鉤子,減小離散頁表保護(hù)的性能開銷。
SecVisor[12]試圖解決操作系統(tǒng)內(nèi)核在運(yùn)行時的完整性問題。它利用AMD的SVM硬件虛擬化技術(shù)實現(xiàn)了一個代碼量少、對外接口少、便于移植的輕量級VMM。VMM對影子頁表創(chuàng)建副本,修改副本用戶空間執(zhí)行標(biāo)志位,使系統(tǒng)在內(nèi)核態(tài)運(yùn)行時不能執(zhí)行用戶空間的代碼,保證內(nèi)核代碼的完整性。SecVisor建立一個進(jìn)入內(nèi)核態(tài)的控制轉(zhuǎn)移事件列表,找到每個事件對應(yīng)的數(shù)據(jù)結(jié)構(gòu),得到所有進(jìn)入內(nèi)核態(tài)的入口點。在執(zhí)行到入口點時,進(jìn)入VMM中完成對影子頁表和副本使用的切換。VMM只包含4000多行代碼,并且只需對操作系統(tǒng)作較小的功能添加便可適應(yīng)內(nèi)核空間的初始化和變更。
HyperSafe[13]的目標(biāo)是VMM提供運(yùn)行時控制流完整性的保證,阻止惡意軟件在監(jiān)控器中執(zhí)行,提高VMM自身的安全性。它利用了兩個技術(shù):①不可繞過內(nèi)存鎖,在VMM啟動完后,修改CR0寄存器的頁表讀寫標(biāo)志位將其設(shè)置為只讀。對頁表的更新必須關(guān)閉只讀保護(hù),完成更新后再開啟只讀保護(hù);②受限指針?biāo)饕ㄟ^靜態(tài)分析VMM的控制流圖,對每個間接調(diào)用和跳轉(zhuǎn)以及返回指令,得到所有可能的跳轉(zhuǎn)目標(biāo)表。替換所有的函數(shù)調(diào)用和控制流轉(zhuǎn)換地址為目標(biāo)表中的索引值,使VMM只能完成合法的控制流轉(zhuǎn)換。兩個技術(shù)相互間形成鎖關(guān)系,受限指針?biāo)饕WC頁表更新功能不會被誤用而惡意破內(nèi)存保護(hù)鎖,內(nèi)存保護(hù)鎖保證受限指針?biāo)饕粫淮鄹摹?/p>
HyperSentry[14]則利用X86結(jié)構(gòu)CPU的系統(tǒng)管理模式(system management mode,SMM)完成VMM完整性保證。CPU通過觸發(fā)系統(tǒng)管理中斷進(jìn)入SMM管理模式執(zhí)行SMM程序,操作系統(tǒng)將會被掛起直至SMM執(zhí)行完成。SMM程序被保存專用內(nèi)存中,在BOIS啟動后被鎖定,VMM和操作系統(tǒng)都無法對其進(jìn)行訪問和篡改。文章通過平臺管理接口隱式觸發(fā)SMM程序,完成對VMM的測量和驗證。為防止驗證被VMM感知,SMM程序執(zhí)行中,系統(tǒng)屏蔽了可屏蔽中斷,臨時構(gòu)造中斷表處理不可屏蔽中斷。
CloudVisor[15]解決VMM或管理虛擬機(jī)被攻擊時如何保證虛擬機(jī)安全的問題。它利用硬件虛擬化的支持通過嵌套虛擬化技術(shù),在VMM之下引入一個稱為CloudVisor的特定VMM保護(hù)托管虛擬機(jī)的安全,實現(xiàn)虛擬化中資源管理和安全分離。原有的VMM和其他虛擬機(jī)管理軟件只需負(fù)責(zé)虛擬機(jī)資源管理等復(fù)雜任務(wù)。CloudVisor消除商業(yè)VMM越來越復(fù)雜的弊端,大大減小TCB大小。
根據(jù)目前的研究現(xiàn)狀,依據(jù)系統(tǒng)層次將系統(tǒng)虛擬化的安全技術(shù)的相關(guān)研究分為三類:應(yīng)用程序安全,操作系統(tǒng)安全和虛擬機(jī)監(jiān)控器的安全性。
操作系統(tǒng)可能被惡意軟件破壞,而無法為應(yīng)用程序提供可信的執(zhí)行環(huán)境?;谙到y(tǒng)虛擬化提高應(yīng)用程序安全性的研究,主要利用VMM的優(yōu)勢為應(yīng)用程序提供隔離的可信執(zhí)行環(huán)境,減小應(yīng)用程序的TCB。
現(xiàn)有的研究主要解決以下幾個問題:①安全性,保證應(yīng)用程序執(zhí)行環(huán)境與不可信外界的安全隔離,無法被外部環(huán)境惡意破壞;②可交互性,應(yīng)用程序需要操作系統(tǒng)功能,并由其完成對自身資源的管理,如何實現(xiàn)隔離執(zhí)行的同時與不可信外界間的安全交互;③兼容性,提供的環(huán)境如何與現(xiàn)有軟硬件結(jié)構(gòu)兼容,盡可能少的修改應(yīng)用程序和操作系統(tǒng),保證方案易于實施。④低開銷,如何減少VMM的隔離操作帶來性能開銷,保證隔離環(huán)境的可用性。
相關(guān)工作主要通過在VMM層對加密應(yīng)用程序的數(shù)據(jù)和代碼,或者直接在VMM層為應(yīng)用程序提供執(zhí)行環(huán)境來實現(xiàn),一般需要調(diào)整應(yīng)用程序來使用VMM提供的功能。對應(yīng)用程序的加密保護(hù)主要能過內(nèi)存頁面或頁表上。對于非內(nèi)容資源,比如文件、網(wǎng)絡(luò)端口等的加密保護(hù)依然是一個難點。而為減小性能開銷,通常會對應(yīng)用程序數(shù)據(jù)、代碼或功能等依據(jù)安全需求的不同進(jìn)行分離,為其提供不同安全等級的執(zhí)行環(huán)境。快速有效、易于實施的應(yīng)用程序分離策略也是相關(guān)研究要考慮的問題。
惡意軟件通過修改系統(tǒng)內(nèi)核數(shù)據(jù),截獲系統(tǒng)調(diào)用等方法破壞操作系統(tǒng)功能并隱藏自己,增加監(jiān)控軟件的檢測難度。研究主要利用系統(tǒng)虛擬化技術(shù)保護(hù)操作系統(tǒng)內(nèi)核完整性,增強(qiáng)入侵檢測和惡意軟件分析等安全工具的能力,提高操作系統(tǒng)安全性。
3.2.1 增強(qiáng)安全工具能力
基于虛擬機(jī)的惡意代碼分析和入侵檢測,在VMM或安全的虛擬機(jī)中實現(xiàn)安全工具可以具有以下優(yōu)勢:①不必考慮被檢測系統(tǒng)安全;②檢測無法被虛擬機(jī)繞過;③虛擬機(jī)難以感知檢測的存在?,F(xiàn)有的研究主要解決兩方面的問題:
(1)虛擬機(jī)自省
在虛擬機(jī)外,安全工具從VMM得到的虛擬機(jī)狀態(tài)一般是寄存器,內(nèi)存等低級別信息。而安全工具則使用程序的高層語義信息如文件行為、進(jìn)程行為、系統(tǒng)服務(wù)行為等。虛擬機(jī)自省通過讀取虛擬機(jī)的狀態(tài),利用已知的虛擬機(jī)操作系統(tǒng)知識,如數(shù)據(jù)結(jié)構(gòu)和函數(shù)定義等,重建虛擬機(jī)信息的高級語義如PCB控制塊,文件描述符等。面對復(fù)雜的操作系統(tǒng)環(huán)境特別是非開源系統(tǒng)如何有效正確的完成自省,并將應(yīng)用已有的程序分析方法仍需進(jìn)一步研究。
(2)保護(hù)虛擬機(jī)內(nèi)部件的安全
基于虛擬化的入侵檢測為保證性能通常在被檢測虛擬機(jī)中增加驅(qū)動或組件完成截獲敏感事件、傳遞信息等功能。現(xiàn)在研究通過在VMM對組件頁表寫保護(hù),加密等措施來防止組件被不可信破壞。但頁表保護(hù)和加密在執(zhí)行時將發(fā)生VMM的特權(quán)級切換,帶來一定的開銷。為保證方案有效性,需要保證安全性的同時降低性能開銷。
3.2.2 操作系統(tǒng)完整性保證
目前的研究主要為利用VMM驗證和控制操作系統(tǒng)中應(yīng)用程序?qū)Σ僮飨到y(tǒng)的惡意修改,及防止操作系統(tǒng)在內(nèi)核態(tài)中執(zhí)行用戶空間惡意程序兩方面。它們主要根據(jù)操系統(tǒng)用戶態(tài)和內(nèi)核態(tài)的不同特權(quán)級,在VMM中通過修改頁表達(dá)到目的。而針對惡意代碼通過動態(tài)加載模塊和驅(qū)動完成對操作系統(tǒng)的攻擊,也有一些研究將通過將不可信驅(qū)動及模塊同已有的可信系統(tǒng)內(nèi)核隔離。這方面的研究通常假設(shè)已有內(nèi)核可信。利用虛擬化技術(shù),可將不可信驅(qū)動及模塊同已有的可信系統(tǒng)隔離,驗證和控制不可信組件。目前的研究主要解決兩方面:①如何降低訪問控制策略的開銷;②如何保證同已有系統(tǒng)程序的兼容性。同時返回值導(dǎo)向(return oriented)這種利用已有安全代碼完成惡意攻能的攻擊方式,也為利用虛擬化保證操作系統(tǒng)控制流完整性提出新的要求。
大部分基于虛擬化的安全研究是以VMM可信為假設(shè)前提,但VMM實際上并非完全可信,如Xen和VMware等都被報告存在漏洞[16]。隨著VMM功能越來越復(fù)雜,代碼量不斷增加,將引入更多的漏洞。針對VMM的惡意軟件和攻擊,比如subVirt、blue pill、虛擬機(jī)逃逸等也被研究。所以提高VMM自身的安全性為上層應(yīng)用提供一個可信的基礎(chǔ)也是研究的一個重要方向。它們可被分為兩類:
(1)減小TCB:VMM隨著功能的日益復(fù)雜,代碼量不斷增加,上層安全應(yīng)用的TCB隨之加大。目前研究工作主要通過功能劃分的方法,將VMM管理和安全相關(guān)部分分離,減小TCB。但是如何在分離之后保持VMM的特性和功能仍然是一個研究的難點。而針于特定安全應(yīng)用,構(gòu)建專用VMM也是減小TCB研究的一個重要方面。
(2)自身可信保證:VMM作為軟件層面的最下層,保證自身可信十分困難。現(xiàn)有的研究主要利用硬件的安全特性來完成VMM的可信保證。比如利用BOIS的啟動驗證功能,完成VMM的可信啟動。Intel的可信執(zhí)行技術(shù)通過硬件擴(kuò)展來提供動態(tài)可信根機(jī)制,建立動態(tài)的可信計算環(huán)境。而硬件虛擬化的支持,特別是嵌套虛擬化技術(shù)配合控制流分析也為實現(xiàn)VMM完整性提供可能的途徑。
Intel-VT硬件輔助的虛擬化技術(shù)中,增加了虛擬機(jī)控制塊(VMCS)和兩種操作模式:根模式和非根模式,其中VMM運(yùn)行在根模式,虛擬機(jī)運(yùn)行在非根模式,每個虛擬機(jī)的虛擬處理器對應(yīng)一個VMCS結(jié)構(gòu)。在VMM中可以對虛擬機(jī)的VMCS進(jìn)行修改和配置,修改虛擬機(jī)當(dāng)前執(zhí)行的狀態(tài)。根據(jù)這個特性,我們對VMM進(jìn)行修改,截獲虛擬機(jī)中正在執(zhí)行的程序的狀態(tài)信息,對信息進(jìn)行修改,調(diào)試程序的運(yùn)行。系統(tǒng)設(shè)計如圖1所示。
圖1 惡意軟件調(diào)試分析系統(tǒng)設(shè)計
系統(tǒng)原型在開源軟件Ether[17]上二次開發(fā)實現(xiàn),Ether是一個基于Xen的惡意軟件分析工具可以截獲惡意軟件的系統(tǒng)調(diào)用和指令序列,我們增加了對程序的調(diào)試功能并結(jié)合程序切片技術(shù)提取程序的條件判斷語句對惡意軟件進(jìn)行多路徑的調(diào)試,提高惡意程序動態(tài)分析的代碼覆蓋率。
實驗選取了5個惡意代碼樣本在系統(tǒng)原型上分析調(diào)試,結(jié)果如表1所示:其中代碼長度是對代碼靜態(tài)分析后的代碼總長,斷點數(shù)為動態(tài)調(diào)試時設(shè)置的惡意代碼斷點數(shù),執(zhí)行總長度為代碼動態(tài)調(diào)試時執(zhí)行的不重復(fù)代碼的總長。對于不能其中不能達(dá)到完全代碼覆蓋的程序,是由于在調(diào)試過程中發(fā)生錯誤,程序崩潰退出。
表1 惡意代碼動態(tài)分析調(diào)試測試
從實驗結(jié)果可以看出從VMM中可以截獲程序的狀態(tài)信息,并完成對程序狀態(tài)的修改,防止惡意程序?qū)Ψ治霏h(huán)境的破壞。系統(tǒng)原型可以有效提高惡意程序的動態(tài)執(zhí)行中的代碼覆蓋率。相比較單機(jī)的調(diào)試環(huán)境,此方式更透明安全。
系統(tǒng)虛擬化技術(shù)有隔離性、封裝性安全優(yōu)勢同時虛擬機(jī)監(jiān)控器有更小的可信計算基,更高的特權(quán)級,彌補(bǔ)了原有系統(tǒng)和應(yīng)用軟件系統(tǒng)上的安全性上的不足。但為應(yīng)用程序或操作系統(tǒng)構(gòu)建一個隔離獨(dú)立、安全性高、性能影響小、兼容性強(qiáng)的執(zhí)行環(huán)境提供更細(xì)粒度的保護(hù)依然存在不少困難,仍需要進(jìn)深入研究。利用不斷成熟的硬件輔助虛擬化技術(shù),將是解決這些問題的重要方向。本文最后利用虛擬化技術(shù)建立一個安全透明的惡意軟件調(diào)試環(huán)境,一定程序上驗證了系統(tǒng)虛擬化的安全特性,但是對調(diào)試環(huán)境自動化的仍需進(jìn)一步改進(jìn)。
[1]JIN Hai.Computer system virtualization-principle and implementation[M].Peking:Tsinghua University Press,2008:54-56(in Chinese).[金海.計算機(jī)系統(tǒng)虛擬化—原理與實現(xiàn)[M].北京:清華大學(xué)出版社,2008:54-56.]
[2]Intel Open Source Technology Center,Parallel Processing Institute of Fudan University.Principle and implementation of system virtualization[M].Peking:Tsinghua University Press,2009:64-65(in Chinese).[英特爾開源軟件技術(shù)中心,復(fù)旦大學(xué)并行處理研究所.系統(tǒng)虛擬化原理與實現(xiàn)[M].北京:清華大學(xué)出版社,2009:64-65.]
[3]Richard Ta-Min,Litty Lionel,Lie David.Splitting interfaces:Making trust between applications and operating systems configurable[C]//Proceedings of the 7th Symposium on Operating Systems Design and Implementation.Seattle,Washington:USENIX Association,2006:279-292.
[4]Mccune M Jonathan,Li Yanlin,Qu Ning,et al.TrustVisor:Efficient TCB reduction and attestation[C]//Washington,DC,USA:IEEE Compu-ter Society,2010:143-158.
[5]Yang Jisoo,Shin G Kang.Using hypervisor to provide data secrecy for user applications on a per-page basis[C]//Proceedings of the fourth ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments.Seattle,WA,USA:ACM,2008:71-80.
[6]Chen Xiaoxin,Garfinkel Tal,Lewis E Christopher,et al.O-vershadow:A virtualization-based approach to retrofitting protection in commodity operating systems[J].SIGARCH Comput Archit News,2008,36(1):2-13.
[7]Jones T Stephen,Arpaci-Dusseau C Andrea,Arpaci-Dusseau H Remzi.VMM-based hidden process detection and identification using Lycosid[C]//Proceedings of the fourth ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments.Seattle,WA,USA:ACM,2008:91-100.
[8]Jiang Xuxian,Wang Xinyuan,Xu Dongyan.Stealthy malware detection through vmm-based"out-of-the-box"semantic view reconstruction[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security.Alexandria,Virginia,USA:ACM,2007:128-138.
[9]Brendan Dolan-Gavitt,Leek Tim,Zhivich Michael,et al.Virtuoso:Narrowing the semantic gap in virtual machine introspection[C]//Proceedings of the IEEE Symposium on Security and Privacy 2011:297-312.
[10]Payne D Bryan,Carbone Martim,Sharif Monirul,et al.Lares:An architecture for secure active monitoring using virtualization[C]//SP.Washington,DC,USA:IEEE Computer Society,2008:233-247.
[11]Wang Zhi,Jiang Xuxian,Cui Weidong,et al.Countering kernel rootkits with lightweight hook protection[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security.Chicago,Illinois,USA:ACM,2009:545-554.
[12]Seshadri Arvind,Luk Mark,Qu Ning,et al.SecVisor:a tiny hypervisor to provide lifetime kernel code integrity for commodity OSes[C]//SOSP.New York,NY,USA:ACM,2007:335-350.
[13]Wang Zhi,Jiang Xuxian.Hypersafe:A lightweight approach to provide lifetime hypervisor control-flow integrity[C]//SP.Washington,DC,USA:IEEE Computer Society,2010:380-395.
[14]Azab M Ahmed,Ning Peng,Wang Zhi,et al.HyperSentry:Enabling stealthy in-context measurement of hypervisor integrity[C]//Proceedings of the 17th ACM Conference on Computer and Communications Security.Chicago,Illinois,USA:ACM,2010:38-49.
[15]Zhang Fengzhe,Chen Jin,Chen Haibo,et al.CloudVisor:Retrofitting protection of virtual machines in multi-tenant cloud with nested virtualization[C]//Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles.Cascais,Portugal:ACM,2011:203-216.
[16]Secunia vulnerability report[OL].[2012-04-13].http://secunia.com/advisories/product.2012/.
[17]Dinaburg Artem,Royal Paul,Sharif Monirul,et al.Ether:Malware analysis via hardware virtualization extensions[C]//Proceedings of the 15th ACM Conference on Computer and Communications Security.Alexandria,Virginia,USA:ACM,2008:51-62.