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

?

面向云平臺(tái)的多樣化惡意軟件檢測(cè)架構(gòu)

2016-07-19 19:17高超鄭小妹賈曉啟
計(jì)算機(jī)應(yīng)用 2016年7期
關(guān)鍵詞:客戶機(jī)虛擬化內(nèi)存

高超 鄭小妹 賈曉啟

摘要:近年來(lái),惡意軟件對(duì)物理機(jī)和云平臺(tái)上虛擬機(jī)均構(gòu)成巨大的安全威脅。在基礎(chǔ)設(shè)施即服務(wù)(IaaS)云平臺(tái)上部署傳統(tǒng)的殺毒軟件、防火墻等惡意軟件檢測(cè)工具存在以下問(wèn)題:1)檢測(cè)工具可能被破壞或者關(guān)閉;2)單一的檢測(cè)工具效果不理想;3)檢測(cè)工具可能被加殼等方式繞過(guò);4)需要給每臺(tái)客戶機(jī)安裝額外軟件,難以部署實(shí)施。為此提出一種面向云平臺(tái)的多樣化惡意軟件檢測(cè)架構(gòu)。該架構(gòu)利用虛擬化技術(shù)截獲客戶機(jī)的特定行為,抓取客戶機(jī)內(nèi)軟件釋放的代碼,通過(guò)多種殺毒軟件多樣化的掃描確定軟件的惡意性。采用的動(dòng)態(tài)內(nèi)存提取的方式對(duì)客戶機(jī)完全透明。最后在Xen上部署該架構(gòu)并進(jìn)行惡意軟件檢測(cè)測(cè)試,該架構(gòu)對(duì)加殼惡意軟件的檢測(cè)率為85.7%,比殺毒軟件靜態(tài)掃描的檢測(cè)率高14.3個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明,在云平臺(tái)上采用多樣化惡意軟件檢測(cè)框架能更好地保障客戶機(jī)的安全。

關(guān)鍵詞:

云平臺(tái);惡意軟件檢測(cè);虛擬化;多樣化;動(dòng)態(tài)掃描

中圖分類號(hào): TP309.5 文獻(xiàn)標(biāo)志碼:A

0引言

惡意軟件[1]是指帶有攻擊意圖所編寫的一段程序,用于破壞計(jì)算機(jī)操作、收集敏感信息或訪問(wèn)專用計(jì)算機(jī)。現(xiàn)有的惡意軟件檢測(cè)主要方法有2種[2]:一種方法是基于特征匹配。通過(guò)提取軟件二進(jìn)制文件特征或者動(dòng)態(tài)的行為特征與惡意代碼庫(kù)的特征進(jìn)行比對(duì)來(lái)判斷是否是惡意軟件。另一種方法是基于異常檢測(cè)。通過(guò)發(fā)現(xiàn)軟件行為中與正常行為不符的方式來(lái)判定是惡意軟件。現(xiàn)在,惡意軟件的檢測(cè)主要由操作系統(tǒng)上的殺毒軟件完成。在基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service, IaaS)云平臺(tái)客戶機(jī)中部署傳統(tǒng)殺毒軟件存在以下問(wèn)題:1)殺毒軟件存在被關(guān)閉和破壞風(fēng)險(xiǎn)。殺毒軟件處于客戶機(jī)內(nèi)部,惡意軟件通過(guò)技術(shù)手段檢測(cè)殺毒軟件的存在后進(jìn)行關(guān)閉和破壞操作。2)殺毒軟件的靜態(tài)掃描方式容易被加殼等手段繞過(guò)。3)單一殺毒軟件的檢測(cè)效果不理想。市面上主流殺毒軟件的檢測(cè)效果表現(xiàn)出較大差異。同一樣本在一部分殺毒軟件中報(bào)告安全,在另一部分中報(bào)告存在安全威脅。多種殺毒軟件同時(shí)進(jìn)行惡意軟件檢測(cè)表現(xiàn)出更好的效果,但是在同一臺(tái)客戶機(jī)中安裝多種殺毒軟件,除了普遍存在的兼容性問(wèn)題,還會(huì)大量消耗客戶機(jī)資源,嚴(yán)重影響性能。4)IaaS云平臺(tái)的服務(wù)提供商需要在每個(gè)客戶機(jī)中預(yù)裝殺毒軟件,這種方式很難被接受并且不利于快速擴(kuò)展。鑒于上述原因,在云平臺(tái)上客戶機(jī)外部統(tǒng)一部署惡意軟件的檢測(cè)模塊,提供客戶機(jī)多樣化的動(dòng)態(tài)內(nèi)存掃描服務(wù)有重大意義,既很大程度上降低被關(guān)閉和破壞的風(fēng)險(xiǎn),增加了繞過(guò)的難度,還利用云平臺(tái)強(qiáng)大的計(jì)算能力、技術(shù)基礎(chǔ),又能減少在每個(gè)客戶機(jī)中部署殺毒軟件的資源消耗。

