国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種可配置的虛擬機內存隔離方法

2016-09-10 08:23胡志希戴新發(fā)徐士偉
計算機與數字工程 2016年8期
關鍵詞:安全策略進程內存

胡志?!〈餍掳l(fā) 徐士偉

(武漢數字工程研究所 武漢 430205)

?

一種可配置的虛擬機內存隔離方法

胡志希戴新發(fā)徐士偉

(武漢數字工程研究所武漢430205)

針對虛擬化環(huán)境自身體系結構和虛擬機之間內存映射的特點,提出一種特權域和普通域間可配置的內存隔離方法,實現對普通域內存信息的安全性隔離,在保證普通域運行過程內存信息可靠性和秘密性的同時,增強普通域內存信息管理的可維護性。

Xen; 虛擬機安全; 內存隔離

Class NumberTP309.1

1 引言

內存是虛擬機的關鍵部件之一,內存運行的安全性直接決定虛擬機運行的安全性。Xen虛擬化環(huán)境中,如果特權域Domain0(以下簡稱Dom0)中管理員使用用戶空間的工具利用特權讀取甚至Dump普通域DomainU(以下簡稱DomU)內存,或者其他普通域用戶利用Xen中存在的漏洞提權訪問其他普通域的內存(如Xen安全團隊披露的高危漏洞XSA-123[1],可能導致Guest VM讀取其他Guest VM的敏感數據。此漏洞對公有云服務的影響重大),這將使得Xen虛擬機的內存隔離變得非常脆弱。由此可見,如何確保虛擬機之間內存安全隔離直接影響到Xen虛擬化環(huán)境的安全性和可靠性。

為解決惡意虛擬機用戶竊取其他虛擬機內存信息的問題,已有研究人員借鑒Linux操作系統(tǒng)中安全模塊Linux Security Module(LSM),在Xen環(huán)境中設計Xen安全模塊XSM[2](Xen Security Module)。XSM主要支持兩種安全框架:ACM[3]和Flask[4]。其中Flask(Flux Advanced Security Kernel)安全框架移植自SELinux,它清晰地區(qū)分開策略決定邏輯和策略執(zhí)行邏輯,是一個細粒度的、靈活的強制訪問控制框架。

本文針對虛擬化環(huán)境自身安全體系結構的特點,結合Xen中與內存安全相關的管理機制,分析Dom0通過XenAccess機制獲取虛擬機內存信息的完整過程,證明Xen虛擬機內存隔離的脆弱性,并基于Xen Flask安全框架提出一種可配置的隔離特權域對普通域DomU獲取內存信息的方法,最后通過實驗證明該方法能夠完成Dom0和DomU之間的內存安全隔離。

2 可配置的虛擬機內存隔離方法

本文可配置的虛擬機內存隔離方法如圖1所示。

圖1 可配置的虛擬機內存隔離方法

首先,根據Xen安全模塊Flask安全框架已有的TE(Type Enforcement)模型,將DomU標記為特殊的安全標簽,結合當前的FLASK安全策略中鉤子函數實現擴展Flask關于特殊安全標簽的策略,保證DomU的正常創(chuàng)建和運行。

然后,重新生成Flask策略文件,在每次啟動Xen hypervisor時,此策略文件被載入Xen內核,Xen安全模塊對Xen平臺上運行的虛擬機之間如域控制、授權表、內存控制[5]的相關操作進行安全性檢測,只有符合策略文件的操作才被允許執(zhí)行。

最后,在Dom0中利用Libxc庫通過特權驅動privcmd調用Hypercall,嘗試讀取DomU的運行內存信息。在假設Xen Hypervisor為可信的前提下,Hypervisor之外的任何域無權訪問和獲取其他域系統(tǒng)內存私有空間信息。若正確設置Flask安全策略,則Xen安全模塊能夠拒絕Dom0針對DomU內存信息讀取操作,從而達到DomU和Dom0內存安全隔離的目的。

3 實現方法

3.1Flask安全框架

Flask安全框架由策略強制服務器和安全服務器組成,策略強制服務器負責實施執(zhí)行安全策略[6],安全服務器負責設置安全策略[7],這樣可以隔離策略的執(zhí)行和配置,如圖2所示。如果需要更新策略,只需要更新安全服務器端,策略強制服務器端不需要作任何的改動。

基于圖1所示的可配置的虛擬機內存隔離方法和圖2中的安全框架結構,可配置的虛擬機內存隔離實現方法包括:在已激活Flask框架的Xen虛擬計算平臺上,標記進行內存隔離的虛擬機DomU為特殊安全標簽,擴展Flask默認安全策略文件保證DomU正常創(chuàng)建,在策略文件中設置拒絕Dom0利用超級調用直接讀取DomU內存信息的操作。根據這些策略信息,位于Xen Hypervisor內的Xen安全模塊實現對Dom0和DomU之間內存控制操作的檢測和判斷。

圖2 Flask安全框架結構圖

3.2Flask安全策略擴展

