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

一種非可執(zhí)行文件掛馬檢測(cè)方法及其裝置的制作方法

文檔序號(hào):6576779閱讀:164來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種非可執(zhí)行文件掛馬檢測(cè)方法及其裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種非可執(zhí)行文件的病毒查殺方法,特別是涉及一種非可執(zhí)行文件掛 馬檢測(cè)方法及其裝置。
背景技術(shù)
目前,非可執(zhí)行文檔,例如word、excel、powerpoint、pdf等,已經(jīng)越來(lái)越多的被 利用來(lái)傳播木馬。這些非可執(zhí)行文檔往往可以利用溢出漏洞攜帶病毒或者木馬文件,并在 打開(kāi)該文檔的程序產(chǎn)生溢出時(shí)獲得執(zhí)行權(quán)限,從而生成木馬文件并運(yùn)行。由于該隱藏在非 可執(zhí)行文檔中的病毒或木馬文件,其隱蔽性較強(qiáng),導(dǎo)致一般的殺毒軟件無(wú)法對(duì)其進(jìn)行徹底 查殺,導(dǎo)致那些攜帶有病毒或木馬文件的非可執(zhí)行文檔往往對(duì)電腦系統(tǒng)的安全造成巨大危 害。目前,對(duì)該類(lèi)非可執(zhí)行文檔進(jìn)行病毒查殺的手段主要有三種第一種查殺手段是 特征碼查殺,它是一種先對(duì)文件二進(jìn)制和病毒或木馬特征進(jìn)行比較,然后根據(jù)某些規(guī)則進(jìn) 行查殺病毒的方法。然而,由于特征碼查殺的方法主要是通過(guò)比較非可執(zhí)行文檔的二進(jìn)制 與病毒庫(kù)的病毒特征之間的匹配程度,并利用一定的判斷規(guī)則來(lái)判斷是否是惡意文件,使 得它是一種單純對(duì)文件進(jìn)行靜態(tài)分析以比對(duì)特征碼的方法,因此它只能針對(duì)一些流行木馬 或常見(jiàn)掛馬文件起作用,而對(duì)于一些病毒庫(kù)尚未收錄的掛馬文件則束手無(wú)策,特別是對(duì)于 一些利用未知漏洞進(jìn)行掛馬的文檔,由于病毒庫(kù)缺少相應(yīng)的特征碼,使得該特征碼查殺方 法無(wú)法對(duì)該病毒進(jìn)行檢測(cè)和查殺。此外,這種特征碼查殺方法對(duì)于那些利用已有漏洞來(lái)進(jìn) 行掛馬的文檔,也無(wú)法進(jìn)行全面查殺。特別的,一些掛馬文檔可能會(huì)采用修改特征碼、代碼 變形等手段來(lái)避開(kāi)特征碼檢測(cè),因此,這時(shí)采用特征碼查殺手段來(lái)處理這些掛馬文檔就更 是束手無(wú)策了。第二種查殺手段是監(jiān)控系統(tǒng)調(diào)用,它主要是通過(guò)監(jiān)控系統(tǒng)接口的非法調(diào)用來(lái)進(jìn)行 查殺,并在監(jiān)視到程序非法行為時(shí)掛起進(jìn)程,以警告用戶(hù)。例如,windows系統(tǒng)中監(jiān)控釋放 木馬常用的幾個(gè)API,如CreatFileA,WriteFile, WinExec等函數(shù)是否非法調(diào)用來(lái)實(shí)現(xiàn)的。 此種方法的缺陷是一方面,如何判斷這些函數(shù)是否屬于非法調(diào)用存在困難,例如,某些方 法采用判斷該函數(shù)調(diào)用地址的合法性來(lái)進(jìn)行判斷,一般是判斷系統(tǒng)函數(shù)調(diào)用是否來(lái)自于非 法內(nèi)存地址(例如,堆地址或者棧地址),但這種方法可以通過(guò)偽造調(diào)用地址繞過(guò),并利用 系統(tǒng)函數(shù)地址作為跳板,偽裝成為系統(tǒng)調(diào)用來(lái)避開(kāi)監(jiān)控;另一方面,該方法的實(shí)施往往處在 用戶(hù)權(quán)限級(jí)別,因此,可以通過(guò)結(jié)束進(jìn)程或者反掛鉤等方法來(lái)繞過(guò)監(jiān)控。第三種查殺手段是監(jiān)控程序行為特征,它主要是查看程序行為是否可信,如果非 可信則掛起進(jìn)程并警告用戶(hù)。由于該種查殺手段單純依靠行為特征來(lái)判斷一個(gè)程序的行為 是否可信存在很大的問(wèn)題,因此無(wú)法從根本上區(qū)分正常程序行為和可疑程序行為,而且由 于非可執(zhí)行文檔的掛馬是利用打開(kāi)程序的溢出來(lái)執(zhí)行代碼,因此,往往會(huì)被認(rèn)為是可信的。 顯然,在監(jiān)控非可執(zhí)行文檔掛馬方面單純依靠行為特征的方法存在盲點(diǎn)。