作為云平臺(tái)的基礎(chǔ)技術(shù),虛擬化技術(shù)[3]是通過(guò)在物理層和操作系統(tǒng)層之間加入中間層,即Hypervisor層。Hypervisor通過(guò)內(nèi)存管理、外設(shè)管理、中央處理器(Central Processing Unit, CPU)調(diào)度等模塊的重新設(shè)計(jì)完成內(nèi)存虛擬化、外設(shè)虛擬化和CPU虛擬化,在同一套硬件資源上虛擬出多套虛擬硬件資源。多個(gè)操作系統(tǒng)可以互不影響地在同一臺(tái)物理機(jī)上同時(shí)運(yùn)行,復(fù)用物理資源。由于Hypervisor可以直接控制CPU、內(nèi)存等硬件,在云平臺(tái)上通過(guò)Hypervisor實(shí)現(xiàn)系統(tǒng)監(jiān)控、惡意軟件的檢測(cè)在學(xué)術(shù)界逐漸的發(fā)展。

針對(duì)惡意軟件檢測(cè)在云平臺(tái)上面臨的諸多問(wèn)題,本文提出了一種面向云平臺(tái)的多樣化惡意軟件檢測(cè)架構(gòu)。該架構(gòu)采用修改影子頁(yè)表實(shí)現(xiàn)這一新方法,在對(duì)客戶機(jī)完全透明的情形下,利用虛擬化技術(shù)截獲客戶機(jī)的特定行為,抓取客戶機(jī)內(nèi)軟件釋放的代碼,最后綜合多種惡意軟件檢測(cè)工具的結(jié)果做出軟件是否惡意的判斷,實(shí)驗(yàn)表明該架構(gòu)對(duì)加殼惡意軟件的檢測(cè)效果比殺毒軟件靜態(tài)掃描的檢測(cè)效果更好。

1相關(guān)研究

研究人員對(duì)利用虛擬化技術(shù)進(jìn)行監(jiān)控和惡意軟件檢測(cè)進(jìn)行了大量的研究,取得了一些這方面的成果?;谔摂M化技術(shù)的監(jiān)控技術(shù)按照監(jiān)控軟件的部署位置分為外部監(jiān)控和內(nèi)部監(jiān)控。內(nèi)部監(jiān)控軟件,與傳統(tǒng)的監(jiān)控軟件有些相似,與被監(jiān)控虛擬機(jī)位于同一個(gè)操作系統(tǒng)內(nèi)。外部監(jiān)控軟件位于被監(jiān)控系統(tǒng)外,借助Hypervisor獲得被監(jiān)控虛擬機(jī)的二進(jìn)制信息,通過(guò)技術(shù)手段恢復(fù)成操作系統(tǒng)的系統(tǒng)調(diào)用或者進(jìn)程創(chuàng)建等消息。這方面的監(jiān)控軟件很多,比如Panorama是Yin等[4]設(shè)計(jì)的基于QEMU(Quick Emulator)[5]的系統(tǒng)級(jí)別監(jiān)視系統(tǒng),用于分析惡意軟件的執(zhí)行流程和感染路徑。VAMPiRE[6]、Cobra[7]是已經(jīng)提出細(xì)粒度的監(jiān)控軟件框架:其中VAMPiRE是通過(guò)操作內(nèi)存的讀寫運(yùn)行權(quán)限實(shí)現(xiàn)在系統(tǒng)的任何地方下斷點(diǎn);Cobra采用將待監(jiān)控代碼分塊運(yùn)行于低權(quán)限的環(huán)境中,通過(guò)修改內(nèi)存屬性等,完成對(duì)待監(jiān)控代碼的行為分析。外部監(jiān)控系統(tǒng)調(diào)用在VMwatcher(Virtual Machine watcher)[8]和TTAnalyze[9]中實(shí)現(xiàn)。VMwatcher支持多種虛擬化工具比如Xen[10]、KVM(Kernel Virtual Machine)[11]、VMware,它根據(jù)磁盤、內(nèi)存信息等重構(gòu)客戶機(jī)語(yǔ)義,進(jìn)而分析是否存在惡意軟件。TTAnalyze在QEMU模擬的環(huán)境中執(zhí)行惡意程序,并記錄惡意程序的系統(tǒng)調(diào)用和Windows應(yīng)用程序編程接口(Application Programming Interface, API)。這些安全軟件利用虛擬化技術(shù)的隔離性質(zhì),通過(guò)直接訪問(wèn)被監(jiān)控虛擬機(jī)的內(nèi)存,重構(gòu)其內(nèi)核數(shù)據(jù)結(jié)構(gòu),確定虛擬機(jī)的狀態(tài)并采取相應(yīng)的措施。這些都屬于被動(dòng)監(jiān)控的范疇,被動(dòng)的監(jiān)控框架不適合于入侵防御系統(tǒng)(Intrusion Prevention System, IPS)等需要主動(dòng)進(jìn)行安全防御的軟件。Lares[12]、SIM(Secure InVM)[13]屬于主動(dòng)監(jiān)控框架,它們通過(guò)在內(nèi)核的適當(dāng)位置放置鉤子函數(shù)進(jìn)行監(jiān)控,Lares導(dǎo)致了大量的hypervisorguest切換開(kāi)銷,不適合于細(xì)粒度的監(jiān)控,SIM通過(guò)Intel硬件虛擬化一些特殊技術(shù),消除了hypervisorguest切換開(kāi)銷。HVSM(Hybrid Virtualization Security Monitor)[14]和RTKDSM(RealTime Kernel Data Structure Monitoring)[15]是最近提出的面向云平臺(tái)的虛擬機(jī)監(jiān)控框架。HVSM對(duì)虛擬機(jī)中所有進(jìn)程進(jìn)行hash校驗(yàn),通過(guò)比對(duì)hash校驗(yàn)值判斷進(jìn)程是否被惡意軟件感染。RTKDSM基于啟發(fā)式的內(nèi)存分析工具實(shí)現(xiàn)對(duì)虛擬機(jī)內(nèi)存的分析,完成了支付數(shù)據(jù)流跟蹤、應(yīng)用程序白名單、進(jìn)程完整性校驗(yàn)等一系列功能。

