国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于虛擬機(jī)管理器層次的客戶機(jī)行為監(jiān)測系統(tǒng)

2018-06-19 12:57:12楊春雷周紅建
計算機(jī)工程與設(shè)計 2018年6期
關(guān)鍵詞:客戶機(jī)斷點管理器

銀 偉,楊春雷,周紅建

(95899部隊,北京 100085)

0 引 言

傳統(tǒng)的主機(jī)數(shù)據(jù)捕獲方法主要基于Sebek實現(xiàn)[1]。Sebek運(yùn)行在客戶機(jī)層次[2],采用新的read()函數(shù)取代舊的read()函數(shù)實現(xiàn)擊鍵記錄和傳送。它具有明顯的指紋特征。一是新的read()函數(shù)與其它系統(tǒng)調(diào)用在內(nèi)存中相距較遠(yuǎn)。二是Sebek是運(yùn)行在內(nèi)核中的模塊,一旦攻擊者攻陷了誘捕系統(tǒng),就具有客戶機(jī)操作系統(tǒng)管理權(quán)限,能夠通過查找對內(nèi)核中的Sebek模塊或定位read()函數(shù)在內(nèi)存的位置進(jìn)行識別。一旦識別蜜罐,蜜罐就有可能失去它的價值[3]。因此,隱蔽的進(jìn)行安全威脅數(shù)據(jù)捕獲是蜜罐維護(hù)人員不懈的追求,而在虛擬機(jī)管理器層次對運(yùn)行其上的客戶機(jī)行為實現(xiàn)監(jiān)測能解決被識別的問題[4]。

目前,Cuckoo[5]在虛擬機(jī)管理器上勾住客戶機(jī)Windows的應(yīng)用程序接口,通過截獲系統(tǒng)調(diào)用對客戶機(jī)行為進(jìn)行監(jiān)測,但是它們需要在客戶機(jī)上安裝代理,這種方式仍然不夠隱蔽。Ether[6]利用客戶機(jī)頁訪問錯誤會觸發(fā)VMEXITs信號讓虛擬機(jī)管理器接管進(jìn)行處理的事實來有效地跟蹤系統(tǒng)調(diào)用,但是這種方法在實現(xiàn)上存在著缺陷,在客戶機(jī)層次能檢測到Ether的存在[7]。CXPInspector[8]使用擴(kuò)展頁表訪問錯誤來實現(xiàn)監(jiān)測。擴(kuò)展頁表將客戶物理內(nèi)存地址映射到宿主機(jī)物理內(nèi)存地址,任何對擴(kuò)展頁表的訪問錯誤也會觸發(fā)VMEXITs,由于擴(kuò)展頁表比Ether使用的客戶機(jī)頁訪問低一個層次,這對于客戶機(jī)來說不可見,可以實現(xiàn)主機(jī)行為的隱蔽捕獲,但是,這種方法開銷比較大。SPIDER[9]使用#BP斷點注入技術(shù)對客戶機(jī)進(jìn)行了隱蔽調(diào)試,這種方法對于客戶機(jī)來說不可見[10]。在本文中,我們將#BP斷點注入運(yùn)用到客戶機(jī)行為監(jiān)測中,設(shè)計了基于虛擬機(jī)管理器層次的客戶機(jī)行為監(jiān)測系統(tǒng)并進(jìn)行了實現(xiàn),能夠跟蹤客戶機(jī)操作系統(tǒng)的執(zhí)行路線,提取內(nèi)核函數(shù)調(diào)用過程,捕獲內(nèi)核數(shù)據(jù)結(jié)構(gòu)篡改,跟蹤內(nèi)核級文件訪問,恢復(fù)內(nèi)存中刪除的文件以及跟蹤網(wǎng)絡(luò)流。

1 威脅模型

要詳盡、全面地捕獲客戶機(jī)行為實現(xiàn)監(jiān)測是一大難題,因為攻擊者會使用各種技術(shù)手段來隱藏自己在主機(jī)上的行為和痕跡。在這節(jié)中,我們建立主機(jī)行為監(jiān)測的安全威脅模型,并對攻擊者主要的對抗技術(shù)手段進(jìn)行討論。