發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)之不足,提供一種非可執(zhí)行文件掛馬檢測(cè)方法及其裝置,它是利用非可執(zhí)行文件的特殊性,通過(guò)監(jiān)控模塊對(duì)程序是否釋放出可執(zhí)行文件的 監(jiān)控來(lái)防止系統(tǒng)中木馬或者遭到破壞。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是一種非可執(zhí)行文件掛馬檢測(cè)方法, 包括如下步驟由設(shè)置在操作系統(tǒng)用戶(hù)層的檢測(cè)程序確定要檢測(cè)的非可執(zhí)行文檔,并打開(kāi)該非可 執(zhí)行文檔的進(jìn)程信息;由設(shè)置在操作系統(tǒng)內(nèi)核層的監(jiān)控模塊監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn)程通信;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,判斷該非可執(zhí)行文檔 的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則通知操作系統(tǒng)用戶(hù)層的檢測(cè)程序掛起進(jìn)程、警告用 戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作,判斷該非可 執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否可疑,如果是則通知操作系統(tǒng)用戶(hù)層的檢測(cè)程 序掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控。進(jìn)一步的,操作系統(tǒng)用戶(hù)層的檢測(cè)程序在程序掛起、警告用戶(hù)和記錄可疑行為后, 還包括彈出對(duì)話(huà)框,讓用戶(hù)選擇是否允許執(zhí)行,如果用戶(hù)選擇允許執(zhí)行,則恢復(fù)進(jìn)程并繼續(xù) 監(jiān)控,如果用戶(hù)選擇不允許執(zhí)行,則結(jié)束進(jìn)程,并結(jié)束此次監(jiān)控。所述的操作系統(tǒng)內(nèi)核層的監(jiān)控模塊在攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作時(shí),是采用 IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作。所述的操作系統(tǒng)內(nèi)核層的監(jiān)控模塊在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建 文件操作時(shí),是判斷該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名是否為該操作系統(tǒng)下的可執(zhí)行文件 擴(kuò)展名,如果是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名可疑,如果不是則認(rèn)為該非可執(zhí) 行文檔的創(chuàng)建文件擴(kuò)展名不可疑。所述的操作系統(tǒng)內(nèi)核層的監(jiān)控模塊在攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作時(shí), 是采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作。所述的操作系統(tǒng)內(nèi)核層的監(jiān)控模塊在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建 文件的寫(xiě)文件操作時(shí),是判斷該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否含有該操 作系統(tǒng)下的可執(zhí)行文件的特征,如果是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格 式可疑,如果不是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式不可疑。一種非可執(zhí)行文件掛馬檢測(cè)裝置,包括一打開(kāi)進(jìn)程信息裝置,用來(lái)確定要檢測(cè)的非可執(zhí)行文檔,并打開(kāi)該非可執(zhí)行文檔 的進(jìn)程信息;一進(jìn)程通信監(jiān)視裝置,用來(lái)監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn)程通信;一第一攔截監(jiān)控進(jìn)程裝置,用來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,并判斷該非可執(zhí) 行文檔的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí) 行,如果不是則繼續(xù)監(jiān)控;一第二攔截監(jiān)控進(jìn)程裝置,用來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作,并判斷 該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否可疑,如果是則掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控;打開(kāi)進(jìn)程信息裝置的輸出與進(jìn)程通信監(jiān)視裝置的輸入相連接;進(jìn)程通信監(jiān)視裝置 的輸出與第一攔截監(jiān)控進(jìn)程裝置的輸入相連接;第一攔截監(jiān)控進(jìn)程裝置的輸出與第二攔截 監(jiān)控進(jìn)程裝置的輸入相連接。本發(fā)明的有益效果是,與現(xiàn)有技術(shù)的用于查殺木馬病毒的手段相比,由于本發(fā)明利用了非可執(zhí)行文件的掛馬特性,即在打開(kāi)程序溢出時(shí)釋放可執(zhí)行文件的特性,通過(guò)內(nèi)核 層驅(qū)動(dòng)實(shí)現(xiàn)檢測(cè)該程序是否釋放可執(zhí)行文件來(lái)判斷是否掛馬,因此該方法適用于檢測(cè)非可 執(zhí)行文檔在系統(tǒng)環(huán)境和軟件環(huán)境下存在危險(xiǎn)性的情況。此外,該方法在驅(qū)動(dòng)層進(jìn)行可執(zhí)行 文件格式的檢測(cè)更有效的保證了檢測(cè)的可靠性,從而在存在漏洞的系統(tǒng)環(huán)境下結(jié)合黑白名 單策略可以使誤報(bào)率降到以下;該方法及裝置還非常適用于一些經(jīng)常處理大批量非可 執(zhí)行文件的人員,對(duì)于收集的不明來(lái)源的文檔進(jìn)行檢測(cè),可以有效的保證既不漏掉有用信 息,又不受到病毒木馬的危害;該方法既適用于windows系統(tǒng)下的非可執(zhí)行文件的檢測(cè),也 適用于Unix,Mac OS等其它操作系統(tǒng)下的非可執(zhí)行文件的檢測(cè)。以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明;但本發(fā)明的一種非可執(zhí)行文 件掛馬檢測(cè)方法及其裝置不局限于實(shí)施例。


