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