1.1 進(jìn)程隱藏

系統(tǒng)管理員通常通過檢測未知進(jìn)程發(fā)現(xiàn)操作系統(tǒng)上的可疑行為。進(jìn)程隱藏是防止使用工具對未知進(jìn)程進(jìn)行識別的一種方法,防止合法用戶發(fā)現(xiàn)系統(tǒng)上的可疑行為。

在Linux操作系統(tǒng)上,一個進(jìn)程是由進(jìn)程控制塊(PCB)、代碼段和數(shù)據(jù)段組成,PCB是操作系統(tǒng)對每個進(jìn)程的代碼描述,操作系統(tǒng)用task_struct結(jié)構(gòu)來描述PCB,多個進(jìn)程則用雙鏈表來組織,如運(yùn)行狀態(tài)的進(jìn)程組成可運(yùn)行隊列。在操作系統(tǒng)上,用戶可以通過操作系統(tǒng)提供的接口操作進(jìn)程雙鏈表結(jié)構(gòu)來枚舉操作系統(tǒng)上的進(jìn)程,惡意軟件可以通過將進(jìn)程從鏈表中解除來隱藏進(jìn)程。在Windows系統(tǒng)上,在用戶級枚舉進(jìn)程通過調(diào)用NtQuerySystemInformation系統(tǒng)函數(shù)實現(xiàn),惡意軟件可以通過截獲NtQuerySystemInformation系統(tǒng)調(diào)用來隱藏進(jìn)程。系統(tǒng)函數(shù)調(diào)用機(jī)制涉及內(nèi)核中多個重要的數(shù)據(jù)結(jié)構(gòu),如圖1所示。其中中斷描述字表寄存器(IDTR)是CPU中的寄存器,存有中斷描述字表(IDT)的基地址。順著基地址找到中斷描述字表IDT,從IDT表中找到系統(tǒng)調(diào)用分發(fā)器(system call dispatcher)地址,再由系統(tǒng)調(diào)用分發(fā)器找到系統(tǒng)調(diào)用表(system call table),系統(tǒng)調(diào)用表存放的是系統(tǒng)調(diào)用的句柄,系統(tǒng)調(diào)用句柄指向系統(tǒng)調(diào)用代碼段地址。攻擊者主要有4種方法來實現(xiàn)系統(tǒng)調(diào)用的截獲和篡改。①修改IDTR寄存器或者IDT表,使其指向一個惡意的系統(tǒng)調(diào)用分發(fā)器。②修改系統(tǒng)調(diào)用分發(fā)器,使其指向一個惡意的系統(tǒng)調(diào)用表。③修改系統(tǒng)調(diào)用表,使得指向一個惡意的系統(tǒng)調(diào)用句柄。④修改系統(tǒng)調(diào)用本身,實現(xiàn)隱藏進(jìn)程的惡意行為。

圖1 系統(tǒng)調(diào)用機(jī)制重要數(shù)據(jù)結(jié)構(gòu)

1.2 內(nèi)核模塊及系統(tǒng)驅(qū)動隱藏

內(nèi)核模塊及系統(tǒng)驅(qū)動隱藏與進(jìn)程隱藏相似,但是,這些組件是被加載到內(nèi)核所占的內(nèi)存空間中,并不占有獨立的地址空間。而且即使在內(nèi)核內(nèi)存中將組件的句柄移除,這些組件仍然能夠正常運(yùn)行,而內(nèi)核是完全感知不到這些組件的存在。舉個例子,Linux某個內(nèi)核模塊被加載到內(nèi)存,其代碼段占據(jù)了某段內(nèi)核地址空間。然后惡意攻擊者從內(nèi)核模塊列表中將該模塊的句柄移除,這將導(dǎo)致該模塊對于內(nèi)核不可見。

1.3 網(wǎng)絡(luò)行為隱藏