上述的各種框架,主要存在三方面的不足導(dǎo)致不能應(yīng)用于云平臺(tái)的惡意軟件檢測(cè):1)以TTAnalyze為代表的架構(gòu)是基于QEMU虛擬機(jī),不能直接應(yīng)用于當(dāng)前使用的KVM或Xen虛擬機(jī)的云平臺(tái);2)以SIM為代表的內(nèi)部監(jiān)控框架,需要在客戶機(jī)內(nèi)安裝特定的功能模塊甚至修改客戶機(jī)內(nèi)核,本文認(rèn)為這種框架很難快速地部署在云平臺(tái)上,不具有通用性;3)HVSM和RTKDSM主要功能是保障虛擬機(jī)中進(jìn)程和數(shù)據(jù)的完整性,不能用于檢測(cè)虛擬機(jī)中惡意軟件。本文針對(duì)惡意軟件加殼等反檢測(cè)技術(shù),提出一種面向云平臺(tái)的多樣化惡意軟件檢測(cè)架構(gòu),在保持對(duì)客戶機(jī)透明的情況下,檢測(cè)客戶機(jī)中惡意軟件,并基于Xen虛擬化平臺(tái)實(shí)現(xiàn)原型系統(tǒng)。

2架構(gòu)設(shè)計(jì)

2.1威脅模型

近年來(lái),惡意軟件的設(shè)計(jì)越來(lái)越復(fù)雜,隱藏水平愈加高級(jí)。IaaS云服務(wù)商提供客戶機(jī)惡意軟件掃描服務(wù)存在以下問(wèn)題:1)殺毒軟件和惡意軟件運(yùn)行環(huán)境缺少有效的隔離,存在被關(guān)閉和破壞的風(fēng)險(xiǎn)。2)單一殺毒軟件的檢測(cè)效果與多種殺毒軟件聯(lián)合查殺效果相比存在較大差距。3)加殼惡意軟件可能繞過(guò)殺毒軟件檢測(cè)。這種惡意軟件,利用特殊的算法對(duì)代碼段、數(shù)據(jù)段等進(jìn)行加密壓縮,并添加入解密頭。其載入內(nèi)存時(shí),解密頭動(dòng)態(tài)的解密出惡意代碼,并將控制權(quán)交給惡意軟件。4)在客戶機(jī)內(nèi)安裝模塊,不便于迅速擴(kuò)展也可能引入新的安全漏洞??蛻魴C(jī)內(nèi)安裝模塊可能不被云服務(wù)的消費(fèi)者接受,安裝的模塊可能成為出現(xiàn)信息泄露等安全事件后被懷疑的對(duì)象。針對(duì)惡意軟件帶來(lái)的安全威脅和云平臺(tái)部署需求,本文提出一種面向云平臺(tái)的多樣化惡意軟件檢測(cè)架構(gòu)。該架構(gòu)部署在操作系統(tǒng)外部。在對(duì)客戶機(jī)透明的情況下,動(dòng)態(tài)截獲客戶機(jī)中惡意軟件釋放惡意載荷過(guò)程,通過(guò)多種殺毒軟件的聯(lián)合查殺完成對(duì)云平臺(tái)上加殼惡意軟件檢測(cè)的目的。

2.2架構(gòu)設(shè)計(jì)

本文架構(gòu)中,將云平臺(tái)分為2部分:一部分是服務(wù)消費(fèi)者控制的客戶機(jī);另一部分是服務(wù)提供商控制的安全服務(wù)域和Hypervisor。如圖1,通過(guò)在Hypervisor中增加監(jiān)控模塊、安全模塊、數(shù)據(jù)中心,在安全服務(wù)域中增加服務(wù)線程,云服務(wù)商提供客戶機(jī)內(nèi)惡意軟件檢測(cè)服務(wù)。沒(méi)有更改客戶機(jī)的操作系統(tǒng)、模塊、應(yīng)用軟件,對(duì)客戶機(jī)保持透明。每個(gè)部分的工作如下。

監(jiān)控模塊通過(guò)在Hypervisor的客戶機(jī)捕獲處理過(guò)程中插入hook函數(shù),hook影子頁(yè)表修改事件s,過(guò)濾不關(guān)心的客戶機(jī)進(jìn)程,并從內(nèi)存和寄存器及相關(guān)結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)中重構(gòu)操作系統(tǒng)語(yǔ)義env,將這些數(shù)據(jù)傳給安全模塊。