圖1是Windows系統(tǒng)文件操作的結(jié)構(gòu)圖;圖2是實(shí)現(xiàn)本發(fā)明的原理框圖;圖3是本發(fā)明方法的檢測(cè)流程圖;圖4是本發(fā)明裝置的示意圖。
具體實(shí)施例方式參見(jiàn)附圖所示,本發(fā)明的一種非可執(zhí)行文件掛馬檢測(cè)方法,包括如下步驟由設(shè)置在操作系統(tǒng)用戶(hù)層1的檢測(cè)程序11確定要檢測(cè)的非可執(zhí)行文檔,并打開(kāi)該 非可執(zhí)行文檔的進(jìn)程信息;由設(shè)置在操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn)程通 信;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊21攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,判斷該非可執(zhí)行 文檔的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則通知操作系統(tǒng)用戶(hù)層的檢測(cè)程序11掛起進(jìn)程、 警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊21攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作,判斷該 非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否可疑,如果是則通知操作系統(tǒng)用戶(hù)層的檢 測(cè)程序11掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控。進(jìn)一步的,操作系統(tǒng)用戶(hù)層的檢測(cè)程序11在程序掛起、警告用戶(hù)和記錄可疑行為 后,還包括彈出對(duì)話(huà)框,讓用戶(hù)選擇是否允許執(zhí)行,如果用戶(hù)選擇允許執(zhí)行,則恢復(fù)進(jìn)程并 繼續(xù)監(jiān)控,如果用戶(hù)選擇不允許執(zhí)行,則結(jié)束進(jìn)程,并結(jié)束此次監(jiān)控。其中操作系統(tǒng)內(nèi)核層的監(jiān)控模塊21在攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作時(shí),是采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊21在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件 操作時(shí),是判斷該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名是否為該操作系統(tǒng)下的可執(zhí)行文件擴(kuò)展 名,如果是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名可疑,如果不是則認(rèn)為該非可執(zhí)行文 檔的創(chuàng)建文件擴(kuò)展名不可疑;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊21在攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作時(shí),是 采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作;
操作系統(tǒng)內(nèi)核層的監(jiān)控模塊21在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件 的寫(xiě)文件操作時(shí),是判斷該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否含有該操作系 統(tǒng)下的可執(zhí)行文件的特征,如果是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式可 疑,如果不是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式不可疑。本發(fā)明的一種非可執(zhí)行文件掛馬檢測(cè)方法及其裝置,所要檢測(cè)的非可執(zhí)行文檔包 括word,excel, powerpoint文檔,*· pdf,*· swf文件等。由于很多文檔閱讀程序存在漏 洞,可以巧妙的構(gòu)造出一些畸形文檔,從而導(dǎo)致閱讀程序在解析這些文檔的時(shí)候程序發(fā)生 異常,而被跳轉(zhuǎn)到文檔中的一段代碼(shellcode)中執(zhí)行,黑客正是利用這個(gè)原理對(duì)一些 特定格式的文檔進(jìn)行掛馬,當(dāng)目標(biāo)用戶(hù)用特定瀏覽程序打開(kāi)該文檔時(shí),shellcode獲得執(zhí)行 權(quán)限,從而釋放木馬,進(jìn)行偽裝等等。由于非可執(zhí)行文件是借助打開(kāi)該文件的程序的進(jìn)程空間來(lái)運(yùn)行,其運(yùn)行周期隨該 程序結(jié)束而結(jié)束,因此勢(shì)必要將其主要功能模塊單獨(dú)釋放到文件系統(tǒng)中并使之運(yùn)行起來(lái), 才能保證當(dāng)該進(jìn)程退出時(shí)繼續(xù)執(zhí)行。因此釋放出可執(zhí)行文件是其進(jìn)行傳播的主要環(huán)節(jié)。而 無(wú)論利用何種軟件漏洞,攜帶木馬的非可執(zhí)行文檔都必須要將木馬文件解碼并釋放到某一 路徑下(通常是系統(tǒng)路徑或臨時(shí)目錄下)執(zhí)行。因此,如果直接掃描文件二進(jìn)制以試圖發(fā)現(xiàn) 是否攜帶可執(zhí)行文件的方法是不可行的,因?yàn)榇蟛糠謷祚R文件都會(huì)把木馬文件隱藏起來(lái), 所以無(wú)法通過(guò)靜態(tài)手段來(lái)得知文檔里是否藏有木馬。一般非可執(zhí)行文檔攜帶的木馬文件可 以是bat,vbs, exe, dll等,其中bat,vbs或其他腳本語(yǔ)言文件必須保證后綴名不變才可正 常執(zhí)行,而其他可執(zhí)行文件exe或者dll卻可能在后綴名為任何合法字符的情況下被執(zhí)行。 因而僅僅對(duì)擴(kuò)展名進(jìn)行過(guò)濾無(wú)法滿(mǎn)足需要。木馬要運(yùn)行起來(lái)首先要在shellCOde(非可執(zhí) 行文件中的一小段代碼)中將木馬解碼釋放到文件系統(tǒng)中,本發(fā)明通過(guò)在內(nèi)核層對(duì)打開(kāi)非 可執(zhí)行文件進(jìn)程的文件操作進(jìn)行監(jiān)控,檢測(cè)寫(xiě)入文件是否是符合操作系統(tǒng)規(guī)定的可執(zhí)行性 文件格式,例如Windows操作系統(tǒng)為PE文件格式,發(fā)現(xiàn)可執(zhí)行文件被創(chuàng)建和寫(xiě)入即掛起進(jìn) 程并警告用戶(hù)。圖1是Windows系統(tǒng)文件操作的結(jié)構(gòu)圖;CreateFile,ReadFile等API調(diào)用最終 通過(guò)系統(tǒng)調(diào)用表,由系統(tǒng)底層函數(shù)NtCreateFile,NtReadFile等實(shí)現(xiàn)。要監(jiān)控文件系統(tǒng)操 作主要有三種方法修改系統(tǒng)調(diào)用表、攔截系統(tǒng)調(diào)用和IRP(IA)Request Package)攔截。由 于NtCreateFile,ZwCreateFile等內(nèi)核函數(shù)也可以用來(lái)打開(kāi)設(shè)備或者某個(gè)對(duì)象,因此如果 采用攔截系統(tǒng)調(diào)用的方法,則需要攔截大量我們不需要的信息,這就增加了不必要的系統(tǒng) 開(kāi)銷(xiāo)。所以,我們采用IRP攔截的方式監(jiān)控系統(tǒng)的文件操作。IRP類(lèi)似于Windows應(yīng)用程序中的“消息”的概念。在Win32編程中,程序是 由“消息”驅(qū)動(dòng)的,不同消息會(huì)被分發(fā)到不同的消息處理函數(shù)中。文件1/0的相關(guān)函數(shù),如CreateFile、ReadFile, WriteFile, CloseHandle等函數(shù)在對(duì)應(yīng)的內(nèi)核處理函數(shù)ZwCreateFile, ZwReadFile, ZwffriteFile, ZwClose 會(huì)創(chuàng)建 IRP_MJ_CREATE、IRP_MJ_READ、 IRP_MJ_WRITE、IRP_MJ_CLOSE等IRP請(qǐng)求,并將IRP傳送到相應(yīng)的派遣函數(shù)中。如果我 們想攔截系統(tǒng)的文件操作,就必須攔截I/O管理器發(fā)向文件系統(tǒng)驅(qū)動(dòng)程序的IRP。而攔截 IRP最簡(jiǎn)單的方法莫過(guò)于創(chuàng)建一個(gè)上層過(guò)濾器設(shè)備對(duì)象并將之加入文件系統(tǒng)設(shè)備所在的 設(shè)備堆棧中。具體方法如下首先通過(guò)IoCreateDevice創(chuàng)建自己的設(shè)備對(duì)象,然后調(diào)用 IoGetDeviceObjectPointer 來(lái)得到文件系統(tǒng)設(shè)備(Ntfs,F(xiàn)astfat,Rdr 或 Mrxsmb,Cdfs)對(duì) 象的指針,最后通過(guò)IoAttachDeviceToDeviceStack或者IoAttachDevice等函數(shù),將自己 的設(shè)備放到設(shè)備堆棧上成為一個(gè)過(guò)濾器。在這個(gè)過(guò)濾器中攔截IRP_MJ_ CREATE請(qǐng)求來(lái)獲 得創(chuàng)建文件的信息,攔截IRP_MJ_WRITE請(qǐng)求并檢測(cè)文件內(nèi)容,發(fā)現(xiàn)創(chuàng)建并寫(xiě)入PE文件則通 知用戶(hù)層檢測(cè)程序,掛起進(jìn)程,彈出預(yù)警對(duì)話(huà)框。圖2是實(shí)現(xiàn)本發(fā)明的原理框圖;非可執(zhí)行文件掛馬檢測(cè)系統(tǒng)由檢測(cè)程序11和監(jiān) 控模塊21構(gòu)成;其中,檢測(cè)程序11部署在操作系統(tǒng)用戶(hù)層1對(duì)文件系統(tǒng)12產(chǎn)生作用,該 檢測(cè)程序11用來(lái)獲得打開(kāi)可疑非可執(zhí)行文件的進(jìn)程信息,包括進(jìn)程名和PID等,并和監(jiān)控 模塊21時(shí)行通信;監(jiān)控模塊21位于操作系統(tǒng)內(nèi)核層2,用驅(qū)動(dòng)實(shí)現(xiàn),用于監(jiān)視與進(jìn)程相關(guān) 的文件操作,監(jiān)控模塊21對(duì)I/O設(shè)備驅(qū)動(dòng)22產(chǎn)生作用。監(jiān)控模塊21的主要功能是與檢測(cè) 程序11通信,監(jiān)控與打開(kāi)非可執(zhí)行文件進(jìn)程相關(guān)的文件創(chuàng)建和寫(xiě)入操作,以檢測(cè)是否是可 執(zhí)行文件。其中可執(zhí)行文件的特征檢測(cè)的具體方法是通過(guò)對(duì)該操作系統(tǒng)下的可執(zhí)行文件格 式的特征來(lái)進(jìn)行判斷是否是可執(zhí)行文件而非單純通過(guò)判斷文件擴(kuò)展名。例如在Windows操 作系統(tǒng)下,可執(zhí)行文件(PE文件)的結(jié)構(gòu)特征是包含有IMAGE_DOS_HEADER(可選),IMAGE_ NT_HEADERS,其中主要需要判斷的是IMAGE_NT_HEADERS結(jié)構(gòu)體中是否包含標(biāo)志“ΡΕ\0\0”, 如果包括則判定為可執(zhí)行文件。而在UNIX/LINUX系統(tǒng)下可以通過(guò)檢測(cè)是否為a. out,elf 文件格式,或者通過(guò)檢測(cè)coff文件格式中的magic字段來(lái)判斷是否是可執(zhí)行文件。圖3是本發(fā)明方法的檢測(cè)流程圖;其包括如下步驟步驟Si,準(zhǔn)備就緒,任務(wù)開(kāi)始執(zhí)行,執(zhí)行步驟S2 ;步驟S2,由設(shè)置在操作系統(tǒng)用戶(hù)層1的檢測(cè)程序11確定要檢測(cè)的非可執(zhí)行文檔, 并打開(kāi)該非可執(zhí)行文檔的進(jìn)程信息,執(zhí)行步驟S3 ;該步驟中,比如要檢測(cè)windowsXP系統(tǒng)下 的一個(gè)*. doc文件,則首先需要找到*. doc文件關(guān)聯(lián)的進(jìn)程,假設(shè)該系統(tǒng)中*. doc關(guān)聯(lián)的進(jìn) 程為WINWORD, exe,則確定監(jiān)視的進(jìn)程為WINWORD, exe ;步驟S3,由設(shè)置在操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn) 程通信,執(zhí)行步驟S4;步驟S4,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,判斷該 非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則執(zhí)行步驟S7,否則執(zhí)行步驟S5 ;步驟S5,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21繼續(xù)監(jiān)控文件寫(xiě)操作,攔截監(jiān)控進(jìn)程的 創(chuàng)建文件的寫(xiě)文件操作,執(zhí)行步驟S6 ;步驟S6,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21判斷該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入 文件的格式是否為可執(zhí)行文件,如果是則執(zhí)行步驟S7,否則執(zhí)行步驟S12 ;步驟S7,監(jiān)控模塊21通知操作系統(tǒng)用戶(hù)層1的檢測(cè)程序11掛起進(jìn)程,并警告用 戶(hù),執(zhí)行步驟S8;
步驟S8,操作系統(tǒng)用戶(hù)層1的檢測(cè)程序11將可疑行為記錄下來(lái),執(zhí)行步驟S9 ;步驟S9,彈出提示是否允許執(zhí)行的對(duì)話(huà)框,如用戶(hù)選擇不允許執(zhí)行,則執(zhí)行步驟 S10,如用戶(hù)允許執(zhí)行,則執(zhí)行步驟Sll ;步驟S10,結(jié)束進(jìn)程,并結(jié)束此次監(jiān)控;步驟Sl 1,恢復(fù)進(jìn)程,執(zhí)行步驟S12 ;步驟S12,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21繼續(xù)執(zhí)行監(jiān)控操作,執(zhí)行步驟S13 ;步驟S13,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21結(jié)束監(jiān)控操作。
其中,上述步驟S4中,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21在攔截監(jiān)控進(jìn)程的創(chuàng)建文 件操作時(shí),是采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作的。該操作系統(tǒng)內(nèi)核層2的 監(jiān)控模塊21在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作時(shí),是判斷該非可執(zhí)行文 檔的創(chuàng)建文件擴(kuò)展名是否為該操作系統(tǒng)下的可執(zhí)行文件擴(kuò)展名,如果是則認(rèn)為該非可執(zhí)行 文檔的創(chuàng)建文件擴(kuò)展名可疑,如果不是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名不可疑;上述步驟S6中,操作系統(tǒng)內(nèi)核層2的監(jiān)控模塊21在攔截監(jiān)控進(jìn)程的創(chuàng)建文件的 寫(xiě)文件操作時(shí),是采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作的。該操作 系統(tǒng)內(nèi)核層2的監(jiān)控模塊21在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操 作時(shí),是判斷該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否含有該操作系統(tǒng)下的可執(zhí) 行文件的特征,如果是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式可疑,如果不 是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式不可疑;上述步驟S9中,當(dāng)系統(tǒng)用來(lái)檢測(cè)大量的文檔時(shí),也可以通過(guò)設(shè)置默認(rèn)選項(xiàng)來(lái)確定 當(dāng)檢測(cè)到文件可疑時(shí)的操作,例如,可以設(shè)置為發(fā)現(xiàn)可疑操作時(shí)禁止執(zhí)行,則此時(shí)不再?gòu)棾?對(duì)話(huà)框,而是直接記錄可疑文件,并包括生成什么路徑下的可執(zhí)行文件等等。本發(fā)明的一種非可執(zhí)行文件掛馬檢測(cè)裝置,其結(jié)構(gòu)框圖請(qǐng)參見(jiàn)圖4所示,它包括打開(kāi)進(jìn)程信息裝置3,用來(lái)確定要檢測(cè)的非可執(zhí)行文檔,并打開(kāi)該非可執(zhí)行文檔的 進(jìn)程信息;進(jìn)程通信監(jiān)視裝置4,用來(lái)監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn)程通信;第一攔截監(jiān)控進(jìn)程裝置5,用來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,并判斷該非可執(zhí) 行文檔的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí) 行,如果不是則繼續(xù)監(jiān)控;第二攔截監(jiān)控進(jìn)程裝置6,用來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作,并判斷該 非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否可疑,如果是則掛起進(jìn)程、警告用戶(hù)、記錄 可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控;其中,打開(kāi)進(jìn)程信息裝置3的輸出與進(jìn)程通信監(jiān)視裝置4的輸入相連接;進(jìn)程通信 監(jiān)視裝置4的輸出與第一攔截監(jiān)控進(jìn)程裝置5的輸入相連接;第一攔截監(jiān)控進(jìn)程裝置5的 輸出與第二攔截監(jiān)控進(jìn)程裝置6的輸入相連接。上述實(shí)施例僅用來(lái)進(jìn)一步說(shuō)明本發(fā)明的一種非可執(zhí)行文件掛馬檢測(cè)方法及其裝 置,但本發(fā)明并不局限于實(shí)施例,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn) 單修改、等同變化與修飾,均落入本發(fā)明技術(shù)方案的保護(hù)范圍內(nèi)。
權(quán)利要求
一種非可執(zhí)行文件掛馬檢測(cè)方法,其特征在于包括如下步驟由設(shè)置在操作系統(tǒng)用戶(hù)層的檢測(cè)程序確定要檢測(cè)的非可執(zhí)行文檔,并打開(kāi)該非可執(zhí)行文檔的進(jìn)程信息;由設(shè)置在操作系統(tǒng)內(nèi)核層的監(jiān)控模塊監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn)程通信;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,判斷該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則通知操作系統(tǒng)用戶(hù)層的檢測(cè)程序掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控;操作系統(tǒng)內(nèi)核層的監(jiān)控模塊攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作,判斷該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否可疑,如果是則通知操作系統(tǒng)用戶(hù)層的檢測(cè)程序掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控。
2.根據(jù)權(quán)利要求1所述的非可執(zhí)行文件掛馬檢測(cè)方法,其特征在于進(jìn)一步的,操作系 統(tǒng)用戶(hù)層的檢測(cè)程序在程序掛起、警告用戶(hù)和記錄可疑行為后,還包括彈出對(duì)話(huà)框,讓用戶(hù) 選擇是否允許執(zhí)行,如果用戶(hù)選擇允許執(zhí)行,則恢復(fù)進(jìn)程并繼續(xù)監(jiān)控,如果用戶(hù)選擇不允許 執(zhí)行,則結(jié)束進(jìn)程,并結(jié)束此次監(jiān)控。
3.根據(jù)權(quán)利要求1或2所述的非可執(zhí)行文件掛馬檢測(cè)方法,其特征在于所述的操作 系統(tǒng)內(nèi)核層的監(jiān)控模塊在攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作時(shí),是采用IRP攔截方法來(lái)攔截監(jiān) 控進(jìn)程的創(chuàng)建文件操作。
4.根據(jù)權(quán)利要求3所述的非可執(zhí)行文件掛馬檢測(cè)方法,其特征在于所述的操作系統(tǒng) 內(nèi)核層的監(jiān)控模塊在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作時(shí),是判斷該非可 執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名是否為該操作系統(tǒng)下的可執(zhí)行文件擴(kuò)展名,如果是則認(rèn)為該非 可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名可疑,如果不是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件擴(kuò)展名不 可疑。
5.根據(jù)權(quán)利要求1或2所述的非可執(zhí)行文件掛馬檢測(cè)方法,其特征在于所述的操作 系統(tǒng)內(nèi)核層的監(jiān)控模塊在攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作時(shí),是采用IRP攔截方法 來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作。
6.根據(jù)權(quán)利要求5所述的非可執(zhí)行文件掛馬檢測(cè)方法,其特征在于所述的操作系統(tǒng) 內(nèi)核層的監(jiān)控模塊在采用IRP攔截方法來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作時(shí),是判 斷該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否含有該操作系統(tǒng)下的可執(zhí)行文件的 特征,如果是則認(rèn)為該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式可疑,如果不是則認(rèn)為 該非可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式不可疑。
7.一種非可執(zhí)行文件掛馬檢測(cè)裝置,其特征在于包括一打開(kāi)進(jìn)程信息裝置,用來(lái)確定要檢測(cè)的非可執(zhí)行文檔,并打開(kāi)該非可執(zhí)行文檔的進(jìn) 程信息;一進(jìn)程通信監(jiān)視裝置,用來(lái)監(jiān)視打開(kāi)該非可執(zhí)行文檔的進(jìn)程通信;一第一攔截監(jiān)控進(jìn)程裝置,用來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件操作,并判斷該非可執(zhí)行文 檔的創(chuàng)建文件擴(kuò)展名是否可疑,如果是則掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行, 如果不是則繼續(xù)監(jiān)控;一第二攔截監(jiān)控進(jìn)程裝置,用來(lái)攔截監(jiān)控進(jìn)程的創(chuàng)建文件的寫(xiě)文件操作,并判斷該非 可執(zhí)行文檔的創(chuàng)建文件的寫(xiě)入文件的格式是否可疑,如果是則掛起進(jìn)程、警告用戶(hù)、記錄可疑行為并禁止執(zhí)行,如果不是則繼續(xù)監(jiān)控;打開(kāi)進(jìn)程信息裝置的輸出與進(jìn)程通信監(jiān)視裝置的輸入相連接;進(jìn)程通信監(jiān)視裝置的輸出與第一攔截監(jiān)控進(jìn)程裝置的輸入相連接;第一攔截監(jiān)控進(jìn)程裝置的輸出與第二攔截監(jiān)控 進(jìn)程裝置的輸入相連接。
全文摘要
本發(fā)明公開(kāi)了一種非可執(zhí)行文件掛馬檢測(cè)方法及其裝置,它利用非可執(zhí)行文件的掛馬特性,通過(guò)操作系統(tǒng)用戶(hù)層的檢測(cè)程序確定要監(jiān)視的進(jìn)程,并用操作系統(tǒng)內(nèi)核層的監(jiān)控模塊監(jiān)控進(jìn)程的創(chuàng)建文件操作,以判斷文件擴(kuò)展名是否為該系統(tǒng)下的可執(zhí)行文件擴(kuò)展名,以及判斷寫(xiě)入文件的格式是否含有該系統(tǒng)下的可執(zhí)行文件的格式特征,從而以此來(lái)判斷程序是否釋放出可執(zhí)行文件,即非可執(zhí)行文件是否掛馬。本發(fā)明不僅可以有效保證非可執(zhí)行文件掛馬檢測(cè)的可靠性,還適于處理批量非可執(zhí)行文件,以及適于多種操作系統(tǒng)使用。
文檔編號(hào)G06F21/22GK101826139SQ200910113120
公開(kāi)日2010年9月8日 申請(qǐng)日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者吳鴻偉, 張婷, 張永光 申請(qǐng)人:廈門(mén)市美亞柏科信息股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1