亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于硬件虛擬化技術(shù)的虛擬機(jī)對(duì)抗技術(shù)的建立方法與流程

文檔序號(hào):12825443閱讀:583來(lái)源:國(guó)知局
一種基于硬件虛擬化技術(shù)的虛擬機(jī)對(duì)抗技術(shù)的建立方法與流程

一.技術(shù)領(lǐng)域

本發(fā)明提供一種基于硬件虛擬化技術(shù)的虛擬機(jī)對(duì)抗技術(shù)的建立方法,它涉及計(jì)算機(jī)安全中的虛擬機(jī)對(duì)抗技術(shù),屬于信息安全技術(shù)領(lǐng)域。

二.

背景技術(shù):

隨著電子設(shè)備的普及,計(jì)算機(jī)技術(shù)不斷發(fā)展,整個(gè)社會(huì)對(duì)于互聯(lián)網(wǎng)及計(jì)算機(jī)的依賴持續(xù)增長(zhǎng),此時(shí)信息安全已成為不容忽視的問(wèn)題,然而現(xiàn)在主流的自動(dòng)病毒漏洞分析程序,都是運(yùn)行在虛擬機(jī)或沙盒中。惡意程序?yàn)榱硕惚芴摂M機(jī)的檢測(cè),從而利用自身休眠技術(shù),虛擬機(jī)檢測(cè)技術(shù),調(diào)用垃圾指令等技術(shù)來(lái)干擾檢測(cè)引擎。當(dāng)惡意程序一旦繞過(guò)檢測(cè)引擎,那么這個(gè)程序的特征將會(huì)被保存在白名單中,然后就可以肆無(wú)忌憚的破壞了。目前國(guó)內(nèi)外絕大部分軟件安全廠商,在樣本的沙盒分析過(guò)程中,是不能對(duì)抗反虛擬機(jī)的。所以樣本一旦存在反虛擬機(jī)技術(shù),此樣本就會(huì)繞過(guò)apt引擎的檢測(cè)。

故研究此項(xiàng)技術(shù),來(lái)對(duì)抗反虛擬機(jī)行為。

三.

技術(shù)實(shí)現(xiàn)要素:

1.發(fā)明目的

本發(fā)明公開了一種基于硬件虛擬化技術(shù)的虛擬機(jī)對(duì)抗技術(shù)的建立方法,它涉及一種基于硬件虛擬化技術(shù)來(lái)實(shí)現(xiàn)的虛擬機(jī)檢測(cè)于對(duì)抗,其實(shí)現(xiàn)為基于因特爾公司(intel)硬件虛擬化技術(shù)(vt-x)來(lái)實(shí)現(xiàn)的虛擬機(jī)檢測(cè)對(duì)抗技術(shù)。主要目的在于準(zhǔn)確識(shí)別帶有反虛擬機(jī)的惡意攻擊,以及帶有反虛擬機(jī)行為的惡意代碼,從而快速進(jìn)行相應(yīng)的防御反應(yīng),保護(hù)虛擬機(jī)的計(jì)算機(jī)系統(tǒng)安全。

2.技術(shù)方案

本發(fā)明的一種基于硬件虛擬化技術(shù)的虛擬機(jī)對(duì)抗技術(shù)的建立方法,其步驟如下:

步驟1:在虛擬機(jī)軟件里面開啟中央處理器(即cpu)硬件虛擬化特性支持;

步驟2:加載啟動(dòng)硬件虛擬化的驅(qū)動(dòng)程序,然后進(jìn)入虛擬機(jī)中的操作系統(tǒng)宿主機(jī)模式(host模式),虛擬機(jī)操作系統(tǒng)將切換成操作系統(tǒng)客戶機(jī)模式(虛擬機(jī)操作系統(tǒng)的guest模式);從而是使得虛擬機(jī)的host對(duì)虛擬機(jī)的guest擁有絕對(duì)控制權(quán);

步驟3:在初始化host時(shí),開啟輸入輸出位圖(即iobitmap),特殊模塊寄存器位圖(modelspecificregisters,即msrbitmap),接管所有輸入輸出(即io)操作和特殊模塊寄存器(即msr)操作;并攔截所有的能夠產(chǎn)生虛擬機(jī)退出事件(即vmexit)的所有指令;

步驟4:針對(duì)不同的指令分別進(jìn)行環(huán)境設(shè)置和處理;

步驟5:運(yùn)行被監(jiān)控程序;

步驟6:當(dāng)出現(xiàn)產(chǎn)生vmexit事件時(shí),根據(jù)具體指令,聯(lián)合當(dāng)前堆棧,指令指針(即eip)等狀態(tài)和條件進(jìn)行聯(lián)合分析,從而分析此樣本是否存在反虛擬機(jī)行為;