安全模塊接收監(jiān)控模塊發(fā)送的事件信息(s,env),按設(shè)定的格式存儲(chǔ)到數(shù)據(jù)中心。然后選擇并通知某個(gè)安全服務(wù)域。同時(shí),安全模塊還會(huì)響應(yīng)安全服務(wù)域的Hypercall請(qǐng)求。

數(shù)據(jù)中心負(fù)責(zé)存儲(chǔ)相關(guān)的事件信息(s,env)。

服務(wù)線程服務(wù)線程被喚醒后,通過(guò)Hypercall的方式請(qǐng)求Hypervisor中安全模塊的服務(wù),負(fù)責(zé)和Hypervisor進(jìn)行數(shù)據(jù)交換。

需要指出的是,與在客戶機(jī)內(nèi)部安裝傳統(tǒng)的殺毒軟件、防火墻等惡意軟件檢測(cè)工具的方式相比,本文提出的架構(gòu)具有4個(gè)特點(diǎn):1)Hypervisor和客戶機(jī)、安全服務(wù)域和客戶機(jī)之間資源被很好地隔離,導(dǎo)致本文架構(gòu)不易被關(guān)閉和破壞。2)安裝不同惡意軟件檢測(cè)工具的多個(gè)安全域的綜合結(jié)果檢測(cè)率更高。3)該架構(gòu)通過(guò)截獲不同的事件,完成動(dòng)態(tài)提取惡意軟件釋放的代碼。相比靜態(tài)掃描的方式,理論上更難被繞過(guò)。4)添加的所有模塊(監(jiān)控模塊、安全模塊、數(shù)據(jù)中心等)部署于服務(wù)提供商控制的安全服務(wù)域和Hypervisor中,所以不需要在客戶機(jī)中安裝額外軟件。

2.3惡意軟件檢測(cè)思路

從惡意軟件執(zhí)行過(guò)程分析,惡意代碼可以直接被操作系統(tǒng)載入內(nèi)存,也可以以加密數(shù)據(jù)的形式載入內(nèi)存,等到特定的條件觸發(fā)后被解密釋放到內(nèi)存中。通過(guò)在本架構(gòu)中抓取軟件的載入內(nèi)存行為或者釋放代碼行為,取出其載入的代碼或者釋放的代碼,用這些代碼塊的惡意性來(lái)判斷軟件的惡意性。為了保持對(duì)客戶機(jī)的透明性,不能采用在Hypervisor中利用客戶機(jī)操作系統(tǒng)的函數(shù)hook的方式或者和客戶機(jī)內(nèi)模塊交互的方式來(lái)獲取這些行為。希望在本框架下,監(jiān)控模塊選取特定的事件S,等價(jià)的截獲代碼載入內(nèi)存或者解密釋放的過(guò)程,利用寄存器、內(nèi)存值和相關(guān)數(shù)據(jù)結(jié)構(gòu)用語(yǔ)義重構(gòu)的方式恢復(fù)操作系統(tǒng)狀態(tài)env,并將事件(S,env)發(fā)送給安全模塊,安全模塊通過(guò)地址轉(zhuǎn)換函數(shù)確定正在操作的內(nèi)存塊,將內(nèi)存塊的起始地址、大小以及(S,env)存儲(chǔ)到數(shù)據(jù)中心的日志中,并通知某個(gè)安全服務(wù)域,安全服務(wù)域中的服務(wù)線程通過(guò)Hypercall的方式請(qǐng)求拷貝內(nèi)存塊,并將內(nèi)存塊保存到文件中,借助于主流殺毒軟件的文件掃描功能來(lái)判斷軟件的惡意性。

2.4事件的選取

在事件選取過(guò)程中,利用了影子頁(yè)表[16]和Intel禁止運(yùn)行(NoeXecute, NX)技術(shù)。在內(nèi)存虛擬化的實(shí)現(xiàn)中,存在兩種不同的頁(yè)表:一種是客戶機(jī)維護(hù)的客戶機(jī)頁(yè)表;另一種是Hypervisor維護(hù)的影子頁(yè)表??蛻魴C(jī)頁(yè)表將客戶機(jī)虛擬地址映射為客戶機(jī)物理地址。影子頁(yè)表將客戶機(jī)地址映射為物理地址??蛻魴C(jī)物理地址是物理地址的抽象層,它們之間存在映射關(guān)系??蛻魴C(jī)在讀寫或者運(yùn)行某個(gè)地址時(shí)發(fā)生頁(yè)錯(cuò)誤,Hypervisor會(huì)同步該地址的影子頁(yè)表和客戶機(jī)頁(yè)表。比如軟件第一次載入內(nèi)存或者通過(guò)VirtualProtect更改內(nèi)存屬性會(huì)更改相應(yīng)的客戶機(jī)頁(yè)表項(xiàng)。當(dāng)實(shí)際用到這一地址的時(shí)候,通過(guò)影子頁(yè)表頁(yè)錯(cuò)誤處理函數(shù)將客戶機(jī)頁(yè)表和影子頁(yè)表同步。在Intel CPU中,執(zhí)行禁止位(eXecute Disable, XD)用于區(qū)分內(nèi)存中的指令存儲(chǔ)區(qū)域和數(shù)據(jù)存儲(chǔ)區(qū)域。對(duì)支持?jǐn)?shù)據(jù)執(zhí)行保護(hù)(Data Executing Prevention, DEP)的操作系統(tǒng)會(huì)對(duì)程序數(shù)據(jù)段設(shè)置XD位,防止由于緩沖區(qū)溢出等漏洞導(dǎo)致執(zhí)行數(shù)據(jù)段的shellcode。稱XD未設(shè)置內(nèi)存區(qū)域?yàn)榭蓤?zhí)行。

