引言
以云計(jì)算為基礎(chǔ)的虛擬化技術(shù),如系統(tǒng)級(jí)虛擬機(jī)(包括VMware、Oxen、Denali、KVM和User Mode Linux等),受到了越來(lái)越多的關(guān)注并得到越來(lái)越廣泛的應(yīng)用。與傳統(tǒng)計(jì)算機(jī)系統(tǒng)相比,虛擬化技術(shù)具有許多優(yōu)點(diǎn),如提高了硬件利用率,更便于軟件開(kāi)發(fā)測(cè)試環(huán)境的部署以及通過(guò)隔離性提高了安全保障等。但它也帶來(lái)了一些新的安全問(wèn)題。用戶通過(guò)操縱文件創(chuàng)建、復(fù)制、存儲(chǔ)、讀寫、共享、移植和回滾運(yùn)行狀態(tài),增強(qiáng)了使用的靈活性,但是卻影響了傳統(tǒng)系統(tǒng)的線性時(shí)間變化特征,從而也影響到它的安全策略和機(jī)制的有效性。目前,虛擬機(jī)在實(shí)際應(yīng)用中已占相當(dāng)大的比例,逐漸成為攻擊者的目標(biāo)。已出現(xiàn)的入侵或破壞虛擬化環(huán)境的案例幾乎涉及所有知名的商業(yè)和開(kāi)源虛擬化技術(shù),如VMware、Virtual PC和Oxen等。增強(qiáng)虛擬機(jī)技術(shù)的安全性和構(gòu)建可信的虛擬化環(huán)境已經(jīng)成為業(yè)界的迫切需求。
1 虛擬機(jī)訪問(wèn)控制機(jī)制
1.1虛擬機(jī)引入訪問(wèn)控制的必要性
雖然虛擬機(jī)具有良好的隔離性,但在很多應(yīng)用上,必須進(jìn)行虛擬機(jī)間的通信,而虛擬機(jī)間頻繁的交互帶來(lái)了新的安全挑戰(zhàn)。例如,虛擬機(jī)間未經(jīng)授權(quán)的非法訪問(wèn)、通過(guò)虛擬機(jī)間通信產(chǎn)生的病毒傳播。屬于不同組織或部門的虛擬機(jī)(通常有不同的安全級(jí)別)常常運(yùn)行在同一臺(tái)虛擬機(jī)監(jiān)控器上,因此,實(shí)現(xiàn)多級(jí)安全十分必要。強(qiáng)制訪問(wèn)控制可決定虛擬機(jī)之問(wèn)是否允許互相訪問(wèn),并進(jìn)而決定所允許訪問(wèn)的類型。
在非虛擬化環(huán)境下,已有一些安全模型和方法可用來(lái)確保對(duì)操作系統(tǒng)的安全訪問(wèn)。如:由貝爾(Bell)和拉普杜拉(SAPodilla)于1973年聯(lián)合設(shè)計(jì)的一個(gè)適用于多級(jí)安全的安全模型BLP。此模型支持自主訪問(wèn)控制和強(qiáng)制訪問(wèn)控制兩種安全策略;適應(yīng)性的BLP(Adaptable BLP,ABLP),ABLP在主體當(dāng)前敏感標(biāo)簽的指定上表現(xiàn)出更好的適應(yīng)性,并且在進(jìn)行安全決策時(shí)更加靈活。然而,目前在虛擬機(jī)環(huán)境下,相應(yīng)的模型和方法還比較少。Shape是一套在Oxen中實(shí)現(xiàn)的基于強(qiáng)制訪問(wèn)控制的安全框架,實(shí)現(xiàn)了中國(guó)墻(Chinese Wall,CW)和類型執(zhí)行(Type Enforcement,TE)兩種策略。中國(guó)墻策略不允許有利益沖突的虛擬機(jī)同時(shí)運(yùn)行在一臺(tái)虛擬機(jī)監(jiān)控器上;簡(jiǎn)單類型執(zhí)行策略可以用來(lái)控制虛擬機(jī)問(wèn)的通信。Shape框架為虛擬機(jī)和資源賦予不同的安全標(biāo)簽,并定義了安全標(biāo)簽沖突集合。例如,假設(shè)安全標(biāo)簽集合為A、B、C、D,安全標(biāo)簽沖突集合為A和B,根據(jù)中國(guó)墻策略,安全標(biāo)簽為A的虛擬機(jī)不能和安全標(biāo)簽為B的虛擬機(jī)同時(shí)運(yùn)行在相同的虛擬機(jī)監(jiān)控器上;而根據(jù)簡(jiǎn)單類型執(zhí)行策略,擁有相同安全標(biāo)簽的虛擬機(jī)(如安全標(biāo)簽同為A的虛擬機(jī))之間可以通信或共享資源。
基于角色的訪問(wèn)控制(Role-Based Access Control,RBAC)也被用于安全虛擬機(jī)監(jiān)控器架構(gòu)中。這套安全機(jī)制使用屬性證書(shū)表示用戶的角色,大大降低了為分布式終端計(jì)算機(jī)進(jìn)行策略管理的成本。基于角色的訪問(wèn)控制雖然區(qū)別于自主訪問(wèn)控制和強(qiáng)制訪問(wèn)控制,但是它能達(dá)到與后兩者相同的訪問(wèn)控制效果。
1.2 Viet-BLP模型
為了實(shí)現(xiàn)虛擬機(jī)通信場(chǎng)景下的強(qiáng)制訪問(wèn)控制和多級(jí)安全,筆者在BLP模型的基礎(chǔ)上建立了Viet—BLP模型。由于虛擬機(jī)系統(tǒng)區(qū)別于非虛擬機(jī)系統(tǒng)的一些特征,筆者對(duì)模型元素、安全公理進(jìn)行了修改,對(duì)狀態(tài)轉(zhuǎn)換規(guī)則重新進(jìn)行了設(shè)計(jì)(基于BLP模型)。在重新設(shè)計(jì)的Viet—BLP狀態(tài)轉(zhuǎn)換規(guī)則中,普通的主體(除可信(特權(quán))虛擬機(jī)之外的普通虛擬機(jī))只有有限的權(quán)限,許多規(guī)則只能由可信主體(可信虛擬機(jī))執(zhí)行。因此,Viet-BLP模型支持強(qiáng)制訪問(wèn)控制和部分的自主訪問(wèn)控制,很好地滿足了虛擬機(jī)環(huán)境下的多級(jí)安全要求。
根據(jù)Viet—BLP模型。筆者在Oxen中實(shí)現(xiàn)了一套適用于多級(jí)安全的強(qiáng)制訪問(wèn)控制(Mandatory AccessContr01.MAC)框架,可以比當(dāng)前其它研究更好地確保虛擬機(jī)問(wèn)通信的安全。利用XSM(Oxen SecurityModules,Oxen安全模塊)給Oxen中與通信相關(guān)的甬?dāng)?shù)提供了鉤子(hook)接口,用戶可以將自行設(shè)計(jì)的安全策略設(shè)計(jì)成鉤子函數(shù),從而達(dá)到控制虛擬機(jī)間通信的目的。Viet-BLP模型使用了此甬?dāng)?shù)。在特權(quán)虛擬機(jī)(Dom0)中,利用central庫(kù)開(kāi)發(fā)了一套管理工具,從而可以很方便地在特權(quán)虛擬機(jī)中對(duì)安全策略進(jìn)行調(diào)整和修改。
實(shí)現(xiàn)的強(qiáng)制訪問(wèn)控制框架和前面提到的Shape有幾點(diǎn)不同。首先,Shape只能決定虛擬機(jī)間是否可以通信,但強(qiáng)制訪問(wèn)控制框架還能更細(xì)粒度地決定虛擬機(jī)間通信的類型;其次,Shape不允許擁有不同安全標(biāo)簽的虛擬機(jī)進(jìn)行通信,而強(qiáng)制訪問(wèn)控制框架實(shí)現(xiàn)了虛擬機(jī)問(wèn)的多級(jí)安全。
在當(dāng)前的云計(jì)算平臺(tái)中,由于不同用戶往往通過(guò)租賃的方式使用虛擬機(jī),攻擊者會(huì)通過(guò)虛擬機(jī)的通信機(jī)制來(lái)傳播其它用戶虛擬機(jī)上的數(shù)據(jù)或隱私信息。因此利用Viet—BLP模型,可以很好地避免此類隱患。像Amazon EC2 Service和Eucalyptus等云平臺(tái)都是構(gòu)建于Oxen虛擬機(jī)之上的,因而可以直接借鑒構(gòu)建在Oxen之上的強(qiáng)制訪問(wèn)控制框架來(lái)確保用戶的安全。
2 虛擬機(jī)安全度量機(jī)制
若要通過(guò)虛擬機(jī)問(wèn)的通信機(jī)制獲取一臺(tái)虛擬機(jī)上的數(shù)據(jù)或重要信息,前提是要入侵并在一定程度上控制那臺(tái)虛擬機(jī)。隨著云平臺(tái)的廣泛應(yīng)用,虛擬機(jī)不可避免地成為攻擊者入侵的對(duì)象。保障虛擬機(jī)運(yùn)行時(shí)的安全與可信已成為目前研究的熱點(diǎn)和重點(diǎn)。針對(duì)這一問(wèn)題,筆者提出了虛擬機(jī)靜態(tài)度量和動(dòng)態(tài)檢測(cè)框架。其中,靜態(tài)度量是指對(duì)程序運(yùn)行前的狀態(tài)進(jìn)行度量,動(dòng)態(tài)檢測(cè)則是在程序運(yùn)行時(shí)判斷其狀態(tài)。
虛擬機(jī)運(yùn)行時(shí)安全與可信計(jì)算聯(lián)系非常緊密。由于傳統(tǒng)的系統(tǒng)安全保障方法和機(jī)制通常是基于軟件層面的,缺少一個(gè)絕對(duì)安全的可信基點(diǎn),因此將它們應(yīng)用到虛擬機(jī)系統(tǒng)中難以實(shí)現(xiàn)真正具有可信性的安全等級(jí)。要從根本上提高系統(tǒng)安全性,必須從芯片、硬件結(jié)構(gòu)和操作系統(tǒng)等各方面綜合采取措施,這正是可信計(jì)算的基本思想。其目的是在系統(tǒng)中廣泛使用基于硬件安全模塊支持的可信計(jì)算平臺(tái),從而提高整體的安全性。
2.1虛擬機(jī)靜態(tài)度量
在云計(jì)算中,一切都是服務(wù)。其中,軟件即服務(wù)(Software as a Service.SaaS)使用戶可以在云平臺(tái)中使用本機(jī)上沒(méi)有的應(yīng)用程序,對(duì)用戶來(lái)說(shuō)具有很大的吸引力。由于應(yīng)用程序和計(jì)算資源已不在用戶控制范圍內(nèi),因此面臨最大的挑戰(zhàn)是保證用戶級(jí)安全。
為解決這一問(wèn)題,借鑒IBM提出的完整性度量框架(Integrity Measurement Architecture,IMA),提出了一套適用于軟件服務(wù)的In—VM安全度世框架。在此框架中,虛擬機(jī)分成兩類:一臺(tái)可信虛擬機(jī)和多臺(tái)客戶虛擬機(jī)。其中,客戶虛擬機(jī)為用戶提供軟件服務(wù)。此框架能在客戶虛擬機(jī)(Guest VM)運(yùn)行一段時(shí)間后(虛擬機(jī)啟動(dòng)可信部分是由Toot來(lái)保證的)判斷其用戶級(jí)應(yīng)用程序的狀態(tài)。與現(xiàn)有的虛擬機(jī)內(nèi)監(jiān)控方法相比,框架利用可信平臺(tái)模塊(Trust PlatformModule,TPM)作為可信根結(jié)點(diǎn),不需要硬件虛擬化的支持。
虛擬機(jī)內(nèi)度量框架In—VM的工作流程為:客戶虛擬機(jī)中度量模塊(Measurement Module,MM)負(fù)責(zé)度量運(yùn)行程序并產(chǎn)生度量值,此度量發(fā)生在應(yīng)用程序加載之后,運(yùn)行之前。每當(dāng)新的度量值產(chǎn)生,它們立即通過(guò)虛擬機(jī)問(wèn)通信機(jī)制傳到可信虛擬機(jī),存放在度量列表(Measurement Table,MT)中,同時(shí)還將度量值順序擴(kuò)展到一個(gè)可信平臺(tái)模塊中的平臺(tái)配置寄存器(Platform Configuration Register,PCR)中。內(nèi)存監(jiān)視器用于保證度量模塊的安全和度量過(guò)程的可信性。
此外,還可在可信環(huán)境中(如不連網(wǎng)的狀態(tài)下)獲取運(yùn)行程序的可信度量值,將它們存放在參照列表,同時(shí)也將它們順序擴(kuò)展到另一個(gè)指定的平臺(tái)配置寄存器中。通過(guò)比較度量列表和參照列表中的對(duì)應(yīng)項(xiàng)來(lái)驗(yàn)證程序的狀態(tài)。筆者在Oxen中實(shí)現(xiàn)了此度量原型,能及時(shí)檢測(cè)出對(duì)應(yīng)用程序的篡改。通過(guò)性能測(cè)試,此度量原型性能開(kāi)銷較低。
2.2虛擬機(jī)動(dòng)態(tài)檢測(cè)
虛擬機(jī)系統(tǒng)運(yùn)行時(shí)的安全性直接影響到整個(gè)系統(tǒng)的安全,建立有效的框架來(lái)評(píng)估和保障虛擬機(jī)系統(tǒng)運(yùn)行時(shí)的狀態(tài),是虛擬機(jī)安全可信研究的重要目標(biāo)。
動(dòng)態(tài)檢測(cè)是實(shí)現(xiàn)運(yùn)行可信的關(guān)鍵技術(shù),目前的研究還無(wú)法滿足人們對(duì)于系統(tǒng)行為可信的要求。由于在傳統(tǒng)操作系統(tǒng)和應(yīng)用軟件方面尚沒(méi)有成熟的動(dòng)態(tài)檢測(cè)理論,而且其應(yīng)用也并不成熟,因此虛擬機(jī)提供的隔離技術(shù)在一定程度上還只是用于支撐和推動(dòng)可信計(jì)算的實(shí)現(xiàn)。
Root kit是攻擊系統(tǒng)運(yùn)行時(shí)的主要手段,一般需要系統(tǒng)權(quán)限(root)才能安裝到目標(biāo)系統(tǒng)。有很多方法可以使攻擊者取得系統(tǒng)權(quán)限,從而使Root kit能順利安裝在目標(biāo)機(jī)上。Root kit通?煞殖3類:(1)二進(jìn)制Root kit-對(duì)系統(tǒng)中的二進(jìn)制文件進(jìn)行修改后的惡意版本。(2)庫(kù)Root kit.對(duì)系統(tǒng)中的庫(kù)文件進(jìn)行修改后的惡意版本。(3)內(nèi)核Root kit.危害很大的版本,通常有兩種植入方法:一種是將Root kit設(shè)計(jì)成可加載內(nèi)核模塊Root kit(LKM root kit);另一種是利用Linux下的設(shè)備文伺:/dev/memo和/dev/memo。其中,二進(jìn)制和庫(kù)Root kit可以歸為用戶空間Root kit。
內(nèi)核Root kit通常會(huì)修改內(nèi)核中的一些重要信息,并且可以植入后門以便進(jìn)行后續(xù)的攻擊。更重要的是,內(nèi)核Root kit能通過(guò)修改系統(tǒng)命令如pHs或lamed來(lái)達(dá)到隱藏自己的目的。因此,內(nèi)核Root kit的危害更大,更不易發(fā)現(xiàn)。
核Root kit通常會(huì)修改內(nèi)核的中斷描述符表或系統(tǒng)調(diào)用相關(guān)內(nèi)容,其中對(duì)系統(tǒng)調(diào)用的修改主要有:
(1)修改系統(tǒng)調(diào)用表:修改系統(tǒng)調(diào)用表中系統(tǒng)凋用函數(shù)的入口地址,從而指向惡意代碼;
(2)修改系統(tǒng)調(diào)用函數(shù):不修改系統(tǒng)調(diào)用表,而是在系統(tǒng)調(diào)用函數(shù)中覆蓋惡意代碼,如jump指令,指向惡意代碼;
(3)重定向系統(tǒng)凋用表:修改syStem call函數(shù)中系統(tǒng)調(diào)用表的地址,將其指向攻擊者自定義的系統(tǒng)調(diào)用表。此外,還出現(xiàn)了另一種方法,它通過(guò)在處理器中的調(diào)試寄存器設(shè)置特殊斷點(diǎn),進(jìn)而修改內(nèi)核的相關(guān)內(nèi)容。
通常將惡意軟件分成4類:(1)惡意進(jìn)程;(2)潛伏于進(jìn)程或內(nèi)核中,修改內(nèi)存的只讀段的惡意代碼片段;(3)潛伏于進(jìn)程或內(nèi)核中,修改內(nèi)存的動(dòng)態(tài)內(nèi)容的惡意代碼片段;(4)其他利用硬件漏洞,位于更加底層的惡意軟件。(1)類惡意進(jìn)程一般的殺毒軟件能夠檢測(cè)出來(lái)。筆者的工作目標(biāo)是檢測(cè)(2)類和(3)類惡意代碼,也就是上面介紹的內(nèi)核Root kit;(4)類惡意代碼由于是針對(duì)硬件,暫時(shí)不屬于研究的范疇。針對(duì)以上(2)類和(3)類惡意代碼,筆者提出了一個(gè)動(dòng)態(tài)檢測(cè)框架。此框架把對(duì)客戶虛擬機(jī)的檢測(cè)模塊放在另一臺(tái)具有特權(quán)的虛擬機(jī)上,從而將被監(jiān)控的客戶虛擬機(jī)與監(jiān)控機(jī)制相分離,通過(guò)監(jiān)控機(jī)制動(dòng)態(tài)監(jiān)控客戶虛擬機(jī)的運(yùn)行狀態(tài)。這種實(shí)現(xiàn)方式有如下優(yōu)點(diǎn):
(1)減少了檢測(cè)被發(fā)現(xiàn)的可能以及檢測(cè)模塊被攻擊的可能,降低了惡意軟件繞過(guò)殺毒軟件進(jìn)行攻擊的風(fēng)險(xiǎn),從而與殺毒軟件形成互補(bǔ),提高了檢測(cè)的有效性;
(2)檢測(cè)對(duì)客戶完全透明,客戶虛擬機(jī)基本不用做任何的修改,而且,不依賴于客戶虛擬機(jī)中殺毒軟件的版本,可以獨(dú)立進(jìn)行升級(jí);
(3)用于檢測(cè)針對(duì)客戶虛擬機(jī)內(nèi)核的攻擊,而殺毒軟件很難檢測(cè)出這類攻擊。
筆者在Oxen中實(shí)現(xiàn)了此動(dòng)態(tài)檢測(cè)原型,借助于Menaces庫(kù),通過(guò)在特權(quán)虛擬機(jī)檢測(cè)客戶虛擬機(jī)(Dome)的內(nèi)存來(lái)發(fā)現(xiàn)對(duì)客戶虛擬機(jī)內(nèi)核的惡意攻擊:其檢測(cè)范圍涵蓋了之前提到的多種Root kit攻擊;動(dòng)態(tài)檢測(cè)框架對(duì)當(dāng)前云計(jì)算平臺(tái)具有很高的應(yīng)用價(jià)值。在云平臺(tái)中,若能及時(shí)檢測(cè)和發(fā)現(xiàn)為用戶提供服務(wù)的客戶虛擬機(jī)中受到的攻擊,將能盡早阻止攻擊的實(shí)施,使用戶的損失降到最低。此外,該動(dòng)態(tài)檢測(cè)原型,可以直接應(yīng)用到以O(shè)xen為底層的Amazon EC2 Service和Eucalyptus云平臺(tái)中。
3 結(jié)束語(yǔ)
隨著云計(jì)算技術(shù)的不斷成熟,以云計(jì)算為基礎(chǔ)的虛擬化系統(tǒng)安全變得越來(lái)越重要。虛擬機(jī)系統(tǒng)的安全可信問(wèn)題仍是一個(gè)有待深入研究的課題。幾乎所有的安全問(wèn)題其實(shí)都可以視為可信計(jì)算的一部分。也就是說(shuō)可信計(jì)算是安全的基礎(chǔ),研究可信計(jì)算技術(shù)可以為虛擬化技術(shù)提供安全保障服務(wù)。本文針對(duì)虛擬化系統(tǒng)的訪問(wè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管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:構(gòu)建虛擬化系統(tǒng)安全的研究與分析
本文網(wǎng)址:http://www.oesoe.com/html/support/1112187663.html