999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于虛擬機管理器層次的客戶機行為監測系統

2018-06-19 12:57:12楊春雷周紅建
計算機工程與設計 2018年6期
關鍵詞:系統

銀 偉,楊春雷,周紅建

(95899部隊,北京 100085)

0 引 言

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

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

1 威脅模型

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

1.1 進程隱藏

系統管理員通常通過檢測未知進程發現操作系統上的可疑行為。進程隱藏是防止使用工具對未知進程進行識別的一種方法,防止合法用戶發現系統上的可疑行為。

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

圖1 系統調用機制重要數據結構

1.2 內核模塊及系統驅動隱藏

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

1.3 網絡行為隱藏

攻擊者可能會在系統上安裝工具設置后門,在某個端口進行監聽,再從外部連接到該端口對操作系統進行遠程控制。為避免此類網絡可疑行為被檢測到,攻擊者會將網絡行為進行隱藏。當用戶在操作系統上運行netstat命令查看網絡連接時,攻擊者通過修改和截獲相關系統調用,隱藏系統上開放的連接和服務。

1.4 在內存中釋放和刪除臨時文件

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

2 設計目標

在虛擬機管理器層次構建一個平臺,對運行于其上的客戶機行為進行數據捕獲和自動分析,實現透明性、有效性和安全性。

(1)透明性。客戶機不能檢測到虛擬機管理器監測系統的存在,即該監測系統對客戶機上的攻擊者和惡意代碼來說是不可見的。

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

(3)安全性。客戶機與虛擬機管理器監測系統完全隔離,防止惡意代碼對分析環境進行篡改。

3 監測系統設計

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

圖2 虛擬機管理器層次客戶機行為監測系統體系結構

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

4 實 現

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

4.1 內核函數調用跟蹤

已有的客戶機監測系統是通過監測系統調用來跟蹤進程的行為。但是,僅跟蹤系統調用只能監測到用戶級和系統級的交互,而監測不到內核級惡意代碼的執行情況。為解決這個問題,我們的系統使用#BP斷點注入的方法直接陷入內核內部函數。通過這種方法惡意驅動程序的行為也能被捕獲到,而僅監測系統調用的方法不具備此項功能。

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

為了確定內核在內存中的位置,我們發現Windows7使用FS和GS寄存器來存儲內核虛擬地址。內核虛擬地址指向_KPCR數據結構。_KPCR數據結構通常被加載到內核中一個固定相對地址(RVA)。_KPCR數據結構由KiInitialPCR符號標識。由于我們能夠在內核中獲取KiInitialPCR的位置,然后減去該RVA值,就能夠得到內核基地址。一旦找到內核基地址,該平臺可以通過#BP斷點注入技術捕獲到所有的內核函數執行,當惡意代碼被運行后,通過日志記錄,能夠將操作系統整個執行過程記錄下來。

4.2 內核數據結構篡改跟蹤

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

但是,惡意軟件能夠對頭部中的字母進行改寫,防止掃描工具發現[1]。也可通過為對象向操作系統請求大于4096字節的空間,實現隱藏。這是因為在應對大內存空間請求時,操作系統將對象放入大頁池,而在大頁池中不需要將頭部附加到被分配的對象上。通過這個方法能防止在基礎池中對頭部進行掃描發現。

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

4.3 根據內存事件監測文件系統訪問

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

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

圖3 通過監測_FILE_OBJECT對象內存分配實現文件訪問監測

4.4 從內存中恢復已刪除文件

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

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

4.5 跟蹤網絡流

客戶機依托虛擬機管理器進行輸入輸出操作,這是因為虛擬機管理器給客戶機提供虛擬輸入輸出設備。而真實的物理設備由虛擬機管理器和多個客戶機共享,故虛擬機管理器可以利用這一點實現網絡流量和擊鍵的記錄。

對輸入輸出進行監測其實就是在虛擬機管理器上竊聽虛擬輸入輸出設備,并截獲經過的數據。對網絡流實施數據捕獲,就是對虛擬機管理器的虛擬網卡實施竊聽,并將監聽到網絡流寫入文件。同時,監聽CPU的CR3寄存器。這樣,能夠為每個獨立的進程建立網絡流量概覽。將網絡流與特定進程關聯能實現細粒度的網絡流監測。