希望通過(guò)選取特定事件S來(lái)獲取客戶機(jī)中軟件的可執(zhí)行代碼。由于頁(yè)面分配可以同時(shí)設(shè)置可寫和可執(zhí)行屬性,后續(xù)對(duì)頁(yè)面的寫操作能夠產(chǎn)生新的可執(zhí)行代碼。這樣可執(zhí)行代碼來(lái)源于兩種情形,如圖 2所示。

S1:分配一塊屬性為可寫的內(nèi)存,寫入數(shù)據(jù),更改頁(yè)表屬性為可執(zhí)行。

S2:分配一塊可寫可運(yùn)行的內(nèi)存,寫入代碼。

對(duì)于S1,客戶機(jī)更改頁(yè)表屬性,會(huì)導(dǎo)致頁(yè)中內(nèi)容被用到時(shí),發(fā)生影子頁(yè)表的頁(yè)錯(cuò)誤,Hypervisor可以獲得該事件。對(duì)于S2,如果設(shè)置影子頁(yè)表為可寫可運(yùn)行屬性,后續(xù)對(duì)頁(yè)面的寫操作將不能截獲。通過(guò)更改影子頁(yè)表的實(shí)現(xiàn),對(duì)客戶機(jī)內(nèi)存可寫可執(zhí)行頁(yè)面采用特殊的處理方式:對(duì)于需要將影子頁(yè)表更改為可寫可運(yùn)行的屬性的情況,根據(jù)當(dāng)前頁(yè)錯(cuò)誤類型去掉寫或運(yùn)行屬性。也就是,頁(yè)錯(cuò)誤類型為寫錯(cuò)誤,Hypervisor同步影子頁(yè)表的時(shí)候只給寫權(quán)限;頁(yè)錯(cuò)誤類型為取指錯(cuò)誤,給予運(yùn)行權(quán)限并去掉寫權(quán)限。采取這種處理方式,能夠獲得對(duì)可寫可執(zhí)行頁(yè)面的后續(xù)操作同時(shí)不影響軟件的正常工作。

3惡意軟件檢測(cè)架構(gòu)原型系統(tǒng)實(shí)現(xiàn)

在Xen4.4.0上實(shí)現(xiàn)了上述架構(gòu)的原型。機(jī)器硬件配置是4核64位Intel Core i34150(支持VME、NX)CPU,內(nèi)存為4GB,采用Ubuntu14.04 LTS 內(nèi)核版本3.13.052作為宿主操作系統(tǒng),客戶機(jī)采用32位Windows 7操作系統(tǒng)。

操作系統(tǒng)中除了惡意軟件還有很多其他正常軟件。對(duì)所有的進(jìn)程都進(jìn)行事件的截獲會(huì)帶來(lái)很大的性能消耗。為減輕這種性能消耗,一般有兩種策略:一種是忽略系統(tǒng)和可信任進(jìn)程(即白名單策略);另一種是只處理疑似樣本進(jìn)行。在本文的實(shí)現(xiàn)中,只對(duì)疑似樣本進(jìn)行事件截獲。

3.1初始化階段

安全服務(wù)域dom0首先創(chuàng)建服務(wù)線程thread,thread申請(qǐng)足夠大的空間512個(gè)頁(yè)的空間作為Hypervisor和dom0進(jìn)行數(shù)據(jù)交換的緩沖區(qū)。然后,dom0注冊(cè)中斷處理函數(shù)scan_interrupt并綁定事件通道,這一步通過(guò)bind_virq_to_irqhandler完成。最后,dom0通過(guò)VMCALL指令通知Hypervisor對(duì)指定的domU設(shè)置疑似樣本的名字規(guī)則(比如virus前綴)并開(kāi)啟事件截獲。

3.2函數(shù)hook和語(yǔ)義重構(gòu)

本文的hook函數(shù)放置在Xen影子頁(yè)表頁(yè)錯(cuò)誤的處理函數(shù)sh_page_fault中。該函數(shù)首先判斷頁(yè)錯(cuò)誤是否由影子頁(yè)表和客戶機(jī)頁(yè)表不同步導(dǎo)致:如果是則將客戶機(jī)頁(yè)表相應(yīng)的頁(yè)面“傳送”給影子頁(yè)表;如果不是,則將錯(cuò)誤直接傳給客戶機(jī)。本文在sh_page_fault讀取完客戶機(jī)頁(yè)表相應(yīng)項(xiàng),并計(jì)算出需要對(duì)影子頁(yè)表修改的值后,在實(shí)施修改之前(即在sh_page_fault中shadow_set_l1e語(yǔ)句前)加入hook函數(shù)scan_shadow_page_fault。該hook函數(shù)只有開(kāi)啟了事件截獲才會(huì)執(zhí)行。