步驟7:判斷是否執(zhí)行完成;如果完成則輸出分析結(jié)果;否則繼續(xù)執(zhí)行被監(jiān)控程序,發(fā)現(xiàn)更多的反虛擬機(jī)行為,使分析結(jié)果完整準(zhǔn)確,減少誤判;

步驟8:執(zhí)行完成后輸出最終的分析結(jié)果,并向用戶展示。

其中,步驟1中所述“中央處理器(即cpu)硬件虛擬化特性支持”是指英特硬件虛擬化技術(shù),即intelvt-x和美國(guó)超微半導(dǎo)體公司硬件虛擬化技術(shù),即amd-v技術(shù);所述“host”是指虛擬機(jī)操作系統(tǒng)的host,即本發(fā)明開發(fā)的驅(qū)動(dòng)程序,所述“guest”是指虛擬機(jī)操作系統(tǒng)。

其中,步驟3中所述的“攔截所有的能夠產(chǎn)生虛擬機(jī)退出事件(即vmexit)的所有指令”,它是指虛擬機(jī)在執(zhí)行過(guò)程種所有可能產(chǎn)生暫停guest而進(jìn)入host執(zhí)行的所有指令,包括但不限于:獲取處理器詳細(xì)信息,即cpuid,獲取處理器自啟動(dòng)以后的運(yùn)行周期,即rdstc,獲取處理器自啟動(dòng)以后的運(yùn)行周期和處理器標(biāo)識(shí),即rdstcp。

其中,步驟3中所述的“在初始化host時(shí),開啟輸入輸出位圖(即iobitmap),特殊模塊寄存器位圖(modelspecificregisters,即msrbitmap),接管所有io操作和msr操作;并攔截所有的能夠產(chǎn)生虛擬機(jī)退出事件(即vmexit)的所有指令”,其實(shí)現(xiàn)方法為虛擬化技術(shù)中的常規(guī)常用技術(shù),不再贅述。

其中,步驟4中所述的“針對(duì)不同的指令分別進(jìn)行環(huán)境設(shè)置和處理”,它是指以下2類指令:

(1)運(yùn)行在物理主機(jī)和運(yùn)行在虛擬機(jī)上處理速度相差很大的,如獲取處理器信息指令,即cpuid指令,惡意代碼在使用該指令時(shí)通常在指令前后都有一條獲取系統(tǒng)當(dāng)前時(shí)間的gettickcount函數(shù)或者獲取處理器指令周期數(shù)的指令,即rdtsc指令,通過(guò)兩次相減得到指令運(yùn)行時(shí)間;如果時(shí)間大于某一設(shè)定值,則認(rèn)為是在虛擬機(jī)中執(zhí)行;本發(fā)明通過(guò)掛鉤(即掛鉤hook)gettickcount函數(shù)或者模擬執(zhí)行rdtsc指令,改變其返回值,使惡意代碼認(rèn)為是在真實(shí)的物理主機(jī)中執(zhí)行;

(2)需要特定權(quán)限的指令,如讀入指令(即in指令)等;當(dāng)該指令執(zhí)行時(shí),如果程序沒有零環(huán)(即ring0)權(quán)限,在真實(shí)的物理主機(jī)中就會(huì)產(chǎn)生超越權(quán)限異常,即產(chǎn)生exception_priv_instruction異常,而在虛擬機(jī)中則會(huì)正常執(zhí)行;本發(fā)明掛鉤(hook)該條指令,并判斷如果程序沒有ring0權(quán)限,則注入該異常,達(dá)到欺騙程序的目的,使惡意代碼認(rèn)為是在真實(shí)的物理主機(jī)中執(zhí)行;

上文中所述的“零環(huán)(ring0)”是指cpu的0環(huán)權(quán)限(內(nèi)核權(quán)限);相應(yīng)有三環(huán)(ring3)是指cpu的3環(huán)權(quán)限(普通應(yīng)用程序權(quán)限);“掛鉤(hook)”技術(shù)是一種用于改變指令的執(zhí)行結(jié)果的技術(shù)。

其中,步驟5中所述的“運(yùn)行被監(jiān)控程序”,其實(shí)現(xiàn)方法是直接通過(guò)模擬雙擊打開運(yùn)行被監(jiān)控程序。

其中,步驟6中所述的“vmexit事件”,它是指虛擬機(jī)退出事件,此時(shí)虛擬機(jī)執(zhí)行過(guò)程暫停,進(jìn)而轉(zhuǎn)到host主機(jī)執(zhí)行。

其中,步驟6中所述的“當(dāng)出現(xiàn)產(chǎn)生vmexit事件時(shí),根據(jù)具體指令,聯(lián)合當(dāng)前堆棧,指令指針(即eip)等狀態(tài)和條件進(jìn)行聯(lián)合分析,從而分析此樣本是否存在反虛擬機(jī)行為”,其做法為虛擬化技術(shù)領(lǐng)域中的常用技術(shù),不予贅述。