Flask安全框架中應用到的TE(類型加強)模型區(qū)別于傳統(tǒng)的TE模型。它直接在Security Context中用Type安全屬性來統(tǒng)一標識主體和客體,不直接用Domain同User相關聯(lián),而是用RBAC(基于角色的訪問控制)模型來給User和Domain直接提供一個額外的抽象層。此外,Flask中的TE還提供更好的細粒度的訪問操作。對于主體對客體的操作,系統(tǒng)提供如下變量來確定具體的操作:Source Type表示主體、Target Type表示客體、Class表示對系統(tǒng)中哪一類資源進行操作、Permission表示具體進行什么操作。其中Source Type和Target Type在系統(tǒng)中用Sid來標識,系統(tǒng)通過Sid來獲取對應的Context,最后從Context中取得Type。Class和Permission具體確定是哪類操作。

將運行Centos 6.4操作系統(tǒng)的虛擬機(以下簡稱虛擬機Centos6.4)標記為特殊的安全標簽。在Centos6.4.hvm配置文件中:

seclabel='customer_1:vm_r:nomigrate_t'

init_seclabel='customer_1:vm_r:nomigrate_t_building'

虛擬機Centos6.4在創(chuàng)建時使用安全標簽init_seclabel,在運行時更換安全標簽為seclabel[8]。擴展策略配置policy/policy.conf[9]文件。如表1所示。

表1 Flask安全策略擴展

4 實驗與結果分析

4.1攻擊實驗

Libvmi[10]是一款Linux下開源的Xen擴展庫,它封裝了Libxc庫。實驗平臺環(huán)境為:宿主機安裝Xen 4.6,Dom0操作系統(tǒng)為Centos 6.7,linux內核版本為3.18.8;實驗虛擬機安裝的操作系統(tǒng)為Centos 6.4,linux內核版本為2.6.32。攻擊實驗的實現流程如圖3所示。過程如下:

1) 攻擊程序請求獲取kernel symbol符號init_task的虛擬地址。

2) 通過查找目標Domain的System.map文件,找到init_task對應的虛擬地址。

3) init_task頁目錄映射,找到第一個進程對應的的頁表入口地址,Xen將此進程頁表映射到page directory。

4) 頁表映射尋找正確的數據頁。

5) 數據頁返回到libvmi的庫中。

6) Libvmi將與進程有關的數據返回攻擊程序,打印出進程列表信息。

從圖3中可以看出,首先利用Libxc暫停虛擬機Centos6.4,并尋找進程信息入口地址。在Linux內核中,每一個進程對應著一個進程描述符task_struct實例,task_struct在"linux/sched.h"中定義。進程可以訪問的所有虛擬地址稱為其地址空間(Virtual Address),task_struct中的成員變量mm_struct保存著地址空間的所有信息。由libvmi.conf獲得進程任務偏移量tasks_offset,name_offset,pid_offset。

獲取進程列表的表頭地址信息,即init_task進程地址信息,主要方式有兩種,一是在存有sym_cache_data的哈希表中查找;二是如果哈希表中沒有kernel symbol的地址信息,則通過查找System.map文件來獲取。獲取成功后開始遍歷任務列表。System-map文件中init_task所對應的虛擬地址作為current_process值。通過list_head=current_process+tasks_offset,并以list_head作為init_task進程入口current_list_entry,映射虛擬機Centos6.4內存獲取next_list_entry的虛擬地址。一個進程對應一個list entry,根據pid、name的偏移量可以映射內存獲取對應進程id,進程名信息。

圖3 內存攻擊實驗流程圖

其中xc_map_foreign_range()接口將目標系統(tǒng)中的內核內存映射到自己的地址空間。而這是通過內核驅動/proc/xen/priv-cmd,ioctl系統(tǒng)調用來間接調用hypercall:完成由3環(huán)到1環(huán)的轉變,并完成超級調用。程序運行結果如圖4所示。

實驗結果證明:Xen對虛擬機內存管理的不安全性,作為管理員或者能夠訪問Dom0的任何人員可以隨意訪問DomU內存空間。

4.2內存安全隔離功能測試

在Xen中進行如第3.2節(jié)所示的擴展安全策略的設置,然后再在Dom0中嘗試映射虛擬機Centos6.4內存,通過驗證DomU內存數據是否得到了保護。

1) 在Dom0中創(chuàng)建虛擬機Centos6.4。

2) 使用攻擊實驗中的process-list程序,在Dom0中嘗試獲取虛擬機Centos6.4中運行的進程。如圖5所示,Dom0獲取DomU內存列表失敗,錯誤代碼為拒絕。

通過單步調試獲取linux_privcmd_

map_foreign_bulk中錯誤碼為errno=13。關于錯誤碼的宏定義為:#define EACCES 13 /* Permission denied */。

進一步運行命令xl dmesg | grep avc[11],顯示系統(tǒng)已拒絕Dom0對虛擬機Centos6.4的map_read操作。由此可以看出,在ioctl系統(tǒng)調用間接調用Xen hypercall進行內存頁面映射的過程中,Xen安全模塊根據已擴展的安全策略文件對相關操作進行檢測并拒絕,達到隔離惡意用戶利用Dom0特權竊取DomU內存信息的目的。

