宣曉帥 張冬陽 梁義欽 翟繼強
摘要:針對入侵檢測系統(IDS)存在可見度不高、隔離性差、目標系統不完整等問題,提出了新的入侵檢測系統架構(XenIDS)。該架構基于Xen虛擬機監視器Xen VMM,對目標系統沒有干擾行為,并引入入侵檢測域(IDD)。根據安全策略響應入侵,設計實現了一個IDS,使用rootkit數據集進行測試和評估,結果表明XenIDS在增加有限開銷的情況下可以有效檢測攻擊。
關鍵詞:入侵檢測系統;虛擬機監視器;Xen;入侵檢測域
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2019)20-61-4

0引言
目前存在2種主流類型的入侵檢測系統:基于網絡的入侵檢測系統(NIDS)和基于主機的入侵檢測系統(HIDS)。NIDS通過數據包嗅探技術監控網絡流量,檢測流量中的惡意活動。這種架構內在的缺點是入侵分析數據有限、檢測本地攻擊能力不足以及性能開銷大。HIDS基于主機的結構被部署在目標系統中,監視或分析系統日志文件和收集數據來識別、檢測計算機中的惡意或侵入性活動[1],易于被訪問和攻擊,存在可見度低、隔離性差及效率低等問題。
為了解決基于主機和基于網絡的IDS結構中存在的問題,提出一種基于虛擬機監控器Xen VMM的XenIDS,不僅可以靈活簡便地檢測攻擊,還可以對攻擊做出積極響應,具有良好的可視性、可靠性和隔離性。
1虛擬機監控技術
1.1虛擬機監視器
硬件虛擬化技術被稱為虛擬機擴展(Virtual Machine Extension,VMX),主要包含虛擬機監視器(Virtual Machine Monitor,VMM)與客戶操系統(Guest OS)。VMM位于VMX root模式,運行在Guest OS下一層,相比Ring 0層權限更大,可完全控制Guest OS對各種資源的訪問,包括CPU、內存、中斷管理和I/O控制等。
VMM是一個用于計算機系統的精簡軟件層,將原本在物理處理器中運行的操作系統變成Guest OS,可創建與真實硬件機器相同的高效隔離虛擬機環境[2]。使用VMM將物理機轉換為一組虛擬機,不同的虛擬機加載不同的操作系統副本,每個副本完全與其他副本隔離。
1.2 Xen
Xen是一個開放源代碼的裸金屬架構VMM,由劍橋大學開發,也稱Hypervisor虛擬化。在底層硬件上安裝VMM作為虛擬機監控程序,可以管理所有的硬件資源,同時對虛機提供虛擬環境。在裸金屬架構中,MM是專用于虛擬化服務的中間層,向下管理CPU、內存/ IO等所有物理資源,向上提供虛擬機OS。
Xen VMM為虛擬機提供了足夠的可見性,通過定義良好的接口來監視虛擬機的所有狀態[3]。Xen VMM的擴展域Domain 0通過Xen框架提供的libxc庫訪問所有虛擬機的整個內存空間。Xen具有優秀的性能和隔離能力,可以記錄受監控目標VM系統中發生的系統事件,并轉儲相關的上下文信息。Xen VMM支持許多平臺,如X86,IA64,Power PC,Arm等,提供虛擬機之間的安全分區。
1.3基于VMM的入侵檢測
傳統IDS的缺點源于架構的固有限制,很難克服或減輕。針對以上問題,提出基于虛擬機架構的解決思路。
(1)可見度
基于網絡的IDS對目標系統的內視性較差,檢測功能受限。基于VMM的架構能夠訪問整個真實機器系統[4],因此更容易檢查客戶虛擬機中運行的被監控目標系統的狀態。
(2)可靠性和隔離性
基于主機的IDS存在可靠性和隔離問題。VMM可以更好地保護不同系統中的組件。與必須支持文件系統和網絡協議棧等的傳統操作系統不同,VMM僅需要呈現相對簡單的抽象功能,如虛擬CPU和存儲器[5]。此外,VMM將目標系統與在分離的虛擬機系統中實現的入侵檢測系統隔離,目標系統不能以任何方式訪問或控制IDS組件。
(3)效率
傳統的基于主機的架構通常會大幅降低系統性能,因為它增加了許多額外的機制來跟蹤系統狀態。雖然VMM需要額外的開銷來實現虛擬機環境,但大量虛擬機監視器的實際應用和實驗測試表明,虛擬化帶來的開銷可以忽略不計。
(4)目標系統完整性
基于主機的體系結構中,為了從系統中獲取更多信息,IDS依賴于將模塊插入到OS內核中,但這會破壞目標系統的完整性。而利用VMM監控目標系統并獲取目標系統的狀態,VMM能夠訪問真實和虛擬系統的任何資源,因此無需向目標系統添加模塊[6]。從系統完整性角度來看,基于VMM的入侵檢測系統實現比基于主機的體系結構更有優勢。
2 XenIDS架構
XenIDS整個體系結構及其主要組件如圖1所示。XenIDS主要由VMM、入侵檢測域(IDD)、事件傳感器(ES)、 IDS插樁(IS)和IDD助手(IH)組成。

