目前,虛擬化技術(virtualization)在企業中得到了廣泛地應用,并具有巨大的市場前景。據IDC預計,2011年,虛擬化服務市場將達到117億美元。在2009年和2010年連續兩年公布的Gartner技術發展趨勢報告中,虛擬化技術都成為十大IT技術之一。虛擬化技術改變了系統軟件與底層硬件緊耦合的方式,可以更加靈活地配置與管理計算系統。虛擬化技術最早由IBM在20世紀60年代提出,并成功應用于大型機VM370。根據Popek和Goldberg在文獻[8]中提出的可虛擬化體系架構的3個條件:等價性(equivalence)、資源控制(resource control)和有效性(efficiency),目前廣泛使用的X86架構是不支持虛擬化的。隨著個人計算機(主要是X86架構)處理能力的增強,同時,VMware將虛擬化技術引入到X86架構,從此,虛擬化技術及其應用得到了蓬勃地發展,常見的虛擬化軟件有VMWare ESX/GSX/Workstation,Xen。根據虛擬層次的不同,虛擬化技術可以分為指令級虛擬化、硬件抽象級虛擬化、操作系統級虛擬化、運行庫級虛擬化和編程語言級虛擬化。每個虛擬操作環境(包括操作系統和其上運行的應用程序)被稱為虛擬機(virtual machine,簡稱VM);將底層硬件資源進行抽象從而供多個虛擬機使用的虛擬化軟件被稱為虛擬機管理器(virtual machine monitor,簡稱VMM或hypervisor)。
圖1將傳統架構與虛擬化架構進行了比較。從安全的角度來看,傳統架構的操作系統具有最高權限,它負責管理整個硬件平臺。而在虛擬化架構中,虛擬機管理器位于操作系統和真實硬件平臺之間,比操作系統的特權級更高,而且代碼量更少。
圖1 傳統架構和虛擬化架構的比較
與傳統架構相比,虛擬化架構的優勢在于:
(1) 更小的可信計算基(trusted computing base,簡稱TCB):虛擬機管理器的代碼量一般在10萬行左右,遠遠小于操作系統的代碼量。例如,Linux 2.6.27大概有1 000萬行,而Windows XP大概有3 500萬行。這就意味著虛擬機管理器自身具有的Bug數量更少,相比操作系統也更健壯;
(2) 更好的隔離性(isolation):在傳統架構中,應用程序通過進程的虛擬地址空間來進行隔離,進程之間可能相互干擾。例如,某個進程出現故障導致整個系統崩潰,從而影響到其他進程的正常運行。而在虛擬化架構中,應用程序是以虛擬機為粒度進行隔離的,因此,虛擬機架構提供更好的隔離性。
由于虛擬化架構具有上述優勢,基于虛擬化架構的安全工具能夠有效地監控虛擬機的內部狀態,同時抵御被監控系統中可能發生的攻擊。因此,在虛擬機管理器層提供服務,可以在一定程度上增強計算系統的安全性(security)和可移動性(mobility)。
文獻[20]列出了基于虛擬化架構的3種服務實例:安全日志(secure logging)、入侵防御和檢測(intrusion prevention and detection)、環境遷移(environment migration)。
目前,基于虛擬機架構來增強安全工具的安全性已經成為研究趨勢,例如入侵檢測、系統日志、蜜罐、完整性監控、惡意代碼檢測與分析、安全監控架構、監控通用性等。
1 基于虛擬化安全監控的分類
近幾年來,由于虛擬機管理器自身具有更小可信基和更好隔離性的優勢,基于虛擬機的安全監控都是利用虛擬機管理器隔離和保護特定的安全工具。因此,從安全監控實現技術的角度來看,基于虛擬化安全監控的相關研究工作可以分為兩大類:
(1) 內部監控:在虛擬機中加載內核模塊來攔截目標虛擬機的內部事件,而內核模塊的安全通過虛擬機管理器來進行保護;
(2) 外部監控:通過在虛擬機管理器中對虛擬機中事件進行攔截,從而在虛擬機外部進行檢測。
1.1 內部監控
圖2說明了內部監控的架構,典型的代表系統是Lares和SIM。被監控的系統運行在目標虛擬機中,安全工具部署在一個隔離的虛擬域(安全域)中。這種架構支持在虛擬機的客戶操作系統的任何位置部署鉤子函數,這些鉤子函數可以攔截某些事件,例如進程創建、文件讀寫等。由于客戶操作系統不可信,因此這些鉤子函數需要得到特殊的保護。當這些鉤子函數加載到客戶操作系統中時,向虛擬機管理器通知其占據的內存空間。由內存保護模塊根據鉤子函數所在的內存頁面對其進行保護,從而防止惡意攻擊者篡改。在探測到虛擬機中發生某些事件時,鉤子函數主動地陷入到虛擬機管理器中。通過跳轉模塊,將虛擬機中發生的事件傳遞到管理域的安全驅動。安全工具執行某種安全策略,然后將響應發送到安全驅動,從而對虛擬機中的事件采取響應措施。跳轉模塊的功能是在虛擬機和管理域之間通信的橋梁。為了防止惡意攻擊者篡改,截獲事件的鉤子函數和跳轉模塊都是自包含的(self-contained),不能調用內核的其他函數。同時,它們都必須很簡單,可以方便地被內存保護模塊所保護。
這種架構的優勢在于,事件截獲在虛擬機中實現,而且可以直接獲取操作系統級語義。由于不需要進行語義重構,因此減少了性能開銷。然而,它需要在客戶操作系統中插入內核模塊,對其不具有透明性。而且,內存保護模塊和跳轉模塊是與目標虛擬機緊密相關的,不具有通用性。
圖2 內部監控的架構
1.2 外部監控
與內部監控相比,外部監控具有一定的優勢,因此相關的研究工作也就更多。圖3說明了外部監控的架構,典型的代表系統是Livewire等。
外部監控是指在目標虛擬機外部,由位于安全域的安全工具按照某種策略對其進行檢測。從圖3中可以看出,監控點部署在虛擬機管理器中,它是安全域中的安全工具和目標虛擬機之間通信的橋梁。監控點攔截目標虛擬機中發生的事件,重構出高級語義并傳遞給安全工具。安全工具根據安全策略產生的響應,通過監控點來控制目標虛擬機。虛擬機管理器將安全工具與目標虛擬機隔離開來,增強了安全工具的安全性。由于虛擬機管理器位于目標虛擬機的底層,因此監控點可以觀測到目標虛擬機的狀態(例如CPU信息、內存頁面等)。在虛擬機管理器的輔助下,安全工具能夠對目標虛擬機進行檢測。一般來說,外部監控一般包含兩種基本功能:事件截獲和語義重構。事件截獲是指攔截虛擬機中發生的某些事件,從而觸發安全工具對其進行檢測。由于虛擬機管理器位于目標虛擬機的下層,因此只能獲取低級語義(例如寄存器和內存頁面)。而監控工具是針對操作系統層的語義,因此兩者之間存在語義鴻溝(semantic gap)。為了使監控工具能夠“理解”目標虛擬機中的事件,因此必須進行語義重構(semantic reconstruction)。語義重構是指由低級語義重構出高級語義(操作系統級語義)。語義重構的過程與客戶操作系統的類型和版本密切相關,通過某些寄存器或者內存地址來解析出內核關鍵的數據結構。
圖3 外部監控的架構
2 基于虛擬化安全監控的相關工作
安全監控主要是對計算系統實現相應的安全功能,保證計算系統的正常運行。本文將主要從入侵檢測、蜜罐、文件完整性監控、惡意代碼檢測與分析、安全監控架構、監控通用性等方面介紹相關的研究工作。
2.1 入侵檢測
入侵檢測系統(intrusion detection system,簡稱IDS)是指發現在非授權的情況下,試圖存取信息、處理信息或者破壞系統,以使系統不可靠、不可用的故意行為的安全工具。根據收集信息的來源不同,IDS可以分為基于網絡的IDS(network-based IDS,簡稱NIDS)和基于主機的IDS(host-based IDS,簡稱HIDS)。NIDS部署在局域網中,實時地分析網絡中的流量(例如Snort);而HIDS則是分析系統的內部狀態和日志,從而發現入侵行為(例如OSSEC[28])。入侵防御系統(intrusion prevention system,簡稱IPS)則是在入侵檢測的基礎上實現動態響應。
現有的入侵檢測架構給系統管理員帶來了兩難的選擇:如果將入侵檢測系統部署在主機上,它可以清晰地觀察到主機的系統狀態,但是容易遭到惡意攻擊或者被屏蔽;如果將入侵檢測系統部署在網絡上,它可以更好地抵御攻擊,但是對主機的內部狀態一無所知,因此可能讓攻擊者逃脫。因此,Tal Garfinkel和Mendel Rosenblum首次在文獻[23]中提出一種能夠觀察到被監控系統的內部狀態、同時與被監控系統隔離的入侵檢測架構。該架構利用虛擬化技術,將入侵檢測系統從被監控系統中轉移出來。虛擬機管理器能夠直接觀察到被監控系統的內部狀態,通過直接訪問其內存來重構出客戶操作系統的內核數據結構,而通過單獨運行的入侵檢測系統來進行檢測。這種在虛擬機外部監控虛擬機內部運行狀態的方法被稱為虛擬機自省(virtual machine introspection,簡稱VMI)。為了證明該架構能夠抵御攻擊以及防止攻擊者逃脫,作者通過修改VMware Workstation實現了原型系統-Livewire],如圖4所示。圖4右側為被監控的系統,左側是基于虛擬機自信機制的入侵檢測系統,操作系統接口庫通過虛擬機管理管理器攔截的狀態來恢復出操作系統級語義。
圖4 Livewire系統架構圖
類似地,Laureano等人提出將被監控系統封裝在虛擬機中,同時從外部監控其中的系統調用序列。外部的監控器根據系統調用序列來判斷進程行為是否異常,從而采取相應的響應措施。基于User-Mode Linux(UML),作者實現了原型系統,當檢測到異常時,采用軟件防火墻來阻斷網絡連接或者關閉網絡端口。
與上述不同的是,VNIDA通過建立一個單獨的入侵檢測域(intrusion detection domain,簡稱IDD)來為其他虛擬機提供入侵檢測服務。虛擬機管理器層的事件傳感器(event sensor)攔截虛擬機中的系統調用,并通過虛擬機管理器接口(VMM interface)傳遞到IDD中的入侵檢測系統。根據不同的安全策略,虛擬機管理層的入侵檢測域助手(IDD helper)能夠針對入侵采取相應的響應。
此外,Zhang等人基于虛擬化和智能磁盤技術(smart disk technology)提出了面向存儲的入侵檢測系統。虛擬機管理器能夠避免入侵檢測系統受到攻擊,而智能磁盤技術則能夠讓入侵檢測系統觀測到被監控系統的整個文件系統。而Pennington等人提出將入侵檢測嵌入到網絡文件系統(network file system,簡稱NFS)服務器中。當客戶端進行文件操作時,基于存儲的入侵檢測系統能夠對可疑的文件修改操作進行在線的、基于規則的檢測。
在分布式計算系統中,HyperSpector是一種面向虛擬計算環境的入侵監控系統。分布式環境中的多個入侵檢測系統能夠發現攻擊者,同時也增加了不安全的因素。因此,HyperSpector將入侵檢測系統部署在虛擬機中,與被監控的系統隔離。此外,各個節點上的入侵檢測虛擬機(IDS VM)通過虛擬網絡進行互聯。為了對被監控系統進行有效地檢測,它提供了3種虛擬機內部(inter-VM)監控機制:軟件端口鏡像(software port mirroring)、虛擬機內磁盤掛載(inter-VM disk mounting)和虛擬機內進程映射(inter-VM process mapping)。此外,Roschke等人提出了面向分布式計算環境,集成了管理虛擬機和入侵檢測系統的架構。該架構通過事件收集器(event gatherer)來獲取各個IDS傳感器(IDS sensor)的信息,并記錄在事件數據庫(event database)進行分析。因此,該架構滿足通用分布式入侵檢測系統可伸縮性(extensibility)的需求。
2.2 系統日志
系統日志(Log)是記錄系統中硬件、軟件和系統的問題信息,同時還可以監視系統中發生的事件。系統管理員可以通過它來檢查錯誤發生的原因,或者尋找攻擊者留下的痕跡。例如,Linux系統中,日志一般存放在文件/var/log/messages中,而Windows XP系統中則可以運行eventvwr命令來查看系統日志。
當前的系統日志存在兩個問題:
(1) 它依賴于記錄日志的操作系統的完整性。如果入侵已經發生了,那么攻擊者很有可能通過刪除日志記錄來隱藏其蹤跡,那么系統日志也就不再值得信賴了;
(2) 它沒有記錄充足的信息(例如非確定性事件)來重放和分析攻擊。系統日志只記錄系統中發生的事件,而這些事件不能充分地確定攻擊者如何入侵到系統,因此給系統管理員分析攻擊帶來了極大負擔。
ReVirt在虛擬機管理器層將客戶操作系統的行為記錄到系統日志中,它主要記錄了影響進程運行的非確定性事件(non-deterministic events):外部輸入和定時器。根據日志記錄來進行系統重放,從而分析攻擊行為。
通過記錄操作系統中發生的系統調用和進行系統重放,BackTracker能夠自動定位入侵發生的序列。通過在線記錄系統日志,當入侵發生后,分析日志信息從而獲得入侵過程中進程和文件的依賴關系圖(dependency graph)。為了在軟件漏洞發布之前發現入侵,IntroVirt利用虛擬機自省機制來監控操作系統和應用程序的執行過程。在系統運行或者回放過程中,通過執行特定的脆弱性斷言(vulnerability-specific predictates)來檢測入侵。與之類似地,通過記錄和回放系統中的相關事件,ExecRecorder基于Bochs實現了全系統回放。
上述方法都是在系統運行時記錄系統日志,在發生入侵后通過從某個檢查點(checkpoint)回放系統來重現攻擊行為。與上述方法不同的是,Xenlog提出了一種安全地記錄系統日志的方法。在獲得被監控系統的日志之后,通過Xen提供的共享內存機制,將日志信息傳輸到一個單獨的隔離域中。這種方法可以防止日志被攻擊者嗅探到。同時,與網絡傳輸日志的方式相比,它提高了傳輸效率。類似地,吳佳民等人提出了一個運行于Xen上的實時日志備份系統,通過該系統來傳輸日志信息,可以避免其在傳輸過程中暴露在網絡上的風險。
2.3 蜜罐
蜜罐(honeypot)是通過構造類似于真實的系統環境,從而引誘惡意攻擊,并分析攻擊者的行為特征。目前,蜜罐是研究最新惡意代碼的有效手段,從中可以提取惡意代碼的行為特征。根據傳感器部署的位置,蜜罐可以分為內部蜜罐和外部蜜罐。內部蜜罐部署在被監控系統內部,它能夠提供豐富的語義,然而可能會被惡意攻擊者所破壞;外部蜜罐部署在被監控系統外部,它對惡意攻擊者透明,但是不能獲取系統內部事件。
由于在物理機器上部署蜜罐通常耗時而且代價大,Honeyd是一種模擬計算機的虛擬蜜罐框架。它不僅能模擬不同操作系統的網絡棧,而且可以為大量虛擬系統提供任意的路由拓撲(routing toplogy)。通過部署Honeyd可應用于蠕蟲檢測、垃圾郵件防御等系統安全領域。與之類似地,基于虛擬化技術,Potemkin通過內存共享(memory sharing)和推遲綁定資源(late binding of resources)技術來支持在單個物理節點上同時模擬上萬個高度逼真的蜜罐,從而增強了蜜罐的可擴展性(scalability)。為了探測本地的蠕蟲,HoneyStat[53]通過修改蜜罐來提高檢測的準確性,同時具有低誤報率。與入侵檢測系統的報警信息相比,它可以提供更多的信息,例如二進制特征(binary signature)、攻擊向量(attack vector)、攻擊速率(attack rate)等。文獻[54]比較了在User-Mode Linux和Xen上實現基于虛擬機的蜜罐,并通過實驗表明,少量的傳感器就能夠探測到大量的入侵行為。由于單個蜜罐或者多個獨立的蜜罐只能發現攻擊的局部視圖,而且蜜罐的部署也會帶來安全風險,Collapsar通過管理專用網絡中的大量高交互式虛擬蜜罐來建立分布式網絡攻擊拘留中心(network attack detention center)。這種方法能夠提供網絡攻擊的多樣化視圖,同時便于進行管理。
由于內部蜜罐容易受到攻擊,而外部蜜罐無法探測到被監控系統的內部狀態,VMscope基于虛擬化實現了從蜜罐外部查看內部系統狀態。由于客戶端攻擊急劇地增加,PhoneyC通過模擬客戶端的應用(例如網頁瀏覽器)來分析最新的客戶端攻擊方式。針對網絡中傳播的惡意代碼,Amun[59]在服務器端模擬系統漏洞,從而主動收集蠕蟲和僵尸網絡等惡意代碼的行為特征。
2.4 完整性保護
完整性是指能夠保障被傳輸、接收或存儲的信息是完整的和未被篡改的,它是信息安全的重要屬性之一。目前,關于完整性保護已經有一些相關的研究工作,主要集中在保證文件完整性、內核代碼完整性和虛擬機管理器代碼的完整性。
文件完整性保護主要分為周期性文件保護和實時文件保護:周期性文件保護是在不同的時間點來比較文件的Hash值,從而判斷文件是否被篡改,例如Tripwire,AIDE,Samhain等;實時文件保護通過攔截文件操作從而保護其完整性,例如I3FS.Quynh等人提出基于Xen虛擬機來實時地監控文件系統的完整性,并將操作文件的報告通過共享內存的方式保存在單獨的虛擬機中。然而,文件監控器可能被屏蔽,同時對被監控系統不具有透明性。RFIM系統通過在虛擬機管理器層截獲虛擬機中的系統調用,并對文件操作進行語義恢復。因此,RFIM系統對被監控系統完全透明。
Copilot通過一個運行在協處理器中的內核完整性監視器來探測篡改操作系統內核的惡意代碼,它不需要修改被保護系統上運行的軟件,即使內核完全被“攻陷”了也能夠正常工作。Pioneer是在不可信的主機上實現代碼執行過程的可驗證性,它不需要協處理器或擴展CPU架構。SecVisor通過修改Linux來創建一個輕量級虛擬機,從而保護主機操作系統的完整性;而KOP則是通過映射動態的內核數據來保證內核完整性。此外, HUKO是基于虛擬化的完整性保護系統,從而避免對操作系統內核進行不可信的擴展。
在虛擬化得到廣泛應用的同時,虛擬機管理器自身的安全問題也不容忽視。由于虛擬機管理器是在真實硬件之上運行的軟件,因此近年來也出現了保護虛擬機管理器完整性的相關文獻。Hypersafe[75]的目標是使虛擬機管理器具有自保護性(self-protection)。為了保證虛擬機管理器運行時的完整性,作者提出了兩種技術:不可繞過的內存鎖(non-bypassable memory lockdown)和受限制的指針索引(restricted pointer indexing)。不可繞過的內存鎖通過設置頁表中的某些位(例如NX,R/W,U/S,WP)來實現惡意程序修改時導致的缺頁故障(page fault),而正常的頁表更新則是通過原子操作來實現。此外,通過構造控制流程圖(control flow graph)來限制指針的位置,從而保證控制流完整性。不可繞過的內存鎖保證了虛擬機管理器代碼的完整性,不可繞過的內存鎖和受限制的指針索引保證了虛擬機管理數據的完整性。不可繞過的內存鎖是直接通過擴展虛擬機管理器的內存管理模塊來實現;受限制的指針索引則是擴展了開源的LLVM編譯器來重新編譯虛擬機管理器的代碼。
HyperSentry提出了對運行時虛擬機管理器的完整性度量框架。與現有系統都是保護特權軟件不同的是, HyperSentry不需要在被度量的目標底層引入更高特權級的軟件,因為這將引起惡意攻擊者獲取系統最高特權的競賽。與之相反,HyperSentry引入一種軟件組件,它能夠與虛擬機管理器隔離,從而實現對虛擬機管理器進行秘密地和實時的完整性度量。然而,秘密性是確保受到攻擊虛擬機管理器不會隱藏攻擊蹤跡,實時性是完整性度量的必須條件。
HyperSentry通過使用外部通道(IPMI)來觸發秘密地度量,并通過系統管理模式(system management mode,簡稱SMM)來保護代碼和關鍵數據。HyperSentry的貢獻是克服了系統管理模式的限制,提供了完整性度量代理,主要功能包括:
(1) Hypervisor的上下文信息;
(2) 完整的執行保護;
(3) 證明輸出。
與之類似的是,HyperCheck是基于硬件輔助的探測篡改框架,用于保證虛擬機管理器的完整性。 HyperCheck也是利用CPU的系統管理模式來檢測被保護機器的狀態,并發送給遠程用戶。除了BIOS, HyperCheck不依賴于目標機器上運行的任何軟件,而且能夠抵御屏蔽和阻止其功能的惡意攻擊。
2.5 惡意代碼檢測與分析
惡意代碼是指按照攻擊者的意圖在系統中執行的程序,一般具有隱蔽性,不易被監控工具發現。如果將檢測工具都部署在被監控的系統中,那么容易遭受到攻擊。為了解決上述問題,VMwatcher提出在被監控系統外部檢測內部的惡意軟件。由于檢測工具與被監控系統隔離在不同的虛擬機中,因此需要解決語義鴻溝(semantic gap)的問題。通過語義重構,在虛擬機外部的檢測軟件能夠發現虛擬機中的惡意軟件。利用硬件輔助虛擬化技術, Ether提出了一種外部的、透明的惡意代碼分析方法。該方法利用Intel VT技術對可疑程序程序進行跟蹤,同時對被監控系統完全透明。由于在虛擬機內部和外部進行觀測時兩者之間具有一定的時間差,如果在這段時間內進程創建和撤銷很頻繁,那么將會對檢測結果帶來一定程度的誤差。因此,Lycosid系統利用統計學的方法消除了在兩者之間觀測帶來的干擾,從而提高了檢測的精確性。
現有的惡意軟件檢測機制都是探測惡意代碼的存在,而不是動態地分析惡意代碼的行為。K-Tracer是基于QEMU開發的惡意代碼行為分析工具,它能夠動態地收集Windows內核的執行路徑信息,并采用后向和前向的切片(backward and forward slicing)技術來提取惡意代碼的行為。與之類似地,Rkprofiler[83]是一個基于沙盒(sandbox)的惡意代碼分析系統,它能夠監控和報告客戶操作系統中運行的惡意代碼的行為。由于分析惡意代碼的行為是一個非常枯燥而且耗時的工作,Moser等人基于QEMU實現了多執行路徑(multiple execution paths)的惡意代碼分析系統,從而識別出某些特定條件才會出現的惡意行為。這種方法能夠在可疑行為發生時,自動地提取應用程序的全面行為。此外,Crandall等人提出基于虛擬機的虛擬時間來自動分析與時間相關的惡意代碼。該方法不需要假定客戶操作系統內核的完整性,同時能夠探測惡意代碼的定時炸彈(malware timeBOMb)。而Wang等人利用虛擬機中運行有漏洞的瀏覽器(vulnerable brower)來分析各個Web站點上可能存在的惡意軟件,從而降低了為了保護Internet用戶而監控惡意網站的開銷。
2.6 安全監控架構
安全監控架構是指安全工具為了適應虛擬計算環境而采用不同的架構。Livewire采用了虛擬機自省的監控架構,即在將安全工具放在單獨的虛擬機中來對其他虛擬機進行檢測。Xenaccess是在Xen的管理域中實現的虛擬機監控庫,它基于Xen提供的libxc和libblktap庫。Xenaccess提供了高級接口,并實現對目標虛擬機內存和磁盤查看。由于Xenaccess的前提假設是操作系統內核的完整性,當惡意攻擊者篡改內核關鍵數據結構時,檢測功能會失效。而且,磁盤監控是具有一定的延遲,因此可能遭到定時攻擊。Wizard是一個基于Xen的內核監控器,它能夠發現高級的內核事件和低級的硬件設備事件之間的相互關系。因此,它能夠安全和有效地截獲應用級和操作系統級行為。
上述系統都是采用虛擬機自省機制。與之不同的是,Lares是基于虛擬化的安全主動監控(secure active monitoring)框架。它通過在被監控的虛擬機中插入一些鉤子函數(hook),從而截獲系統狀態的改變,并跳轉到單獨的安全虛擬機中進行處理。因此,Lares既進行主動監控,同時通過隔離的虛擬機來提高安全性。SIM[22]則是利用硬件輔助虛擬化來實現虛擬機內部的通用安全監控框架。監控工具部署在不可信的客戶操作系統中,并通過虛擬機管理器進行保護。由于事件截獲在被監控的系統中,不存在語義鴻溝的問題,因此降低了監控開銷。然而,由于鉤子函數或者監控工具部署在被監控系統中,因此需要通過虛擬機管理器來保護其所在的內存頁面。
2.7 監控的通用性
由于單個物理節點上同時運行多個不同類型的虛擬機,虛擬機自身具有的動態性,虛擬機可以動態地創建、撤銷以及在各個物理平臺之間進行遷移。傳統的監控工具針對的目標系統是相對穩定的,而在虛擬化架構中,監控工具需要對各種虛擬機進行有效地監控。因此,現有的安全監控方法不能滿足要求,需要采用通用的監控機制保證有效性。
目前,所有上述監控工具都是針對特定的客戶操作系統的類型來實現特定的安全功能。然而單個物理節點上虛擬機中的客戶操作系統是多種多樣的(例如Linux,Windows等),當某個物理節點上創建一個新的虛擬機,或者從另外一個物理節點上遷移新的虛擬機時,監控工具就會失效。因此,現有的監控工具不能滿足監控通用性的需求。
文獻[89]首次提出了基于虛擬化安全監控的通用性問題,同時提出了一種基于驅動的通用監控系統——VMDriver。VMDriver通過兩種新的設計策略來實現細粒度監控:
(1) 將客戶操作系統中的事件截獲和語義恢復相分離。事件截獲在虛擬機管理器層,而語義恢復在管理域中;
(2) 語義恢復通過管理域中的監控驅動來實現。采用Linux中設備驅動的方式,語義恢復以內核模塊的方式加載到管理域中,從而實現動態地屏蔽虛擬機中客戶操作系統的差異性。監控驅動與虛擬機中客戶操作系統的類型和版本相對應,并為上層的監控工具提供統一的接口,從而保證了監控系統的通用性。
圖5說明了VMDriver系統的總體架構。事件截獲模塊位于虛擬機管理器層,語義恢復模塊位于管理域的內核態。事件截獲模塊實現對虛擬機中客戶操作系統發生的系統調用進行攔截。不同的形狀(例如橢圓、矩形、菱形)分別代表了不同類型和版本的客戶操作系統。語義恢復模塊與虛擬機中客戶操作系統的類型相對應,因此用不同形狀來表示。語義恢復模塊以內核模塊的方式進行加載,從而動態地對新的虛擬機進行有效地監控,因此也被稱為監控驅動。調度管理模塊只是對各種監控驅動進行管理,例如加載、卸載等。
圖5 VMDriver系統架構
VMDriver系統的工作流程:用戶態監控工具需要對某個虛擬機進行監控,通過調度管理模塊加載相應的監控驅動。當虛擬機中發生系統調用時,虛擬機管理器中的事件截獲模塊進行攔截,并向相應的監控驅動報告。監控驅動根據內核數據結構重構出被監控系統中的操作系統級語義,并傳輸給用戶態監控工具。通過這種方式,監控驅動屏蔽了虛擬機中客戶操作系統的差異性。
3 展望
綜上所述,現有的工作主要集中在利用虛擬機管理器來保護目標虛擬機中的鉤子函數(內部監控)或者從目標虛擬機外部查看其內部狀態(外部監控),并針對不同類型的安全工具都進行了相應的研究。然而,現有的研究工作主要存在以下兩個方面的不足:
(1) 現有研究工作的前提條件過強,在實際情況中會存在某些問題
現有的研究工作都是假定虛擬機管理器和管理域自身是安全的,事實上,虛擬機管理器是一層運行在真實硬件之上的系統軟件,其自身也可能存在一定的安全漏洞。雖然與操作系統相比,虛擬機管理器由于其代碼量少和功能簡潔而具有較高的安全性,但是根據CVE網站已經公布出來的漏洞顯示,VMware ESX存在23個漏洞,Xen存在6個漏洞,這與操作系統本身的漏洞相比而言是相當少的。但是,虛擬機管理器作為整個虛擬計算平臺的基石,一旦其出現某種安全問題,那么將會導致整個虛擬化平臺上的其他虛擬機遭到非常嚴重的后果,因此其危害性也就更大。此外,管理域是一個完整的系統環境(包括操作系統和應用程序),平臺管理員可以利用管理域中的管理工具來操作虛擬機,例如創建、暫停、重啟、遷移等。由于管理域比較龐大而且具有較高的權限,這也會給虛擬計算環境帶來新的安全風險。例如,惡意攻擊者通過入侵管理域從而控制整個虛擬化平臺。相對于破壞虛擬機管理器,這種攻擊方式難度更低而且不易于發現。
(2) 安全監控與現有的安全工具的融合
現有的研究工作都是利用虛擬機管理器實現某種安全功能,例如入侵檢測、惡意代碼分析等。目前,學術界和工業界已經開發或使用了大量安全工具,這些安全工具都是基于系統級語義的。安全監控沒有提供統一的接口標準,現有的安全工具不能對其直接調用。因此,如何將基于虛擬化的安全監控與現有的安全工具進行融合,是主要存在的問題。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于虛擬化的安全監控
本文網址:http://www.guhuozai8.cn/html/consultation/1083958739.html