崔超遠(yuǎn),烏云,李平,3,張曉明
(1.中國科學(xué)院 合肥智能機(jī)械研究所,安徽 合肥 230031;2.中國科學(xué)院 安徽循環(huán)經(jīng)濟(jì)技術(shù)工程院,安徽 合肥 230088;3.中國科學(xué)技術(shù)大學(xué) 自動(dòng)化系,安徽 合肥 230027)
虛擬機(jī)自?。╲irtual machine introspection)[1]機(jī)制最早于2003年由Garfinkel和Rosenblum提出,它通過獲取虛擬機(jī)所依托物理硬件級別的狀態(tài)(如物理內(nèi)存頁、寄存器)和事件(如中斷、內(nèi)存讀?。?,推導(dǎo)甚至控制虛擬機(jī)內(nèi)部行為。這項(xiàng)技術(shù)已經(jīng)在惡意軟件分析[2]、入侵檢測系統(tǒng)[3]和內(nèi)存取證[4,5]等方面得到廣泛應(yīng)用。虛擬機(jī)自省要實(shí)現(xiàn)對虛擬機(jī)內(nèi)部的細(xì)粒度監(jiān)視,必須要從外部確定虛擬機(jī)中哪塊區(qū)域是有意義的,這塊有意義區(qū)域被安放在宿主機(jī)物理內(nèi)存的哪塊區(qū)域上,該區(qū)域存儲的是“0”、“1”任意數(shù)量、任意組合的二進(jìn)制字符串,如何將其還原成在虛擬機(jī)中看來是有語義含義的字符序列或數(shù)據(jù)結(jié)構(gòu)。這一問題被稱為虛擬化的語義鴻溝(semantic gap)[6]。
消除語義鴻溝在虛擬機(jī)自省技術(shù)中仍然是一個(gè)難題。已有的解決方案中,有通過解析虛擬機(jī)內(nèi)核數(shù)據(jù)結(jié)構(gòu)來重構(gòu)語義視圖的方法[2],也有直接利用現(xiàn)成庫函數(shù)獲取虛擬機(jī)進(jìn)程及加載模塊等信息的方法[4],還有通過對虛擬機(jī)內(nèi)部進(jìn)程生命周期跟蹤來統(tǒng)計(jì)進(jìn)程數(shù)量的方法[7]。不論哪一種都需要從虛擬機(jī)外部經(jīng)由虛擬化平臺這個(gè)特權(quán)層,獲取寄存器、內(nèi)存、磁盤等設(shè)備的低等級字節(jié)信息,然后將其還原為虛擬機(jī)內(nèi)部高級語義信息。但是這種還原操作在云計(jì)算多租戶多任務(wù)環(huán)境下,不得不頻繁解析硬件狀態(tài)和不同內(nèi)核版本的客戶操作系統(tǒng),導(dǎo)致通用性差,實(shí)時(shí)性也不高。
本文針對現(xiàn)有技術(shù)的不足,采用模塊化設(shè)計(jì)思想,提出了基于語義視圖構(gòu)建和內(nèi)核語義解析相分離的語義鴻溝修復(fù)架構(gòu),二者功能上相互依存,實(shí)現(xiàn)上各自獨(dú)立,能夠有效提高系統(tǒng)可移植性和執(zhí)行效率。
為了消除語義鴻溝的影響,提高虛擬機(jī)自省的準(zhǔn)確性和高效性,人們從虛擬化原理、操作系統(tǒng)原理以及自省程序代碼等各個(gè)角度進(jìn)行了嘗試和探討。
Garfinkel等[1]最早提出虛擬機(jī)自省概念的同時(shí)也給出了一種消除語義鴻溝的方法,即采用 Linux內(nèi)核崩潰轉(zhuǎn)儲(kernel crash dump)[8]分析工具對內(nèi)存、寄存器等設(shè)備進(jìn)行檢查,并結(jié)合稱為操作系統(tǒng)接口庫(OS interface library)的組件,解釋虛擬機(jī)狀態(tài),這樣獲得的就不再是物理內(nèi)存頁內(nèi)容之類的硬件狀態(tài),而是如進(jìn)程代碼段之類的操作系統(tǒng)語義。但是這一方法依據(jù)特定操作系統(tǒng)實(shí)現(xiàn),而且需要編譯帶有調(diào)試符號的內(nèi)核。
Jiang等[2]利用 VMwatcher從虛擬機(jī)外部進(jìn)行惡意軟件檢測時(shí),通過修復(fù)語義鴻溝實(shí)現(xiàn)其功能的。VMwatcher把客戶虛擬機(jī)內(nèi)核數(shù)據(jù)結(jié)構(gòu)定義(如文件、目錄、進(jìn)程)和函數(shù)語義(如文件系統(tǒng)驅(qū)動(dòng)程序)用作模板來解釋從VMM獲得的底層VM狀態(tài),進(jìn)行外部語義視圖重構(gòu),獲得包括虛擬機(jī)寄存器、內(nèi)存、磁盤等狀態(tài)的全部信息。但是客戶機(jī)內(nèi)核數(shù)據(jù)結(jié)構(gòu)定義因內(nèi)核版本的不同而有差異,該方法實(shí)施對內(nèi)核敏感,不利于系統(tǒng)移植。
Hey和Nance[4]研發(fā)的VIX(virtual introspection for Xen)提供了訪問虛擬機(jī)內(nèi)部進(jìn)程列表、網(wǎng)絡(luò)端口、已打開文件和已加載內(nèi)核模塊等各種信息的命令或接口,用于監(jiān)視客戶虛擬機(jī)。VIX將讀取到的字節(jié)信息還原成高級語義信息時(shí),需要參照虛擬機(jī)內(nèi)部文件實(shí)現(xiàn)其功能。例如,進(jìn)程描述符的定位是通過參閱虛擬機(jī)內(nèi)核符號表system.map來實(shí)現(xiàn),這意味著VIX對虛擬機(jī)知識的依賴,智能化水平還有待提高。
康華[9]通過截獲CR3寄存器獲取當(dāng)前進(jìn)程的頁目錄地址,截獲ESP寄存器獲取當(dāng)前進(jìn)程的進(jìn)程描述符地址,并將二者作為鍵值對查找對應(yīng)的進(jìn)程描述符讀取進(jìn)程信息,實(shí)現(xiàn)了KVM虛擬機(jī)的進(jìn)程檢測。但是,該方法中的鍵值對在進(jìn)程活動(dòng)頻繁情況下會頻繁更新,嚴(yán)重影響虛擬化平臺的性能。同時(shí),在線解析進(jìn)程描述符依賴虛擬機(jī)內(nèi)核版本,不利于系統(tǒng)移植。
同樣是解析物理硬件狀態(tài)消除語義鴻溝,Jones[7]提出的AntFarm框架是通過跟蹤虛擬機(jī)內(nèi)部進(jìn)程生命周期(包括進(jìn)程創(chuàng)建、銷毀、切換等),統(tǒng)計(jì)虛擬機(jī)實(shí)際進(jìn)程數(shù)量來實(shí)現(xiàn)的。進(jìn)程地址空間的頁全局目錄PGD基地址存放CR3寄存器,進(jìn)程創(chuàng)建、切換和銷毀等狀態(tài)變化會導(dǎo)致CR3寄存器值的變化。AntFarm根據(jù)出現(xiàn)在CR3寄存器候選列表中 PGD基地址數(shù)量,判斷出了虛擬機(jī)中進(jìn)程的實(shí)際數(shù)量。然而AntFarm只統(tǒng)計(jì)進(jìn)程數(shù)量,無法得到描述進(jìn)程的詳細(xì)信息。另外,一臺物理機(jī)上同時(shí)運(yùn)行多個(gè)虛擬機(jī)時(shí),必須同時(shí)有多個(gè)統(tǒng)計(jì)程序并行執(zhí)行,這會加重平臺的整體負(fù)載。
以上方法如VMwatcher、VIX和AntFarm都遵循 Pfoh[10]歸納的推導(dǎo)模式解決語義鴻溝。Dolan-Gavitt等[11]提出的Virtuoso和Fu等[12]提出的VMST則另辟蹊徑,從程序入手進(jìn)行語義修復(fù)。如VMST在線內(nèi)核數(shù)據(jù)重定向技術(shù),繞開硬件狀態(tài)獲取和解析,直接生成自省程序代碼。開發(fā)者利用VMST很容易將一個(gè)客戶虛擬機(jī)內(nèi)部的檢查程序變成一個(gè)自省程序。但是這種方法的局限性也是明顯的,首先,VMST所依賴的系統(tǒng)調(diào)用、中斷處理、上下文切換都離不開虛擬機(jī)操作系統(tǒng)知識,它對內(nèi)核版本敏感;其次,VMST不支持異步系統(tǒng)調(diào)用,不能讀取被換出到硬盤的內(nèi)存數(shù)據(jù);另外VMST也不支持多核客戶虛擬機(jī)。
考慮到系統(tǒng)準(zhǔn)確性、可移植性和執(zhí)行效率,本文提出了一種模塊化的語義鴻溝修復(fù)架構(gòu) ModSG,將修復(fù)功能分解為前后端2個(gè)模塊,前端和用戶交互,進(jìn)行語義視圖構(gòu)建;后端離線解析不同版本內(nèi)核結(jié)構(gòu),為前端提供語義視圖構(gòu)建時(shí)所需的操作系統(tǒng)信息。ModSG系統(tǒng)架構(gòu)及各模塊間關(guān)系如圖1所示。
圖1中右邊部分為語義修復(fù)后端模塊,是離線預(yù)處理操作,需要在語義修復(fù)前端啟動(dòng)之前執(zhí)行并完成。后端主要由高級語義解析模塊構(gòu)成,用于解析客戶虛擬機(jī)操作系統(tǒng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)(如進(jìn)程控制塊),獲取包括進(jìn)程號、進(jìn)程名之類的進(jìn)程描述、系統(tǒng)調(diào)用和加載模塊等信息,生成語義信息靜態(tài)庫,提供語義信息訪問接口。生成的靜態(tài)庫用于接收來自前端傳遞的語義信息調(diào)用請求,并將請求處理結(jié)果向前端回復(fù)。
圖1 ModSG系統(tǒng)架構(gòu)
前端模塊包括物理內(nèi)存定位和語義視圖構(gòu)建 2部分。前者用于在語義修復(fù)任務(wù)啟動(dòng)之后,定位當(dāng)前進(jìn)程及模塊在客戶虛擬機(jī)所依托宿主實(shí)體機(jī)的物理內(nèi)存地址;后者參照語義修復(fù)后端的語義信息靜態(tài)庫,解析物理內(nèi)存,構(gòu)建高級語義視圖,還原客戶虛擬機(jī)內(nèi)部進(jìn)程的語義內(nèi)容。
本文提出的ModSG和國內(nèi)外其他研究相比有如下優(yōu)勢。1)可移植性。在線語義視圖構(gòu)建和離線高級語義解析以不同模塊實(shí)現(xiàn)。用戶只與前端交互,不需依靠任何操作系統(tǒng)知識,因此前端對內(nèi)核版本是不敏感的。后端盡管要面向各種系統(tǒng)內(nèi)核,但以離線預(yù)處理實(shí)現(xiàn),不會直接與用戶交互,因而不影響前端執(zhí)行,可以廣泛地用在 Xen[13]、KVM[14]、QEMU[15]等虛擬化平臺。2)準(zhǔn)確性。ModSG采用推導(dǎo)模式,把思路放在監(jiān)視虛擬機(jī)硬件狀態(tài)上。正如 Pfoh等論述的,這是修復(fù)語義鴻溝最為可靠和防惡意篡改的方式。3)輕量性。前端進(jìn)行語義視圖構(gòu)建時(shí)避免頻繁解析虛擬機(jī)內(nèi)核數(shù)據(jù)結(jié)構(gòu),只通過簡單的函數(shù)調(diào)用即可,處理效率高,系統(tǒng)負(fù)荷較小。這一點(diǎn)也會在后面實(shí)驗(yàn)中得到證實(shí)。4)易實(shí)現(xiàn)。前后端在功能上相互依存,但實(shí)現(xiàn)上各自獨(dú)立,這樣可以限定排錯(cuò)范圍,避免程序代碼融匯帶來的定義沖突。
系統(tǒng)在開源虛擬化平臺Xen上實(shí)現(xiàn)。Xen上的虛擬域包括Dom0特權(quán)域和DomU非特權(quán)域,Dom0可直接訪問底層的物理資源。ModSG的語義修復(fù)前端位于Dom0域,客戶虛擬機(jī)位于DomU域。
Xen通過虛擬化平臺Hypervisor向客戶提供并管理虛擬硬件資源[16]。為了讓虛擬機(jī)使用一段隔離的、從零開始且連續(xù)的內(nèi)存空間,Hypervisor在操作系統(tǒng)原來的機(jī)器地址和虛擬地址之間引入了一層新的地址空間,即虛擬機(jī)物理地址空間。這樣內(nèi)存地址訪問就存在2次地址轉(zhuǎn)換:從客戶機(jī)虛擬地址(GVA)到客戶機(jī)物理地址(GPA)的轉(zhuǎn)換和客戶機(jī)物理地址到宿主機(jī)物理地址(HPA)的轉(zhuǎn)換。Hypervisor的虛擬機(jī)內(nèi)存管理模塊VMMU采用影子頁表(SPT, shadow page table)技術(shù),直接實(shí)現(xiàn)GVA→HPA的映射,提高了內(nèi)存訪問效率[17]。
Linux內(nèi)核把進(jìn)程的列表存放在一個(gè)雙向循環(huán)鏈表中[18]。鏈表中的每一項(xiàng)都是類型為 task_struct的結(jié)構(gòu)體,task_struct包含了許多和進(jìn)程描述有關(guān)的成員變量,如進(jìn)程號(pid)、進(jìn)程名(comm)、進(jìn)程的狀態(tài)(state)、進(jìn)程運(yùn)行的時(shí)間(utime、stime、gtime)、進(jìn)程內(nèi)存管理信息(mm)等。只要找到任意一個(gè)進(jìn)程,就可以通過當(dāng)前進(jìn)程的 tasks成員變量中next指針值來得到下一個(gè)進(jìn)程的task_struct地址,如此依次遍歷即可找到所有進(jìn)程的列表。圖 2所示為進(jìn)程task_struct結(jié)構(gòu)之間的鏈表關(guān)系。
圖2 task_struct鏈表關(guān)系
通過虛擬化平臺只能獲得客戶機(jī)的二進(jìn)制級信息,必須將其轉(zhuǎn)換成系統(tǒng)高級語義信息才能達(dá)到語義修復(fù)的目的。這個(gè)轉(zhuǎn)化的工作由ModSG后端完成。圖3所示為用類C偽代碼給出的后端模塊進(jìn)行語義解析的例子。
圖3 后端模塊語義解析
圖3中,第 11)~13)行分別返回了 task_struct結(jié)構(gòu)體的進(jìn)程號、進(jìn)程名和 tasks成員的偏移量。第14)行根據(jù)tasks的地址使用內(nèi)核中的宏定義(圖3中第4)行)來獲得task_struct結(jié)構(gòu)體的地址。第15)行根據(jù)當(dāng)前進(jìn)程的tasks(圖3中第8)行)的地址獲得下一個(gè)進(jìn)程的 tasks成員地址。這些信息都保存在由后端生成的語義信息庫中,供前端解析物理內(nèi)存時(shí)使用。
前端模塊直接與用戶交互,執(zhí)行在線語義修復(fù),具體工作流程如圖4所示。
圖4 前端模塊語義視圖重構(gòu)流程
前端在進(jìn)行視圖重構(gòu)時(shí),首先通過虛擬機(jī)內(nèi)核堆棧指針和虛擬化平臺影子頁表定位進(jìn)程所依托的物理內(nèi)存;其次調(diào)用語義信息庫解析該物理內(nèi)存,生成高級語義信息;最后遍歷并解析所有進(jìn)程對應(yīng)的物理內(nèi)存,構(gòu)建虛擬機(jī)內(nèi)部狀態(tài)的語義視圖。
本文通過實(shí)驗(yàn)驗(yàn)證ModSG的可行性,主要考察語義鴻溝修復(fù)的效果和運(yùn)行效率。實(shí)驗(yàn)環(huán)境配置如表1所示,宿主機(jī)運(yùn)行于Intel Core i7 CPU(4核,主頻2.93 GHz)、4 GB內(nèi)存的硬件之上。宿主機(jī)和虛擬機(jī)都是不同內(nèi)核發(fā)行版本的Linux操作系統(tǒng)。
表1 實(shí)驗(yàn)環(huán)境配置
下面以CentOS6.4為例,針對客戶虛擬機(jī)內(nèi)初始進(jìn)程、新建進(jìn)程和隱藏進(jìn)程3種行為進(jìn)行外部語義視圖重構(gòu),通過與內(nèi)部進(jìn)程統(tǒng)計(jì)信息比較,驗(yàn)證ModSG的語義修復(fù)效果。
圖5是某一時(shí)刻虛擬機(jī)內(nèi)運(yùn)行進(jìn)程的內(nèi)外視圖比較,右邊窗口是內(nèi)部終端執(zhí)行“ps -e”命令得到的當(dāng)前進(jìn)程信息。左邊窗口是通過ModSG生成的外部語義視圖。通過比較可以發(fā)現(xiàn), ModSG生成的外部進(jìn)程信息與內(nèi)部檢查到的結(jié)果完全一致。
圖5 初始進(jìn)程語義重構(gòu)
當(dāng)在 CentOS內(nèi)部啟動(dòng)一個(gè)新進(jìn)程時(shí),如圖 6右側(cè)窗口所示,執(zhí)行“vi &”命令后,左側(cè)窗口中由ModSG重構(gòu)的外部語義視圖反映了該進(jìn)程的基本信息。
圖6 新建進(jìn)程語義重構(gòu)
ModSG重構(gòu)的語義視圖也能夠反映出隱藏進(jìn)程的存在。例如,Suterusu[19]是一個(gè)功能強(qiáng)大的Rootkit,可以隱藏進(jìn)程、文件和網(wǎng)絡(luò)端口等系統(tǒng)信息。在CentOS上編譯安裝Suterusu,通過執(zhí)行“./sock 1 1624”命令,隱藏進(jìn)程號為1 544的進(jìn)程,如圖7右側(cè)窗口所示。當(dāng)用“ps”命令列舉當(dāng)前所有進(jìn)程時(shí),右側(cè)窗口顯示進(jìn)程vi的信息已經(jīng)被隱藏。左側(cè)窗口展示了ModSG外部語義重構(gòu)的界面,其中進(jìn)程隊(duì)列顯示了被隱藏進(jìn)程 vi。因此,ModSG也可以有效發(fā)現(xiàn)隱藏進(jìn)程。
本節(jié)考察ModSG的運(yùn)行效率,分別對后端和前端模塊的執(zhí)行時(shí)間進(jìn)行統(tǒng)計(jì)。
1)后端編譯時(shí)間
圖8是后端模塊離線編譯生成語義靜態(tài)庫的統(tǒng)計(jì)結(jié)果,橫坐標(biāo)是4種實(shí)驗(yàn)用操作系統(tǒng)環(huán)境,縱坐標(biāo)是在對應(yīng)環(huán)境下分別進(jìn)行 10次編譯所需時(shí)間的平均值。由圖可見,語義靜態(tài)庫所生成時(shí)間大約為90~170 s。由于是離線運(yùn)行,靜態(tài)庫的生成不會造成太大的系統(tǒng)開銷,更不會影響前端語義視圖重構(gòu)的在線執(zhí)行。
2)前端執(zhí)行時(shí)間
圖9所示為在4種操作系統(tǒng)環(huán)境下,針對虛擬機(jī)內(nèi)部不同數(shù)量進(jìn)程進(jìn)行外部高級語義視圖重構(gòu)的執(zhí)行結(jié)果。其中,橫坐標(biāo)是進(jìn)程數(shù)量,縱坐標(biāo)是進(jìn)行 10次語義重構(gòu)耗費(fèi)時(shí)間的平均值。從圖中可以看出,第一,語義重構(gòu)所需時(shí)間基本上隨進(jìn)程數(shù)量線性變化,這主要是由于每出現(xiàn)一個(gè)進(jìn)程都需要解析對應(yīng)的硬件狀態(tài);第二,在線語義重構(gòu)不影響用戶體驗(yàn),即使在進(jìn)程數(shù)為1 000的情況下,在線執(zhí)行所需時(shí)間僅為 450 ms左右。這樣的結(jié)果對ModSG而言是可控制的。
此外,當(dāng)進(jìn)程數(shù)量一定時(shí)(本實(shí)驗(yàn)中進(jìn)程數(shù)為800個(gè)),4種內(nèi)核版本虛擬機(jī)進(jìn)行外部語義視圖重構(gòu)所需時(shí)間基本一致,圖 10反映了這一點(diǎn)??梢奙odSG前端的執(zhí)行不會因內(nèi)核版本的變化出現(xiàn)較大的差異,這說明ModSG對內(nèi)核版本是不敏感的,在運(yùn)行效率上是穩(wěn)定的。
綜上所述,已有語義鴻溝修復(fù)方案中,AntFarm側(cè)重于統(tǒng)計(jì)虛擬機(jī)中實(shí)際進(jìn)程數(shù)量,VMST和Virtuoso側(cè)重于生成自省工具,都不能準(zhǔn)確獲得虛擬機(jī)內(nèi)部進(jìn)程的高級語義信息。VIX提供現(xiàn)成的庫函數(shù)調(diào)用接口,但生成高級語義信息時(shí)依賴虛擬機(jī)系統(tǒng)內(nèi)部文件。VMwatcher和康華的方法通過解析內(nèi)核數(shù)據(jù)結(jié)構(gòu)重構(gòu)語義視圖,如果內(nèi)核版本發(fā)生變化,需要調(diào)整各自的程序代碼。
圖9 語義視圖重構(gòu)時(shí)間
圖10 不同內(nèi)核版本虛擬機(jī)的語義重構(gòu)時(shí)間
本實(shí)驗(yàn)中使用的 4種版本內(nèi)核系統(tǒng)的源碼不同,生成的內(nèi)核映像也不同。例如,4種內(nèi)核的進(jìn)程控制塊task_struct結(jié)構(gòu)體中,成員變量的順序和偏移量都各不相同。以進(jìn)程號pid的偏移量為例,Centos6.4中為 0x4a8,Ubuntu12.04中為 0x2ac,Debian7.3.0中為 0x1e4,F(xiàn)edora18中為 0x2a4。任何修復(fù)語義鴻溝的方法都不能忽視這些差異。本文中的ModSG通過后端模塊離線解析不同版本內(nèi)核結(jié)構(gòu),為每種版本生成一個(gè)靜態(tài)函數(shù)庫供前端調(diào)用。用戶進(jìn)行語義鴻溝修復(fù)時(shí)只與前端交互即可獲得所需內(nèi)核信息,而不必受制于不同的內(nèi)核結(jié)構(gòu)。對用戶而言,ModSG的架構(gòu)設(shè)計(jì)屏蔽了內(nèi)核版本的差異,提高了通用性和可移植性。
本文提出了一種虛擬機(jī)自省中消除語義鴻溝的模塊化方法,將語義修復(fù)分別以在線語義視圖生成前端和離線內(nèi)核語義解析后端2個(gè)模塊實(shí)現(xiàn)。后端為前端提供語義重構(gòu)時(shí)各種版本操作系統(tǒng)的語義信息,前端直接與用戶交互。用戶無需具備操作系統(tǒng)內(nèi)核知識就可構(gòu)建高級語義視圖,增強(qiáng)了系統(tǒng)的可移植性。實(shí)驗(yàn)結(jié)果也證實(shí)了該方法是可行和高效的。在下一步的工作中,將豐富后端模塊在獲取文件列表、系統(tǒng)調(diào)用、網(wǎng)絡(luò)連接等方面的功能,實(shí)現(xiàn)對虛擬機(jī)更細(xì)粒度的監(jiān)視。
[1] GARFINKEL T, ROSENBLUM M.A virtual machine introspection based architecture for intrusion detection[A].Network and Distributed System Security Symposium [C].2003.
[2] JIANG X, WANG X, XU D.Stealthy malware detection through VMM-based “out-of-the-box” semantic view reconstruction[A].Computer and Communication Security[C].New York, USA, 2007.128-138.
[3] JIANG X, WANG X.Out-of-the-box monitoring of VM-based high-interaction honeypots[A].Recent Advances in Intrusion Detection[C].Australia, 2007.198-218.
[4] HAY B, NANCE K.Forensics examination of volatile system data using virtual introspection[J].ACM Sigops OS Review, 2008, 42(3):74-82.
[5] DOLAN-G B, PAYNE B, LEE W.Leveraging forensic tools for virtual machine introspection[R].GT-CS-11-05, 2011.
[6] CHEN P M, NOBLE B.When virtual is better than real[J].Hot Topics in Operating Systems (HOTOS '01), 2001, 8:133-138.
[7] JONES S T, ARPACI D, A C, ARPACI D, R H.Antfarm: tracking processes in a virtual machine environment[A].Proc of the 2006 USENIX Annual Technical Conference[C].2006.
[8] LKCD.Linux Kernel Crash Dump[EB/OL].http://lkcd.sourceforge.net/.
[9] 康華.從 VMM 中識別 GUEST OS中的用戶進(jìn)程[EB/OL].http://blog.csdn.net/kanghua/article/details/1820785.KANG H.Identify the user process in GUEST OS from VMM[EB/OL].http://blog.csdn.net/kanghua/article/details/1820785.
[10] PFOH J, SCHNEIDER C, ECKERT C.A formal model for virtual machine introspection[A].Proceedings of the 2nd Workshop on Virtual Machine Security (VMSec’09) [C].Chicago, Illinois, USA, 2009.1-10.
[11] DOLAN G B, LEEK T, ZHIVICH M.Virtuoso: narrowing the semantic gap in virtual machine introspection[A].Proceedings of the 33rd IEEE Symposium on Security and Privacy[C].2011, 32: 297-312.
[12] FU Y, LIN Z.Space traveling across VM: automatically bridging the semantic gap in virtual machine introspection via online kernel data redirection[A].Proceedings of the 33rd IEEE Symposium on Security and Privacy[C].2012.586-600.
[13] The Xen project power[EB/OL].http://www.xenproject.org/.
[14] KVM[EB/OL].http://www.linux-kvm.org/page/Main_Page.
[15] QEMU[EB/OL].http://wiki.qemu.org/Main_ Page.
[16] 石磊, 鄒德清, 金海.Xen虛擬化技術(shù)[M].武漢: 華中科技大學(xué)出版社, 2009.SHI L, ZOU D Q, JIN H.Xen Virtualization Technology[M].Wuhan:Huazhong University of Science and Technology Press, 2009.
[17] 英特爾開源軟件技術(shù)中心, 復(fù)旦大學(xué)并行技術(shù)處理研究所.系統(tǒng)虛擬化:原理與實(shí)現(xiàn)[M].北京: 清華大學(xué)出版社, 2009.Intel Open Source Software Technology Center, Parallel Processing Institute, Fudan University.System Virtualization: Principle and Implementation[M].Beijing: Tsinghua University Press, 2009.
[18] ROBERT L.Linux Kernel Development[M].New York: MacMillan Computer Publication, 2005.
[19] Suterusu [EB/OL].https://github.com/dschuermann/suterusu.