通過(guò)以上步驟,完成對(duì)特權(quán)指令的監(jiān)控,實(shí)現(xiàn)一些傳統(tǒng)方法不能實(shí)現(xiàn)的針對(duì)惡意代碼反虛擬機(jī)技術(shù)對(duì)抗辦法,不破環(huán)樣本本身的完整性,并且不會(huì)被惡意代碼繞過(guò),解決了惡意代碼反虛擬機(jī)技術(shù)對(duì)抗的實(shí)際問(wèn)題。

3.優(yōu)點(diǎn)

本發(fā)明通過(guò)硬件虛擬化技術(shù),來(lái)實(shí)現(xiàn)一些傳統(tǒng)方法不能實(shí)現(xiàn)的針對(duì)惡意代碼反虛擬機(jī)技術(shù)對(duì)抗辦法,從而完成對(duì)特權(quán)指令的監(jiān)控;傳統(tǒng)技術(shù)對(duì)特權(quán)指令監(jiān)控只能通過(guò)對(duì)文件或者內(nèi)存的暴力搜索之后hook,但是這樣處理不當(dāng)容易破環(huán)樣本本身的完整性,并且會(huì)存在很多被繞過(guò)的可能性;但是通過(guò)硬件虛擬化技術(shù),可以完美做到這一點(diǎn)。

四.附圖說(shuō)明

圖1是本發(fā)明所述方法的流程示意圖。

圖2是本發(fā)明方法針對(duì)在物理主機(jī)和運(yùn)行在虛擬機(jī)上處理速度相差很大的指令的處理流程示意圖。

圖3是本發(fā)明方法針對(duì)需要特定權(quán)限的指令的處理流程示意圖。

五.具體實(shí)施方式:

本發(fā)明利用硬件虛擬化技術(shù),通過(guò)基于虛擬機(jī)的方式,實(shí)現(xiàn)對(duì)虛擬主機(jī)的關(guān)鍵指令進(jìn)行監(jiān)控、劫持和虛擬執(zhí)行,達(dá)到對(duì)惡意代碼的監(jiān)控和欺騙,從而在虛擬機(jī)攻防對(duì)抗中獲得主動(dòng)權(quán)。

參見圖1,為本發(fā)明所述的流程示意圖。本發(fā)明一種基于硬件虛擬化技術(shù)的虛擬機(jī)對(duì)抗技術(shù)的建立方法,其具體流程步驟如下:

步驟101:在虛擬機(jī)軟件里面開啟cpu硬件虛擬化特性支持。根據(jù)cpu的生成廠商,開啟intelvt-x或者amd-v。本專利以intel生成的cpu為例,保護(hù)權(quán)利為不僅為該cpu。

步驟102:加載啟動(dòng)硬件虛擬化的驅(qū)動(dòng),然后進(jìn)入虛擬機(jī)中的宿主機(jī)模式(虛擬機(jī)操作系統(tǒng)的host模式),虛擬機(jī)操作系統(tǒng)將切換成客戶機(jī)模式(虛擬機(jī)操作系統(tǒng)的guest模式)。從而是使得虛擬機(jī)的host對(duì)虛擬機(jī)的guest擁有絕對(duì)控制權(quán)。

步驟103:在初始化host時(shí),開啟輸入輸出位圖(iobitmap),特殊模塊寄存器位圖(msrbitmap),接管所有io操作和msr操作。并攔截所有的能夠產(chǎn)生虛擬機(jī)退出事件(vmexit)的所有指令。

步驟104:環(huán)境設(shè)置,針對(duì)不同指令分別進(jìn)行運(yùn)行前的環(huán)境設(shè)置和代碼惡意行為的捕獲,監(jiān)控惡意代碼對(duì)虛擬機(jī)系統(tǒng)環(huán)境嗅探行為。具體執(zhí)行過(guò)程分為兩種:一是本發(fā)明對(duì)基于指令執(zhí)行時(shí)間的虛擬機(jī)環(huán)境探測(cè),即指令在虛擬機(jī)上和物理機(jī)上執(zhí)行時(shí)間差別明顯的執(zhí)行指令分析監(jiān)控,具體流程以cpuid指令為例,參考圖2;另一種是對(duì)in指令等檢測(cè)虛擬機(jī)后門的指令分析監(jiān)控流程,具體流程參考圖3。

步驟105:在虛擬機(jī)中運(yùn)行被監(jiān)控程序。對(duì)普通代碼的執(zhí)行不進(jìn)行任何干擾,僅捕捉能產(chǎn)生vmexit事件的指令和行為。

步驟106:當(dāng)出現(xiàn)產(chǎn)生vmexit事件時(shí),根據(jù)具體指令,聯(lián)合當(dāng)前堆棧,指令指針eip等狀態(tài)和條件進(jìn)行聯(lián)合分析,從而分析此樣本是否存在反虛擬機(jī)行為。

