周益周,謝小權(quán)
(中國(guó)航天科工集團(tuán)第二研究院七〇六所 北京 100854)
云環(huán)境下基于VMI技術(shù)的入侵檢測(cè)架構(gòu)研究
周益周,謝小權(quán)
(中國(guó)航天科工集團(tuán)第二研究院七〇六所 北京100854)
虛擬機(jī)自?。╒irtual Machine Introspection,VMI)指在虛擬機(jī)監(jiān)視器層對(duì)虛擬機(jī)進(jìn)行安全監(jiān)控,VMI技術(shù)可用于監(jiān)控和分析云環(huán)境下虛擬機(jī)內(nèi)部的惡意行為。本文設(shè)計(jì)了一個(gè)可以檢測(cè)云環(huán)境中虛擬機(jī)內(nèi)部惡意行為的入侵檢測(cè)架構(gòu),為解決當(dāng)前虛擬環(huán)境下監(jiān)控?cái)?shù)據(jù)獲取方法安全性的不足,本文提出并設(shè)計(jì)了一種云環(huán)境下利用硬件輔助虛擬化(Virtualization Technology)技術(shù)在虛擬機(jī)監(jiān)視器層獲取監(jiān)控?cái)?shù)據(jù)的方法,將此數(shù)據(jù)作為入侵檢測(cè)的數(shù)據(jù)源。
虛擬機(jī)自??;虛擬化;硬件輔助虛擬化;云計(jì)算;入侵檢測(cè)
云用戶可以使用IaaS提供的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等基本計(jì)算資源,并能夠在上面部署操作系統(tǒng)和應(yīng)用軟件。云用戶并不能夠管理或控制底層的基礎(chǔ)設(shè)施,但可以控制其部署的操作系統(tǒng)、存儲(chǔ)資源和應(yīng)用程序。與此同時(shí),攻擊者也可以將惡意代碼部署在云基礎(chǔ)設(shè)施上,借助被植入惡意程序的虛擬機(jī),繼續(xù)感染云中的其他虛擬機(jī)或外部網(wǎng)絡(luò)。
為此,云服務(wù)商有責(zé)任為云用戶提供一個(gè)安全的云環(huán)境,最典型的方式是在每臺(tái)虛擬機(jī)內(nèi)部安裝代理,實(shí)現(xiàn)對(duì)云基礎(chǔ)設(shè)施的監(jiān)控。但是虛擬機(jī)內(nèi)部的代理本身并不安全,因?yàn)樘摂M機(jī)可能會(huì)被攻擊者控制,若虛擬機(jī)被惡意控制后,該虛擬機(jī)可以攻擊云環(huán)境內(nèi)部或外部其他的用戶,所以云服務(wù)商不能依賴傳統(tǒng)方式對(duì)云進(jìn)行保護(hù)。
云計(jì)算引入虛擬化技術(shù)為其提供核心支持的同時(shí),也引入了虛擬化技術(shù)帶來(lái)的安全風(fēng)險(xiǎn)。虛擬機(jī)逃逸是一種針對(duì)虛擬化技術(shù)的攻擊方式,攻擊者通過(guò)執(zhí)行一個(gè)虛擬機(jī)內(nèi)部的惡意程序,獲取虛擬機(jī)監(jiān)視器權(quán)限,從而可對(duì)宿主機(jī)上的其他虛擬機(jī)進(jìn)行攻擊。2008年,Core Security Technologies發(fā)現(xiàn)了VMware的漏洞(CVE-2008-0923)[2],其可以證明虛擬機(jī)逃逸是存在的。2012年,在Xen 4.1.2版本中也發(fā)現(xiàn)了一個(gè)類似的漏洞(CVE-2012-0217)[3],證明Intel處理器在執(zhí)行SYSRET指令的差錯(cuò)處理時(shí)出現(xiàn)問(wèn)題,使得本地用戶通過(guò)執(zhí)行一個(gè)惡意程序就可以獲得管理員權(quán)限,進(jìn)而可對(duì)云環(huán)境中的其他虛擬機(jī)造成威脅。
這說(shuō)明,在云環(huán)境中監(jiān)控虛擬機(jī)并識(shí)別出虛擬機(jī)中發(fā)生的惡意行為對(duì)于解決云安全問(wèn)題非常關(guān)鍵?;谝陨媳尘?,為了保證云環(huán)境的安全性,本文將設(shè)計(jì)一個(gè)針對(duì)云環(huán)境的入侵檢測(cè)系統(tǒng),可以檢測(cè)虛擬機(jī)的惡意行為。
為了檢測(cè)虛擬機(jī)內(nèi)部的惡意行為,需要對(duì)虛擬機(jī)進(jìn)行監(jiān)控,傳統(tǒng)的監(jiān)控方式是通過(guò)在虛擬機(jī)內(nèi)部加載鉤子函數(shù)來(lái)攔截被監(jiān)控虛擬機(jī)中的行為,并通過(guò)虛擬機(jī)監(jiān)視器對(duì)這些鉤子函數(shù)進(jìn)行保護(hù)。具有代表性的系統(tǒng)是Lares[4]。這種架構(gòu)的優(yōu)點(diǎn)是由于在虛擬機(jī)內(nèi)部對(duì)虛擬機(jī)的行為進(jìn)行監(jiān)控,所獲得的監(jiān)控?cái)?shù)據(jù)是操作系統(tǒng)級(jí)語(yǔ)義,無(wú)需進(jìn)行語(yǔ)義重構(gòu)。缺點(diǎn)是需要對(duì)每個(gè)被監(jiān)控的虛擬機(jī)中增加鉤子函數(shù),可移植性差,且監(jiān)控工具在虛擬機(jī)內(nèi)部查找惡意行為的同時(shí),惡意軟件也會(huì)發(fā)現(xiàn)監(jiān)控工具的行為,由此惡意軟件可通過(guò)分析監(jiān)控工具的行為,對(duì)自己進(jìn)行適當(dāng)改變從而逃避監(jiān)控。
X86處理器有4個(gè)特權(quán)級(jí)別 (Ring 0~Ring 3),Ring 0優(yōu)先級(jí)最高,Ring 3最低。上述虛擬機(jī)內(nèi)部監(jiān)控機(jī)制其監(jiān)控工具與惡意程序同在Ring 3層,導(dǎo)致該機(jī)制不夠安全。為了避免虛擬機(jī)內(nèi)部監(jiān)控所存在的問(wèn)題,Tal Garfinkel[5]首次提出了VMI技術(shù)的概念:VMI是一種為了分析運(yùn)行在虛擬機(jī)內(nèi)部的軟件而在虛擬機(jī)監(jiān)視器層對(duì)該虛擬機(jī)進(jìn)行檢測(cè)的方法。由此可見(jiàn),在Ring 0層對(duì)Ring 1~Ring 3層進(jìn)行監(jiān)控,避免了傳統(tǒng)監(jiān)控方式下惡意軟件可以檢測(cè)到監(jiān)控軟件存在的缺點(diǎn)。Sina Bahram[6]等人提出的DKSM攻擊,是對(duì)現(xiàn)有基于VMI技術(shù)的安全工具的一種攻擊手段,DKSM攻擊可以改變客戶虛擬機(jī)中內(nèi)核數(shù)據(jù)結(jié)構(gòu)的語(yǔ)法和語(yǔ)義,DKSM通過(guò)內(nèi)核Rootkit工具偽造并交付給客戶和VMI工具所想要看到的信息,但實(shí)際上這兩種信息都不是系統(tǒng)執(zhí)行的真實(shí)信息,這就使得基于客戶虛擬機(jī)中內(nèi)核數(shù)據(jù)結(jié)構(gòu)的語(yǔ)法和語(yǔ)義的VMI安全工具都失去作用。
針對(duì)以上問(wèn)題,本文提出一個(gè)基于硬件輔助虛擬化技術(shù)(Virtualization Technology,簡(jiǎn)稱VT技術(shù))的VMI監(jiān)控虛擬機(jī)內(nèi)部狀態(tài)的方案,并使其符合云環(huán)境的特點(diǎn),設(shè)計(jì)一個(gè)云環(huán)境下基于該方案的入侵檢測(cè)架構(gòu)。
本文主要的工作有:
設(shè)計(jì)云環(huán)境下基于VMI技術(shù)的入侵檢測(cè)體系結(jié)構(gòu),該結(jié)構(gòu)采用節(jié)點(diǎn)端-云端雙重入侵檢測(cè)分析模式。節(jié)點(diǎn)端是指在每個(gè)節(jié)點(diǎn)服務(wù)器對(duì)其上的每個(gè)虛擬機(jī)的行為進(jìn)行入侵檢測(cè),通過(guò)在節(jié)點(diǎn)服務(wù)器上部署系統(tǒng)調(diào)用序列采集工具,收集其上每個(gè)虛擬機(jī)用戶空間所執(zhí)行的進(jìn)程的系統(tǒng)調(diào)用序列,實(shí)時(shí)的對(duì)其進(jìn)行入侵檢測(cè)。云端入侵檢測(cè)分析是指對(duì)某時(shí)期客戶虛擬機(jī)所產(chǎn)生的行為進(jìn)行階段性集中分析。
提出基于硬件的監(jiān)控?cái)?shù)據(jù)采集機(jī)制。該機(jī)制具有兩個(gè)特點(diǎn):1)確保自身安全性。不論是傳統(tǒng)的虛擬機(jī)內(nèi)部監(jiān)控工具和基于VMI技術(shù)的監(jiān)控工具,其本身都可能會(huì)遭到惡意程序危害。本文通過(guò)研究x86架構(gòu)的VT技術(shù),設(shè)計(jì)一個(gè)只需要底層硬件支持的VMI工具進(jìn)行監(jiān)控?cái)?shù)據(jù)采集,保證該采集工具的自身安全性。2)普適性。本文監(jiān)控?cái)?shù)據(jù)采集機(jī)制設(shè)計(jì)的最終目的是用于對(duì)云環(huán)境進(jìn)行入侵檢測(cè),該機(jī)制需滿足云環(huán)境中各種各樣的操作系統(tǒng)不同的監(jiān)控?cái)?shù)據(jù)采集方式,該機(jī)制將對(duì)x86架構(gòu)所支持的系統(tǒng)調(diào)用進(jìn)行采集,所采集的系統(tǒng)調(diào)用序列將作為入侵檢測(cè)的原始數(shù)據(jù)。
將云環(huán)境下基于VMI技術(shù)的入侵檢測(cè)系統(tǒng)分為3個(gè)層次,其總體架構(gòu)如圖1虛線左側(cè)所示,虛線右側(cè)是云中入侵檢測(cè)系統(tǒng)工作流程模塊圖。其中,云控制端是系統(tǒng)的核心,云環(huán)境中所有虛擬機(jī)的運(yùn)行狀態(tài)以及所采集的監(jiān)控信息都保存在云控制端。同時(shí)它也是外界訪問(wèn)云內(nèi)部唯一的接口,其通過(guò)公用網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)集群控制端的管理。集群控制端主要負(fù)責(zé)協(xié)調(diào)一個(gè)集群內(nèi)的虛擬機(jī)資源,并且管理集群內(nèi)的網(wǎng)絡(luò)流量,起到負(fù)載均衡的作用,在本文的研究中,它的作用主要是通過(guò)網(wǎng)絡(luò)完成數(shù)據(jù)的轉(zhuǎn)發(fā)。節(jié)點(diǎn)端運(yùn)行在每個(gè)托管了虛擬機(jī)物理服務(wù)器上,控制主機(jī)操作系統(tǒng)以及相應(yīng)的虛擬機(jī)監(jiān)視器。具體如下:
圖1 云環(huán)境中基于VMI技術(shù)的入侵檢測(cè)系統(tǒng)體系結(jié)構(gòu)Fig.1 Cloud environment IDS structure based on VMI
1.1節(jié)點(diǎn)端
節(jié)點(diǎn)端負(fù)責(zé)對(duì)運(yùn)行在其服務(wù)器上的主機(jī)操作系統(tǒng)和運(yùn)行在該系統(tǒng)之上的虛擬機(jī)實(shí)例的管理,接收集群控制端和云控制端的命令管理虛擬機(jī)實(shí)例,并反饋客戶虛擬機(jī)系統(tǒng)的資源情況和控制信息。除了上述基本功能外,節(jié)點(diǎn)端還需收集客戶虛擬機(jī)的行為信息,并對(duì)單個(gè)事件的行為進(jìn)行節(jié)點(diǎn)端檢測(cè),即上圖實(shí)時(shí)分析模塊。單個(gè)事件的行為特征主要表現(xiàn)為客戶虛擬機(jī)中程序所執(zhí)行的系統(tǒng)調(diào)用序列。在計(jì)算機(jī)系統(tǒng)運(yùn)行過(guò)程中,系統(tǒng)會(huì)發(fā)生各種事件,例如文件的讀寫(xiě)、進(jìn)程的啟動(dòng)與刪除、U盤的插入與拔出等。為了實(shí)現(xiàn)程序的功能,內(nèi)核操作系統(tǒng)提供系統(tǒng)調(diào)用接口為這些程序所用,系統(tǒng)調(diào)用序列可以反映客戶虛擬機(jī)操作系統(tǒng)的運(yùn)行狀態(tài)。
節(jié)點(diǎn)端的實(shí)時(shí)分析主要采用基于行為特征的分析方法,主要思想是先對(duì)安全程序所產(chǎn)生的系統(tǒng)調(diào)用序列進(jìn)行學(xué)習(xí)并建立行為特征庫(kù)。該行為特征庫(kù)存放在云端,當(dāng)采集到客戶虛擬機(jī)所產(chǎn)生的系統(tǒng)調(diào)用序列后,實(shí)時(shí)分析模塊從云端行為特征庫(kù)中獲取該程序所對(duì)應(yīng)的安全系統(tǒng)調(diào)用序列特征,并對(duì)比采集的系統(tǒng)調(diào)用序列,從而判斷該客戶虛擬機(jī)中是否有惡意行為。
系統(tǒng)調(diào)用序列分析結(jié)果的處理策略主要分為兩大類:交互式和非交互式。交互式處理指符合特征的事件觸發(fā)后,向用戶和云管理員詢問(wèn)處理方式,如果超過(guò)指定時(shí)間沒(méi)有得到反饋,則按默認(rèn)方式處理。非交互式處理指直接按照預(yù)先設(shè)置的策略,對(duì)觸發(fā)的事件進(jìn)行處理。最后根據(jù)定義的處理策略,對(duì)發(fā)生的事件進(jìn)行報(bào)警處理。
1.2云控制端
云控制端是系統(tǒng)的核心,負(fù)責(zé)各節(jié)點(diǎn)端監(jiān)控?cái)?shù)據(jù)的收集、存儲(chǔ)、階段性分析等工作。云控制端需具備高效率、高穩(wěn)定性的特點(diǎn)。
云環(huán)境中虛擬機(jī)眾多,其節(jié)點(diǎn)端所采集的監(jiān)控?cái)?shù)據(jù)量大,消息隊(duì)列子模塊管理消息隊(duì)列,任何從節(jié)點(diǎn)端接收的監(jiān)控?cái)?shù)據(jù)都會(huì)先被送入消息隊(duì)列等候處理,起到緩沖的作用,防止數(shù)據(jù)量過(guò)大造成丟失或阻塞。然后使用關(guān)系型數(shù)據(jù)庫(kù)對(duì)消息隊(duì)列中的監(jiān)控?cái)?shù)據(jù)進(jìn)行存儲(chǔ),這些存儲(chǔ)的監(jiān)控?cái)?shù)據(jù)會(huì)根據(jù)云管理員所配置的篩選規(guī)則進(jìn)行階段性分析。篩選規(guī)則是指云管理員通過(guò)配置規(guī)則,篩選特定的事件進(jìn)行檢測(cè),即指定對(duì)某用戶、某節(jié)點(diǎn)、某程序或某時(shí)間段進(jìn)行檢測(cè),可以通過(guò)搜索算法篩選數(shù)據(jù)庫(kù)記錄得到所需事件。階段性分析是指從大量數(shù)據(jù)中發(fā)現(xiàn)用戶異常行為數(shù)據(jù),對(duì)歷史數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,得出云環(huán)境的安全狀況,發(fā)現(xiàn)在某段時(shí)間潛在的安全威脅。
文中主要對(duì)上述系統(tǒng)的監(jiān)控信息采集模塊進(jìn)行設(shè)計(jì)。
由于純軟件的虛擬化解決方案會(huì)增加系統(tǒng)的復(fù)雜性和性能開(kāi)銷,所以出現(xiàn)了硬件輔助虛擬化(Virtualization Technology,VT技術(shù))。由于VT技術(shù)支持客戶操作系統(tǒng)直接在其上運(yùn)行,無(wú)需進(jìn)行二進(jìn)制翻譯或超級(jí)調(diào)用,因此減少了相關(guān)性能開(kāi)銷。硬件支持虛擬化技術(shù)設(shè)計(jì)初衷并沒(méi)有將VMI技術(shù)考慮在內(nèi),其重點(diǎn)也并不在安全方面,它本身只支持直接對(duì)一部分事件進(jìn)行截獲,并不能直接截獲某些安全方面關(guān)注的事件。
目前,Intel IA-32和Intel EM64T架構(gòu)不支持系統(tǒng)調(diào)用事件陷入VMM,為了獲得安全監(jiān)控所需要的系統(tǒng)調(diào)用事件,可以利用Intel虛擬化擴(kuò)展技術(shù)(VT-x技術(shù))提供的強(qiáng)制系統(tǒng)中斷方法使控制權(quán)陷入VMM。如此一來(lái),便可以在VMM層實(shí)現(xiàn)系統(tǒng)調(diào)用的截獲,過(guò)程如圖2所示。
圖2 截獲系統(tǒng)調(diào)用過(guò)程Fig.2 The process of intercept system calls
文中設(shè)計(jì)的監(jiān)控信息采集工具所采集的監(jiān)控信息是客戶虛擬機(jī)中程序運(yùn)行時(shí)所產(chǎn)生的系統(tǒng)調(diào)用序列。該采集工具有兩個(gè)特點(diǎn):1)確保自身安全性。傳統(tǒng)的虛擬機(jī)監(jiān)控工具在虛擬機(jī)的內(nèi)部,這會(huì)使得惡意軟件發(fā)現(xiàn)監(jiān)控工具的存在,通過(guò)分析監(jiān)控工具的行為可隱藏自己;基于客戶操作系統(tǒng)內(nèi)核的VMI監(jiān)控工具工作在VMM層(即Ring 0層),可能遭到上述DKSM攻擊,其自身也不安全。本文通過(guò)研究x86架構(gòu)的VT技術(shù),設(shè)計(jì)一個(gè)只需要底層硬件支持的VMI工具,相當(dāng)于在Ring-1層對(duì)客戶虛擬機(jī)進(jìn)行監(jiān)控,其本身不會(huì)受到內(nèi)核級(jí)或用戶級(jí)攻擊。2)普適性。目前使用最廣的是x86架構(gòu)的機(jī)器,最常見(jiàn)的操作系統(tǒng)是Windows和Linux,分別有32位和64位。x86架構(gòu)有3種系統(tǒng)調(diào)用機(jī)制,本文將對(duì)3種系統(tǒng)調(diào)用的截獲方法進(jìn)行研究。
2.1基于中斷的系統(tǒng)調(diào)用
基于中斷的系統(tǒng)調(diào)用也稱為傳統(tǒng)系統(tǒng)調(diào)用,通過(guò)軟中斷的方式實(shí)現(xiàn)。x86架構(gòu)通過(guò)中斷描述符表(IDT)執(zhí)行中斷操作,IDT將每個(gè)異?;蛑袛嘞蛄糠謩e與它們的處理過(guò)程聯(lián)系起來(lái)。IDT最多有256個(gè)描述符,每個(gè)描述符長(zhǎng)度為8B。處理器通過(guò)中斷描述符表寄存器 (IDTR)來(lái)定位IDT的位置,IDTR中存放著IDT的長(zhǎng)度值和系統(tǒng)內(nèi)存中IDT的開(kāi)始地址(即基地址)。當(dāng)中斷發(fā)生時(shí),硬件通過(guò)IDTR查詢IDT,找出中斷處理函數(shù)的位置并執(zhí)行。
Intel的虛擬化擴(kuò)展技術(shù)支持系統(tǒng)中斷(int0~int31)陷入VMM,系統(tǒng)中斷即指是由Intel固定設(shè)定或保留用的,屬于軟件中斷。但不支持用戶中斷(int31~int255)陷入VMM,用戶中斷是指用戶自己設(shè)定的,這些用戶中斷可能會(huì)用于系統(tǒng)調(diào)用。所以必須設(shè)計(jì)一種方法,通過(guò)用戶中斷形成系統(tǒng)中斷。
將進(jìn)行如下設(shè)計(jì):對(duì)IDT進(jìn)行自虛擬,即將客戶機(jī)IDT拷貝到虛擬機(jī)監(jiān)視器,然后對(duì)修改IDTR寄存器并陷入所有的寫(xiě)訪問(wèn),因此就不會(huì)接受其他操作。IDTR寄存器中存有IDT的長(zhǎng)度值,接著把IDTR中存放的IDT大小的值加入到基礎(chǔ)地址,從而獲得IDT最后一位有效字節(jié)的偏移,將IDT大小設(shè)置為32*8-1=255。這樣做的話,所有的系統(tǒng)中斷(int0~int31)將不受影響,而所有的用戶中斷(int32~int255)將會(huì)引起一個(gè)一般性保護(hù)錯(cuò)誤(int13),即IDT邊界溢出。接著就可以將所有的一般性保護(hù)錯(cuò)誤陷入到虛擬機(jī)監(jiān)視器,但是,必須分清故意設(shè)計(jì)的一般性保護(hù)錯(cuò)誤和正常發(fā)生的一般性保護(hù)錯(cuò)誤。
如果這個(gè)異常不是故意造成的 (即屬于程序正常的異常),將該異常傳回客戶虛擬機(jī)并繼續(xù)執(zhí)行。但如果這個(gè)異常是由用戶中斷產(chǎn)生的(即故意造成的),那么查看該中斷號(hào)并判斷是否已經(jīng)捕獲系統(tǒng)調(diào)用。若陷入了系統(tǒng)調(diào)用,則根據(jù)指定規(guī)則進(jìn)行數(shù)據(jù)收集,否則使用VMM中的IDT仿真int指令并將控制權(quán)還給客戶虛擬機(jī)。當(dāng)發(fā)生系統(tǒng)調(diào)用后,寄存器EAX保存了系統(tǒng)調(diào)用號(hào)(System Call Number)。
2.2基于SYSCALL的系統(tǒng)調(diào)用
執(zhí)行SYSCALL/SYSRET指令也可以進(jìn)行系統(tǒng)調(diào)用。但需要一組MSR寄存器對(duì)這兩個(gè)指令進(jìn)行支持,分別是STAR_MSR(適用于32位傳統(tǒng)模式),CSTAR_MSR(適用于保護(hù)模式),LSTAR_MSR (適用于 64位長(zhǎng)模式)。在執(zhí)行SYSCALL/SYSRET指令前,進(jìn)程會(huì)檢測(cè)EFER寄存器的SCE標(biāo)志位,以確認(rèn)是否開(kāi)啟系統(tǒng)調(diào)用擴(kuò)展(System Call Extension)功能,如果沒(méi)有開(kāi)啟會(huì)產(chǎn)生無(wú)效操作碼(opcode)異常。
因此,可以使用上述方式造成系統(tǒng)中斷,將SCE標(biāo)志位設(shè)置為關(guān)閉狀態(tài),便可使所有的無(wú)效操作碼異常陷入虛擬機(jī)監(jiān)視器。當(dāng)虛擬機(jī)監(jiān)視器得到控制權(quán)時(shí),還需再次區(qū)分該異常是原本就會(huì)發(fā)生的異常還是故意造成的異常??梢酝ㄟ^(guò)檢查違反指令,若指令既不是SYSCALL也不是SYSRET,我們?cè)诳蛻舨僮飨到y(tǒng)中注入一個(gè)無(wú)效操作碼異常,并將控制權(quán)還給客戶操作系統(tǒng)。但如果違反指令是SYSCALL,那么將對(duì)所需信息進(jìn)行收集,并對(duì)該指令進(jìn)行仿真,最后把控制權(quán)還給客戶操作系統(tǒng)。
上述操作同樣適用于SYSRET指令?;赟YSENTER的系統(tǒng)調(diào)用與SYSCALL/SYSRET類似,此處不再敘述。
上述所截獲到的客戶虛擬機(jī)中的系統(tǒng)調(diào)用是底層信息,虛擬機(jī)監(jiān)視器并不清楚是哪個(gè)進(jìn)程發(fā)起了這個(gè)系統(tǒng)調(diào)用,所以該工具還要確定系統(tǒng)調(diào)用是由哪個(gè)進(jìn)程產(chǎn)生的。本文將采取這樣的思想:每次系統(tǒng)調(diào)用中斷時(shí),收集對(duì)于某進(jìn)程而言是唯一的標(biāo)識(shí)符,即進(jìn)程號(hào)(pid)和進(jìn)程名(comm)。該信息都存儲(chǔ)于內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct中,內(nèi)核在初始化進(jìn)程的時(shí)候,為每個(gè)進(jìn)程分配了獨(dú)立的存儲(chǔ)空間,其中存有結(jié)構(gòu)體thread_info和內(nèi)核態(tài)堆 棧,thread_info中 存 放 了指向task_struct的指針,VMM通過(guò)讀取ESP寄存器指示的內(nèi)核態(tài)堆棧棧頂值,通過(guò)地址計(jì)算可以得到thread_info的首地址,進(jìn)而找到task_struct并對(duì)其進(jìn)行分析,可以得到進(jìn)程號(hào)和進(jìn)程名。具體過(guò)程如圖3所示。
圖3 由ESP寄存器值取得進(jìn)程信息過(guò)程Fig.3 The process of ESP register achieving process information
在x86平臺(tái)上,CR3寄存器為處理器提供當(dāng)前進(jìn)程的頁(yè)目錄表的基地址。虛擬機(jī)監(jiān)視器除了讀取ESP寄存器來(lái)獲取進(jìn)程信息以外,還要讀取CR3寄存器的值。如此一來(lái)可以建立一個(gè)進(jìn)程標(biāo)識(shí)符表,在每次進(jìn)行系統(tǒng)調(diào)用時(shí)(系統(tǒng)調(diào)用號(hào)保存在EAX寄存器中,相應(yīng)參數(shù)按順序保存在ebx、ecx、edx、esi及edi寄存器中),向進(jìn)程標(biāo)識(shí)表中添加CR3寄存器值、進(jìn)程號(hào)、進(jìn)程名、系統(tǒng)調(diào)用號(hào)、系統(tǒng)調(diào)用參數(shù)5類信息。根據(jù)進(jìn)程標(biāo)識(shí)表與其對(duì)應(yīng)的系統(tǒng)調(diào)用陷入的先后順序,可以構(gòu)造某進(jìn)程的系統(tǒng)調(diào)用序列。在此需要說(shuō)明的是,只比較CR3寄存器的值就可以判斷是否為同一進(jìn)程,添加進(jìn)程號(hào)和進(jìn)程名在進(jìn)程標(biāo)識(shí)表中是為了云環(huán)境中入侵檢測(cè)分析端使用方便。
云計(jì)算中共享基礎(chǔ)設(shè)施和遠(yuǎn)程隨時(shí)訪問(wèn)的特點(diǎn)給其帶來(lái)了各種各樣的威脅,本文從虛擬機(jī)的惡意行為檢測(cè)的角度進(jìn)行了研究,接下來(lái)的工作重點(diǎn)是對(duì)云計(jì)算環(huán)境中其他方面可能面臨的威脅進(jìn)行研究,比如說(shuō)數(shù)據(jù)存儲(chǔ)、訪問(wèn)權(quán)限、網(wǎng)絡(luò)控制等問(wèn)題,進(jìn)而形成一個(gè)完整的云安全架構(gòu)。
[1]Pfoh J,Schneider C,Eckert C.A formal model for virtual machine introspection,2009[C].Proceedings of the 2nd ACM workshop on Virtual Machine Security(VMSec’09). 2009:1-10.
[2]Core Security Technologies.Path Traversal vulnerability in VMware’s shared folders implementation-CVE-2008-0923. 2007.
[3]Mimoso M.Virtual Machine Escape Exploit Targets Xen. 2012.
[4]Payne D,Carbone M,Sharif M,et al.Lares:An Architecture for Secure Active Monitoring Using Virtualization,2008[C]// 2008 IEEE Symposium on Security and Privacy,2008:233-247.
[5]Garfinkel T,Rosenblum M.A virtual machine introspection based architecture for intrusion detection,2003[C]//Proceedings of Network Distributed System Security,2003:253-285.
[6]Bahram S,Jiang X,Wang Z,Grace M,et al.DKSM:Subverting Virtual Machine Introspection for Fun and Profit,2010[C]. Reliable Distributed System,2010 29th IEEE Symposium,2010:82-91.
[7]Jin H,Guofu Xiang,Deqing Zou,et al.A VMM-based intrusion prevention system in cloud computing environment [J].The Journal of Supercomputing,2013,66:1133-1151.
[8]Gupta S,S G,Gupta S,et al.An immediate system Call sequence based approach for detecting malicious program executions in cloud environment[J].Wireless Personal Communications,2014.
VMI-based intrusion detection framework in cloud environment
ZHOU Yi-zhou,XIE Xiao-quan
(Institute 706,The Second Academy of China Aerospace Science and Industry Corporation,Beijing 100854,China)
Virtual Machine Introspection(VMI)refers to monitoring the state of a virtual machine from the virtual machine monitor layer.It can also be used for monitoring and analysis of the malicious behavior of cloud infrastructure.this article designed an intrusion detection framework to detect the malicious behavior of virtual machine in the cloud,in order to solve the problem that lack of security in monitoring current virtual machines'state,this article also presented and designed a VT-based technology to get monitoring data from the virtual machine monitor layer,and made sure this method meet the characteristics of the cloud.
Virtual Machine Introspection;virtualization;hardware-assisted virtualization technology;cloud computing;intrusion detection
TP309
A
1674-6236(2016)01-0062-04
2015-01-31稿件編號(hào):201501281
周益周(1990—),男,山西太原人,碩士,助理工程師。研究方向:信息安全。