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