(1)VMM
由于VMM在最特權層上運行并擁有整個真實機器,因此它能夠檢查虛擬機的任意行為[7]。在XenIDS中,作為整個架構的基礎,VMM非常方便地實現了XenIDS的所有組件,負責管理虛擬機,為虛擬機提供通信通道。此外,它還是IDD和IH的容器。
(2)ES
ES是一個單獨模塊,與VMM具有相同的特權屬性,例如控制虛擬機及檢查虛擬機的內存等。可以監控目標系統的狀態,例如部署系統調用傳感器以獲取在目標系統中發生的系統調用序列。設計不同的傳感器來收集各種數據,以檢測入侵或獲取有關攻擊者的信息。ES需要公開一些接口與其他組件通信。由于ES完全在VMM中實現,不像基于主機的架構通常需要在目標系統內核中實現鉤子或攔截器。
(3)IDD
在XenIDS中,使用專用虛擬機實現IDD。在Xen環境中,半虛擬化用戶域用于實現此目標。考慮到安全性,IDD作為一個簡單的系統實現,具有最小內核和根文件系統。
IDD具備良好接口。IDD接口與VMM接口一起工作,在VMM和IDD之間提供特定的通信通道。通常接口具有2個功能:
①當ES從目標系統獲取一些數據并將它們存儲到跟蹤緩沖區時,需要通過接口向IDD發送通知,讓IDD從跟蹤緩沖區獲取它們進行進一步分析,通知機制依賴于這些定義良好的接口。
②如果IS想要采取預防措施來控制受損系統,可以通知VMM中的IH通過這些接口控制目標系統。
(4)IS
IS作為入侵檢測系統的核心組件,負責解釋目標系統的數據,記錄入侵報告、報告潛在的攻擊以及響應攻擊。由于IS部署在專用IDD中,因此在它與目標系統之間提供了強大的隔離。另一個優勢是它提供的響應機制。通常,如果目標系統受到攻擊,除了發出警報外,IDS不能采用預防性操作來控制目標系統,但是可以通過虛擬機環境中的響應機制執行預防策略來控制受損目標系統。例如IS可以暫停或重新引導目標系統,以防止系統受到后續攻擊。
(5)IDD Helper
IDD Helper作為單獨的模塊部署在VMM中,職責是幫助IS完成預防措施。當IS檢測到潛在攻擊時,系統管理員希望采取一些預防措施,以避免泄露數據或資源。在這種情況下,IDS可以根據相關策略在IH的幫助下暫停或重啟受感染的目標系統。
這些組件需要與整個虛擬機環境一起工作,Xen基礎結構的其他組件,如Domain 0、HVM域和用戶域用于構建整體體系結構。
3 XenIDS實現
3.1 VMM及IDD
直接使用Xen的用戶域來實現入侵檢測域IDD來分析入侵,并部署靈活的策略引擎。但考慮到IDD需要受限制的安全性要求這一事實,定制了一個用戶域內核來實現IDD。IDD的內核僅保留最低運行要求,保留網絡核心架構支持和除前端驅動程序之外的設備驅動程序。
3.2事件傳感器
通過分析特殊進程的系統調用序列,可以識別出可能的入侵。在XenIDS中,實現的主要工作是攔截客戶虛擬機中進程的動態行為(系統調用的順序)。
為了捕獲所有目標系統中的系統調用事件,提出一個五元組(VM-id,Pid,P-name,Syscall-Num,Args)來封裝事件傳感器的所有系統調用信息。XenIDS利用Xen域ID(VM-ID)來區分HVM域[8]。
(1)VM標識(VM-ID)
Xen VMM中的唯一標識符,用于標識Xen中的不同虛擬機。在實際執行中Xen VMM負責在VM創建時分配和取消分配VM-ID。
(2)進程ID(Pid)
將此字段用于區分進程,在XenIDS中,它可以通過存儲在kr6中的task_struct指針來實現。Linux將3種不同的數據結構(the basic task struct,thread_info,process kernel stack)整合到每個進程的32 KB存儲區域中,并將基址存儲在kr6中[9]。
(3)進程名稱(P-Name)
進程名稱也來自task_struct的字段(char comm[TASK_COMM_LEN]),用于生成最終檢測報告。與進程標識類似,進程名稱也來自接口copyJrom_guest。
(4)Syscall碼(Syscall-Num)
在Linux OS中系統調用碼用于標識系統調用,并在頭文件asrnlunistd.h中定義所有系統調用號。在IA64 Linux OS中,軟件調用約定使用臨時寄存器r15來編碼系統調用號。在XenIDS中,當事件傳感器通過break,epc指令跟蹤檢測到可能的系統調用執行時,可以通過讀取通用寄存器r15來獲得系統調用碼。
(5)參數(Args)
由于只關心系統調用的順序,不使用參數來檢測可能的入侵,但需要將它們作為存儲在IDD插樁中的重要審計日志信息。系統管理員可以使用這些信息來確認檢測到的入侵。在XenIDS中,Xen VMM通過定義良好的接口get_rse_reg,從寄存器堆棧(r32,r33,r34,....)中獲取這些參數。
事件傳感器用于收集組織為五元組的所有上述信息,并通過預定義的接口發送到跟蹤緩沖區。隨后IDD可以從跟蹤緩沖區中獲取并及時分析可能的入侵。
4測試與分析
4.1有效性測試
為了評估提出的架構,使用Xen / IA64實現了XenIDS原型,使用了Rootkit攻擊數據集[10],包括ARK,Adore工具包和Knark來測試它的有效性。XenIDS對Rootkit攻擊表現出了良好的正確檢測率。測試結果如表1所示。