攻擊者可能會在系統(tǒng)上安裝工具設(shè)置后門,在某個端口進(jìn)行監(jiān)聽,再從外部連接到該端口對操作系統(tǒng)進(jìn)行遠(yuǎn)程控制。為避免此類網(wǎng)絡(luò)可疑行為被檢測到,攻擊者會將網(wǎng)絡(luò)行為進(jìn)行隱藏。當(dāng)用戶在操作系統(tǒng)上運(yùn)行netstat命令查看網(wǎng)絡(luò)連接時,攻擊者通過修改和截獲相關(guān)系統(tǒng)調(diào)用,隱藏系統(tǒng)上開放的連接和服務(wù)。

1.4 在內(nèi)存中釋放和刪除臨時文件

惡意軟件的一個特征是在感染進(jìn)程中快速創(chuàng)建和刪除臨時文件。這些臨時文件可能包括解壓的惡意軟件二進(jìn)制文件或者其它相關(guān)可供取證的文件。但是,惡意軟件制作者為避免在操作系統(tǒng)上留下痕跡,不在磁盤上創(chuàng)建和刪除文件,整個步驟都在內(nèi)存中完成,使得安全人員事后很難進(jìn)行取證分析。

2 設(shè)計目標(biāo)

在虛擬機(jī)管理器層次構(gòu)建一個平臺,對運(yùn)行于其上的客戶機(jī)行為進(jìn)行數(shù)據(jù)捕獲和自動分析,實現(xiàn)透明性、有效性和安全性。

(1)透明性??蛻魴C(jī)不能檢測到虛擬機(jī)管理器監(jiān)測系統(tǒng)的存在,即該監(jiān)測系統(tǒng)對客戶機(jī)上的攻擊者和惡意代碼來說是不可見的。

(2)有效性。平臺能對客戶機(jī)的行為進(jìn)行深度觀測,應(yīng)該盡可能捕獲詳盡的不同緯度的運(yùn)行信息,同時能夠防止被惡意代碼篡改,從而獲取客戶機(jī)精確的狀態(tài)信息。

(3)安全性。客戶機(jī)與虛擬機(jī)管理器監(jiān)測系統(tǒng)完全隔離,防止惡意代碼對分析環(huán)境進(jìn)行篡改。

3 監(jiān)測系統(tǒng)設(shè)計

虛擬機(jī)管理器層次客戶機(jī)行為監(jiān)測系統(tǒng)體系結(jié)構(gòu)如圖2所示。它運(yùn)行在控制域(dom0),通過LibVMI庫直接訪問虛擬機(jī)的內(nèi)存。該系統(tǒng)主要具備5個功能,對客戶機(jī)5個維度的行為進(jìn)行監(jiān)測:①對內(nèi)核函數(shù)調(diào)用進(jìn)行跟蹤。傳統(tǒng)的系統(tǒng)調(diào)用監(jiān)測只能監(jiān)測到用戶級的系統(tǒng)調(diào)用,不能監(jiān)測到內(nèi)核級的函數(shù)調(diào)用,因此不能監(jiān)測內(nèi)核級惡意代碼的行為;②內(nèi)核數(shù)據(jù)結(jié)構(gòu)篡改跟蹤,監(jiān)測惡意代碼對重要數(shù)據(jù)結(jié)構(gòu)篡改行為;③在內(nèi)核級對文件訪問進(jìn)行跟蹤,避免用戶級文件訪問跟蹤被惡意代碼篡改問題;④對在內(nèi)存中刪除的文件進(jìn)行恢復(fù),應(yīng)對惡意代碼在內(nèi)存中釋放和刪除中間文件;⑤在虛擬機(jī)管理器層次對網(wǎng)絡(luò)流實施跟蹤,防止攻擊者在客戶機(jī)層次對網(wǎng)絡(luò)行為進(jìn)行隱藏。

圖2 虛擬機(jī)管理器層次客戶機(jī)行為監(jiān)測系統(tǒng)體系結(jié)構(gòu)

