本申請要求于2015年10月22日提交的2015145266號俄羅斯聯(lián)邦專利申請的權(quán)益,其通過引用全部并入本文。
技術(shù)領(lǐng)域
實(shí)施例一般地涉及對可執(zhí)行文件的反病毒檢查(antivirus check)。更具體地,實(shí)施例涉及用于有策略地將可執(zhí)行文件從反病毒檢查中排除以優(yōu)化反病毒評估過程的系統(tǒng)和方法。
背景技術(shù):
執(zhí)行可執(zhí)行文件或可移植的可執(zhí)行(PE)文件(其每個可包括動態(tài)庫或動態(tài)鏈接庫(DLL))對于計算機(jī)系統(tǒng)用戶來說可能是有危險的。惡意代碼主要使用這類可執(zhí)行文件(例如,諸如病毒和木馬程序)傳播。因此,在執(zhí)行或運(yùn)行可執(zhí)行文件之前,建議進(jìn)行這類文件的反病毒測定(determinations)(或檢查)。傳統(tǒng)的反病毒檢查可基于簡單或復(fù)雜的檢查方法兩者。例如,簡單的檢查可以是簽名掃描,其允許從所有程序中檢測已知的惡意程序。然而,簽名掃描可能是耗時的過程,因?yàn)橛糜跈z查的反病毒數(shù)據(jù)庫常常是非常大的。在另一個示例中,復(fù)雜的檢查可包括分析可執(zhí)行文件的行為。這類系統(tǒng)可使用具有設(shè)計為用于文件的深度分析的分析模塊的代碼仿真器。前述檢查確保計算機(jī)系統(tǒng)資源和個人(包括機(jī)密)用戶數(shù)據(jù)這兩者的安全。前述檢查需要各種數(shù)量和類型的計算機(jī)資源(其典型地是有限的),這取決于所利用的檢查的類型。
此外,現(xiàn)今的計算機(jī)系統(tǒng)上可執(zhí)行文件的數(shù)目不斷增長,其影響對所有可執(zhí)行文件進(jìn)行反病毒檢查所需要的時間,以及為了實(shí)施相關(guān)檢查需要花費(fèi)的資源。結(jié)果,減少反病毒檢查所需要的計算機(jī)系統(tǒng)資源的方法很重要。
一些優(yōu)化反病毒檢查的方法典型地包括使用所謂的白名單或黑名單,或基于對文件修改的跟蹤(例如通過時間戳),在這之后實(shí)施檢查。這些方法還可基于特定類型的可執(zhí)行文件進(jìn)行,諸如:目標(biāo)碼、PE格式的可執(zhí)行文件、宏命令、或腳本等。
例如,美國專利7,490,352號描述了檢查可執(zhí)行文件在其開始執(zhí)行的時刻是否可信的方法。該方法包括確定正被檢查的文件是否屬于惡意文件類型,并驗(yàn)證文件的完整性和發(fā)送或運(yùn)行文件的源的可靠性。然而,這些方法具有一個非常大的缺點(diǎn);具體地,需要預(yù)先建立前述列表(名單)。因此,上述列表中所包括的可執(zhí)行文件已經(jīng)經(jīng)過較深的反病毒檢查至少一次,其通常涉及使用所有可用的反病毒技術(shù)的測定,包括前述的那些。因此,硬件資源和時間資源也因此已經(jīng)為較深的檢查和為了建立列表而被分配。然而,計算系統(tǒng)常常需要盡快并且盡可能使用最少的計算機(jī)資源來實(shí)施新的可執(zhí)行文件的反病毒檢查?!靶碌目蓤?zhí)行文件”意味著前述列表不包括這類文件或任何關(guān)于這類文件的信息。
因此,需要減少反病毒測定的持續(xù)時間的系統(tǒng)和方法,并且特別是用于包括第一次遇見的可執(zhí)行文件(“新的可執(zhí)行文件”)的那些檢查。因此,需要優(yōu)化反病毒檢查的系統(tǒng)和方法,包括允許在可執(zhí)行文件的反病毒檢查之前檢測可被確定為安全的那些可執(zhí)行文件、并將其從進(jìn)一步的反病毒檢查中排除的系統(tǒng)和方法。
技術(shù)實(shí)現(xiàn)要素:
實(shí)施例配置為通過將可執(zhí)行文件等從反病毒檢查中排除來優(yōu)化文件的反病毒檢查,具體地,所述可執(zhí)行文件為動態(tài)庫和/或資源庫,諸如新的可執(zhí)行格式(NE)文件。結(jié)果,通過排除那些不包含可執(zhí)行代碼的文件而加速了反病毒檢查。
在實(shí)施例中,用于將沒有可執(zhí)行代碼的可執(zhí)行文件從反病毒檢查中排除的系統(tǒng)包括:檢查工具,其配置為:接收可執(zhí)行文件用于反病毒檢查,將所述可執(zhí)行文件發(fā)送到分類工具(breakdown tool),以及基于從分析工具所接收的決策,將沒有可執(zhí)行代碼的可執(zhí)行文件從所述反病毒檢查中排除;所述分類工具配置為:分析所述可執(zhí)行文件的結(jié)構(gòu),并通過檢查所述可執(zhí)行文件的頭部來識別所述可執(zhí)行文件的格式,以及將關(guān)于所述可執(zhí)行文件的所述格式和所述可執(zhí)行文件的所述結(jié)構(gòu)的信息發(fā)送給所述分析工具;所述分析工具配置為:至少基于關(guān)于所述可執(zhí)行文件的所述格式的信息從數(shù)據(jù)庫中選擇條件列表,所述條件列表包括用于分析所述可執(zhí)行文件的所述結(jié)構(gòu)的多個條件,使用所選擇的條件列表對所述可執(zhí)行文件的所述結(jié)構(gòu)實(shí)施分析,所述分析包括檢查來自所述所選擇的條件列表中的每個條件是否滿足,基于所述分析建立結(jié)果,所述結(jié)果包括關(guān)于每個被檢查的條件是否滿足的信息,基于所述結(jié)果發(fā)布決策,其中所述決策是:當(dāng)來自所述條件列表的所有條件都滿足時,所述可執(zhí)行文件中不存在可執(zhí)行代碼,將所發(fā)布的決策發(fā)送給所述檢查工具;以及數(shù)據(jù)庫,其可操作地耦連到所述分析工具,并配置為存儲條件列表。
在另一實(shí)施例中,用于將沒有可執(zhí)行代碼的可執(zhí)行文件從反病毒檢查中排除的方法包括:使用檢查工具接收可執(zhí)行文件用于反病毒檢查;使用分類工具分析所述可執(zhí)行文件的結(jié)構(gòu),并通過檢查所述可執(zhí)行文件的頭部來識別所述可執(zhí)行文件的格式;使用分析工具至少基于關(guān)于所述可執(zhí)行文件的所述格式的信息從數(shù)據(jù)庫中選擇條件列表,所述條件列表包括用于分析所述可執(zhí)行文件的所述結(jié)構(gòu)的多個條件;使用分析工具使用所選擇的條件列表對所述可執(zhí)行文件的所述結(jié)構(gòu)實(shí)施分析,所述分析包括檢查來自所述所選擇的條件列表中的每個條件是否滿足;基于所述分析借助于所述檢查工具建立結(jié)果,所述結(jié)果包括關(guān)于每個被檢查的條件是否滿足的信息;基于所述結(jié)果發(fā)布決策,其中所述決策是:當(dāng)來自所述條件列表的所有條件都滿足時,所述可執(zhí)行文件中不存在可執(zhí)行代碼;以及使用所述檢查工具,基于所述發(fā)布的決策,將沒有可執(zhí)行代碼的可執(zhí)行文件從所述反病毒檢查中排除。
以上概述并非意在描述本文主題的每個示出的實(shí)施例或每個實(shí)現(xiàn)方案。隨后的附圖和詳細(xì)描述更具體地例示各實(shí)施例。
附圖說明
結(jié)合附圖考慮下面各實(shí)施例的詳細(xì)描述可更徹底地理解本發(fā)明,其中:
圖1是根據(jù)實(shí)施例的、用于優(yōu)化可執(zhí)行文件的反病毒檢查的系統(tǒng)的框圖。
圖2是根據(jù)實(shí)施例的、用于將可執(zhí)行文件從反病毒檢查中排除的方法的流程圖。
圖3是配置為實(shí)現(xiàn)實(shí)施例的計算機(jī)系統(tǒng)的框圖。
雖然各實(shí)施例可經(jīng)受各種修改和替代形式,其細(xì)節(jié)已通過在圖示中的示例的方式示出,并將進(jìn)行詳細(xì)描述。然而,應(yīng)予以理解的是,意圖并非將本發(fā)明限于所描述的特定實(shí)施例。相反,意圖覆蓋落入由權(quán)利要求所定義的主題內(nèi)容的精神和范圍內(nèi)的所有修改、等同物以及替代物。
具體實(shí)施方式
圖1是根據(jù)實(shí)施例的、用于優(yōu)化可執(zhí)行文件的反病毒檢查的系統(tǒng)10的框圖。具體地,圖1的優(yōu)化系統(tǒng)10配置為代表或?yàn)榱擞脩粼O(shè)備20的利益將一個或多個可執(zhí)行文件100從反病毒檢查中排除。用戶設(shè)備20可包括個人計算機(jī)、膝上型計算器、平板電腦、個人數(shù)字助理、移動設(shè)備、或任何其他配置為執(zhí)行可執(zhí)行文件的計算設(shè)備。如所描繪的,優(yōu)化系統(tǒng)10通常包括用于排除一個或多個可執(zhí)行文件100的反病毒系統(tǒng)110。
如下面將進(jìn)一步描述的,反病毒系統(tǒng)110通常包括檢查工具120和可執(zhí)行文件檢測系統(tǒng)130??蓤?zhí)行文件檢測系統(tǒng)130通常包括分類(breakdown)工具150、分析工具160、以及數(shù)據(jù)庫170。反病毒系統(tǒng)110可以經(jīng)由互聯(lián)網(wǎng)190、當(dāng)然也可能通過其他聯(lián)網(wǎng)配置可操作地耦連到反病毒服務(wù)器180。
在實(shí)施例中,反病毒檢查優(yōu)化系統(tǒng)10配置為通過將可執(zhí)行文件從反病毒檢查中排除來優(yōu)化反病毒檢查。在實(shí)施例中,可執(zhí)行文件100運(yùn)行處理被反病毒系統(tǒng)110攔截。在另一示例中,還可在使用諸如按需掃描(ODS)或基于主機(jī)的入侵防御系統(tǒng)(HIPS)的技術(shù)實(shí)施可執(zhí)行文件100的反病毒檢查的情況中利用優(yōu)化系統(tǒng)10。如本領(lǐng)域技術(shù)人員將容易理解的,本文僅以示例的方式提供定時、反病毒檢查和/或排除的示例,而非意在限制本申請的范圍。
此外,圖1描繪了如反病毒系統(tǒng)110所利用的可執(zhí)行文件檢測系統(tǒng)130的工具之間的示范性交互。如本文所描述的,可在可執(zhí)行文件100的反病毒檢查期間利用反病毒系統(tǒng)110的工具或模塊,其因此允許檢測可執(zhí)行文件100并且隨后從反病毒檢查中排除。在實(shí)施例中,“可執(zhí)行文件”可包括任何包括或匹配PE或NE格式的文件、或任何包括可執(zhí)行代碼的文件。具體地,PE格式文件可包括諸如動態(tài)鏈接庫(DLL)的動態(tài)庫。NE格式文件(此后稱為“NE文件”)可包括資源文件(庫),諸如包含視窗屏幕程序的文件(也稱為背景文件),可包括具有“scr”擴(kuò)展的文件。
如圖1中所描繪的,反病毒系統(tǒng)110的實(shí)施例包括檢查工具120和可執(zhí)行文件檢測系統(tǒng)130。檢查工具120配置為為了檢測惡意文件而實(shí)施包括可執(zhí)行文件100的文件的反病毒檢查。在實(shí)施例中,檢查工具120進(jìn)一步配置為隨后移除或修復(fù)惡意文件。檢查工具120可利用經(jīng)典的文件檢查方法,諸如使用一個或多個反病毒數(shù)據(jù)庫的簽名分析。在其他實(shí)施例中,檢查工具120可利用更復(fù)雜的檢查方法。復(fù)雜的檢查方法可包括文件仿真,其包括解析命令中的字節(jié)代碼,其中每個命令在虛擬的計算機(jī)副本上運(yùn)行。在實(shí)施例中,仿真包括當(dāng)命令運(yùn)行時監(jiān)控程序的行為或活動。在另一示例中,復(fù)雜的檢查方法可包括啟發(fā)式分析。在實(shí)施例中,啟發(fā)式分析包括分析諸如過去事件的信息以檢測未知的惡意程序。在另一示例中,復(fù)雜的檢查方法包括利用遠(yuǎn)程服務(wù),諸如信譽(yù)服務(wù)(例如包含文件上信息的可信服務(wù)器)。應(yīng)注意,所有上述檢查是消耗資源和/或耗時的操作。然而,檢測系統(tǒng)130允許確定諸如動態(tài)庫和NE文件的可執(zhí)行文件100是否包含可執(zhí)行代碼。在實(shí)施例中,不包含可執(zhí)行代碼的可執(zhí)行文件100被認(rèn)為是安全的文件。因此,無需對安全可執(zhí)行文件實(shí)施反病毒檢查。
然而,并非所有的可執(zhí)行文件格式都匹配特定的安全標(biāo)準(zhǔn),諸如缺乏可執(zhí)行代碼。為此,系統(tǒng)10的實(shí)施例可預(yù)先建立僅包含可匹配指定安全標(biāo)準(zhǔn)的文件格式的文件格式列表。例如,包括在格式列表中的僅特定格式的文件被發(fā)送到檢測系統(tǒng)130用于安全測定。根據(jù)實(shí)施例,格式列表是可更改的,這樣檢測系統(tǒng)130可專用于檢查特定文件或忽視特定文件。包含在格式列表中的文件格式的示例是用于各種操作系統(tǒng)(諸如Windows,Linus和Mac OS)的動態(tài)庫和NE文件(例如具有“scr”擴(kuò)展的背景文件)。
在另一實(shí)施例中,可在檢測系統(tǒng)130內(nèi)針對關(guān)于文件格式列表中正被檢查的類型的信息的可用性實(shí)施對文件格式的檢查。例如,檢查工具120可發(fā)送可執(zhí)行文件到檢測工具130。檢測系統(tǒng)130可使用分類工具150確定所接收的文件的格式。
為了實(shí)施反病毒檢查,檢查工具120可攔截程序執(zhí)行并發(fā)送一個或多個可執(zhí)行文件100(例如動態(tài)庫)到檢測系統(tǒng)130。例如,當(dāng)可執(zhí)行文件諸如Notepad.exe應(yīng)用運(yùn)行時,檢查工具120在應(yīng)用加載動態(tài)庫并打開其他文件時間期間進(jìn)行攔截。在一個實(shí)施例中,基于可執(zhí)行文件格式確定可執(zhí)行的類型。
如圖1所描繪的,檢測系統(tǒng)130包括分類工具150、分析工具160和數(shù)據(jù)庫170。分類工具150配置為分析可執(zhí)行文件(例如動態(tài)庫)的結(jié)構(gòu)。在實(shí)施例中,結(jié)構(gòu)測定包括至少確定可執(zhí)行文件的格式。在實(shí)施例中,對于動態(tài)庫,格式可以是如下中的一個:“本地DLL”或“.NET組件DLL”。
在實(shí)施例中,分類工具150還配置為確定是否存在包含在可執(zhí)行文件100的結(jié)構(gòu)中并被執(zhí)行的節(jié)(section)。例如,如果節(jié)可被執(zhí)行,這樣的測定可基于節(jié)的可執(zhí)行狀態(tài)(標(biāo)志)來進(jìn)行。分類工具150還可配置為確定可執(zhí)行文件的程序代碼開始執(zhí)行的地址(即進(jìn)入點(diǎn))。分類工具150可將關(guān)于可執(zhí)行文件100的格式的信息和它的結(jié)構(gòu)提供給分析工具160。
分析工具160配置為根據(jù)條件列表分析可執(zhí)行文件,例如動態(tài)庫(此后稱為“DLL文件”)。在實(shí)施例中,基于從分類工具150所接收的文件格式信息,從數(shù)據(jù)庫170選擇條件列表。因此,在實(shí)施例中,針對每個文件格式將存在一個條件列表。條件列表可包括用于分析可執(zhí)行文件(動態(tài)庫)的結(jié)構(gòu)的條件。在下面的示例中提供條件列表的示例。
分析本身包括檢查來自條件列表的每個條件針對正被檢查的特定文件(DLL文件)被滿足。在這之后,分析工具160可建立分析結(jié)果。分析結(jié)果可包括關(guān)于來自條件列表的每個條件是否已被滿足的信息。如果所有條件都滿足,分析工具160發(fā)布不存在可執(zhí)行代碼的決斷,并裁決正被檢查的文件為安全的。否則,如果至少一個條件未滿足,分析工具160發(fā)布存在可執(zhí)行代碼的決斷,并裁決正被檢查的文件為可疑的。結(jié)果,文件將隨后經(jīng)受反病毒檢查。分析工具160隨后將所發(fā)布的決斷提供給檢查工具120。相應(yīng)地,在檢查工具120獲得不存在可執(zhí)行代碼的決斷的實(shí)施例中,檢查工具120將該可執(zhí)行文件從反病毒檢查中排除。否則,如果檢查工具120獲得存在可執(zhí)行代碼的決斷,檢查工具120將實(shí)施反病毒檢查并發(fā)布關(guān)于該文件安全或惡意的決斷。
在實(shí)施例中,對于格式列表中的至少每個格式,數(shù)據(jù)庫170配置為存儲一個條件列表以用于在分析中使用。因此,當(dāng)向格式列表添加新的格式時,也將針對該新格式的新的條件列表添加到數(shù)據(jù)庫170。數(shù)據(jù)庫170也可不管格式列表而被填充,這樣條件列表可自組織地(ad hoc)被填充或沒有一對一比例的格式與條件列表。
在另一實(shí)施例中,可基于特定的未滿足條件而設(shè)置具體類型的反病毒檢查。例如,對于DLL文件,條件可指示輸出節(jié)(export section)的地址和大小必須等于0,即節(jié)必須為空。然而,如果輸出節(jié)包含任何信息(例如,需要什么函數(shù)用于文件的執(zhí)行以及可從什么地址接收該函數(shù)),這指示未滿足或失效的條件。這樣,來自節(jié)的該信息可在反病毒檢查期間被使用,例如,基于文件的相關(guān)“白名單”或“黑名單”或文件簽名使用簽名分析。
如圖1所示,反病毒系統(tǒng)110配置為可操作地耦連到反病毒服務(wù)器180。在實(shí)施例中,反病毒系統(tǒng)110和反病毒服務(wù)器180之間的接口允許經(jīng)由諸如互聯(lián)網(wǎng)190的各種網(wǎng)絡(luò)交換信息。例如,反病毒服務(wù)器180使與格式列表的新格式或新的或經(jīng)修改的條件列表相關(guān)的信息傳輸或以其他方式可用。進(jìn)一步地,反病毒系統(tǒng)110可將關(guān)于經(jīng)檢查和被排除的可執(zhí)行文件(動態(tài)庫)的信息傳輸?shù)椒床《痉?wù)器180或以其他方式對反病毒服務(wù)器180可用。
下面討論的是將Notepad.exe應(yīng)用的可執(zhí)行文件從反病毒檢查中排除的示例。當(dāng)Notepad.exe應(yīng)用運(yùn)行時,也加載包含Notepad.exe應(yīng)用運(yùn)作所需要的資源和函數(shù)的動態(tài)庫。例如,動態(tài)庫之一是Notepad.exe.mui動態(tài)庫。在操作中,反病毒系統(tǒng)110使用檢查工具120攔截動態(tài)庫Notepad.exe.mui的加載過程。在實(shí)施例中,檢查工具120可包含如上所述的格式列表。在該實(shí)施例中,檢查工具120配置為僅將匹配格式列表中的那些的文件發(fā)送到分類工具150或以其他方式使其對分類工具可用。在該示例中,Notepad.exe.mui動態(tài)庫是匹配格式列表中格式的DLL格式文件(此后稱為“DLL文件”)。因此,檢查工具120將動態(tài)庫發(fā)送到檢測系統(tǒng)130。具體地,將Notepad.exe.mui特別發(fā)送到分類工具150。
一旦接收到DLL文件,分類工具150將DLL文件的結(jié)構(gòu)進(jìn)行“分類”或分析。在將DLL文件結(jié)構(gòu)分類期間,通過檢查DLL文件在字段(field)“特征”中的數(shù)據(jù)頭(header)來確定(確認(rèn))DLL文件格式。在指定字段中,(在DLL文件中,例如,字段值被針對IMAGE_FILE_DLL結(jié)構(gòu)而設(shè)置)檢測相應(yīng)的標(biāo)志。對于DLL文件,分類工具150配置為確定文件屬于“本地DLL”動態(tài)庫類型。在此之后,分類工具150發(fā)送包括DLL文件(動態(tài)庫)100的格式的信息以及DLL文件結(jié)構(gòu)給分析工具160。
在實(shí)施例中,分類工具150配置為檢查是否存在可執(zhí)行節(jié)。例如,分類工具150可確定是否可執(zhí)行特定節(jié)。對于經(jīng)識別的可執(zhí)行節(jié),分類工具150還配置為檢查入口點(diǎn)或程序代碼執(zhí)行的開始。該數(shù)據(jù)(入口點(diǎn)和節(jié)的檢查)可以是隨前述信息和DLL文件結(jié)構(gòu)發(fā)送到分析工具160的附加的標(biāo)準(zhǔn)。例如,對于本地DLL格式動態(tài)庫,如下傳輸標(biāo)準(zhǔn)可以是強(qiáng)制性的:對于每個執(zhí)行節(jié),入口點(diǎn)必須指示零地址(0x00),并且在節(jié)陣列中不存在執(zhí)行狀態(tài)(標(biāo)志)。否則,如果至少一個標(biāo)準(zhǔn)未滿足,則分類工具150不將前述信息和DLL文件結(jié)構(gòu)發(fā)送給分析工具160,并且反而通知檢查工具120。相應(yīng)地,檢查工具120實(shí)施反病毒檢查。此外,在另一個實(shí)施例中,指定的標(biāo)準(zhǔn)可以是數(shù)據(jù)庫170中存儲的至少一個條件列表中包括的條件。
分析工具160基于從分類工具150所接收的關(guān)于DLL文件格式的信息從數(shù)據(jù)庫170選擇條件列表。條件列表的選擇是根據(jù)具體的文件格式。對于上述DLL文件(Notepad.exe.mui),條件列表根據(jù)“本地DLL”格式而選擇。例如,條件列表可以包含如下條件,意在用于IMAGE_DATA_DIRECTORY結(jié)構(gòu)陣列的分析:
-“資源表”節(jié)(資源節(jié))的地址和大小不等于零,即關(guān)于資源的信息存在;
-“輸出表”節(jié)(輸出節(jié))的地址和大小等于零,即不存在關(guān)于可輸出函數(shù)的信息;
-“輸入表”節(jié)(輸入節(jié))的地址和大小等于零,即不存在關(guān)于可輸入函數(shù)的信息;
-“輸入地址表”節(jié)(輸入表節(jié))的地址和大小等于零,即不存在關(guān)于輸入地址表的信息;以及
-“線程本地存儲”(TLS)表(線程存儲器節(jié))的地址和大小等于零,即不存在TLS。
在實(shí)施例中,條件列表包括前述條件中的至少三個。在其他實(shí)施例中,也可利用其他組合或聯(lián)合的條件。在其他實(shí)施例中,還可利用其他組合或鏈接條件。例如,第一條件可以觸發(fā)第二條件的評估。在另一示例中,第一條件可以觸發(fā)第二和第三條件兩者的評估等。
分析工具160還配置為根據(jù)所選擇的條件列表進(jìn)行DLL文件結(jié)構(gòu)的分析。在實(shí)施例中,根據(jù)條件列表對文件結(jié)構(gòu)的分析包括檢查來自條件列表的每個條件是否被滿足。在分析之后,分析工具160建立結(jié)果。結(jié)果包含關(guān)于條件是否滿足的信息。例如,結(jié)果可包括關(guān)于是否所有條件都滿足或是否至少一個條件未滿足的二進(jìn)制標(biāo)志。在另一個示例中,結(jié)果可包括關(guān)于滿足的一個或多個條件和未滿足的一個或多個條件的數(shù)據(jù)。在這類實(shí)施例中,可利用合適的數(shù)據(jù)結(jié)構(gòu)來包含條件數(shù)據(jù)。
回到Notepad示例,DLL文件(Notepad.exe.mui)的檢查結(jié)果對應(yīng)于所有條件都滿足的情況。因此,分析工具160發(fā)布存在可執(zhí)行代碼的決斷,以及至少基于可執(zhí)行代碼的存在,裁決被檢查的文件是安全的。在此之后,分析工具160將所發(fā)布的決策發(fā)送給檢查工具120或以其他方式使其對檢查工具120可用。檢查工具120隨后至少基于來自分析工具160的存在可執(zhí)行代碼的決策將DLL文件從反病毒檢查中排除。
在另一個示例中,可從反病毒檢查中排除系統(tǒng)資源文件。例如,可調(diào)用來自標(biāo)準(zhǔn)微軟.NET框架包的System.XML.resources.dll文件。相應(yīng)地,反病毒系統(tǒng)110可使用檢查工具120攔截System.XML.resources.dll文件(此后稱為“.NET文件”)的載入。隨后,將.NET文件發(fā)送到分類工具150或以其他方式使其對分類工具150可用。分類工具150隨后將.NET文件的結(jié)構(gòu)進(jìn)行分類。例如,分類工具150可通過字段“特征”中的文件頭確定.NET文件格式。在字段“特征”中,相關(guān)標(biāo)志的存在被檢測或以其他方式被確定。分類工具150可確定.NET文件屬于“.NET組件DLL”動態(tài)庫類型。在此之后,分類工具150將關(guān)于.NET文件100的格式的信息和它的結(jié)構(gòu)發(fā)送到分析工具160或以其他方式使其對分析工具160可用。
進(jìn)一步地,在實(shí)施例中,分類工具150還可檢查是否存在可執(zhí)行節(jié)(可被執(zhí)行的節(jié)),并可確定入口點(diǎn)(程序代碼執(zhí)行的開始)的地址。該數(shù)據(jù)可隨文件結(jié)構(gòu)數(shù)據(jù)被發(fā)送到分析工具160。例如,對于“.NET資源DLL”動態(tài)庫格式,以下的標(biāo)準(zhǔn)可以是強(qiáng)制性的:
-至多存在一節(jié)可被執(zhí)行,即該節(jié)在字段“特征”中具有相應(yīng)的標(biāo)志;以及
-入口點(diǎn)必須指示零地址(0х00)或根據(jù)具體節(jié)的入口點(diǎn)可被執(zhí)行;在該情況下,來自.NET文件的入口點(diǎn)指示從mscoree.dll庫調(diào)用_CorDllMain函數(shù)。否則,如果至少一個標(biāo)準(zhǔn)未滿足,則分類工具150不向分析工具160發(fā)送.NET文件格式和結(jié)構(gòu)信息,而是適當(dāng)?shù)赝ㄖ獧z查工具120。相應(yīng)地,檢查工具120隨后實(shí)施反病毒檢查。此外,在另一示例中,指定標(biāo)準(zhǔn)還可包括來自數(shù)據(jù)庫170中存儲的條件列表的條件。在實(shí)施例中紅,如果前述標(biāo)準(zhǔn)是條件,則分類工具不使用它們作為附加傳輸標(biāo)準(zhǔn)。
回到格式和結(jié)構(gòu)標(biāo)準(zhǔn)都滿足的示例,分析工具160如上所述地基于從分類工具150所接收的關(guān)于.NET文件格式的信息從數(shù)據(jù)庫170中選擇條件列表,并根據(jù)所選擇的條件列表實(shí)施對.NET文件的分析。對于.NET文件,條件列表可根據(jù).NET資源DLL格式而被選擇,并且可包含如下條件:
-到_CorDllMain可輸入函數(shù)的入口點(diǎn),在其中不存在其他可輸入函數(shù),并且_CorDllMain函數(shù)本身從mscoree.dll輸入;
-除了從mscoree.dll庫可輸入的函數(shù),不存在可輸入函數(shù);
-“輸出表”節(jié)(輸出節(jié))的地址和大小等于零,即不存在關(guān)于可輸出函數(shù)的信息;
-“線程本地存儲”(TLS)表(線程存儲器節(jié))的地址和大小等于零,即不存在TLS;
-.NET元數(shù)據(jù)節(jié)的地址和大小不等于零;
-管理的本地頭(ManagedNativeHeader)結(jié)構(gòu)的地址和大小等于零,即被檢查的.NET文件不是本地圖像(NativeImage)文件;
-存在可管理資源,其大小不等于零;以及
-掩蔽有效(MaskValid)字段沒有與以下方法中的表相關(guān)的位(bit):MethodDef、MethodPtr、MethodSemantics、MethodImpl以及MetodSpec。
在實(shí)施例中,條件列表包括前述條件中的至少三個。在其他實(shí)施例中,條件列表可包括前述條件中的少于三個。
在分析確定條件是否滿足之后,分析工具160建立相關(guān)的結(jié)果。結(jié)果包含關(guān)于是否來自條件列表的所有條件均滿足或是否至少一個條件未滿足的信息。例如NET文件,假定來自條件列表的所有上述條件都滿足。這樣,分析工具160發(fā)布存在可執(zhí)行代碼的決策,并裁決被檢查的文件是安全的。在此之后,分析工具160將所發(fā)布的決策發(fā)送給檢查工具120或以其他方式使其對檢查工具120可用。相應(yīng)地,檢查工具120基于存在可執(zhí)行代碼的至少一個決策將.NET文件從反病毒檢查中排除。
為了從反病毒檢查中被排除,其他匹配前述格式列表的文件格式可被分析。例如,可執(zhí)行DOS文件以及資源文件(諸如字體文件)是MZ-NE格式文件的示例。因此,對于上述文件格式,用于執(zhí)行文件分析的條件列表可與文件格式相對應(yīng)。例如,條件列表可包含以下條件:
-節(jié)的數(shù)目等于零(文件段(segment)數(shù)=0,自動數(shù)據(jù)段數(shù)=0);
-堆(heap)分配節(jié)(存儲器分配節(jié))的地址和大小等于零;
-堆棧(stack)分配節(jié)(堆棧中的位置)的地址和大小等于零;
-控制寄存器以零開始(IP=0,CS=0,SP=0,SS=0);以及
-不存在用于輸入的庫(輸入名稱(ImportNames)節(jié)指示零地址,0x0000)。
在另一實(shí)施例中,分析工具160配置為在文件分析期間實(shí)施順序的條件檢查。例如,僅當(dāng)前面的條件滿足后才檢查后面的條件。因此,如果一個條件未滿足,則分析工具160可中斷檢查,并將相應(yīng)的結(jié)果連同檢查因?yàn)闂l件未滿足而被中斷的消息發(fā)送到檢查工具120。因此,檢查工具120根據(jù)指定的條件將實(shí)施反病毒檢查。
參考圖2,描繪了根據(jù)實(shí)施例的用于將可執(zhí)行文件從反病毒檢查中排除的方法200的流程圖。具體地,方法200適于將諸如缺乏可執(zhí)行代碼的動態(tài)庫的可執(zhí)行文件100從反病毒檢查中排除。在反病毒處理期間,如果文件被裁決為可執(zhí)行的,那么,在對該文件進(jìn)行反病毒檢查之前,方法200被應(yīng)用以從反病毒檢查中排除該可執(zhí)行文件?;诜椒?00的結(jié)果,可做出決策以從反病毒檢查中排除可執(zhí)行文件。如本文所描述的,方法200可特別用于排除動態(tài)庫和NE文件。
在210,接收待解決(at-issue)的可執(zhí)行文件用于反病毒檢查。在另一實(shí)施例中,攔截可執(zhí)行文件的運(yùn)行過程。例如,可利用檢查工具120接收可執(zhí)行文件。檢查工具120可隨后將所接收的文件發(fā)送給分類工具150或以其他方式使其對分類工具150可用。
在220,分類工具150基于分析文件結(jié)構(gòu)和在文件頭中的字段“特征”中檢測相應(yīng)的文件格式標(biāo)記來確定所接收文件的格式。例如,可做出文件是動態(tài)庫(本地DLL格式)、可控動態(tài)庫(.NET組件DLL)、或NE文件(MZ-NE格式)的測定。
在230,將經(jīng)確定的文件格式與文件格式列表相比較。格式列表包含如果后續(xù)檢查成功則可從反病毒檢查中排除的文件的格式。如果文件的格式存在于格式列表中,則分類工具150對文件實(shí)施進(jìn)一步的分類或分析。否則,由檢查工具120在235對文件實(shí)施反病毒檢查。
回到文件格式與格式列表中的格式之一相匹配的情況,分類工具150確定可被執(zhí)行的程序代碼的節(jié)。在實(shí)施例中,可被執(zhí)行的節(jié)可采用字段“特征”中的相關(guān)標(biāo)記來標(biāo)記。在240,在250確定可執(zhí)行文件中程序代碼執(zhí)行開始地址(入口點(diǎn))。在該情況下,將前述條件(對節(jié)和入口點(diǎn)的檢查)與針對特定文件格式的相關(guān)標(biāo)準(zhǔn)進(jìn)行比較。在圖1的描述中呈現(xiàn)240和250的示例。例如,針對本地DLL文件格式的這些條件(對節(jié)和入口點(diǎn)的檢查)必須滿足如下標(biāo)準(zhǔn):入口點(diǎn)必須指示零地址,針對每個可執(zhí)行節(jié)的節(jié)陣列開始處必須沒有可執(zhí)行標(biāo)記。如果上述條件未滿足,方法200停止于255。然后,通知檢查工具120,檢查工具120繼續(xù)到235。否則,分類工具150將關(guān)于文件格式和結(jié)構(gòu)的信息發(fā)送到分析工具160。
在260,分析工具160基于所接收的關(guān)于文件格式的信息選擇條件列表以用于進(jìn)行分析。
在270,分析工具160根據(jù)所選擇的條件列表實(shí)施分析并建立分析結(jié)果。在實(shí)施例中,在270的分析包括檢查來自條件列表的每個條件被滿足。分析結(jié)果可包括關(guān)于條件列表的每個條件滿足的信息。
在280,基于分析結(jié)果,建立所有條件都滿足的決策。這樣,如果至少一個條件未滿足,則分析工具160發(fā)布存在可執(zhí)行代碼的決策,并裁決被檢查的文件是可疑的,并要求在235使用檢查工具120進(jìn)行反病毒檢查。否則,如果所有條件均滿足,則分析工具160發(fā)布不存在可執(zhí)行代碼的決策,并裁決被檢查的文件是安全的。在此之后,分析工具160將不存在可執(zhí)行代碼的決策發(fā)送到檢查工具120或以其他方式使其對檢查工具120可用。
因此,基于所接收的決策,檢查工具120在290將可執(zhí)行文件從反病毒檢查中排除。
圖3是更詳細(xì)示出根據(jù)各實(shí)施例的、本文所描述的發(fā)明的各方面可在其上實(shí)現(xiàn)的計算機(jī)系統(tǒng)300的示意圖。
計算機(jī)系統(tǒng)300可包括諸如個人計算機(jī)320的計算設(shè)備,所述個人計算機(jī)320包括一個或多個處理單元321、系統(tǒng)存儲器322和系統(tǒng)總線323,其包含各系統(tǒng)組件,包括與一個或多個處理單元321連接的存儲器。在各實(shí)施例中,處理單元321可包括能夠處理存儲在計算機(jī)可讀介質(zhì)上的信息多個邏輯核。系統(tǒng)總線323實(shí)現(xiàn)為相關(guān)技術(shù)水平已知的任何總線結(jié)構(gòu),依次包含總線存儲器或總線存儲器控制器、外圍總線和本地總線,其能夠與任何其他總線架構(gòu)交互。系統(tǒng)存儲器可包括諸如只讀存儲器(ROM)324的非易失性存儲器,或諸如隨機(jī)存取存儲器(RAM325)的易失性存儲器?;据斎?輸出系統(tǒng)(BIOS)326包含確保個人計算機(jī)320的元件之間的信息傳輸?shù)幕境绦?,例如,在使用ROM 324啟動操作系統(tǒng)期間。
個人計算機(jī)320依次具有用于數(shù)據(jù)讀寫的硬盤驅(qū)動327、用于在可移動磁盤329上讀寫的磁盤驅(qū)動328、以及用于在可移動光盤331上讀寫的光驅(qū)330,可移動光盤331諸如CD-ROM、DVD-ROM、以及其他光介質(zhì)。硬盤驅(qū)動327、磁盤驅(qū)動328以及光驅(qū)330分別通過硬盤驅(qū)動接口332、磁盤驅(qū)動接口333和光驅(qū)接口334與系統(tǒng)總線323相連接。這些驅(qū)動和相應(yīng)的計算機(jī)信息截止表示不依賴能量的裝置,用于存儲計算機(jī)指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和個人計算機(jī)320上的其他數(shù)據(jù)。
所描繪的系統(tǒng)包括硬盤驅(qū)動327、可移動磁盤驅(qū)動329和可移動光驅(qū)330,但是應(yīng)理解可能使用其他類型的計算機(jī)介質(zhì),其能夠以計算機(jī)可讀形式(固態(tài)驅(qū)動、閃存卡、數(shù)字盤、隨機(jī)存取存儲器(RAM)等)存儲數(shù)據(jù),通過控制器355連接到系統(tǒng)總線323。
計算機(jī)320包括文件系統(tǒng)336,在其中存儲記錄的操作系統(tǒng)335、以及附加的程序應(yīng)用337、其他程序引擎338和程序數(shù)據(jù)339。用戶可使用輸入設(shè)備(鍵盤340、鼠標(biāo)342)將命令和信息輸入到個人計算機(jī)320。也可使用其他輸入設(shè)備(未示出),諸如麥克風(fēng)、操縱桿、游戲控制器、掃描儀等。這類輸入設(shè)備通常通過串行端口346連接到計算機(jī)系統(tǒng)320,串行端口346轉(zhuǎn)而連接到系統(tǒng)總線,但是它們還可以不同的方式連接——例如,使用并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器347或另外類型的顯示設(shè)備也通過諸如視頻適配器348的接口的連接到系統(tǒng)總線323。除了監(jiān)視器347,個人計算機(jī)320可配備有其他外圍輸出設(shè)備(未示出),諸如揚(yáng)聲器、打印機(jī)等。
個人計算機(jī)320能夠在網(wǎng)絡(luò)環(huán)境中工作;在該情況下,它使用網(wǎng)絡(luò)與一個或若干其他遠(yuǎn)程計算機(jī)349連接。一個或多個遠(yuǎn)程計算機(jī)349與個人計算機(jī)或服務(wù)器類似,其具有當(dāng)描述如圖3中所示的個人計算機(jī)320的內(nèi)容時早期陳述的以上元件中的大部分或全部。計算網(wǎng)絡(luò)還可具有其他設(shè)備,諸如路由器、網(wǎng)絡(luò)站、對等設(shè)備或其他網(wǎng)絡(luò)節(jié)點(diǎn)。
網(wǎng)絡(luò)連接可包括局域網(wǎng)(LAN)350和廣域網(wǎng)(WAN)。這類網(wǎng)絡(luò)用于企業(yè)計算機(jī)網(wǎng)絡(luò)或用于企業(yè)內(nèi)部網(wǎng)中,并通??山尤牖ヂ?lián)網(wǎng)。在LAN或WAN網(wǎng)絡(luò)中,個人計算機(jī)320通過網(wǎng)絡(luò)適配器或網(wǎng)絡(luò)接口351連接到局域網(wǎng)350。當(dāng)使用網(wǎng)絡(luò)時,個人計算機(jī)320可使用調(diào)制解調(diào)器354或其他裝置用于連接到廣域網(wǎng),諸如互聯(lián)網(wǎng)。為內(nèi)部或外部設(shè)備的調(diào)制解調(diào)器354通過串行端口346連接到系統(tǒng)總線323。應(yīng)該闡明,這些網(wǎng)絡(luò)連接僅是示例,且不必體現(xiàn)精確的網(wǎng)絡(luò)配置,即在現(xiàn)實(shí)中存在其他使用通信技術(shù)手段在計算機(jī)之間建立連接的裝置。
本文已描述系統(tǒng)、設(shè)備和方法的各實(shí)施例。這些實(shí)施例僅以示例的方式給出,而非意在限制所要求保護(hù)的發(fā)明的范圍。此外,應(yīng)理解,已描述的實(shí)施例的各特征可以各種方式加以組合以產(chǎn)生大量附加的實(shí)施例。此外,雖然已描述各種材料、尺寸、形狀、配置和位置等用于所公開的實(shí)施例,但可在不超過所要求保護(hù)的發(fā)明的范圍的情況下利用所公開那些以外的其他。
相關(guān)領(lǐng)域的普通技術(shù)人員將意識到,本文的主題可包括比上文所描述的任何單個實(shí)施例中所示出的更少的特征。本文所描述的實(shí)施例不意味著是本文的主題的各種特征可以其組合的方式的窮舉呈現(xiàn)。因此,這些實(shí)施例不是相互排斥的特征的組合;而是,如本領(lǐng)域的普通技術(shù)人員所理解的,各實(shí)施例可包括從不同的各個實(shí)施例中所選擇的不同的各個特征的組合。此外,關(guān)于一個實(shí)施例所描述的元素可在其他實(shí)施中實(shí)現(xiàn),即使在這類實(shí)施例中沒有描述,除非另有說明。
雖然從屬權(quán)利要求可能引用權(quán)利要求中一個或多個其他權(quán)利要求的特定組合,其他實(shí)施例也可包括該從屬權(quán)利要求與每個其他從屬權(quán)利要求的主題的組合,或一個或多個特征與其他從屬或獨(dú)立權(quán)利要求的組合。這類組合在本文中提出,除非說明某具體組合是不需要的。
限制通過引用上文文檔的任何合并,使得不合并與本文明確的公開相反的主題。進(jìn)一步限制通過引用上文文檔的任何合并,使得在文檔中所包括的權(quán)利要求不會通過引用被合并。還進(jìn)一步限制通過引用上文文檔的任何合并,使得除非本文明確加以包括,否則本文不通過引用對文檔中所提供的任何定義加以合并。
出于對本發(fā)明詮釋權(quán)利要求的目的,明確意圖的是,除非在權(quán)利要求中引述具體術(shù)語“用于……的裝置”或“用于……的步驟”,否則將不調(diào)用美國法典第35篇第112節(jié)第六段的條款。