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