為了能訪問客戶機(jī)中發(fā)生的事件,該系統(tǒng)通過斷點注入(breakpoint injection)技術(shù)將虛擬機(jī)的控制(VMEXIT)傳遞給虛擬機(jī)管理器。斷點注入是將一條“#BP”指令(INT3,指令碼為0xCC)寫入到虛擬機(jī)內(nèi)存中感興趣的代碼處。當(dāng)執(zhí)行到斷點時,配置CPU產(chǎn)生一個VMEXIT信號,并由Xen虛擬機(jī)管理器將該事件轉(zhuǎn)發(fā)到控制域(dom0),因此該系統(tǒng)能夠捕獲虛擬機(jī)中執(zhí)行的任何指令。目前“#BP”指令注入技術(shù)主要用在隱蔽調(diào)試技術(shù)中,被調(diào)試代碼感覺不到它的存在。在我們的監(jiān)測系統(tǒng)上,我們將其用來自動跟蹤整個操作系統(tǒng)的執(zhí)行,并發(fā)現(xiàn)它能很隱秘的進(jìn)行虛擬機(jī)監(jiān)測。通過這種手段,系統(tǒng)能洞察操作系統(tǒng)內(nèi)核級和用戶級的指令執(zhí)行情況,實現(xiàn)透明性、有效性和隱蔽性。

4 實 現(xiàn)

由于黑客和惡意軟件通常使用各種技術(shù)手段隱藏自己在客戶操作系統(tǒng)上的行為,通過斷點注入技術(shù)能夠真實捕獲到客戶操作系統(tǒng)關(guān)鍵行為,從多維度反映客戶操作系統(tǒng)正在發(fā)生什么,實現(xiàn)監(jiān)測。在這節(jié)中,我們將討論在32位和64位Windows7 SP1操作系統(tǒng)上實現(xiàn)的數(shù)據(jù)收集和監(jiān)測技術(shù)。雖然目前原型系統(tǒng)主要基于Windows操作系統(tǒng)實現(xiàn),但可以很方便地應(yīng)用到Linux以及其它類型操作系統(tǒng)。

4.1 內(nèi)核函數(shù)調(diào)用跟蹤

已有的客戶機(jī)監(jiān)測系統(tǒng)是通過監(jiān)測系統(tǒng)調(diào)用來跟蹤進(jìn)程的行為。但是,僅跟蹤系統(tǒng)調(diào)用只能監(jiān)測到用戶級和系統(tǒng)級的交互,而監(jiān)測不到內(nèi)核級惡意代碼的執(zhí)行情況。為解決這個問題,我們的系統(tǒng)使用#BP斷點注入的方法直接陷入內(nèi)核內(nèi)部函數(shù)。通過這種方法惡意驅(qū)動程序的行為也能被捕獲到,而僅監(jiān)測系統(tǒng)調(diào)用的方法不具備此項功能。

內(nèi)核函數(shù)的定位是通過從內(nèi)核調(diào)試數(shù)據(jù)中提取相關(guān)信息進(jìn)行確定。使用調(diào)試信息是在取證分析中常用的一種手段,通過這種方法可以很方便的獲取操作系統(tǒng)狀態(tài)信息。在該系統(tǒng)中,我們使用Rekall取證分析工具處理Windows的調(diào)試信息,并建立了一個內(nèi)核內(nèi)部函數(shù)圖譜。

為了確定內(nèi)核在內(nèi)存中的位置,我們發(fā)現(xiàn)Windows7使用FS和GS寄存器來存儲內(nèi)核虛擬地址。內(nèi)核虛擬地址指向_KPCR數(shù)據(jù)結(jié)構(gòu)。_KPCR數(shù)據(jù)結(jié)構(gòu)通常被加載到內(nèi)核中一個固定相對地址(RVA)。_KPCR數(shù)據(jù)結(jié)構(gòu)由KiInitialPCR符號標(biāo)識。由于我們能夠在內(nèi)核中獲取KiInitialPCR的位置,然后減去該RVA值,就能夠得到內(nèi)核基地址。一旦找到內(nèi)核基地址,該平臺可以通過#BP斷點注入技術(shù)捕獲到所有的內(nèi)核函數(shù)執(zhí)行,當(dāng)惡意代碼被運(yùn)行后,通過日志記錄,能夠?qū)⒉僮飨到y(tǒng)整個執(zhí)行過程記錄下來。

