引言
通過監控文件系統操作能夠有效地幫助系統管理員及時發現入侵痕跡,保護系統安全。然而,當攻擊者入侵成功并獲取足夠的權限后,就能夠破壞計算機系統,關閉系統中的文件監控程序,隱藏文件并清除日志以掩蓋入侵蹤跡,或者安裝后門程序以便再次入侵。因此,如果能夠保護好文件系統的操作日志,就能夠檢測出系統異常,快速找出隱藏文件,恢復系統。目前大部分的文件監控系統和文件保護系統與操作系統運行在同一特權級,如果操作系統被入侵,任何運行在該系統上的文件保護機制都有可能被繞過或關閉,因此,只有保證文件監控系統不被禁用和繞過,才能夠持續保護文件系統的安全。
隨著虛擬機技術的發展,利用虛擬機進行檢測入侵和系統保護的工作得到了廣泛關注,由于虛擬機監視器(Virtual Machine Monitor,VMM)相對于運行其上的客戶虛擬機(virtual Machine,VM)具有更高的特權級,VMM和VM之間能夠進行有效的安全隔離,因此利用虛擬機技術能夠對VM中的文件系統進行更加可靠的監控。
一 虛擬化技術與Xen
硬件虛擬化主要有Intel的VT-x和AMD的AMD-V兩種技術,都是通過引入新的指令和處理器運行模式,讓VMM和Guest OS分別運行在合適的模式下。該系統基于vT-X技術。vT-X引入了兩種新的運行模式:VMX root模式和VMX non-root模式,如圖1所示。VMM運行在VMX root模式,Guest OS運行在VMX non-root模式。運行在VMX root模式下的VMM 顯式調用VMLAUNCH或VMRESUME指令切換到VMX non-root模式,這種轉換稱為VM entry。Guest OS運行過程中遇到需要VMM處理的特殊事件,或者主動調用VMCALL指令調用VMM的服務,則切換到VMX root模式,這種轉換稱為VM exit。
在該系統中,當Guest OS運行一些底層系統調用或者產生異常時將會產生VM exit進入到VMX root操作模式,在VM-Exit陷入時實現對系統調用的截獲。
Xen是由劍橋大學計算機實驗室開發的一個開源的虛擬機軟件。Xen存在一個特權域用來輔助Xen管理其他Domain,提供相應的虛擬資源服務,這個特權域稱為Domain0,其他域則稱為DomainU。Xen同時支持半虛擬化(PV)和全虛擬化(HVM)。前者需要對客戶操作系統進行修改;后者不需要修改客戶操作系統,但需要CPU的硬件虛擬化支持。該系統利用XEN針對全虛擬(HVM)下的Guest OS進行監控,能對多個操作系統同時進行監控。
二 系統設計與實現
2.1 系統架構
系統結構如圖2所示,主要由Xen監測部分、DomO文件分析、日志記錄和報警模塊組成。
Xen監測模塊位于Xen Hypervisor中,主要功能是完成相關系統調用的截獲以及文件操作信息的提取,通過對Xen內核進行改動來實現。截獲了客戶端的系統調用以后,提取出需要監控的有用信息,包括系統調用號及其參數、進程信息、操作文件名稱及相關內存信息。
文件分析模塊位于Dom0中,首先根據配置策略選擇要監控的文件以及目錄,利用Xen提供的事件通道機制從VMM中獲取文件操作信息;分析當前操作是否對監控文件的敏感操作,是則將當前操作寫入日志記錄模塊,同時產生報警輸出,否則將當前操作寫入日志記錄模塊,便于事后離線分析。
日志記錄和報警模塊分別完成日志記錄和報警輸出功能。
2.2 設計實現
2.2.1 截獲系統調用
Linux的系統調用通過兩種方式來實現:使用int Ox80中斷方式和快速系統調用sysenter/sysexit方式。
1)int Ox80中斷方式
通過對中斷向量表上的Ox80中斷向量地址修改,使其陷入到VMM中來截獲系統調用。首先通過VMM獲取客戶機的IDT(中斷向量表)地址,由IDT找到Ox80中斷的地址,并對Xen的影子頁表進行改動,將其地址設置為NO_PRESENT。當系統產生int 0x80中斷就會觸發VM exit進入Xen內核中相應的缺頁處理函數,在其中添加處理代碼,判斷是否由0x80中斷產生,從而實現對系統調用的截獲。
2)快速系統調用方式
執行快速系統調用指令SYSENTER/SYSEXIT讀取相關MSR寄存器值(SYSENTER_CS_MSR,SYSENTER_ESP_MSB,SYSENTER-EIP-MSR),通過修改SYSENTER-EIP-MSR寄存器值進行快速系統調用的截獲。在Xen中記錄實際MSR寄存器的值并修改SYSENTER-EIP-MSR,將其指向一個不可訪問的地址,當系統調用發生時,會由于錯誤的MSR寄存器地址導致VM exit,就可以截獲系統調用進行相關處理。
2.2.2 提取文件操作信息
系統監控信息包括當前運行的DomainU、進行文件操作的進程相關信息、文件操作類型以及其他重要信息(如寄存器或緩沖區內容)。
當前運行的DomainU直接從Xen上下文中獲取,并利用寄存器和內核堆棧信息提取出產生當前系統調用的進程信息。
文件操作通過系統調用號判斷,截獲了系統調用以后,提取出關心的系統調用號以及系統調用參數。Linux系統中,系統調用號存放在EAX寄存器中,寄存器EBX、ECX、EDX、ESI、EDI以及EBP保存的是對應的參數。
由于要對文件系統進行監測, 因此,關注的主要是sys_open、sys_create、sys_read、sys_write、sys_unlink等與文件系統相關的系統調用號及其參數。
系統調用參數以及參數所引用的內存信息對文件監控很重要,通過參數地址或相關數據結構獲取。以獲取文件名稱為例,Linux系統中,與文件操作相關的系統調用大都通過文件描述符表示一個文件,假設當前打開文件描述符為k,利用內核數據結構,可以從當前進程中通過current-files-fd[k]-f_dentry-d_name獲取到文件名。
2.2.3 DomO文件分析
當提取文件操作信息結束后,需要將數據提交給位于Dom0域的文件分析模塊進行分析。為了減少性能損失,文件分析模塊僅對系統中的敏感文件或目錄進行監控。
Dom0文件分析模塊同時對監控文件或目錄進行不同的輸出處理,將敏感操作輸出到報警模塊,其他操作則輸出到日志文件中保存。例如對系統配置文件的寫操作,對系統日志文件的刪除操作定義為敏感操作。
三 功能測試
系統基于Xen 3.3.0和Linux 2.6.18(Guest OS)實現,硬件平臺采用Intel Core2 2.4 GHZ CPU,內存為2 G RAM。表1是對Linux下的系統日志目錄/vat/log/的監控結果。
入侵者在侵入系統后通常會修改或刪除相應的系統日志文件隱藏入侵痕跡,利用該系統能夠將文件系統操作記錄到另外的不受攻擊者控制的機器上,能夠及時發現潛在的風險。同時為了評估系統檢測惡意代碼和隱藏文件的能力,針對目前比較流行的Linux內核rootkit進行測試,測試結果如表2所示。
Linux下rootkit的安裝過程中通常會對系統文件進行替換或修改,為了保持隱蔽性,還會有隱藏文件、進程、端口等行為, 內核級rootkit能夠繞過用戶級和內核級的文件檢測工具。該系統中,文件系統監控的目錄文件只要有操作,就能實時記錄或報警,通過交叉對比,能夠快速發現攻擊痕跡。
四 結語
文中基于虛擬機架構,利用硬件虛擬化技術,提出了在VMM中監控Guest OS文件系統,能夠實時監測文件系統,發現文件系統中的隱藏文件和敏感操作,進而檢測出系統中可能存在的安全風險。相對于現有的文件系統監控,利用虛擬機技術能夠實現更加可靠透明的監控。系統實現基于全虛擬化技術,監控對象同樣適用于Windows等操作系統。該架構只能對文件系統行為進行監控,并不能阻止對于計算機系統的攻擊行為。研究如何在虛擬機架構下阻止對敏感文件的修改將是下一步的工作方向。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于虛擬機架構的文件系統監控