4.2性能測試
根據XenIDS的體系結構,系統開銷主要來自目標系統的事件傳感器,部署了微基準SPEC CPU2000,以顯示事件傳感器對性能的影響。原生系統和HVM系統都托管在Linux RHEL4U3系統和Intel Tiger4平臺上,配置20 GB主內存,Xen/IA64的Cset12014用于構建虛擬化環境,將其性能數據與使用相同硬件配置的原生系統的性能數據進行比較,詳細性能數據如圖2所示。
在每種情況下,通過系統調用傳感器引入的額外開銷基本上為0.1%~1.25%。這種性能下降主要源于監控系統調用序列的開銷以及目標系統與IDD之間的通信。結果表明,XenIDS架構對性能的影響,在實際應用中是可接受的。

4.3可擴展性測試
由于VMM系統中核心資源之間的相互依賴性,由此產生的系統可擴展性是設計和實現虛擬化系統的挑戰。通過在分配不同數量的虛擬CPU時的性能來評估XenIDS的可擴展性,并分別與HIDS,NIDS的可擴展性進行比較,如圖3和圖4所示。

由圖3和圖4可以看出,XenIDS的可擴展性可以很好地適應處理器資源的水平。對于基準測試,XenIDS和HIDS系統的可擴展性非常接近。當有4個CPU時,XenIDS表現出比HIDS系統略好的性能。對于NIDS的比較實驗獲得了類似的結果。
5結束語
本文分析了現有IDS存在的問題,針對其可見度不高、隔離性差及目標系統不完整等問題,提出一個基于虛擬機監視器Xen VMM入侵檢測系統架構XenIDS。基于該架構設計和實現了一個IDS,使用Rootkit數據集進行了測試和評估,結果表明,XenIDS在增加有限開銷的情況下可以有效檢測攻擊。同時,該架構在許多方面可以擴展,如可以利用可信計算技術構建Trust VMM并進一步保護架構中的關鍵組件。
參考文獻
[1]王金輝,胡俊,徐湲策.一種基于HIDS的威脅情報解決方案[J].網絡空間安全,2019,10(3):1-7.
[2]項國富,金海,鄒德清,等.基于虛擬化的安全監控[J].軟件學報,2012,23(8):2173-2187.
[3]馬喆,禹熹,袁傲,等. Xen安全機制探析[J].信息網絡安全, 2011(11):31-35.
[4] Zhang F,Chen J,Chen H,et al. Cloudvisor: Retrofitting Protection of Virtual Machines in Multi-tenant Cloud with Nested Virtualization[C]// In Proceeding of 23rd ACM Symposium on Operating System Principles (SOSP’2011), Cascais, Portugal,2011:203-216.
[5] Cho Y, Shin J, Kwon D, et al. Hardware-assisted On-demand Hypervisor Activation for Efficient Security Critical Code Execution on Mobile Devices[C]//2016 USENIX Annual Technical Conference, USENIX ATC 2016, Denver,CO,USA, 2016:565-578.
[6]邵炳陽,田慶宜,沈長達,等.XenServer虛擬化平臺取證方法研究[J].網絡空間安全, 2019,10(2):49-56.
[7] Litchfield A,Shahzad A. Virtualization Technology:Cross-VM Cache Side Channel Attacks Make it Vulnerable[C]// Proceedings of the Australasian Conference on Information Systems(ACIS) Adelaide, South Australia,2015.
[8] Reza A,Boshra P.SHADuDT: Secure Hypervisor-based Anomaly Detection Using Danger Theory[J]. Computers&Security ( COM-PUT SECUR),2013(39)268-288.
[9] Rhee J,Riley R,Xu D,et al.Defeating Dynamic Data Kernel Rootkit Attacks via VMM-based Guest-transparent Monitoring[C]//Proceedings of the 4th International Conference on Availability,Reliability and Security(ARES’09),2009:74-81.
[10]張瑜,劉慶中,李濤,等.Rootkit研究綜述[J].電子科技大學學報,2015,44(4):563-578.
收稿日期:2019-05-18
基金項目:黑龍江省教育廳科技面上項目(12531121);國家級大學生創新創業訓練項目(201810214027)