4.2 內(nèi)核數(shù)據(jù)結(jié)構(gòu)篡改跟蹤

惡意代碼經(jīng)常修改內(nèi)核重要數(shù)據(jù)結(jié)構(gòu)來隱藏行為,稱為DKOM攻擊。DKOM攻擊通常將一些重要的結(jié)構(gòu)體實例從內(nèi)核鏈表(如運(yùn)行進(jìn)程列表)中解除來避免用戶通過枚舉方法識別惡意的數(shù)據(jù)結(jié)構(gòu)。通過取證分析工具,研究人員發(fā)現(xiàn)Windows內(nèi)核堆中創(chuàng)建的對象通常被賦予一個頭部_POOL_HEADER。該頭部用4個字母對創(chuàng)建的對象進(jìn)行描述。在物理內(nèi)存中對這些字母進(jìn)行窮舉搜索能檢測到從內(nèi)核鏈表中被惡意代碼解除的對象。

但是,惡意軟件能夠?qū)︻^部中的字母進(jìn)行改寫,防止掃描工具發(fā)現(xiàn)[1]。也可通過為對象向操作系統(tǒng)請求大于4096字節(jié)的空間,實現(xiàn)隱藏。這是因為在應(yīng)對大內(nèi)存空間請求時,操作系統(tǒng)將對象放入大頁池,而在大頁池中不需要將頭部附加到被分配的對象上。通過這個方法能防止在基礎(chǔ)池中對頭部進(jìn)行掃描發(fā)現(xiàn)。

針對這些問題,我們提出一個方法來應(yīng)對。DKOM攻擊之所以難被檢測,是因為隱藏對象在內(nèi)核堆中的位置不可知。如果我們能精確定位隱藏對象的位置,就很容易檢測到DKOM攻擊[4]。攻擊者雖然能隱藏惡意對象,但是這些對象在早期被分配內(nèi)存的事實無法被掩蓋。Windows內(nèi)核中負(fù)責(zé)為數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存的方法有AllocatePoolWithTag以及OnCreateObject,我們的系統(tǒng)對這些函數(shù)使用#BP斷點注入,從而記錄內(nèi)核堆分配。在函數(shù)執(zhí)行到入口時,該系統(tǒng)從調(diào)用線程的棧中提取返回地址,當(dāng)內(nèi)存分配函數(shù)返回時捕獲到該事件并進(jìn)行陷入。觀察堆分配允許我們確定所有內(nèi)核分配對象的位置,而惡意代碼不能篡改對象分配的事實,因此通過該系統(tǒng)能實現(xiàn)對內(nèi)核數(shù)據(jù)結(jié)構(gòu)的全面掌握。

4.3 根據(jù)內(nèi)存事件監(jiān)測文件系統(tǒng)訪問

已有的虛擬機(jī)監(jiān)測機(jī)制主要通過修改磁盤仿真器并截獲事件來實現(xiàn)對文件系統(tǒng)訪問的監(jiān)測。但在磁盤仿真器這個層級重構(gòu)文件系統(tǒng)訪問事件信息(文件路徑和權(quán)限)需要預(yù)先知曉文件系統(tǒng)運(yùn)行原理相關(guān)信息。我們的平臺跟蹤內(nèi)核數(shù)據(jù)結(jié)構(gòu),能夠為描述系統(tǒng)執(zhí)行情況提供有用信息,例如運(yùn)行的進(jìn)程、內(nèi)核模塊,線程以及訪問文件系統(tǒng)時系統(tǒng)分配的對象。