截獲指定事件后,從當(dāng)前VMCS結(jié)構(gòu)中讀取客戶機(jī)gdt表。gdt表中第6項(xiàng)、第7項(xiàng)分別包含處理器控制區(qū)域struct _KPCR結(jié)構(gòu)和當(dāng)前線程環(huán)境塊struct _TEB結(jié)構(gòu)的首地址。本文從struct _KPCR+0x124處得到線程控制結(jié)構(gòu)ethread,從struct _TEB中恢復(fù)整個(gè)進(jìn)程相關(guān)的信息,比如進(jìn)程標(biāo)識(shí)符PID、進(jìn)程名字、進(jìn)程的二進(jìn)制文件路徑。

3.3限制到指定進(jìn)程

對(duì)獲取到的事件都進(jìn)行語(yǔ)義重構(gòu)會(huì)引入較大的性能消耗,本文采取了特別的方式減少語(yǔ)義重構(gòu)的次數(shù)。客戶機(jī)進(jìn)程切換會(huì)對(duì)cr3賦值,該步驟需要hypervisor輔助完成。采用在cr3切換到疑似進(jìn)程時(shí)設(shè)置標(biāo)志位表示需要進(jìn)行語(yǔ)義重構(gòu),在cr3切換出去時(shí)清除標(biāo)志位的方式,避免在可信任進(jìn)程上進(jìn)行語(yǔ)義重構(gòu)的操作。

3.4事件處理

當(dāng)事件發(fā)生時(shí),根據(jù)當(dāng)前寄存器值,內(nèi)存和Windows 7 相關(guān)數(shù)據(jù)結(jié)構(gòu)恢復(fù)出進(jìn)程相關(guān)的信息。根據(jù)頁(yè)錯(cuò)誤的虛擬地址、客戶機(jī)頁(yè)表和影子頁(yè)表的對(duì)應(yīng)項(xiàng),對(duì)S1和S2分別進(jìn)行處理(如程序1)。對(duì)于S1事件,過(guò)濾發(fā)生在內(nèi)核空間中的頁(yè)表屬性變化,對(duì)用戶空間的頁(yè)表屬性變化,則記錄其物理頁(yè)mfn。對(duì)于S2事件,如果頁(yè)錯(cuò)誤是因?yàn)闆](méi)有寫權(quán)限引起的,則去掉運(yùn)行權(quán)限,給予寫權(quán)限;如果是因?yàn)闆](méi)有運(yùn)行權(quán)限引起的,則去掉寫權(quán)限,給予運(yùn)行權(quán)限。

程序1事件處理函數(shù)。

程序前

Function handle_s1(va,Gl1e,Sl1e)

If (va>0x80000000)//不處理內(nèi)核地址

Return;

If ((?。⊿l1e & PAGE_X)) && (Gl1e & PAGE_X))

Log_this_page(Sl1e);//記錄這一頁(yè),拷貝

Function handle_s2(Gl1e,regs)

If (Gl1e & PAGE_X) && (Gl1e & PAGE_W)//頁(yè)面可寫可執(zhí)行

If (regs->error_code & PEFC_insn_fetch)//當(dāng)前錯(cuò)誤是運(yùn)行錯(cuò)誤,去掉寫權(quán)限

Gl1e &=~PAGE_W

If (regs->error_code & PEFC_write_access)//當(dāng)前錯(cuò)誤是寫錯(cuò)誤,去掉運(yùn)行權(quán)限

Gl1e&=~PAGE_X

程序后

3.5異步讀寫

事件相關(guān)信息(物理頁(yè)、進(jìn)程名字、虛擬地址)記錄完畢。Hypervisor用send_guest_vcpu_virq函數(shù)給dom0發(fā)送中斷后,立即將控制權(quán)交還給客戶機(jī)操作系統(tǒng)。中斷處理函數(shù)scan_interrupt喚醒服務(wù)線程thread。thread通過(guò)VMCALL指令請(qǐng)求將相應(yīng)的頁(yè)面拷貝到指定內(nèi)存中。采用這種異步的方式,能夠使客戶機(jī)等待的時(shí)間特別短,對(duì)客戶機(jī)性能影響小。

服務(wù)線程最終將相應(yīng)的內(nèi)存塊分別寫入文件。由于現(xiàn)在沒(méi)有各種殺毒軟件的開(kāi)放應(yīng)用程序編程接口(Application Programming Interface, API)API,不能利用API對(duì)內(nèi)存進(jìn)行掃描。暫時(shí)采取寫入文件,將多種殺毒軟件的掃描結(jié)果作為是否是惡意軟件的判斷依據(jù)。

4實(shí)驗(yàn)結(jié)果

文獻(xiàn)[2]中提到,惡意軟件檢測(cè)主要有基于特征匹配的方式和基于異常檢測(cè)兩種。現(xiàn)有的殺毒軟件一般采用了基于特征匹配的靜態(tài)掃描方式,首先對(duì)疑似的二進(jìn)制文件進(jìn)行特征提取和計(jì)算hash校驗(yàn)值,并將這些值和惡意軟件特征庫(kù)進(jìn)行比對(duì)。下面,本文通過(guò)加殼惡意軟件檢測(cè)實(shí)驗(yàn),說(shuō)明本文架構(gòu)對(duì)加殼惡意軟件的檢測(cè)效果比殺毒軟件靜態(tài)掃描的檢測(cè)效果更好。

