引言
由于應(yīng)用程序和操作系統(tǒng)自身缺陷的存在及惡意程序可能對(duì)執(zhí)行環(huán)境造成的干擾和破壞,目前操作系統(tǒng)和應(yīng)用程序等軟件并不是處于一個(gè)完全安全的環(huán)境中。利用系統(tǒng)虛擬化技術(shù)解決與軟件安全相關(guān)的問(wèn)題,提高操作系統(tǒng)和應(yīng)用程序的安全性成為虛擬化研究的一個(gè)重要方向。基于虛擬化技術(shù)的可信計(jì)算、程序隔離執(zhí)行、惡意軟件分析和入侵檢測(cè)等安全技術(shù)被廣泛研究。研究人員利用系統(tǒng)虛擬化技術(shù)提供為安全敏感應(yīng)用程序提供更安全的隔離執(zhí)行環(huán)境、更小的可驗(yàn)證的計(jì)算基,將不同的應(yīng)用程序和操作系統(tǒng)隔離防止它們之間的干擾和破壞,從虛擬機(jī)抽象底層來(lái)獲得程序和系統(tǒng)更真實(shí)有效的執(zhí)行狀態(tài)和運(yùn)行信息。
1 系統(tǒng)虛擬化
系統(tǒng)虛擬化實(shí)現(xiàn)在一臺(tái)物理主機(jī)上虛擬出多個(gè)虛擬機(jī)(virtual machine,VM),每個(gè)虛擬機(jī)可看作是一個(gè)物理主機(jī)的副本。各虛擬機(jī)相互隔離并運(yùn)行獨(dú)立的操作系統(tǒng),虛擬機(jī)的資源由虛擬機(jī)監(jiān)控器(virtual machine monitor,VMM)統(tǒng)一管理。系統(tǒng)虛擬化本質(zhì)上是多個(gè)VM利用一組物理資源,由VMM實(shí)現(xiàn)對(duì)底層資源的劃分和共享,向上表現(xiàn)出多組虛擬計(jì)算資源。
1.1虛擬機(jī)監(jiān)控器分類(lèi)
VMM是系統(tǒng)虛擬化的核心,根據(jù)VMM提供的平臺(tái)類(lèi)型,VMM可以被分為兩類(lèi):
(1)完全虛擬化:由VMM來(lái)虛擬實(shí)現(xiàn)現(xiàn)實(shí)平臺(tái),對(duì)虛擬機(jī)來(lái)說(shuō),虛擬平臺(tái)和實(shí)現(xiàn)平臺(tái)一致,操作系統(tǒng)無(wú)需作任何修改即可運(yùn)行在虛擬平臺(tái)上。原有的x86體系結(jié)構(gòu)沒(méi)有為虛擬化提供硬件支持,完全虛擬化只能全部由軟件模擬實(shí)現(xiàn)。但完全軟件虛擬化會(huì)存在優(yōu)先級(jí)壓縮、性能開(kāi)銷(xiāo)大等弊端。
針對(duì)這個(gè)問(wèn)題,硬件廠(chǎng)商修改硬件結(jié)構(gòu)在CPU、芯片組和I/O設(shè)備中增加針對(duì)虛擬化的支持,比如Intel VT和AMD SVM技術(shù)等。它們幫助系統(tǒng)軟件更高效的實(shí)現(xiàn)虛擬化功能。現(xiàn)有的常用VMM平臺(tái),比如Ken、VMware、KVM等都支持硬件虛擬化技術(shù)。
(2)類(lèi)虛擬化:類(lèi)虛擬化中VMM呈現(xiàn)給操作系統(tǒng)的平臺(tái)抽象與現(xiàn)實(shí)平臺(tái)并不完全等價(jià),需要修改操作系統(tǒng)來(lái)與VMM配合來(lái)實(shí)現(xiàn)虛擬化。類(lèi)虛擬化可避開(kāi)硬件結(jié)構(gòu)的缺陷,提高性能。VMM平臺(tái)比如Xen,即支持完全虛擬化,也支持類(lèi)虛擬化。
1.2系統(tǒng)虛擬化的安全優(yōu)勢(shì)
系統(tǒng)虛擬化提供了隔離的執(zhí)行環(huán)境,且VMM具有軟件層中最高特權(quán)級(jí),為安全應(yīng)用帶來(lái)多方面優(yōu)勢(shì):
(1)隔離性:VMM管理的多個(gè)虛擬機(jī)獨(dú)立運(yùn)行在隔離的環(huán)境中,不會(huì)被其他虛擬機(jī)的干擾和破壞。
(2)高特權(quán)級(jí):VMM比運(yùn)行在其上的操作系統(tǒng)有更高特權(quán)級(jí),通過(guò)、nn壓可管理運(yùn)行在上層的操作系統(tǒng)和應(yīng)用程序的軟硬件資源。
(3)多實(shí)例:一個(gè)物理機(jī)上運(yùn)行多個(gè)虛擬機(jī),可將應(yīng)用程序組件分布到多個(gè)虛擬機(jī)提供不同的安全等級(jí),消除完全物理隔離方式的局限性。
(4)可信計(jì)算基(trust computing base,TCB):VMM相對(duì)于操作系統(tǒng)來(lái)說(shuō)代碼量更小,更易于實(shí)現(xiàn)安全驗(yàn)證。通過(guò)VMM為應(yīng)用程序提供執(zhí)行環(huán)境,可大幅減小安全應(yīng)用的TCB大小。
2 安全應(yīng)用和系統(tǒng)研究
針對(duì)系統(tǒng)虛擬化提供的安全優(yōu)勢(shì),本節(jié)主要討論利用系統(tǒng)虛擬化的安全技術(shù)的研究文獻(xiàn)及最新進(jìn)展。最近幾年,在S&P和CCS等安全會(huì)議上每年都有與此類(lèi)別的論文,而SOSP和OSDI等系統(tǒng)會(huì)議也常有相關(guān)研究。下面選取較為典型的研究作下介紹。
Proxos將系統(tǒng)調(diào)用劃分為可信和不可信兩部分,可信部分由一般虛擬機(jī)提供,而不可信調(diào)用將由應(yīng)用程序私有的可信虛擬機(jī)提供,并允許應(yīng)用程序開(kāi)發(fā)者確定應(yīng)用程序系統(tǒng)調(diào)用的路由規(guī)則。Proxos還設(shè)計(jì)了代理模塊來(lái)控制程序?qū)σ话闾摂M機(jī)資源的訪(fǎng)問(wèn)及可信虛擬機(jī)與一般虛擬機(jī)間的切換。系統(tǒng)實(shí)現(xiàn)的原型對(duì)Xen和上層操作系統(tǒng)Linux的修改添加了一萬(wàn)多行,應(yīng)用程序的路由配置一般也只需幾百行,最終性能開(kāi)銷(xiāo)在15%左右。
TrustVisor利用VMM來(lái)完成應(yīng)用程序安全敏感代碼的強(qiáng)制驗(yàn)證和隔離執(zhí)行。研究引入程序邏輯片(pieces of application logic,PAL)的概念,PAL是由應(yīng)用程序開(kāi)發(fā)者決定的應(yīng)用程序的安全敏感片段,由不需要上下文和操作系統(tǒng)等支持且有保密性和完整性需求的代碼和數(shù)據(jù)組成。TrustVisot利用硬件虛擬化的支持構(gòu)造一個(gè)特定功能的微型VMM,引入了3種工作模式:①傳統(tǒng)客戶(hù)模式,該模式正常執(zhí)行操作系統(tǒng)和其他應(yīng)用程序;②安全客戶(hù)模式,執(zhí)行被隔離的PAL;③主模式,擁有最高特權(quán)級(jí)的VMM執(zhí)行。VMM為PAL建立安全的隔離環(huán)境,將PAL和不可信環(huán)境隔離。TrustVisor還實(shí)現(xiàn)一個(gè)稱(chēng)為μTPM的軟件模塊來(lái)模擬硬件TPM功能,為PAL分配一個(gè)μTPM實(shí)例完成代碼可信驗(yàn)證。TrustVisor代碼量在一萬(wàn)多行左右,大大縮減了PAL的TCB大小。
SP3保護(hù)模型中應(yīng)用程序可以直接請(qǐng)求VMM加密自己的某個(gè)內(nèi)存頁(yè)面,使操作系統(tǒng)和其他應(yīng)用程序只能得到該頁(yè)面的密文內(nèi)容。為減少頻繁加密和解密帶來(lái)的開(kāi)銷(xiāo),SP3采取了兩個(gè)優(yōu)化措施:①頁(yè)面冗余,在VMM中存儲(chǔ)加密頁(yè)面的解密副本,在解密時(shí)由VMM重定向請(qǐng)求到副本頁(yè)面;②延時(shí)同步,在頁(yè)面被修改時(shí)并不同步頁(yè)面的鏡像,直到頁(yè)面鏡像被訪(fǎng)問(wèn)時(shí)才同步頁(yè)面。通過(guò)優(yōu)化,系統(tǒng)原型大約只有3%的性能開(kāi)銷(xiāo),不過(guò)只能提供頁(yè)級(jí)加密保護(hù),并需修改操作系統(tǒng)。
Overshadow則無(wú)需修改操作系統(tǒng)和應(yīng)用程序利用VMM的影子頁(yè)表,為應(yīng)用程序提供透明的加密機(jī)制。應(yīng)用程序的內(nèi)存頁(yè)面被生成兩種不同視圖,應(yīng)用程序自身使用正常的內(nèi)存頁(yè)面視圖,而操作系統(tǒng)和其他應(yīng)用程序使用加密的頁(yè)面視圖。VMM跟蹤和管理每個(gè)加密頁(yè)中包含的資源,同時(shí)對(duì)加密頁(yè)生成hash值來(lái)防止其被惡意修改。對(duì)于非內(nèi)存的資源比如文件等,則利用內(nèi)存映射功能將其映射為內(nèi)存頁(yè)面,實(shí)現(xiàn)對(duì)其的加密。Overshadow中操作系統(tǒng)可以管理應(yīng)用程序的資源,但不能直接訪(fǎng)問(wèn)加密資源,并增加用戶(hù)態(tài)shim部件處理系統(tǒng)內(nèi)核與應(yīng)用程序間的控制流轉(zhuǎn)換及指針型參數(shù)和返回值的調(diào)整。
Lycosid、VMwatcher都是通過(guò)虛擬機(jī)自省(virtual machines introspection,VMI)來(lái)檢測(cè)虛擬機(jī)中隱藏進(jìn)程。Lycosid在VMM中統(tǒng)計(jì)虛擬機(jī)內(nèi)每個(gè)進(jìn)程消耗的CPU時(shí)間,并與虛擬機(jī)內(nèi)得到的進(jìn)程消耗的CPU時(shí)間匹配,推斷可能的隱藏進(jìn)程。VMwatcher則提出一種稱(chēng)為客戶(hù)視圖轉(zhuǎn)換的技術(shù),在虛擬機(jī)外系統(tǒng)化地建立虛擬機(jī)的語(yǔ)義視圖,與內(nèi)部視圖比較發(fā)現(xiàn)隱藏的惡意軟件。它需要使用虛擬機(jī)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)及函數(shù)定義來(lái)自省VMM中得到的低級(jí)別狀態(tài),將其重構(gòu)為與vM內(nèi)部相等價(jià)的信息,完成對(duì)虛擬機(jī)內(nèi)語(yǔ)義的系統(tǒng)化重建。
與需要系統(tǒng)的數(shù)據(jù)及函數(shù)定義等信息完成VMI不同,Virtuoso提出一種只需系統(tǒng)API定義即可自動(dòng)產(chǎn)生自省程序的方法。Virtuoso首先在目標(biāo)系統(tǒng)中運(yùn)行包含被自省的功能的程序,記錄程序執(zhí)行的指令序列。然后對(duì)指令序列使用程序切片技術(shù)找到與功能相關(guān)的指令,如果一次執(zhí)行不成功,則多次執(zhí)行分析過(guò)程。最后合并多次分析得到的二進(jìn)制指令,并轉(zhuǎn)化為自省程序。
Lares將虛擬化的優(yōu)勢(shì)運(yùn)用到主動(dòng)監(jiān)控中。它在不可信虛擬機(jī)中加入鉤子截獲可能的敏感事件。當(dāng)敏感事件發(fā)生時(shí),將相關(guān)信息傳遞至安全虛擬機(jī)內(nèi)的安全工具中,由安全工具使用VMI等功能完成分析,再將結(jié)果返回不可信虛擬機(jī)。Lares在不可信虛擬機(jī)中增加自包含的trampoline部件,部件不依賴(lài)操作系統(tǒng)功能,在事件發(fā)生時(shí)通過(guò)VMM完成信息傳遞和交互。為防止鉤子和trampoline被惡意修改,在VMM中將它們的頁(yè)表設(shè)置為只讀。Hooksafe對(duì)Lares中hooks較為分散,利用頁(yè)表保護(hù)性能開(kāi)銷(xiāo)大的問(wèn)題作改進(jìn)。它分析內(nèi)核中鉤子的訪(fǎng)問(wèn)情況,得到內(nèi)核對(duì)所有鉤子的訪(fǎng)問(wèn)點(diǎn),將鉤子集中到一片連續(xù)的只讀內(nèi)存中。而原有的訪(fǎng)問(wèn)點(diǎn)被重定向到被保護(hù)的鉤子,減小離散頁(yè)表保護(hù)的性能開(kāi)銷(xiāo)。
SecVisor試圖解決操作系統(tǒng)內(nèi)核在運(yùn)行時(shí)的完整性問(wèn)題。它利用AMD的svIⅥ硬件虛擬化技術(shù)實(shí)現(xiàn)了一個(gè)代碼量少、對(duì)外接口少、便于移植的輕量級(jí)VMM。VMM對(duì)影子頁(yè)表創(chuàng)建副本,修改副本用戶(hù)空間執(zhí)行標(biāo)志位,使系統(tǒng)在內(nèi)核態(tài)運(yùn)行時(shí)不能執(zhí)行用戶(hù)空間的代碼,保證內(nèi)核代碼的完整性。SecVisor建立一個(gè)進(jìn)入內(nèi)核態(tài)的控制轉(zhuǎn)移事件列表,找到每個(gè)事件對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),得到所有進(jìn)入內(nèi)核態(tài)的人口點(diǎn)。在執(zhí)行到入口點(diǎn)時(shí),進(jìn)入VMM中完成對(duì)影子頁(yè)表和副本使用的切換。VMM只包含4000多行代碼,并且只需對(duì)操作系統(tǒng)作較小的功能添加便可適應(yīng)內(nèi)核空間的初始化和變更。
HyperSafe的目標(biāo)是VMM提供運(yùn)行時(shí)控制流完整性的保證,阻止惡意軟件在監(jiān)控器中執(zhí)行,提高VMM自身的安全性。它利用了兩個(gè)技術(shù):①不可繞過(guò)內(nèi)存鎖,在VMM啟動(dòng)完后,修改CR0寄存器的頁(yè)表讀寫(xiě)標(biāo)志位將其設(shè)置為只讀。對(duì)頁(yè)表的更新必須關(guān)閉只讀保護(hù),完成更新后再開(kāi)啟只讀保護(hù);②受限指針?biāo)饕ㄟ^(guò)靜態(tài)分析VMM的控制流圖,對(duì)每個(gè)間接調(diào)用和跳轉(zhuǎn)以及返回指令,得到所有可能的跳轉(zhuǎn)目標(biāo)表。替換所有的函數(shù)調(diào)用和控制流轉(zhuǎn)換地址為目標(biāo)表中的索引值,使VMM只能完成合法的控制流轉(zhuǎn)換。兩個(gè)技術(shù)相互間形成鎖關(guān)系,受限指針?biāo)饕WC頁(yè)表更新功能不會(huì)被誤用而惡意破內(nèi)存保護(hù)鎖,內(nèi)存保護(hù)鎖保證受限指針?biāo)饕粫?huì)被篡改。
HyperSentry則利用X86結(jié)構(gòu)CPU的系統(tǒng)管理模式(system management mode,SMM)完成VMM完整性保證。CPU通過(guò)觸發(fā)系統(tǒng)管理中斷進(jìn)入SMM管理模式執(zhí)行SMM程序,操作系統(tǒng)將會(huì)被掛起直至SMM執(zhí)行完成。SMM程序被保存專(zhuān)用內(nèi)存中,在BOIS啟動(dòng)后被鎖定,VMM和操作系統(tǒng)都無(wú)法對(duì)其進(jìn)行訪(fǎng)問(wèn)和篡改。文章通過(guò)平臺(tái)管理接口隱式觸發(fā)SMM程序,完成對(duì)VMM的測(cè)量和驗(yàn)證。為防止驗(yàn)證被VMM感知,SMM程序執(zhí)行中,系統(tǒng)屏蔽了可屏蔽中斷,臨時(shí)構(gòu)造中斷表處理不可屏蔽中斷。
CloudVisor解決VMM或管理虛擬機(jī)被攻擊時(shí)如何保證虛擬機(jī)安全的問(wèn)題。它利用硬件虛擬化的支持通過(guò)嵌套虛擬化技術(shù),在VMM之下引入一個(gè)稱(chēng)為CloudVisor的特定VMM保護(hù)托管虛擬機(jī)的安全,實(shí)現(xiàn)虛擬化中資源管理和安全分離。原有的VMM和其他虛擬機(jī)管理軟件只需負(fù)責(zé)虛擬機(jī)資源管理等復(fù)雜任務(wù)。CloudVisor消除商業(yè)VMM越來(lái)越復(fù)雜的弊端,大大減小TCB大小。
3 研究現(xiàn)狀和趨勢(shì)分析
根據(jù)目前的研究現(xiàn)狀,依據(jù)系統(tǒng)層次將系統(tǒng)虛擬化的安全技術(shù)的相關(guān)研究分為三類(lèi):應(yīng)用程序安全,操作系統(tǒng)安全和虛擬機(jī)監(jiān)控器的安全性。
3.1應(yīng)用程序安全
操作系統(tǒng)可能被惡意軟件破壞,而無(wú)法為應(yīng)用程序提供可信的執(zhí)行環(huán)境。基于系統(tǒng)虛擬化提高應(yīng)用程序安全性的研究,主要利用VMM的優(yōu)勢(shì)為應(yīng)用程序提供隔離的可信執(zhí)行環(huán)境,減小應(yīng)用程序的TCB。
現(xiàn)有的研究主要解決以下幾個(gè)問(wèn)題:①安全性,保證應(yīng)用程序執(zhí)行環(huán)境與不可信外界的安全隔離,無(wú)法被外部環(huán)境惡意破壞;②可交互性,應(yīng)用程序需要操作系統(tǒng)功能,并由其完成對(duì)自身資源的管理,如何實(shí)現(xiàn)隔離執(zhí)行的同時(shí)與不可信外界間的安全交互;③兼容性,提供的環(huán)境如何與現(xiàn)有軟硬件結(jié)構(gòu)兼容,盡可能少的修改應(yīng)用程序和操作系統(tǒng),保證方案易于實(shí)施。④低開(kāi)銷(xiāo),如何減少VMM的隔離操作帶來(lái)性能開(kāi)銷(xiāo),保證隔離環(huán)境的可用性。
相關(guān)工作主要通過(guò)在VMM層對(duì)加密應(yīng)用程序的數(shù)據(jù)和代碼,或者直接在VMM層為應(yīng)用程序提供執(zhí)行環(huán)境來(lái)實(shí)現(xiàn),一般需要調(diào)整應(yīng)用程序來(lái)使用VMM提供的功能。對(duì)應(yīng)用程序的加密保護(hù)主要能過(guò)內(nèi)存頁(yè)面或頁(yè)表上。對(duì)于非內(nèi)容資源,比如文件、網(wǎng)絡(luò)端口等的加密保護(hù)依然是一個(gè)難點(diǎn)。而為減小性能開(kāi)銷(xiāo),通常會(huì)對(duì)應(yīng)用程序數(shù)據(jù)、代碼或功能等依據(jù)安全需求的不同進(jìn)行分離,為其提供不同安全等級(jí)的執(zhí)行環(huán)境。快速有效、易于實(shí)施的應(yīng)用程序分離策略也是相關(guān)研究要考慮的問(wèn)題。
3.2操作系統(tǒng)安全
惡意軟件通過(guò)修改系統(tǒng)內(nèi)核數(shù)據(jù),截獲系統(tǒng)調(diào)用等方法破壞操作系統(tǒng)功能并隱藏自己,增加監(jiān)控軟件的檢測(cè)難度。研究主要利用系統(tǒng)虛擬化技術(shù)保護(hù)操作系統(tǒng)內(nèi)核完整性,增強(qiáng)入侵檢測(cè)和惡意軟件分析等安全工具的能力,提高操作系統(tǒng)安全性。
3.2.1增強(qiáng)安全工具能力
基于虛擬機(jī)的惡意代碼分析和人侵檢測(cè),在VMM或安全的虛擬機(jī)中實(shí)現(xiàn)安全工具可以具有以下優(yōu)勢(shì):①不必考慮被檢測(cè)系統(tǒng)安全;②檢測(cè)無(wú)法被虛擬機(jī)繞過(guò);③虛擬機(jī)難以感知檢測(cè)的存在。現(xiàn)有的研究主要解決兩方面的問(wèn)題:
(1)虛擬機(jī)自省
在虛擬機(jī)外,安全工具從VMM得到的虛擬機(jī)狀態(tài)一般是寄存器,內(nèi)存等低級(jí)別信息。而安全工具則使用程序的高層語(yǔ)義信息如文件行為、進(jìn)程行為、系統(tǒng)服務(wù)行為等。虛擬機(jī)自省通過(guò)讀取虛擬機(jī)的狀態(tài),利用已知的虛擬機(jī)操作系統(tǒng)知識(shí),如數(shù)據(jù)結(jié)構(gòu)和函數(shù)定義等,重建虛擬機(jī)信息的高級(jí)語(yǔ)義如PCB控制塊,文件描述符等。面對(duì)復(fù)雜的操作系統(tǒng)環(huán)境特別是非開(kāi)源系統(tǒng)如何有效正確的完成自省,并將應(yīng)用已有的程序分析方法仍需進(jìn)一步研究。
(2)保護(hù)虛擬機(jī)內(nèi)部件的安全
基于虛擬化的入侵檢測(cè)為保證性能通常在被檢測(cè)虛擬機(jī)中增加驅(qū)動(dòng)或組件完成截獲敏感事件、傳遞信息等功能。現(xiàn)在研究通過(guò)在VMM對(duì)組件頁(yè)表寫(xiě)保護(hù),加密等措施來(lái)防止組件被不可信破壞。但頁(yè)表保護(hù)和加密在執(zhí)行時(shí)將發(fā)生VMM的特權(quán)級(jí)切換,帶來(lái)一定的開(kāi)銷(xiāo)。為保證方案有效性,需要保證安全性的同時(shí)降低性能開(kāi)銷(xiāo)。
3.2.2操作系統(tǒng)完整性保證
目前的研究主要為利用VMM驗(yàn)證和控制操作系統(tǒng)中應(yīng)用程序?qū)Σ僮飨到y(tǒng)的惡意修改,及防止操作系統(tǒng)在內(nèi)核態(tài)中執(zhí)行用戶(hù)空間惡意程序兩方面。它們主要根據(jù)操系統(tǒng)用戶(hù)態(tài)和內(nèi)核態(tài)的不同特權(quán)級(jí),在VMM中通過(guò)修改頁(yè)表達(dá)到目的。而針對(duì)惡意代碼通過(guò)動(dòng)態(tài)加載模塊和驅(qū)動(dòng)完成對(duì)操作系統(tǒng)的攻擊,也有一些研究將通過(guò)將不可信驅(qū)動(dòng)及模塊同已有的可信系統(tǒng)內(nèi)核隔離。這方面的研究通常假設(shè)已有內(nèi)核可信。利用虛擬化技術(shù),可將不可信驅(qū)動(dòng)及模塊同已有的可信系統(tǒng)隔離,驗(yàn)證和控制不可信組件。目前的研究主要解決兩方面:①如何降低訪(fǎng)問(wèn)控制策略的開(kāi)銷(xiāo);②如何保證同已有系統(tǒng)程序的兼容性。同時(shí)返回值導(dǎo)向(return oriented)這種利用已有安全代碼完成惡意攻能的攻擊方式,也為利用虛擬化保證操作系統(tǒng)控制流完整性提出新的要求。
3.3自身安全性
大部分基于虛擬化的安全研究是以VMM可信為假設(shè)前提,但VMM實(shí)際上并非完全可信,如Xen和VMware等都被報(bào)告存在漏洞。隨著VMM功能越來(lái)越復(fù)雜,代碼量不斷增加,將引入更多的漏洞。針對(duì)VMM的惡意軟件和攻擊,比如subVirt、blue pill、虛擬機(jī)逃逸等也被研究。所以提高VMM自身的安全性為上層應(yīng)用提供一個(gè)可信的基礎(chǔ)也是研究的一個(gè)重要方向。它們可被分為兩類(lèi):
(1)減小TCB:VMM隨著功能的日益復(fù)雜,代碼量不斷增加,上層安全應(yīng)用的TCB隨之加大。目前研究工作主要通過(guò)功能劃分的方法,將VMM管理和安全相關(guān)部分分離,減小TCB。但是如何在分離之后保持VMM的特性和功能仍然是一個(gè)研究的難點(diǎn)。而針于特定安全應(yīng)用,構(gòu)建專(zhuān)用VMM也是減小TCB研究的一個(gè)重要方面。
(2)自身可信保證:VMM作為軟件層面的最下層,保證自身可信十分困難。現(xiàn)有的研究主要利用硬件的安全特性來(lái)完成VMM的可信保證。比如利用BOIS的啟動(dòng)驗(yàn)證功能,完成VMM的可信啟動(dòng)。Intel的可信執(zhí)行技術(shù)通過(guò)硬件擴(kuò)展來(lái)提供動(dòng)態(tài)可信根機(jī)制,建立動(dòng)態(tài)的可信計(jì)算環(huán)境。而硬件虛擬化的支持,特別是嵌套虛擬化技術(shù)配合控制流分析也為實(shí)現(xiàn)VMM完整性提供可能的途徑。
4 實(shí)驗(yàn)與分析
Intel-VT硬件輔助的虛擬化技術(shù)中,增加了虛擬機(jī)控制塊(VMCS)和兩種操作模式:根模式和非根模式,其中VMM運(yùn)行在根模式,虛擬機(jī)運(yùn)行在非根模式,每個(gè)虛擬機(jī)的虛擬處理器對(duì)應(yīng)一個(gè)VMCS結(jié)構(gòu)。在VMM中可以對(duì)虛擬機(jī)的VMCS進(jìn)行修改和配置,修改虛擬機(jī)當(dāng)前執(zhí)行的狀態(tài)。根據(jù)這個(gè)特性,我們對(duì)VMM進(jìn)行修改,截獲虛擬機(jī)中正在執(zhí)行的程序的狀態(tài)信息,對(duì)信息進(jìn)行修改,調(diào)試程序的運(yùn)行。系統(tǒng)設(shè)計(jì)如圖1所示。
圖1惡意軟件調(diào)試分析系統(tǒng)設(shè)計(jì)
系統(tǒng)原型在開(kāi)源軟件Ether上二次開(kāi)發(fā)實(shí)現(xiàn),Ether是一個(gè)基于Xen的惡意軟件分析工具可以截獲惡意軟件的系統(tǒng)調(diào)用和指令序列,我們?cè)黾恿藢?duì)程序的調(diào)試功能并結(jié)合程序切片技術(shù)提取程序的條件判斷語(yǔ)句對(duì)惡意軟件進(jìn)行多路徑的調(diào)試,提高惡意程序動(dòng)態(tài)分析的代碼覆蓋率。
實(shí)驗(yàn)選取了5個(gè)惡意代碼樣本在系統(tǒng)原型上分析調(diào)試,結(jié)果如表1所示:其中代碼長(zhǎng)度是對(duì)代碼靜態(tài)分析后的代碼總長(zhǎng),斷點(diǎn)數(shù)為動(dòng)態(tài)調(diào)試時(shí)設(shè)置的惡意代碼斷點(diǎn)數(shù),執(zhí)行總長(zhǎng)度為代碼動(dòng)態(tài)調(diào)試時(shí)執(zhí)行的不重復(fù)代碼的總長(zhǎng)。對(duì)于不能其中不能達(dá)到完全代碼覆蓋的程序,是由于在調(diào)試過(guò)程中發(fā)生錯(cuò)誤,程序崩潰退出。
表1惡意代碼動(dòng)態(tài)分析調(diào)試測(cè)試
從實(shí)驗(yàn)結(jié)果可以看出從VMM中可以截獲程序的狀態(tài)信息,并完成對(duì)程序狀態(tài)的修改,防止惡意程序?qū)Ψ治霏h(huán)境的破壞。系統(tǒng)原型可以有效提高惡意程序的動(dòng)態(tài)執(zhí)行中的代碼覆蓋率。相比較單機(jī)的調(diào)試環(huán)境,此方式更透明安全。
5 結(jié)束語(yǔ)
系統(tǒng)虛擬化技術(shù)有隔離性、封裝性安全優(yōu)勢(shì)同時(shí)虛擬機(jī)監(jiān)控器有更小的可信計(jì)算基,更高的特權(quán)級(jí),彌補(bǔ)了原有系統(tǒng)和應(yīng)用軟件系統(tǒng)上的安全性上的不足。但為應(yīng)用程序或操作系統(tǒng)構(gòu)建一個(gè)隔離獨(dú)立、安全性高、性能影響小、兼容性強(qiáng)的執(zhí)行環(huán)境提供更細(xì)粒度的保護(hù)依然存在不少困難,仍需要進(jìn)深入研究。利用不斷成熟的硬件輔助虛擬化技術(shù),將是解決這些問(wèn)題的重要方向。本文最后利用虛擬化技術(shù)建立一個(gè)安全透明的惡意軟件調(diào)試環(huán)境,一定程序上驗(yàn)證了系統(tǒng)虛擬化的安全特性,但是對(duì)調(diào)試環(huán)境自動(dòng)化的仍需進(jìn)一步改進(jìn)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴(lài)品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.lukmueng.com/
本文標(biāo)題:基于系統(tǒng)虛擬化的安全技術(shù)研究
本文網(wǎng)址:http://www.lukmueng.com/html/support/1112159342.html