我們捕獲了某個進(jìn)程對文件系統(tǒng)進(jìn)行訪問的事件,如圖3所示。當(dāng)操作系統(tǒng)或者用戶進(jìn)程訪問文件系統(tǒng)時,在內(nèi)核堆中分配了一個_FILE_OBJECT對象,該對象被打上“Filxe5”的標(biāo)簽。當(dāng)捕獲到分配地址時,我們在擴(kuò)展頁表(EPT)中將對象所在的頁標(biāo)記為不可寫。由于在內(nèi)存中_FILE_OBJECT對象之前是一系列可選的對象頭部(以黑色背景標(biāo)出),我們可以從分配的內(nèi)存末尾減去_FILE_OBJECT對象的大小得到訪問權(quán)限標(biāo)志(access flags)和文件名(FileName)的地址。這允許我們在不需要對底層文件系統(tǒng)做深入了解的情況下確定文件的路徑以及訪問權(quán)限(讀、寫、刪除等)。

圖3 通過監(jiān)測_FILE_OBJECT對象內(nèi)存分配實現(xiàn)文件訪問監(jiān)測

4.4 從內(nèi)存中恢復(fù)已刪除文件

惡意軟件的一個特征是在感染進(jìn)程中快速創(chuàng)建和刪除臨時文件。這些臨時文件可能包括解壓后的惡意軟件二進(jìn)制文件或者其它可供取證的文件,安裝后惡意軟件后會刪除這些臨時文件,避免被取證分析。由于文件并未寫入磁盤。在控制域掛載虛擬機(jī)磁盤的方法不能訪問到這些文件,唯一可行的方法是從內(nèi)存中提取中間文件。

在系統(tǒng)中,恢復(fù)已刪除文件主要通過截獲內(nèi)核刪除文件的函數(shù)來實現(xiàn),包括NtSetInformationFile以及ZwSetInformationFile函數(shù)。一旦函數(shù)被截獲,就可以通過檢查函數(shù)參數(shù)來獲取文件和文件句柄。文件句柄不直接指向文件對象,它只是所屬進(jìn)程句柄表中的某條記錄的編號。通過處理進(jìn)程的句柄表,我們能夠定位到相應(yīng)的_FILE_OBJECT對象,并從內(nèi)存中將其恢復(fù)。

4.5 跟蹤網(wǎng)絡(luò)流

客戶機(jī)依托虛擬機(jī)管理器進(jìn)行輸入輸出操作,這是因為虛擬機(jī)管理器給客戶機(jī)提供虛擬輸入輸出設(shè)備。而真實的物理設(shè)備由虛擬機(jī)管理器和多個客戶機(jī)共享,故虛擬機(jī)管理器可以利用這一點實現(xiàn)網(wǎng)絡(luò)流量和擊鍵的記錄。

對輸入輸出進(jìn)行監(jiān)測其實就是在虛擬機(jī)管理器上竊聽虛擬輸入輸出設(shè)備,并截獲經(jīng)過的數(shù)據(jù)。對網(wǎng)絡(luò)流實施數(shù)據(jù)捕獲,就是對虛擬機(jī)管理器的虛擬網(wǎng)卡實施竊聽,并將監(jiān)聽到網(wǎng)絡(luò)流寫入文件。同時,監(jiān)聽CPU的CR3寄存器。這樣,能夠為每個獨立的進(jìn)程建立網(wǎng)絡(luò)流量概覽。將網(wǎng)絡(luò)流與特定進(jìn)程關(guān)聯(lián)能實現(xiàn)細(xì)粒度的網(wǎng)絡(luò)流監(jiān)測。

5 實 驗

5.1 客戶機(jī)惡意代碼執(zhí)行監(jiān)測