實(shí)驗(yàn)中,在原型系統(tǒng)的一個(gè)客戶機(jī)中運(yùn)行收集到疑似惡意軟件樣本,原型系統(tǒng)會(huì)自動(dòng)提取出程序動(dòng)態(tài)釋放的內(nèi)存塊。本文的云平臺(tái)采用多樣化的掃描方式,采用Avast(11.1.2241)、Avira(15.0.13.210)、Kaspersky(15.0.0)、Dr.Web(10.0)、McAfee(14.0.1127)五款殺毒軟件對(duì)提取出的全部?jī)?nèi)存塊進(jìn)行掃描。如果任何一個(gè)殺毒軟件檢測(cè)報(bào)告惡意軟件,則認(rèn)為該軟件惡意。如果都沒(méi)有報(bào)告惡意軟件,則認(rèn)為該軟件是正常軟件。作為對(duì)比,同時(shí)用Avast(11.1.2241)、Avira(15.0.13.210)、Kaspersky(15.0.0)、Dr.Web(10.0)、McAfee(14.0.1127)五款殺毒軟件直接對(duì)疑似樣本的二進(jìn)制文件進(jìn)行掃描,判斷是否惡意方式與原型系統(tǒng)中一致。

實(shí)驗(yàn)過(guò)程中,對(duì)收集的107個(gè)疑似樣本(標(biāo)號(hào)為樣本1到樣本107)進(jìn)行加殼處理。加殼工具采用了ASPacker、ACProtect、NSpack、Upack等工具。其中由于61個(gè)疑似樣本在Windows 7 32位環(huán)境不能運(yùn)行,采用其他46個(gè)進(jìn)行測(cè)試,得到相應(yīng)的實(shí)驗(yàn)結(jié)果。圖3是原型系統(tǒng)的惡意軟件檢測(cè)數(shù)目和殺毒軟件檢測(cè)數(shù)目對(duì)比。本文提出的多樣化惡意軟件檢測(cè)框架的檢測(cè)率為85.7%,比傳統(tǒng)靜態(tài)掃描的71.4%檢測(cè)率高14.3個(gè)百分點(diǎn)。

10個(gè)樣本(如表1)在原型系統(tǒng)中報(bào)告存在惡意軟件,但是殺毒軟件靜態(tài)掃描不能檢測(cè)出惡意軟件。導(dǎo)致這種差異的原因是,靜態(tài)掃描加殼惡意軟件時(shí),對(duì)疑似的二進(jìn)制文件進(jìn)行特征提取和計(jì)算hash校驗(yàn)值的方式受到殼的干擾和原始二進(jìn)制加密等方面的影響,導(dǎo)致特征碼或hash值的改變,從而繞過(guò)檢測(cè)。而在本文實(shí)現(xiàn)的原型系統(tǒng)中,通過(guò)截獲惡意軟件釋放惡意代碼的過(guò)程,對(duì)釋放過(guò)程完成后的代碼進(jìn)行特征提取,此時(shí)外殼已經(jīng)執(zhí)行完成,加密的二進(jìn)制也完成了解密,所以能夠提取出原始軟件的特征,因此原型系統(tǒng)通過(guò)提取惡意軟件未加殼時(shí)的特征發(fā)現(xiàn)惡意軟件。

5個(gè)樣本(如表2)在原型系統(tǒng)中檢測(cè)不出,但是殺毒軟件能夠報(bào)告威脅。通過(guò)分析,導(dǎo)致這種情形的原因可能如下:1)惡意軟件未能觸發(fā)惡意載荷載入內(nèi)存的行為;2)惡意軟件通過(guò)面向返回的編程(ReturnOriented Programming, ROP)[17]或者returnintolibc[18]等方式利用系統(tǒng)動(dòng)態(tài)鏈接庫(kù)文件(Dynamic Link Library, DLL)相關(guān)的代碼。接下來(lái),為了解決上述問(wèn)題,將完善惡意軟件自動(dòng)觸發(fā)機(jī)制,并結(jié)合文獻(xiàn)[19]中的相關(guān)工作,完善對(duì)利用ROP和returnintolibc技術(shù)的惡意軟件的檢測(cè)。

5結(jié)語(yǔ)

本文提出了一種面向云平臺(tái)的多樣化惡意軟件檢測(cè)架構(gòu),利用虛擬化技術(shù)截獲客戶機(jī)的特定行為,抓取客戶機(jī)內(nèi)軟件釋放的代碼,通過(guò)多種殺毒軟件多樣化的掃描確定軟件的惡意性。已經(jīng)在Xen上實(shí)現(xiàn)了整個(gè)架構(gòu)的原型。在測(cè)試工作中,實(shí)現(xiàn)的原型系統(tǒng)對(duì)加殼惡意軟件的檢測(cè)效果比殺毒軟件靜態(tài)掃描的檢測(cè)效果更好。

接下來(lái),將完善惡意軟件的自動(dòng)觸發(fā)機(jī)制,使惡意軟件在條件未滿足時(shí)釋放惡意載荷,達(dá)到檢測(cè)的目的;同時(shí),將完善對(duì)采用ROP和returnintolibc方式的惡意軟件的檢測(cè)。