5 實 驗

5.1 客戶機惡意代碼執行監測

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

圖4 調用的內核函數

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

圖5 從內存中恢復的文件數

5.2 監測系統性能評估

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

圖6 VMEXITS事件的原因

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

6 結束語

位于客戶機層次的監測系統容易被攻擊者識別,本文提出基于虛擬機管理器層次的客戶機監測系統,并對系統進行設計、實現和實驗驗證。該監測系統能跟蹤內核函數調用、內核數據結構篡改,根據內存事件捕獲文件系統訪問、從內存中恢復已刪除文件以及跟蹤網絡流,從而從多維度分析、刻畫系統行為。該監測系統對客戶機來說是透明的,客戶機與監測環境完全隔離,能保證監測數據的完整性和安全性。

參考文獻:

[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).[王力,萬園春,邱衛東.基于蜜罐的Android惡意代碼動態分析[J].微型電腦應用,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檢測能力的設計[J].電子設計工程,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).[郭軍權,諸葛建偉,孫東紅,等.Spampot:基于分布式蜜罐的垃圾郵件捕獲系統[J].計算機研究與發展,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).[汪潔,楊柳.基于蜜罐的入侵檢測系統的設計與實現[J].計算機應用研究,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).[王超杰,黃宇達,趙紅專.基于雙層動態蜜罐技術的智能交通主動防御方案[J].計算機應用研究,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.

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 国产精品露脸视频| 天天色综网| 欧美国产另类| 欧美啪啪精品| 亚洲av无码牛牛影视在线二区| 国产主播一区二区三区| 一级毛片免费不卡在线视频| 久久人妻系列无码一区| 日韩欧美高清视频| 亚洲一区免费看| 自拍亚洲欧美精品| 国产成人精品一区二区三在线观看| 免费va国产在线观看| 色综合久久88| 六月婷婷综合| 国产福利拍拍拍| 久久久久无码精品| 成人免费一区二区三区| 中国丰满人妻无码束缚啪啪| 国产成人综合欧美精品久久| 亚洲一区二区在线无码| 日韩精品毛片人妻AV不卡| 中文字幕 日韩 欧美| 中文字幕亚洲另类天堂| 福利在线一区| 狠狠操夜夜爽| 久久狠狠色噜噜狠狠狠狠97视色| 国产精品成人一区二区| 亚洲VA中文字幕| 精品无码一区二区在线观看| 国产女同自拍视频| 亚洲国产成人久久77| 亚洲AⅤ综合在线欧美一区 | 99re视频在线| 国产成人精品免费av| 国产欧美综合在线观看第七页| 久久人人爽人人爽人人片aV东京热| 国产杨幂丝袜av在线播放| 超碰91免费人妻| 女人18一级毛片免费观看| 国产91小视频在线观看| 免费啪啪网址| 欧美不卡视频在线| 国产凹凸视频在线观看| av一区二区三区高清久久| 亚洲午夜综合网| 亚洲欧洲日韩国产综合在线二区| 视频在线观看一区二区| 青青草国产在线视频| 欧美精品另类| 熟女日韩精品2区| 国产成人8x视频一区二区| 国产不卡在线看| 人人爱天天做夜夜爽| 国产视频你懂得| 91人妻在线视频| 91青草视频| 免费一级毛片在线播放傲雪网| 亚洲精品国产首次亮相| 青青青伊人色综合久久| 91极品美女高潮叫床在线观看| 国产精品亚洲日韩AⅤ在线观看| 福利片91| 亚洲国产看片基地久久1024| av在线无码浏览| 91小视频在线播放| 国产综合色在线视频播放线视| 亚洲AⅤ综合在线欧美一区| 亚洲精品欧美日本中文字幕| 无码免费的亚洲视频| 2021国产乱人伦在线播放| 中国一级毛片免费观看| 国产精品无码AV片在线观看播放| 国产成人三级| 国产免费高清无需播放器| 欧美在线黄| 国产亚洲高清视频| 日本人妻丰满熟妇区| 亚洲人成网线在线播放va| 久久午夜影院| 国产一级妓女av网站| 精品偷拍一区二区|