荀仲愷,黃 皓,金胤丞
(1. 南京大學 a. 計算機軟件新技術國家重點實驗室;b. 計算機科學與技術系,南京 2 10046;2. 中國電子科技集團公司第三十二研究所,上海 20023 3)
基于SR-IOV的虛擬機防火墻設計與實現(xiàn)
荀仲愷1a,1b,黃 皓1a,1b,金胤丞2
(1. 南京大學 a. 計算機軟件新技術國家重點實驗室;b. 計算機科學與技術系,南京 2 10046;2. 中國電子科技集團公司第三十二研究所,上海 20023 3)
由于虛擬網(wǎng)絡數(shù)據(jù)傳輸時,用戶態(tài)與核心態(tài)之間頻繁切換,導致虛擬域間多次數(shù)據(jù)拷貝嚴重影響網(wǎng)絡I/O性能。為此,提出一種高性能的虛擬機防火墻設計方案。利用SR-IOV規(guī)范的高性能數(shù)據(jù)傳輸特性和對接收數(shù)據(jù)包的過濾功能,使虛擬域直接與真實網(wǎng)卡交互。針對低特權級的虛擬域中防火墻容易受到攻擊的問題,通過在高特權級的Xen中部署監(jiān)控模塊,對虛擬域中的防火墻進行實時監(jiān)控。實驗結果表明,應用SR-IOV網(wǎng)卡可使虛擬機的網(wǎng)絡I/O性能相對于Xen傳統(tǒng)網(wǎng)絡訪問模式平均提高1倍以上,并且具有監(jiān)控模塊的Xen能防止防火墻被非法訪問和惡意篡改,保證防火墻的安全。
虛擬化;Xen虛擬機管理器;SR-IOV規(guī)范;防火墻;高性能;監(jiān)控
虛擬化技術是云計算[1]的關鍵技術。多個虛擬的計算機系統(tǒng)(以下簡稱虛擬機)可以利用虛擬化技術運行在同一臺物理主機之上,實現(xiàn)CPU、內存、I/O設備等物理資源的共享,最大化地利用物理資源。虛擬機管理器(Virtual Machine Manager, V MM)[2]是位于操作系統(tǒng)和計算機硬件之間的軟件層,實現(xiàn)對整個物理平臺的虛擬化。Xen是一款主流的開源VMM,它的上層運行著一個特權域Domain0和零個或多個非特權域DomainU。下面以Xen為具體對象,介紹虛擬化技術面臨的主要問題和相關工作。
Xen面臨著網(wǎng)絡I/O性能問題[3]。Xen傳統(tǒng)的網(wǎng)絡設備驅動模式,使得DomainU在I/O訪問過程中,需要由VMM處理設備中斷,通過Domain0進行虛擬訪問和物理訪問的轉換。當VMM處理中斷時,形成數(shù)據(jù)拷貝,影響數(shù)據(jù)傳輸性能。當DomainU的數(shù)量較大時,Domain0處會形成I/O訪問的性能瓶頸。
SR-IOV[4]是由PCI-SIG提出的、基于Intel VT-d[5-6]技術的標準。SR-IOV網(wǎng)卡可創(chuàng)建多個虛擬網(wǎng)卡,并可分配給虛擬機獨享。虛擬機進行網(wǎng)絡訪問時,設備驅動程序可以直接與虛擬網(wǎng)卡交互,而不經(jīng)過Domain0和VMM,避免VMM處的數(shù)據(jù)拷貝,以及Domain0處的中轉,提高了性能[4]。
Xen面臨網(wǎng)絡安全問題[7]。虛擬機運行在Xen上層,特權級較低。以Xen全虛擬化為例,客戶機操作系統(tǒng)運行在非Root特權級[8],系統(tǒng)層的防火墻更容易被非法訪問和惡意篡改。本文針對Xen虛擬機管理器,提出一種虛擬機防火墻方案,利用SR-IOV技術提高虛擬機的I/O性能,同時在Xen中部署監(jiān)控機制,保護虛擬機中部署的防火墻模塊。
近年來,虛擬機網(wǎng)絡安全防火墻研究、虛擬機網(wǎng)絡I/O性能方面的研究有了一定進展,已經(jīng)積累了一些新的方法。
關于虛擬機網(wǎng)絡安全防火墻方面的研究,文獻[9]在Domain0中基于Netfilter/iptables實現(xiàn)了包過濾。由于多次的用戶態(tài)與核心態(tài)間切換,以及虛擬域間的多次數(shù)據(jù)拷貝嚴重影響了性能。文獻[10]在Domain0中建立虛擬機(Virtual Machine, VM)共享網(wǎng)絡路由表,將數(shù)據(jù)包通過路由表轉發(fā)至VM共享網(wǎng)絡,實現(xiàn)VM組間網(wǎng)絡隔離問題。在進入Domain0中建立防火墻模塊,阻止數(shù)據(jù)包進入多個VM共享網(wǎng)絡,阻止VM共享網(wǎng)絡路由表被非法篡改。文獻[11] 對VM設置不同的安全等級,在VM的用戶層構建狀態(tài)防火墻。然而,以上工作依然沒有解決用戶態(tài)與核心態(tài)間多次切換,以及虛擬域間多次數(shù)據(jù)拷貝引起的性能問題。
在虛擬機網(wǎng)絡I/O性能方面,文獻[4]利用了SR-IOV高性能網(wǎng)卡,并對其性能進行了分析和證明,但是并未對虛擬域中接收和發(fā)送的網(wǎng)絡數(shù)據(jù)包進行過濾監(jiān)控。
文獻[12]在Domain0和DomainU中建立數(shù)據(jù)面板。DomainU的數(shù)據(jù)面板中保存預發(fā)送數(shù)據(jù)包,Domain0的數(shù)據(jù)面板中保存所有DomainU預發(fā)送數(shù)據(jù)包的副本,避免了Xen中DomainU發(fā)送數(shù)據(jù)包時在Domain0處進行用戶態(tài)與核心態(tài)轉換的開銷。然而,虛擬域間的多次數(shù)據(jù)拷貝問題依然存在。同時,在DomainU中部署了防火墻模塊。然而,虛擬域運行在較低的非Root特權級,防火墻部署在DomainU中,容易被非法訪問和惡意篡改。
本文提出一種基于SR-IOV規(guī)范的防火墻方案,通過應用SR-IOV網(wǎng)卡,避免了網(wǎng)絡數(shù)據(jù)傳輸過程中,用戶態(tài)與核心態(tài)間的頻繁切換,避免了虛擬域間的多次數(shù)據(jù)拷貝。通過在運行于最高特權級的VMM中部署監(jiān)控模塊,監(jiān)控部署在虛擬域中的防火墻,防止防火墻被非法攻擊。本文主要優(yōu)勢為:(1)提出了一種高性能防火墻架構。應用SR-IOV網(wǎng)卡較高的網(wǎng)絡傳輸性能和接收數(shù)據(jù)包時的網(wǎng)絡層過濾功能。通過使用SR-IOV硬件代替了Xen中需要軟件虛擬實現(xiàn)的部分工作。同時,在虛擬機中部署防火墻,實現(xiàn)數(shù)據(jù)包發(fā)送時的過濾功能。通過實現(xiàn)軟硬件結合,保證了虛擬機網(wǎng)絡I/O高性能的同時,完整保護虛擬機的安全。(2)利用Xen監(jiān)控VM中的防火墻模塊。Xen具有高特權級,通過Xen對虛擬機中的防火墻進行實時監(jiān)控,保證防火墻模塊不被非法訪問和惡意篡改。
SR-IOV規(guī)范用于實現(xiàn)虛擬化環(huán)境中的I/O設備共享。它繼承了Intel VT-d技術,支持設備直接分配和DMA重映射。如圖1所示(SR-IOV網(wǎng)卡模塊中的左邊矩形框是網(wǎng)線插槽口),物理功能(Physical Function, PF)部件用于配置和管理所有虛擬功能部件。虛擬功能(Virtual Function, VF)部件是一個輕量級的PCIe(PCI Express)功能部件。PF驅動運行于Domain0,VF驅動運行于DomainU。PF驅動是一個真實的PCIe設備驅動,可以直接訪問PF,同時負責創(chuàng)建、配置和管理所有VF。VF驅動為一個真實的PCIe設備驅動,可直接訪問其對應的VF。
圖1 基于SR-IOV網(wǎng)卡的虛擬化結構
采用SR-IOV規(guī)范的網(wǎng)卡(以下簡稱SR-IOV網(wǎng)卡)可由一個PF創(chuàng)建多個VF,每個VF可獨立分配給一個虛擬機。虛擬機可以通過VF驅動直接與VF進行數(shù)據(jù)通信,不用通過Domain0和VMM,避免了Xen傳統(tǒng)網(wǎng)絡模式中VMM處的數(shù)據(jù)拷貝和Domain0中用戶態(tài)與核心態(tài)間的切換,提高了網(wǎng)絡I/O性能。
4.1 虛擬機防火墻架構
虛擬機防火墻系統(tǒng)整體架構如圖2所示,分為防火墻模塊和監(jiān)控模塊,其中,虛線表示不經(jīng)過Xen,對Xen透明;實線指經(jīng)過Xen,與上層的Xen直接交互。防火墻模塊包括基于SR-IOV的接收數(shù)據(jù)包過濾部分和虛擬機防火墻部分。SR-IOV的接收數(shù)據(jù)包過濾部分,基于SR-IOV網(wǎng)卡中PF的接收數(shù)據(jù)包過濾功能,為每個虛擬機配置接收數(shù)據(jù)包過濾策略,策略保存在Xen中。虛擬機防火墻部分,以Linux netfilter模塊中的NF_IP_LOCAL_ OUT為檢測點,加入自身防火墻過濾規(guī)則,實現(xiàn)發(fā)送數(shù)據(jù)包過濾。在監(jiān)控模塊中,保護策略存儲DomainU中受保護的內存頁地址范圍。在VMM中,依據(jù)保護策略,實時監(jiān)控DomainU中受保護的內存范圍,防止其被非法訪問和惡意篡改。
圖2 虛擬機防火墻架構
4.2 防火墻模塊
4.2.1 基于SR-IOV的接收數(shù)據(jù)包過濾
在SR-IOV網(wǎng)卡中,PF屬于Domain0,VF屬于DomainU。PF支持網(wǎng)絡層接收數(shù)據(jù)包過濾行為,支持五元組過濾。但是,VF不支持網(wǎng)絡層接收數(shù)據(jù)包過濾。為了對虛擬機接收數(shù)據(jù)包進行網(wǎng)絡層過濾,需要使數(shù)據(jù)包在進入虛擬機的VF之前,先通過PF進行網(wǎng)絡層過濾。
(1)為PF開啟流定向模式,分別為所有虛擬機設定數(shù)據(jù)包接收時過濾策略。相關命令舉例如下:
(2)隱藏所有DomainU的MAC地址,只暴露Domain0 的MAC地址,使接收到的數(shù)據(jù)包全部進入PF。在PF中,依照預先定義的策略進行網(wǎng)絡層過濾。隨后,數(shù)據(jù)包被Domain0的設備驅動接收,進入Domain0內核。預先在Domain0內核路由表中添加所有虛擬機所在的網(wǎng)段,從而可將目的IP地址為虛擬機IP地址的數(shù)據(jù)包通過Domain0內核路由表轉發(fā)。數(shù)據(jù)包通過Domain0設備驅動程序進入PF。此時,通過SR-IOV網(wǎng)卡自身的數(shù)據(jù)鏈路層轉發(fā)機制,將數(shù)據(jù)包轉發(fā)給正確的VF,最終進入虛擬機。
4.2.2 虛擬機防火墻
SR-IOV網(wǎng)卡不支持數(shù)據(jù)包發(fā)送時的過濾行為。因此,在虛擬機中部署發(fā)送數(shù)據(jù)包防火墻以Guest OS為Linux的狀況作為工作重點。
Linux ne tfilter向系統(tǒng)開發(fā)者提供了5個掛載點,用于掛載自定義HOOK函數(shù)。通過在掛載點NF_IP_LOCAL_ OUT處掛載自定義的數(shù)據(jù)包檢測函數(shù),可以截獲到虛擬機所有的接收數(shù)據(jù)包,在自定義HOOK函數(shù)中,通過預先設置的策略,對接收到的數(shù)據(jù)包進行行為檢測。
然而netfilter運行在虛擬機系統(tǒng)層,虛擬機的特權級較低,自定義HOOK函數(shù)面臨著被非法卸載、惡意篡改等行為的風險。VMM具有更高的特權級,通過在VMM中部署監(jiān)控模塊,監(jiān)控虛擬機系統(tǒng)層中運行的自定義防火墻模塊,組織其不被非法訪問和惡意篡改。
4.3 監(jiān)控模塊
監(jiān)控模塊部署在VMM中,負責實時監(jiān)控上層Guest OS中的防火墻模塊,阻止非法行為。保護策略存儲DomainU中防火墻模塊所在的內存地址范圍?;诒Wo策略,監(jiān)控模塊監(jiān)控DomainU中防火墻模塊所在的內存段。涉及到的問題包括:將模塊所在的內存地址范圍通知給VMM;如何在Guest OS中觸發(fā)惡意行為后將其交給VMM處理。
CPUID指令為Intel V T技術中定義的敏感指令。在全虛擬化的Xen中,如果虛擬機中的軟件執(zhí)行CPUID指令,會觸發(fā)VM Exit,而陷入VMM進行處理。通過在模塊初始化函數(shù)中添加CPUID指令,將模塊內存地址范圍寫入?yún)?shù)寄存器中。在模塊首次加載時會調用模塊初始化函數(shù),其中的CPUID指令觸發(fā)VM Exit,從而陷入VMM中進行處理。預先在VMM陷入處理函數(shù)中部署監(jiān)控模塊。陷入VMM后,監(jiān)控模塊將CPUID指令的寄存器參數(shù)中填寫的被保護內存地址范圍保存在保護策略中。
Xen在全虛擬化中,利用影子頁表機制實現(xiàn)虛擬內存的管理,完成客戶機虛擬內存地址與主機物理內存地址之間的轉換。其中,Xen為每個VM的進程維護一個影子頁表。當VM中的頁表項與Xen中對應的影子頁表項不一致時,訪問該頁表項的內存頁即會觸發(fā)缺頁異常,同時引起VM Exit從而陷入Xen中處理。
監(jiān)控模塊在將被保護內存地址范圍寫入保護策略的同時,將內存頁地址范圍對應的影子頁表項存在位設為不存在,讀寫位設為只讀。如圖3所示,當虛擬機中發(fā)生對防火墻模塊所在的內存頁進行讀或寫操作時,基于Xen影子頁表機制的原理會引發(fā)缺頁異常,并引起VM Ex it而陷入Xen的監(jiān)控模塊中處理。監(jiān)控模塊通過查詢保護策略,判斷所訪問頁面是否在保護范圍內,如果在,則認定此操作為非法訪問操作,拒絕此非法訪問行為。如果不在保護范圍內,則進入正常處理流程。
圖3 缺頁異常處理流程
實驗采用Genuine Intel 2.7 GHz CPU、2 GB內存。安裝82599 10 Gpbs SR-IOV網(wǎng)卡。安裝Ubuntu12.04.2LTS和Xen 4.1,其中,Domain內核版本為3.5.0。Domain1和Domain2均安裝Ubuntu 12.04.1 LTS。使用一臺Spirent Testcenter測試儀,一臺安裝了Spirent Testcenter控制軟件的PC。通過從性能、防火墻訪問控制和監(jiān)控3個方面分析,得出如下實驗結果。
5.1 數(shù)據(jù)傳輸性能
在Domain2中部署本文描述的虛擬機防火墻。同時,將Domain1設置為傳統(tǒng)網(wǎng)絡訪問模式。將Domain3設置為SR-IOV網(wǎng)絡模式,不部署防火墻。
在Domain0創(chuàng)建VF,為Domain2分配VF設備,網(wǎng)絡連接模式為SR-IOV模式,并在Domain2中部署虛擬機防火墻,在Xen中部署監(jiān)控模塊。為Domain3分配VF設備,網(wǎng)絡連接模式為SR-IOV模式。在Domain1中部署為Domain1分配vif3.0虛擬網(wǎng)卡,網(wǎng)絡連接模式為傳統(tǒng)虛擬網(wǎng)橋模式。使用Spirent T estcenter測試儀對Domain1和Domain2進行數(shù)據(jù)傳輸性能測試,分別測試的數(shù)據(jù)包大小為64 Byte,256 Byte,512 Byte,1 500 Byte,結果見表1。由此可知,部署防火墻、安裝SR-IOV網(wǎng)卡后的虛擬機在性能方面相對于未安裝SR-IOV網(wǎng)卡的虛擬機性能優(yōu)勢明顯,平均提高1倍以上。
表1 數(shù)據(jù)傳輸性能對比
5.2 防火墻訪問控制
通過檢測部分防火墻策略,查看防火墻運行狀況,結果如表2所示。由此可知,當Domain1訪問主機114.212.87. 122時,由于策略禁止,因此訪問失敗。當Domain1訪問主機114.212.87.165時,由于策略未禁止,因此訪問成功。
表2 策略檢測狀況
5.3 監(jiān)控狀況
Xen中的監(jiān)控模塊監(jiān)控虛擬機中的防火墻模塊vmfirewall。在運行的Domain1中,安裝MyRootkit模塊,MyRootkit嘗試卸載NF_IP_LOCAL_OUT處HOOK鏈中的防火墻模塊并返回訪問結果。在Domain1終端運行rmmod vmfirewall命令,嘗試卸載vmfirewall模塊,對于rmmod方式卸載模塊,結果為拒絕卸載;對于MyRootkit方式卸載模塊,結果為訪問無效。
在Xen虛擬化技術中,虛擬域網(wǎng)絡訪問時,Domain0中用戶態(tài)與核心態(tài)頻繁切換,虛擬域間多次數(shù)據(jù)拷貝,影響了網(wǎng)絡I/O性能。應用SR-IOV網(wǎng)卡的高性能特征,使虛擬域直接與真實網(wǎng)卡交互,提高網(wǎng)絡I/O性能。針對運行在低特權級虛擬域中防火墻缺乏保護的問題,在高特權級的Xen中部署監(jiān)控模塊,對防火墻實時監(jiān)控,保護防火墻安全。在SR-IOV規(guī)范下,VMM較少地參與VM與網(wǎng)絡適配器間數(shù)據(jù)傳輸和管理工作。下一步工作重點是將防火墻部署于VMM中,提高特權級,更大程度地保證防火墻安全。
[1] Vaquero L M, Rodero-Merino L, Caceres J. A Break in the Clouds: T owards a Cloud Definition[J]. ACM SIGCOMM Computer Communication Review, 2009, 39(1): 50-55.
[2] 石 磊, 鄒德清, 金 海. X en虛擬化技術[M]. 武漢: 華中科技大學出版社, 2009.
[3] Egi N, Greenhalgh A, Handley M. Evaluating Xen for Router Virtualization[C]//Proceedings of the 16th International Conference on Computer Communications and Networks. Honolulu, USA: IEEE Press, 2007: 1256-1261.
[4] Dong Yanzu, Yang Xiaowei, Li Jianhua. High Performance Network Virtualization with SR-I OV[J]. Journal o f Parallel and Distributed Computing, 2010, 72(11): 1471-1480.
[5] 張 揚. Xen下基于Intel VT-d技術的I/O虛擬化的實現(xiàn)[D].成都: 電子科技大學, 2010.
[6] 張 鑫. 基于Intel V T-d在安騰平臺的高效虛擬IO模型的實現(xiàn)與研究[D]. 成都: 電子科技大學, 2008.
[7] Kan dukuri B R. Cloud Sec urity Issues[C]//Proceedings of 2009 IEEE International Conference on Services Computing. Los Angeles, USA: IEEE Press, 2009: 517-520.
[8] 陳文智, 姚 遠, 楊建華, 等. Pcanel/V2——基于Intel VT-x 的VMM架構[J]. 計算機學報, 2009, 32(7): 2-8.
[9] Liu Fagui, Su Xiang. The Design an d Application of Xe nbased Host System Firewall and Its Extension[C]// Proceedings of 2009 International Conferenc e on Electronic Computer T echnology. Washington D. C., USA: IE EE Computer Society, 2009: 392-395.
[10] Wu Hanqian, Ding Yi, Winer C. Network Security for Virtual Machines in Cl oud Computing[C]//Proceedings of the 5th International Conference on Computer Sciences and Convergence Inf ormation T echnology. Seoul, So uth Koera: [s. n.], 2010: 18-21.
[11] Gao Xiaop eng, Wang Sum ei. VNSS: A Network Security Sandbox for Virtual Computing Environment[C]//Proceedings of IEE E Youth Conferenc e In formation Computing and Telecommunications. Beijing, China: [s. n.], 2010: 395-398.
[12] Fernandes N C. XNetMon: A Network Monitor for Securing Virtual Network s[C]//Proceedings of IEEE International Conference on Communications. Kyoto, Jap an: IE EE Press, 2011: 1-5.
編輯 陸燕菲
Design and Implementation of Virtual Machine Firewall Based on SR-IOV
XUN Zhong-kai1a,1b, HUANG Hao1a,1b, JIN Yin-cheng2
(1a. State Key Laboratory for Novel Software Technology; 1b. Department of Computer Science and Technology, Nanjing University, Nanjing 210046, China; 2. The 32nd Research Institute of China Electronics Technology Group Corporation, Shanghai 200233, China)
Aiming at the problem of low performance caused by frequent switching between user mode and kernel mode, multiple copies of data between the virtual domains through virtua l network data transmission, this paper proposes a high performanc e virtual m achine firewall, and it adopts the networ k packet filtering and high performance of SR-IOV to make virtual domain directly interact wi th the real network card. Aiming at the problem of vulnerable attack for a lower privilege level virtual domain firewall, it takes higher privilege level of Xen to real-time monitor the virtual machine fire wall module and protect it from illegally accessing. Experimental results show that the deployment of SR-IOV network card in the virtual machine firewall makes the network I/O performance increase by 1 time compared with the Xen network I/O assess mode. The deployment of the monitor module in Xen can successfully prevent the firewall from unauthorized access and malicious tampering, and ensure the safety of the firewall.
virtualization; Xen Virtual Machine Manager(VMM); SR-IOV specification; firewall; high-performance; monitoring
10.3969/j.issn.1000-3428.2014.05.032
1000-3428(2014)05-0154-04
A
TP399
國家“863”計劃基金資助項目(2011AA01A202);江蘇省“六大人才高峰”高層次人才基金資助項目(2011-DZXX-035);江蘇省高校自然科學研究基金資助項目(12KJB520001)。
荀仲愷(1987-),男,碩士,主研方向:操作系統(tǒng)安全,虛擬化技術;黃 皓,教授、博士生導師;金胤丞,碩士。
2013-04-10
2013-05-08E-mail:xunzhk@126.com
·人工智能及識別技術·