我們從ShadowServer[7]獲取了1000個最近的惡意代碼,在客戶機(jī)上將每個惡意代碼運(yùn)行60 s,對操作系統(tǒng)內(nèi)核函數(shù)進(jìn)行斷點注入。大約有162 123斷點被擊中,其中有68 865個是堆分配請求。圖4列出了被調(diào)用次數(shù)最多的10個內(nèi)核函數(shù),其中堆分配函數(shù)占據(jù)了前三。因此這些函數(shù)可以被用來作為惡意軟件識別的特征。特別的ExAllocatePoolWithTag被調(diào)用次數(shù)最多,如果能對該函數(shù)的斷點注入進(jìn)行優(yōu)化,能顯著提升我們系統(tǒng)的性能。

圖4 調(diào)用的內(nèi)核函數(shù)

該系統(tǒng)總共從內(nèi)存中恢復(fù)了9875個被刪除文件。在圖5 中我們將這些文件進(jìn)行分類,發(fā)現(xiàn)ASCII文件和PE32執(zhí)行文件大約占到50%。我們將1543個PE文件提交給VirusTotal[8]。其中643個是未被發(fā)現(xiàn)的新文件,這些新文件都用反病毒軟件進(jìn)行查殺,其中20.5%被發(fā)現(xiàn)是惡意的軟件。

圖5 從內(nèi)存中恢復(fù)的文件數(shù)

5.2 監(jiān)測系統(tǒng)性能評估

根據(jù)Windows7 SP1調(diào)試信息,我們對x86版本的10 853 個函數(shù)進(jìn)行斷點注入,對x86_64版本的11 011個函數(shù)進(jìn)行斷點注入。此外,還對擴(kuò)展頁表EPT設(shè)置了只執(zhí)行標(biāo)志,將系統(tǒng)運(yùn)行了60 s,不運(yùn)行其它應(yīng)用軟件,觀察有多少個VMEXITs事件被觸發(fā)。根據(jù)實驗發(fā)現(xiàn),在x86系統(tǒng)上有727個頁面發(fā)生了陷入,而在x86_64系統(tǒng)上有915個頁面發(fā)生了陷入。如圖6所示,對于x86和x86_64系統(tǒng)來說斷點是觸發(fā)VMEXITs的主要原因,而讀EPT觸發(fā)的VMEXITs僅僅是少數(shù)。

圖6 VMEXITS事件的原因

為了測量斷點觸發(fā)VMEXITs帶來的時間開銷,我們根據(jù)SPIDER[6]使用的方法。在客戶機(jī)上運(yùn)行一個程序,這個程序循環(huán)調(diào)用一個函數(shù),該函數(shù)每執(zhí)行一次增加一個計數(shù)器的值。在啟動循環(huán)之前和循環(huán)結(jié)束之后,程序讀取TSC寄存器獲取CPU周期值,得到函數(shù)執(zhí)行時間,對該函數(shù)進(jìn)行陷入和非陷入分別進(jìn)行測量函數(shù)執(zhí)行時間,將這兩個值相減得到差值便是開銷,通過測量發(fā)現(xiàn)VMEXITs開銷大概為10 523個CPU周期。

6 結(jié)束語

位于客戶機(jī)層次的監(jiān)測系統(tǒng)容易被攻擊者識別,本文提出基于虛擬機(jī)管理器層次的客戶機(jī)監(jiān)測系統(tǒng),并對系統(tǒng)進(jìn)行設(shè)計、實現(xiàn)和實驗驗證。該監(jiān)測系統(tǒng)能跟蹤內(nèi)核函數(shù)調(diào)用、內(nèi)核數(shù)據(jù)結(jié)構(gòu)篡改,根據(jù)內(nèi)存事件捕獲文件系統(tǒng)訪問、從內(nèi)存中恢復(fù)已刪除文件以及跟蹤網(wǎng)絡(luò)流,從而從多維度分析、刻畫系統(tǒng)行為。該監(jiān)測系統(tǒng)對客戶機(jī)來說是透明的,客戶機(jī)與監(jiān)測環(huán)境完全隔離,能保證監(jiān)測數(shù)據(jù)的完整性和安全性。

參考文獻(xiàn):

