国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于虛擬機的0day/惡意文檔檢測系統(tǒng)及方法

      文檔序號:9397113閱讀:286來源:國知局
      一種基于虛擬機的0day/惡意文檔檢測系統(tǒng)及方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明是關(guān)于軟件漏洞檢測與分析技術(shù)領(lǐng)域,特別涉及一種基于虛擬機的ODAY/惡意文檔檢測系統(tǒng)及方法。
      【背景技術(shù)】
      [0002]軟件漏洞的成因是由于開發(fā)語言本身的局限性,或是由于軟件作者因開發(fā)期時期編寫程序不完善或安全意識不夠而疏忽大意而造成的。緩沖區(qū)溢出即是一種最常見的軟件漏洞。其原理是向程序的緩沖區(qū)寫入超過其限定長度的內(nèi)容,造成緩沖區(qū)數(shù)據(jù)的溢出,從而破壞程序的堆棧,使程序崩潰或轉(zhuǎn)而執(zhí)行其他指令,達(dá)到攻擊的目的。軟件漏洞還包括邏輯漏洞,SQL注入等。
      [0003]惡意文檔,是根據(jù)加載文檔的軟件存在的漏洞而故意制作的不正常文件。如文檔可為DOC,PDF, XLS, PPT等文檔,根據(jù)加載該文檔的軟件存在的漏洞(如緩沖區(qū)溢出漏洞)而特制的文檔,在特定的環(huán)境下打開該文檔后會成功執(zhí)行惡意指令等。
      [0004]目前對惡意文檔的檢測方法主要是靜態(tài)檢測,如OfficeMalScanner定位微軟Office (DOC, XLS和PPT)文件中的she I Icode和VBA宏;OffVis顯示微軟Office文件的原始內(nèi)容和結(jié)構(gòu),并能鑒別一些常見的exploit等。但靜態(tài)檢測存在一定的誤報和漏報。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)中的不足,提供一種能通過動態(tài)執(zhí)行的方法檢測惡意文檔的檢測系統(tǒng)及方法。為解決上述技術(shù)問題,本發(fā)明的解決方案是:
      [0006]提供一種基于虛擬機的ODAY/惡意文檔檢測系統(tǒng),能動態(tài)檢測加載在Ring3虛擬機上的文檔進(jìn)程,所述ODAY/惡意文檔檢測系統(tǒng)包括文檔執(zhí)行模塊、Ring3虛擬機模塊、Shellcode檢測模塊、Except1n檢測模塊、ROP檢測模塊、日志模塊,能加載在用于運行文檔進(jìn)程的Ring3虛擬機上;
      [0007]所述文檔執(zhí)行模塊,用于加載文檔;
      [0008]所述Ring3虛擬機模塊,用于解析每條二進(jìn)制指令并跟蹤二進(jìn)制指令的流向;
      [0009]所述Shellcode檢測模塊,用于檢測是否有shellcode ;
      [0010]所述Except1n檢測模塊,用于記錄崩潰及異常信息;
      [0011 ] 所述ROP檢測模塊,用于檢測ROP行為;
      [0012]所述日志模塊,用于記錄Shellcode檢測模塊、Except1n檢測模塊和ROP檢測模塊的檢測結(jié)果。
      [0013]提供基于所述的ODAY/惡意文檔檢測系統(tǒng)的檢測方法,用于檢測文檔是否為惡意文檔,具體步驟如下所述:
      [0014]步驟A:加載所需檢測文檔的進(jìn)程(如WINWORD.EXE等)運行在Ring3虛擬機上;
      [0015]步驟B:在Ring3虛擬機上加載Shellcode檢測模塊、Except1n檢測模塊、ROP檢測模塊、日志模塊;
      [0016]步驟C:動態(tài)跟蹤程序指令,各檢測模塊進(jìn)行實時檢測;
      [0017]步驟D:日志模塊將步驟C中檢測到的結(jié)果,保存到日志文件中;若日志文件中存有檢測結(jié)果信息,則說明該文檔為惡意文檔。
      [0018]在本發(fā)明中,所述步驟C中,Shellcode檢測模塊進(jìn)行檢測時,當(dāng)同時滿足以下兩個條件時表示檢測到shellcode:
      [0019]條件I)記錄進(jìn)程及其調(diào)用的模塊的地址空間,如遇到程序執(zhí)行時二進(jìn)制指令執(zhí)行的地址不屬于調(diào)用到的模塊或進(jìn)程所屬的地址空間時,將進(jìn)程標(biāo)記為可疑;
      [0020]條件2)判斷運行條件I)中二進(jìn)制指令執(zhí)行的地址的內(nèi)存屬性,當(dāng)指令地址不具備可執(zhí)行屬性時,將進(jìn)程標(biāo)記為可疑。
      [0021]在本發(fā)明中,所述步驟C中,Except1n檢測模塊進(jìn)行檢測時,實時監(jiān)控異常,當(dāng)檢測到的異常代碼為OxcOOOOOOO到Oxcfffffff之間或等于0x80000003時,表明該文檔為異常文檔。
      [0022]在本發(fā)明中,所述步驟C中,ROP檢測模塊針對指定函數(shù),檢測函數(shù)的返回地址所指向的指令的前一條指令是否為call指令,若不是Call指令則說明檢測到ROP行為;
      [0023]所述指定函數(shù)包括VirtualProtect、VirtualProtectEx、VirtualAlloc、VirtualAllocEx^ HeapCreate、 LoadLibraryA^ LoadLibraryExA^ LoadLibraryExff^CreateProcessA、CreateProcessff^ CreateProcessInternalA^ CreateProcessInternalff^CreateRemoteThread、WriteProcessMemory、WinExec> CreateFile、CreateFileA、CreateFileff> CreateFileMappingA、CreateFiIeMappingW、MapViewOfFi Ie、MapViewOfFi IeEx、GetTempPathA、GetTempPathff0
      [0024]在本發(fā)明中,所述檢測方法是指令級別的檢測方法。
      [0025]在本發(fā)明中,所述檢測方法是函數(shù)級別的檢測方法。
      [0026]在本發(fā)明中,所述檢測方法是軌跡級別的檢測方法。
      [0027]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
      [0028]本發(fā)明通過動態(tài)執(zhí)行的方法,來檢測文檔是否為惡意文檔,增加了檢測的準(zhǔn)確性;并且本發(fā)明能根據(jù)日志文件中記錄的信息,對惡意文檔進(jìn)行快速有效的后續(xù)分析。
      【附圖說明】
      [0029]圖1為本發(fā)明中ODAY/惡意文檔檢測系統(tǒng)的示意框圖。
      [0030]圖2為本發(fā)明中基于ODAY/惡意文檔檢測系統(tǒng)的檢測方法的流程圖。
      【具體實施方式】
      [0031]下面結(jié)合附圖與【具體實施方式】對本發(fā)明作進(jìn)一步詳細(xì)描述:
      [0032]如圖1、圖2所示,基于Ring3虛擬機的ODAY/惡意文檔檢測系統(tǒng)的檢測方法,對文檔是否為惡意文檔進(jìn)行檢測的具體步驟為:
      [0033]步驟1:加載文檔的進(jìn)程(如WINWORD.EXE等)運行在Ring3虛擬機之上。
      [0034]步驟2:裝載shellcode檢測模塊,except1n檢測模塊,ROP檢測模塊,日志記錄模塊。
      [0035]步驟3:動態(tài)跟蹤程序指令,各模塊實時檢測。
      [0036]其中,shellcode模塊的進(jìn)行檢測時,當(dāng)同時滿足以下兩個條件時表示檢測到shellcode:
      [0037]I)記錄進(jìn)程及其調(diào)用的模塊的地址空間,如遇到指令地址不屬于以上地址空間時,標(biāo)記為可疑;
      [0038]2)判斷運行指令地址的內(nèi)存屬性,當(dāng)指令地址不具備可執(zhí)行屬性時標(biāo)記為可疑。
      [0039]其中,except1n模塊的檢測方法如下:
      [0040]實時監(jiān)控異常,當(dāng)檢測到的異常代碼為OxcOOOOOOO到Oxcfffffff之間或等于0x80000003時表明該文檔為異常文檔。
      [0041 ] 其中,ROP模塊的檢測方法如下:
      [0042]檢測指定的函數(shù),函數(shù)包括kernel32.CreateFileW、kernel32.WinExec、kernel32.CreateProcessInternalffNkerne132.VirtualProtectEx 等 24 個函數(shù),檢測這些函數(shù)的返回地址所指向的指令的前一條指令是否為call指令,針對32位操作系統(tǒng)主要檢測四種類型:
      [0043]①針對“call xxxxxxxx”的間接跳轉(zhuǎn);
      [0044]②針對“call AAAABBBBBBBB”的直接遠(yuǎn)跳,其“AAAA”代表16位的段選擇子,“BBBBBBBB”代表32位偏移;
      [0045]③針對“call[內(nèi)存地址]’,,opcode 為 “FFl5 [xxxxxxxx] ’,;
      [0046]④針對“callfar [內(nèi)存地址]”,opcode 為“FF1D[xxxxxxxx] ”。
      [0047]步驟4:將檢測到的結(jié)果保存到日志文件中。
      [0048]最后,需要注意的是,以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
      【主權(quán)項】
      1.一種基于虛擬機的ODAY/惡意文檔檢測系統(tǒng),能動態(tài)檢測加載在Ring3虛擬機上的文檔進(jìn)程,其特征在于,所述ODAY/惡意文檔檢測系統(tǒng)包括文檔執(zhí)行模塊、Ring3虛擬機模塊、Shellcode檢測模塊、Except1n檢測模塊、ROP檢測模塊、日志模塊,能加載在用于運行文檔進(jìn)程的Ring3虛擬機上; 所述文檔執(zhí)行模塊,用于加載文檔; 所述Ring3虛擬機模塊,用于解析每條二進(jìn)制指令并跟蹤二進(jìn)制指令的流向; 所述Shellcode檢測模塊,用于檢測是否有shellcode ; 所述Exert1n檢測模塊,用于記錄崩潰及異常信息; 所述ROP檢測模塊,用于檢測ROP行為; 所述日志模塊,用于記錄Shellcode檢測模塊、Except1n檢測模塊和ROP檢測模塊的檢測結(jié)果。2.基于權(quán)利要求1所述的ODAY/惡意文檔檢測系統(tǒng)的檢測方法,用于檢測文檔是否為惡意文檔,其特征在于,具體步驟如下所述: 步驟A:加載所需檢測文檔的進(jìn)程運行在Ring3虛擬機上; 步驟B:在Ring3虛擬機上加載Shellcode檢測模塊、Except1n檢測模塊、ROP檢測模塊、日志模塊; 步驟C:動態(tài)跟蹤程序指令,各檢測模塊進(jìn)行實時檢測; 步驟D:日志模塊將步驟C中檢測到的結(jié)果,保存到日志文件中;若日志文件中存有檢測結(jié)果信息,則說明該文檔為惡意文檔。3.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,所述步驟C中,Shellcode檢測模塊進(jìn)行檢測時,當(dāng)同時滿足以下兩個條件時表示檢測到shellcode: 條件I)記錄進(jìn)程及其調(diào)用的模塊的地址空間,如遇到程序執(zhí)行時二進(jìn)制指令執(zhí)行的地址不屬于調(diào)用到的模塊或進(jìn)程所屬的地址空間時,將進(jìn)程標(biāo)記為可疑; 條件2)判斷運行條件I)中二進(jìn)制指令執(zhí)行的地址的內(nèi)存屬性,當(dāng)指令地址不具備可執(zhí)行屬性時,將進(jìn)程標(biāo)記為可疑。4.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,所述步驟C中,Except1n檢測模塊進(jìn)行檢測時,實時監(jiān)控異常,當(dāng)檢測到的異常代碼為OxcOOOOOOO到Oxcfffffff之間或等于0x80000003時,表明該文檔為異常文檔。5.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,所述步驟C中,ROP檢測模塊針對指定函數(shù),檢測函數(shù)的返回地址所指向的指令的前一條指令是否為call指令,若不是Call指令則說明檢測到ROP行為; 所述指定函數(shù)包括 VirtualProtect、VirtualProtectEx、VirtualAlloc、VirtualAllocEx^ HeapCreate、 LoadLibraryA^ LoadLibraryExA^ LoadLibraryExff^CreateProcessA、CreateProcessff^ CreateProcessInternalA^ CreateProcessInternalff^CreateRemoteThread、WriteProcessMemory^ WinExec> CreateFile、CreateFileA、CreateFileff> CreateFileMappingA、CreateFiIeMappingW、MapViewOfFi Ie、MapViewOfFi IeEx、GetTempPathA、GetTempPathff06.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,所述檢測方法是指令級別的檢測方法。7.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,所述檢測方法是函數(shù)級別的檢測方法。8.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,所述檢測方法是軌跡級別的檢測方法。
      【專利摘要】本發(fā)明涉及軟件漏洞檢測與分析技術(shù)領(lǐng)域,旨在提供一種基于虛擬機的0DAY/惡意文檔檢測系統(tǒng)及方法。該種基于虛擬機的0DAY/惡意文檔檢測系統(tǒng)包括文檔執(zhí)行模塊、Ring3虛擬機模塊、Shellcode檢測模塊、Exception檢測模塊、ROP檢測模塊、日志模塊,能動態(tài)檢測加載在Ring3虛擬機上的文檔進(jìn)程;該檢測方法包括步驟:加載所需檢測文檔的進(jìn)程運行在Ring3虛擬機上,各檢測模塊進(jìn)行實時檢測,日志模塊將檢測結(jié)果保存到日志文件并判斷該文檔是否為惡意文檔。本發(fā)明通過動態(tài)執(zhí)行的方法進(jìn)行檢測,增加了檢測的準(zhǔn)確性,并且本發(fā)明能根據(jù)日志文件中記錄的信息,對惡意文檔進(jìn)行快速有效的后續(xù)分析。
      【IPC分類】G06F21/56, G06F21/57
      【公開號】CN105117648
      【申請?zhí)枴緾N201510456001
      【發(fā)明人】吳棟, 范淵, 吳卓群
      【申請人】杭州安恒信息技術(shù)有限公司
      【公開日】2015年12月2日
      【申請日】2015年7月29日
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1