參考文獻(xiàn):

[1]

Wikimedia Foundation. Malware [EB/OL]. [20160304]. https://en.wikipedia.org/wiki/Malware.

[2]

IDIKA N, MATHUR A P. A survey of malware detection techniques [D]. West Lafayette, IN: Purdue University, 2007: 1-48. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.4594&rep=rep1&type=pdf.

[3]

UHLIG R, NEIGER G, RODGERS D, et al. Intel virtualization technology [J]. Computer, 2005, 38(5): 48-56.

[4]

YIN H, SONG D, EGELE M, et al. Panorama: capturing systemwide information flow for malware detection and analysis [C]// Proceedings of the 14th ACM Conference on Computer and Communications Security. New York: ACM, 2007: 116-127.

[5]

QEMU main page [EB/OL]. [20160304]. http://wiki.qemu.org/Main_Page.

[6]

VASUDEVAN A, YERRABALLI R. Stealth breakpoints [C]// Proceedings of the 21st Annual Computer Security Applications Conference. Piscataway, NJ: IEEE, 2005: 383-392.

[7]

VASUDEVAN A, YERRABALLI R. Cobra: finegrained malware analysis using stealth localizedexecutions [C]// Proceedings of the 2006 IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE, 2006: 265-279.

[8]

JIANG X, WANG X, XU D. Stealthy malware detection through VMMbased outofthebox semantic view reconstruction [C]// Proceedings of the 14th ACM Conference on Computer and Communications Security. New York: ACM, 2007: 128-138.

[9]

BAYER U, KRUEGEL C, KIRDA E. TTAnalyze: a tool for analyzing malware [EB/OL]. [20151220]. https://www.cs.ucsb.edu/~chris/research/doc/eicar06_ttanalyze.pdf.

[10]

Linux Foundation. The Xen project [EB/OL]. [20160304]. http://www.xenproject.org/.

[11]

LinuxKVM organization. Kernel virtual machine [EB/OL]. [20160304]. http://www.linuxkvm.org/page/Main_Page.

[12]

PAYNE B D, CARBONE M, SHARIF M, et al. Lares: an architecture for secure active monitoring using virtualization [C]// SP 2008: Proceedings of the 2008 IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE, 2008: 233-247.

[13]

SHARIF M I, LEE W, CUI W, et al. Secure inVM monitoring using hardware virtualization [C]// Proceedings of the 16th ACM Conference on Computer and Communications Security. New York: ACM, 2009: 477-487.

[14]

MAO Y, CHEN X, LUO Y. HVSM: an inoutVM security monitoring architecture in IAAS cloud [C]// Proceedings of the 2014 IEEE Information and Network Security. Piscataway, NJ: IEEE, 2014: 185-192.

[15]

HIZVER J, CHIUEH T. Realtime deep virtual machine introspection and its applications [C]// VEE14: Proceedings of the 10th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. New York: ACM, 2014: 3-14.

[16]

BARHAM P, DRAGOVIC B, FRASER K, et al. Xen and the art of virtualization [J]. ACM SIGOPS Operating Systems Review, 2003, 37(5): 164-177.

[17]

BUCHANAN E, ROEMER R, SHACHAM H, et al. When good instructions go bad: Generalizing returnoriented programming to RISC [C]// Proceedings of the 15th ACM Conference on Computer and Communications Security. New York: ACM, 2008: 27-38.

[18]

SHACHAM H. The geometry of innocent flesh on the bone: returnintolibc without function calls (on the x86) [C]// Proceedings of the 14th ACM Conference on Computer and Communications Security. New York: ACM, 2007: 552-561.

[19]

JIA X, WANG R, JIANG J, et al. Defending returnoriented programming based on virtualization techniques [J]. Security and Communication Networks, 2013, 6(10): 1236-1249.

猜你喜歡
客戶機(jī)虛擬化內(nèi)存
隱超DDR5 5600AOFRUS DDFR55200 16GBx2內(nèi)存套裝實(shí)戰(zhàn)
筆記本內(nèi)存已經(jīng)在漲價(jià)了,但幅度不大,升級(jí)擴(kuò)容無(wú)須等待
隔山亦能打牛,本本巧變遠(yuǎn)控利器
內(nèi)存搭配DDR4、DDR3L還是DDR3?
淺談虛擬化工作原理
用戶怎樣選擇虛擬化解決方案
升騰瘦客戶機(jī)借神碼翱翔“云端”
基于Web數(shù)據(jù)提高訪問(wèn)速度的方法
虛擬化整合之勢(shì)凸顯
上網(wǎng)本為什么只有1GB?
东兰县| 蒲江县| 巧家县| 东乌| 黎川县| 扎鲁特旗| 眉山市| 和平县| 柯坪县| 大英县| 布尔津县| 虹口区| 临湘市| 靖边县| 台东县| 舒城县| 霍山县| 黄山市| 龙井市| 合肥市| 五指山市| 仁怀市| 成都市| 栖霞市| 镇宁| 潜江市| 乌鲁木齐市| 乌拉特中旗| 垦利县| 旬邑县| 多伦县| 昭觉县| 通辽市| 内江市| 家居| 封开县| 尼勒克县| 开原市| 灌南县| 柳林县| 读书|