圖4 內存攻擊實驗結果

圖5 內存隔離測試結果

4.3內存安全隔離性能測試

內存訪問性能測試采用Mbw[12](Memory Bandwidth Benchmark)工具對虛擬機內存帶寬進行測定,并對比安全策略擴展前后的性能指標差距,目的在于測定內存隔離方案對系統(tǒng)內存訪問性能造成的影響。

表2 性能測試表

測試方法:使用與攻擊實驗相同硬件環(huán)境,分別在策略開啟時和關閉時的Xen平臺主機上進行內存指標訪問的測定,并進行對比。運行命令mbw 256,默認運行10次,256表示測試所用的內存大小,單位為MiB。

測試結果:測試結果如表2所示。從測試結果看,策略擴展開啟時主機的內存帶寬值較高,但策略擴展關閉時對內存訪問性能影響不大。

5 結語

本文設計并實現一種可配置的隔離特權域和普通域運行內存信息的方法。Xen Hypervisor能夠支持Xen安全模塊對Flask安全策略的擴展和配置,完成對特權域和普通域內存之間的安全隔離,一方面保證普通域內存信息的可靠性和秘密性;另一方面,增強普通域內存信息管理的可維護性。實驗表明,該方法對Xen平臺正常內存訪問活動性能的影響較小。

[1] XSA-123[EB/OL]. http://xenbits.xen.org/xsa.

[2] Machon Gregory. A Mechanism for Risk Adaptive Access Control (RAdAC)[R]. NSA,2007,3.

[3] Bryan D. Payne, Martim D. P. de A. Carbone, Wenke Lee. Secure and Flexible Monitoring of Virtual Machines[C]//Computer Security Applications Conference, 2007. ACSAC 2007. Twenty-Third Annual,2007,12.

[4] G. Coker. Xen Security Modules (XSM)[EB/OL]. http://www.xen.org/files/xensummit_4/xsm-summit-041707_Coker.pdf.

[5] Chris Takemura, Luke S. Crawford. The book of XEN: A Practical Guide for the System Administrator[M]. No Starch,2010:7-11.

[6] Derek G. Murray Grzegorz Milos Steven Hand. Improving Xen Security through Disaggregation[C]//Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments,2008.

[7] S. Rueda, H. Vijayakumar, T. Jaeger. Analysis of virtual machine system policies[C]//In Proc. ACM Symposium on Access Control Models and Technologies (SACMAT),2009:227-236.

[8] Russell Pavlicek. Securing Your Cloud with Xen Project’s Advanced Security Features[R]. Cloud Open North America,2013.

[9] 倪繼利.Linux安全體系分析與編程[M].北京:電子工業(yè)出版社,2007:83-84.

NI Jili. Linux Security System Analysis and Programming[M]. Beijing: Publishing House of Electronics Industry,2007:83-84.

[10] Asit More, Shashikala Tapaswi. Virtual machine introspection: towards bridging the semantic gap[J]. Journal of Cloud Computing: Advances, Systems and Applications,2014(3):3-6.

[11] Salaun M. Practical overview of a Xen covert channel[J]. Journal in Computer Virology,2010(6):317-328.

[12] 邵長庚.Xen云環(huán)境虛擬機安全隔離技術研究與實現[D].成都:電子科技大學,2013:78-79.

SHAO Changgeng. Research and Implementation on Xen Cloud Security Isolation Technology[D]. Chengdu: University of Electronic Science and Technology of China,2013:78-79.

A Configurable Method for Virtual Machine Memory Isolation

HU ZhixiDAI XinfaXU Shiwei

(Wuhan Institute of Digital and Engineering, Wuhan430205)

Based on the virtualized environment architecture and memory mapping between virtual machines, a configurable method for preventing the privileged domain from accessing to user domain’s memory is proposed. The method implements the security isolation between domains’ memory, and this not only guarantees memory reliability and confidentiality during domain process execution, but also enhances the maintainability of domain’s memory management.

Xen, virtual machine security, memory isolation

2016年2月8日,

2016年3月31日

胡志希,女,碩士研究生,研究方向:信息安全。戴新發(fā),男,博士,研究員,碩士生導師,研究方向:虛擬化技術。徐士偉,男,博士,工程師,研究方向:信息安全。

TP309.1

10.3969/j.issn.1672-9722.2016.08.032

猜你喜歡
安全策略進程內存
基于飛行疲勞角度探究民航飛行員飛行安全策略
債券市場對外開放的進程與展望
“春夏秋冬”的內存
改革開放進程中的國際收支統(tǒng)計
一種防火墻安全策略沖突檢測方法*
淺析涉密信息系統(tǒng)安全策略
內存搭配DDR4、DDR3L還是DDR3?
如何加強農村食鹽消費安全策略
社會進程中的新聞學探尋
基于內存的地理信息訪問技術