步驟107:判斷程序是否執(zhí)行完成。如果完成則跳轉(zhuǎn)到步驟108輸出分析結(jié)果。否則執(zhí)行下一條指令,跳轉(zhuǎn)到步驟105,收集該程序的所有反虛擬機(jī)行為。

步驟108:輸出分析結(jié)果,用于展示。

其中,在步驟104中所述的“具體執(zhí)行過(guò)程分為兩種”,該兩種情況的具體執(zhí)行補(bǔ)充說(shuō)明如下:

(一)參見圖2,為本發(fā)明對(duì)cpuid指令分析監(jiān)控流程示意圖,具體流程包括:

步驟201:對(duì)普通代碼執(zhí)行不做任何干預(yù),正常執(zhí)行。

步驟202:等待gettickcount函數(shù)或者rdtsc指令。這兩條指令均為獲取系統(tǒng)時(shí)間指令,并且可以相互轉(zhuǎn)換。惡意代碼利用cpuid指令在虛擬機(jī)環(huán)境和非虛擬機(jī)環(huán)境執(zhí)行速度不同這一特征,通過(guò)記錄指令執(zhí)行前后的系統(tǒng)時(shí)間點(diǎn),來(lái)獲取cpuid指令的執(zhí)行時(shí)間,因此一定會(huì)成對(duì)出現(xiàn)。

步驟203:記錄首次獲取系統(tǒng)時(shí)間行為。

步驟204:繼續(xù)執(zhí)行代碼,等待下一條尋找cpuid指令的執(zhí)行。通常情況下,這條指令與上一條獲取系統(tǒng)時(shí)間相隔不遠(yuǎn)。

步驟205:cpuid指令產(chǎn)生vmexit事件,進(jìn)入host。host模擬執(zhí)行該指令,并把模擬執(zhí)行的結(jié)果返回給虛擬機(jī)。

步驟206:host執(zhí)行完成,產(chǎn)生vmentry事件,轉(zhuǎn)入虛擬機(jī)中繼續(xù)執(zhí)行下一條指令。

步驟207:當(dāng)再次發(fā)現(xiàn)gettickcount函數(shù)或者rdtsc指令時(shí),模擬執(zhí)行該指令,并相應(yīng)修改返回值。

步驟208:通過(guò)hookgettickcount函數(shù)或者模擬執(zhí)行rdtsc指令,返回虛假的系統(tǒng)時(shí)間,使惡意代碼誤認(rèn)為是在真實(shí)主機(jī)里執(zhí)行。

步驟209:如果程序執(zhí)行完成,則輸出分析結(jié)果;否則跳轉(zhuǎn)到下一條代碼繼續(xù)執(zhí)行,收集該程序的所有反虛擬機(jī)行為。

(二)參見圖3,為本發(fā)明對(duì)in指令等檢測(cè)虛擬機(jī)后門的指令分析監(jiān)控流程示意圖,具體流程包括:

步驟301:對(duì)普通代碼執(zhí)行不做任何干預(yù),正常執(zhí)行。

步驟302:當(dāng)執(zhí)行過(guò)程中遇到in指令等檢測(cè)虛擬機(jī)后門的行為時(shí),暫停虛擬機(jī)的執(zhí)行。該指令在真實(shí)主機(jī)上執(zhí)行時(shí),如果擁有ring0權(quán)限,則會(huì)正常執(zhí)行;如果沒有ring0權(quán)限,則會(huì)產(chǎn)生exception_rpiv_instruction異常。但是在虛擬機(jī)中執(zhí)行時(shí),無(wú)論有沒有ring0權(quán)限都不會(huì)產(chǎn)生任何異常。后續(xù)步驟就是通過(guò)模擬異常的產(chǎn)生來(lái)欺騙惡意代碼,使它誤認(rèn)為是在真實(shí)主機(jī)上執(zhí)行。

步驟303:in指令等執(zhí)行產(chǎn)生vmexit事件,陷入host中繼續(xù)執(zhí)行

步驟304:host程序?qū)μ摂M機(jī)中暫停運(yùn)行的程序進(jìn)行分析,判斷其是否擁有ring0權(quán)限。

步驟305:如果有ring0權(quán)限,則模擬執(zhí)行該指令,并修改返回值。

步驟306:如果沒有ring0權(quán)限,則注入exception_rpiv_instruction異常。

步驟307:記錄該程序的反虛擬機(jī)行為。

步驟308:返回到虛擬機(jī)中執(zhí)行下一條指令

步驟309:判斷程序是否執(zhí)行完成。如果完成,則輸出檢測(cè)結(jié)果并結(jié)束;否則繼續(xù)執(zhí)行下一條指令,收集該程序的所有反虛擬機(jī)行為。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1