[1]WANG Li,WAN Yuanchun,QIU Weidong.Android malware dynamic analysis based on honeypots[J].Application of Micro-Computer,2016,32(11):50-53(in Chinese).[王力,萬園春,邱衛(wèi)東.基于蜜罐的Android惡意代碼動態(tài)分析[J].微型電腦應(yīng)用,2016,32(11):50-53.]

[2]CHEN Cuiyun,LIANG Huaqing.Enhance snort detection capability based on honeypots[J].Electronic Design Enginee-ring,2016,24(4):48-51(in Chinese).[陳翠云,梁華慶.基于蜜罐提升snort檢測能力的設(shè)計[J].電子設(shè)計工程,2016,24(4):48-51.]

[3]GUO Junquan,ZHUGE Jianwei,SUN Donghong,et al.Spampot:A spam capture system based on distributed honeypots[J].Computer Research and Development,2014,51(5):1071-1080(in Chinese).[郭軍權(quán),諸葛建偉,孫東紅,等.Spampot:基于分布式蜜罐的垃圾郵件捕獲系統(tǒng)[J].計算機(jī)研究與發(fā)展,2014,51(5):1071-1080.]

[4]WANG Jie,YANG Liu.Design and implementation of a intrusion detection system based on honeypots[J].Computer Application Research,2012,29(2):12-15(in Chinese).[汪潔,楊柳.基于蜜罐的入侵檢測系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用研究,2012,29(2):12-15.]

[5]Bremer J.Blackhat 2013 workshop:Cuckoo sandbox-open source automated malware analysis[EB/OL].[2013-05-17].http://cuckoosandbox.org/2013-07-27-blackhat-las-vegas-2013.html.

[6]Dinaburg A,Royal P,Sharif M,et al.Ether:Malware analysis via hardware virtualization extensions[C]//Proceedings of the 15th ACM Conference on Computer and Communication Security.New York:ACM,2013.

[7]WANG Chaojie,HUANG Yuda,ZHAO Hongzhuan.A smart traffic defense methodbased on two layer dynamic honeypots[J].Computer Application Research,2015,32(7):23-26(in Chinese).[王超杰,黃宇達(dá),趙紅專.基于雙層動態(tài)蜜罐技術(shù)的智能交通主動防御方案[J].計算機(jī)應(yīng)用研究,2015,32(7):23-26.]

[8]Willems C,Hund R,Holz T.Cxpinspector:Hypervisor-based,hardware-assisted system monitoring[C]//Proceeding of Technical Report.England:IEEE,2013.

[9]Deng Z,Zhang X,Xu D.Spider:Stealthy binary program instrumentation and debugging via hardware virtualization[C]//Proceedings of the 29th Annual Computer Security Applications Conference.Singapore:ACM,2013.

[10]Dolan-Gavitt B,Srivastava A,Traynor P,et al.Robust signatures for kernel data structures[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security.Toyama:ACM,2015.

猜你喜歡
客戶機(jī)斷點管理器
Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
應(yīng)急狀態(tài)啟動磁盤管理器
一類無限可能問題的解法
Windows文件緩沖處理技術(shù)概述
主導(dǎo)電回路發(fā)生斷點故障判斷方法探討
高集成度2.5A備份電源管理器簡化鋰離子電池備份系統(tǒng)
快速導(dǎo)出QQ群消息
電腦迷(2014年2期)2014-04-29 19:21:13
TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級手段
基于屬性重要性的貪心算法的改進(jìn)算法
瘦客戶機(jī):安全與便捷的選擇
漾濞| 珠海市| 都安| 定边县| 榕江县| 饶阳县| 东兴市| 承德县| 定陶县| 桂林市| 大石桥市| 武夷山市| 项城市| 永州市| 临桂县| 邵阳市| 台前县| 涡阳县| 灌云县| 丹凤县| 阿拉尔市| 手机| 紫金县| 泰宁县| 南开区| 甘孜县| 长岛县| 东丽区| 明水县| 奉节县| 容城县| 七台河市| 天等县| 房产| 社旗县| 日照市| 蒙阴县| 井冈山市| 饶平县| 确山县| 依兰县|