最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

檢測(cè)腳本病毒的方法和裝置制造方法

文檔序號(hào):6621429閱讀:348來(lái)源:國(guó)知局
檢測(cè)腳本病毒的方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種檢測(cè)腳本病毒的方法和裝置。其中檢測(cè)腳本病毒的方法,包括:使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯;在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理;調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。從而利用預(yù)置的編譯器對(duì)待檢測(cè)的腳本進(jìn)行編譯,得到原本在腳本中隱藏的數(shù)據(jù)特征,得到原本在腳本中被隱藏的數(shù)據(jù)特征,然后使用至少一個(gè)殺毒引擎進(jìn)行腳本病毒檢測(cè),進(jìn)而實(shí)現(xiàn)對(duì)腳本病毒樣本的準(zhǔn)確識(shí)別,消除了腳本病毒帶來(lái)的安全隱患。
【專利說(shuō)明】檢測(cè)腳本病毒的方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)安全【技術(shù)領(lǐng)域】,特別是涉及一種檢測(cè)腳本病毒的方法和裝置。

【背景技術(shù)】
[0002]腳本(script)是使用一種特定的描述性語(yǔ)言,依據(jù)一定的格式編寫的可執(zhí)行文件,又稱作宏或批處理文件。一般來(lái)說(shuō)的計(jì)算機(jī)腳本程序是確定的一系列控制計(jì)算機(jī)進(jìn)行運(yùn)算操作動(dòng)作的組合,在其中可以實(shí)現(xiàn)一定的邏輯分支等。腳本程序在執(zhí)行時(shí),是由系統(tǒng)的一個(gè)解釋器,將其一條條的翻譯成機(jī)器可識(shí)別的指令,并按程序順序執(zhí)行。
[0003]腳本通??梢杂蓱?yīng)用程序臨時(shí)調(diào)用并執(zhí)行。各類腳本被廣泛地應(yīng)用于網(wǎng)頁(yè)設(shè)計(jì)等計(jì)算機(jī)應(yīng)用程序中,可以減小程序的規(guī)模和提高程序運(yùn)行速度。由于腳本的特點(diǎn)和使用廣泛性,也成為一些人進(jìn)行惡意攻擊的手段,例如在腳本中加入一些破壞計(jì)算機(jī)系統(tǒng)的命令,這樣當(dāng)用戶瀏覽網(wǎng)頁(yè)時(shí),一旦調(diào)用這類腳本,便會(huì)使用戶的系統(tǒng)受到攻擊,例如VBS腳本病毒、JS腳本病毒等都影響了大量計(jì)算機(jī)的安全。
[0004]因此,現(xiàn)有技術(shù)中也出現(xiàn)了針對(duì)腳本病毒的檢測(cè)方法,主要包括靜態(tài)特征匹配和動(dòng)態(tài)檢測(cè),其中靜態(tài)特征匹配是對(duì)腳本語(yǔ)句利用現(xiàn)有的惡意特征庫(kù)進(jìn)行特征匹配,而動(dòng)態(tài)查殺是在沙箱等安全環(huán)境下對(duì)腳本的運(yùn)行結(jié)果進(jìn)行檢測(cè)。然而隨著惡意腳本的制作技術(shù)的提高,也出現(xiàn)了針對(duì)以上兩種檢測(cè)方法規(guī)避的設(shè)計(jì),例如對(duì)腳本語(yǔ)句進(jìn)行拆分和冗余設(shè)計(jì)使之與惡意特征庫(kù)中特征不匹配,或者設(shè)置腳本的執(zhí)行條件避開(kāi)沙箱的動(dòng)態(tài)運(yùn)行。
[0005]因此現(xiàn)有技術(shù)中的腳本檢測(cè)技術(shù)的檢測(cè)結(jié)構(gòu)有可能不準(zhǔn)確,導(dǎo)致安全隱患。


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

[0006]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的檢測(cè)腳本病毒的裝置和相應(yīng)的檢測(cè)腳本病毒的方法。
[0007]本發(fā)明一個(gè)進(jìn)一步的目的是要提高腳本的檢測(cè)準(zhǔn)確程度。
[0008]依據(jù)本發(fā)明的一個(gè)方面,提供了一種基于檢測(cè)腳本病毒的方法。該檢測(cè)腳本病毒的方法,包括:使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯;在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理;調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。
[0009]可選地,在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理包括:清除待檢測(cè)腳本的代碼中包含的冗余變量;清除待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
[0010]可選地,清除待檢測(cè)腳本的代碼中包含的冗余變量包括:掃描待檢測(cè)腳本的代碼中的變量;確定變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行常量運(yùn)算;使用常量運(yùn)算后的結(jié)果重新賦值變量。
[0011]可選地,清除待檢測(cè)腳本的代碼中包含的冗余函數(shù)包括:掃描待檢測(cè)腳本的代碼中的函數(shù),確定待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系;根據(jù)函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。
[0012]可選地,殺毒引擎為多個(gè),調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描包括:調(diào)用多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征并對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
[0013]可選地,對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別包括:將數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或?qū)?shù)據(jù)特征中的動(dòng)態(tài)行為特征與殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。
[0014]可選地,靜態(tài)特征至少包括以下中的任意一種或多種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符。
[0015]可選地,動(dòng)態(tài)行為特征至少包括以下中的任意一種或多種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
[0016]根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種檢測(cè)腳本病毒的裝置。該檢測(cè)腳本病毒的裝置包括:編譯模塊,配置為使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯,并在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理;病毒檢測(cè)模塊,配置為調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。
[0017]可選地,編譯模塊包括:變量處理子模塊,配置為清除待檢測(cè)腳本的代碼中包含的冗余變量;函數(shù)處理子模塊,配置為清除待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
[0018]可選地,變量處理子模塊還被配置為:掃描待檢測(cè)腳本的代碼中的變量;確定變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行常量運(yùn)算;使用常量運(yùn)算后的結(jié)果重新賦值變量。
[0019]可選地,函數(shù)處理子模塊還被配置為:掃描待檢測(cè)腳本的代碼中的函數(shù),確定待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系;根據(jù)函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。
[0020]可選地,病毒檢測(cè)模塊使用的殺毒引擎為多個(gè),病毒檢測(cè)模塊包括:特征提取子模塊,配置為調(diào)用多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征;特征識(shí)別子模塊,配置為調(diào)用多個(gè)殺毒引擎分別對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
[0021]可選地,特征識(shí)別子模塊還配置為:將數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或?qū)?shù)據(jù)特征中的動(dòng)態(tài)行為特征與殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配,靜態(tài)特征至少包括以下中的任意一種或多種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符,動(dòng)態(tài)行為特征至少包括以下中的任意一種或多種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
[0022]本發(fā)明的檢測(cè)腳本病毒的方法,利用預(yù)置的編譯器對(duì)待檢測(cè)的腳本進(jìn)行精簡(jiǎn)處理,得到原本在腳本中被隱藏的數(shù)據(jù)特征,然后利用殺毒引擎對(duì)腳本進(jìn)行掃描,進(jìn)而實(shí)現(xiàn)對(duì)惡意腳本樣本的準(zhǔn)確識(shí)別,消除了腳本帶來(lái)的安全隱患。
[0023]進(jìn)一步地,本發(fā)明的檢測(cè)腳本病毒的方法可以對(duì)經(jīng)優(yōu)化的編譯器編譯后的腳本使用多個(gè)殺毒引擎進(jìn)行掃描,充分使用多個(gè)殺毒引擎的特點(diǎn),實(shí)現(xiàn)對(duì)腳本進(jìn)行靜態(tài)特征和動(dòng)態(tài)行為的匹配,可以更加全面地對(duì)腳本進(jìn)行檢測(cè),以及時(shí)對(duì)惡意腳本進(jìn)行處理,進(jìn)一步提高了網(wǎng)絡(luò)的安全性。
[0024]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
[0025]根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。

【專利附圖】

【附圖說(shuō)明】
[0026]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0027]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的裝置100的示意性透視圖;
[0028]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的裝置100的應(yīng)用架構(gòu)圖;
[0029]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的方法的示意圖;
[0030]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的方法中特征匹配的示意圖;以及
[0031]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的方法中集成多個(gè)殺毒引擎的示意圖。

【具體實(shí)施方式】
[0032]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0033]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的裝置100的示意性透視圖。該檢測(cè)腳本病毒的裝置100 —般性地可包括:編譯模塊110、病毒檢測(cè)模塊120,以上模塊可以根據(jù)本實(shí)施例的檢測(cè)腳本病毒的裝置100的功能配置靈活進(jìn)行配置,在一些優(yōu)選實(shí)施例中還可以通過(guò)增加新的模塊或在已有模塊中設(shè)置子模塊以達(dá)到更優(yōu)的技術(shù)效果或?qū)崿F(xiàn)新的功能,例如編譯模塊I1還可以設(shè)置有變量處理子模塊112和函數(shù)處理子模塊114,病毒檢測(cè)模塊120還可以設(shè)置有:特征提取子模塊122和特征識(shí)別子模塊124。
[0034]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的裝置100的應(yīng)用架構(gòu)圖,多臺(tái)安裝于終端202中通過(guò)網(wǎng)絡(luò)204與安全服務(wù)器206數(shù)據(jù)連接。本實(shí)施例的檢測(cè)腳本病毒的裝置100可以靈活地布置于終端202或安全服務(wù)器206,對(duì)獲取到的可疑腳本進(jìn)行檢測(cè),并相應(yīng)給出腳本病毒檢測(cè)結(jié)果。例如,終端202收集到可疑腳本,將該腳本上傳至安全服務(wù)器206,以供安全服務(wù)器206中的檢測(cè)腳本病毒的裝置100進(jìn)行腳本檢測(cè);或者終端202收集到可疑腳本,對(duì)該腳本進(jìn)行編譯,確定出腳本中的數(shù)據(jù)特征,將該特征上傳至安全服務(wù)器206進(jìn)行特征匹配;又或者安全服務(wù)器206將至少一個(gè)殺毒引擎下發(fā)給終端202,由終端202中的檢測(cè)腳本病毒的裝置100完成腳本的獲取、編譯、特征匹配等步驟。
[0035]優(yōu)選地,可以通過(guò)大量終端202收集腳本,并通過(guò)預(yù)置的優(yōu)化編譯器進(jìn)行編譯,得到待檢測(cè)腳本中隱藏的數(shù)據(jù)特征,將以上數(shù)據(jù)特征與腳本進(jìn)行關(guān)聯(lián),而通過(guò)安全服務(wù)器206依據(jù)各終端202上傳的數(shù)據(jù)特征在數(shù)據(jù)庫(kù)中進(jìn)行特征匹配,并進(jìn)一步地根據(jù)匹配結(jié)果對(duì)腳本指定相應(yīng)的清除或者屏蔽措施。本實(shí)施例的檢測(cè)腳本病毒的裝置100也可以獨(dú)自布置于終端202或安全服務(wù)器206中,本實(shí)施例并不對(duì)此進(jìn)行限制。
[0036]以上終端202并不局限于個(gè)人計(jì)算機(jī),也可以為各類便攜式電子設(shè)備、例如平板電腦、智能手機(jī)等。
[0037]在本實(shí)施例的檢測(cè)腳本病毒的裝置100的部件中,編譯模塊110配置為使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯,并在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理,以上預(yù)置的編譯器在對(duì)腳本進(jìn)行編譯的過(guò)程中,可以刪除腳本中的無(wú)用語(yǔ)句,并將語(yǔ)句進(jìn)行精簡(jiǎn)例如將語(yǔ)句中的常量進(jìn)行直接運(yùn)算,從而去除為進(jìn)行反檢測(cè)所做的設(shè)計(jì),得到隱藏在待檢測(cè)腳本中的特征。
[0038]在編譯模塊HO中,變量處理子模塊112可以配置為清除待檢測(cè)腳本的代碼中包含的冗余變量;函數(shù)處理子模塊114可以配置為清除待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
[0039]其中,變量處理子模塊112的處理流程可以包括:掃描待檢測(cè)腳本的代碼中的變量;確定變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行常量運(yùn)算;使用常量運(yùn)算后的結(jié)果重新賦值變量。例如在待檢測(cè)腳本中有些變量?jī)H在腳本的一處等式中出現(xiàn),未參與其他的運(yùn)算,就可以將該變量直接進(jìn)行清除,或者待檢測(cè)腳本中的變量賦值語(yǔ)句均為常量運(yùn)算,可以直接將該變量作為常量運(yùn)算。
[0040]函數(shù)處理子模塊114的處理流程可以包括:掃描待檢測(cè)腳本的代碼中的函數(shù),確定待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系;根據(jù)函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。例如對(duì)于某些函數(shù)在腳本的運(yùn)行過(guò)程未被調(diào)用,就可以將該函數(shù)認(rèn)定為冗余函數(shù)。
[0041]病毒檢測(cè)模塊120配置為調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。在一種可選的配置中,病毒檢測(cè)模塊120可以包括特征提取子模塊122和特征識(shí)別子模塊124。經(jīng)過(guò)以上編譯模塊110的處理,由于清理了一部分代碼,隱藏在代碼中的一些數(shù)據(jù)特征出現(xiàn),便于殺毒引擎全面地對(duì)腳本進(jìn)行病毒檢測(cè)。
[0042]在使用一種殺毒引擎的情況下,病毒檢測(cè)模塊120可以直接調(diào)用該殺毒引擎進(jìn)行腳本的特征提取,并利用該殺毒引擎預(yù)置的腳本病毒特征庫(kù)進(jìn)行惡意特征匹配。
[0043]為了防止單一的殺毒引擎查殺遺漏可能的惡意特征,保證全面地檢測(cè)腳本病毒,病毒檢測(cè)模塊120使用的殺毒引擎可以為多個(gè),其中特征提取子模塊122可以調(diào)用多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征;特征識(shí)別子模塊124調(diào)用多個(gè)殺毒引擎分別對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
[0044]調(diào)用多個(gè)殺毒引擎的動(dòng)作可以依次進(jìn)行,例如第一殺毒引擎完成病毒檢測(cè)后,依次執(zhí)行第二殺毒引擎、第三殺毒引擎的檢測(cè)流程。當(dāng)有殺毒引擎確定出腳本病毒或者所有預(yù)置的殺毒引擎均未發(fā)現(xiàn)腳本病毒時(shí),檢測(cè)過(guò)程結(jié)束。
[0045]調(diào)用多個(gè)殺毒引擎的動(dòng)作可以并行執(zhí)行,例如多個(gè)殺毒引擎同時(shí)對(duì)一個(gè)經(jīng)過(guò)優(yōu)化的編譯器編譯過(guò)的腳本進(jìn)行病毒檢測(cè),從而提高病毒檢測(cè)的效率。
[0046]具體地,特征識(shí)別子模塊124還配置為:將數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或?qū)?shù)據(jù)特征中的動(dòng)態(tài)行為特征與殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配,從而提高了腳本病毒的檢測(cè)準(zhǔn)確性。
[0047]以上特征識(shí)別子模塊124使用的靜態(tài)特征至少包括以下中的任意一種或多種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符,二其使用的動(dòng)態(tài)行為特征至少包括以下中的任意一種或多種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
[0048]其中靜態(tài)特征匹配的過(guò)程可以將腳本的靜態(tài)特征與殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配。具體的匹配可以包括:將腳本的二進(jìn)制文件與靜態(tài)特征庫(kù)中的已知惡意腳本二進(jìn)制文件進(jìn)行匹配,將腳本的函數(shù)結(jié)構(gòu)與靜態(tài)特征庫(kù)中的已知惡意腳本函數(shù)結(jié)構(gòu)進(jìn)行匹配,將腳本的至少部分字符串與靜態(tài)特征庫(kù)中的已知惡意腳本的字符串進(jìn)行匹配。
[0049]如果根據(jù)靜態(tài)特征庫(kù)無(wú)法判斷獲取的腳本是否為惡意腳本,則可以繼續(xù)從腳本中提取動(dòng)態(tài)行為特征,例如動(dòng)態(tài)特征匹配子模塊134可以通過(guò)跟蹤腳本的運(yùn)行行為,例如以Hook (鉤子函數(shù))、SSDT表(系統(tǒng)服務(wù)描述符表),DebugAPI (調(diào)試應(yīng)用函數(shù)接口 )等方式根據(jù)腳本的運(yùn)行行為。對(duì)于windows操作系統(tǒng),可以使用微軟提供的平臺(tái)WDK(驅(qū)動(dòng)程序工具包)來(lái)獲取腳本運(yùn)行行為。
[0050]動(dòng)態(tài)行為特征的匹配過(guò)程可以將腳本的動(dòng)態(tài)行為特征與殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。例如,將待檢測(cè)腳本的虛擬行為啟發(fā)時(shí)的行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配;將待檢測(cè)腳本的網(wǎng)絡(luò)行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征行匹配;待檢測(cè)腳本的在沙箱中運(yùn)行時(shí)的行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。
[0051]沙箱(Sandbox)可模擬代碼運(yùn)行的真實(shí)環(huán)境,并用相應(yīng)地安全機(jī)制隔離運(yùn)行惡意腳本帶來(lái)的安全問(wèn)題。通過(guò)沙箱技術(shù),代碼分析人員可以評(píng)估惡意代碼。虛擬機(jī)是一種典型的沙箱。它通過(guò)軟件仿真物理意義上的主機(jī),該主機(jī)就像在真實(shí)機(jī)器上啟動(dòng)運(yùn)行。常見(jiàn)的虛擬機(jī)包括VMware。在現(xiàn)有技術(shù)中直接在沙箱中運(yùn)行腳本,由于沙箱本身無(wú)法模擬所有的實(shí)際運(yùn)行情況,比如腳本中存在條件運(yùn)行,在沙箱不滿足該預(yù)設(shè)條件時(shí),有可能無(wú)法是腳本動(dòng)態(tài)行為出現(xiàn)。而在本實(shí)施例的檢測(cè)腳本病毒的裝置100中,對(duì)腳本進(jìn)行精簡(jiǎn)處理,清除了某些冗余的運(yùn)行條件,可以使腳本的動(dòng)態(tài)行為得到全面的模擬,從而可以進(jìn)行全面的動(dòng)態(tài)特征匹配,提高了腳本的檢測(cè)準(zhǔn)確程度。
[0052]本實(shí)施例的檢測(cè)腳本病毒的裝置100中,將待檢測(cè)腳本進(jìn)行編譯然后利用至少一個(gè)病毒殺毒引擎進(jìn)行病毒檢測(cè),由于編譯器將腳本的無(wú)用函數(shù)、代碼、變量、常量等進(jìn)行了清除,清除了腳本病毒制作者采取的代碼混淆措施,提高了病毒檢測(cè)的準(zhǔn)確程度。
[0053]本發(fā)明實(shí)施例還提供了一種檢測(cè)腳本病毒的方法,該檢測(cè)腳本病毒的方法可以由以上實(shí)施例介紹的任意一種檢測(cè)腳本病毒的裝置100來(lái)執(zhí)行,以提高腳本的安全檢測(cè)的準(zhǔn)確程度。圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的方法的示意圖,如圖所示,該檢測(cè)腳本病毒的方法包括以下步驟:
[0054]步驟S302,使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯;
[0055]步驟S304,在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理;
[0056]步驟S306,調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。
[0057]步驟S304中在編譯過(guò)程中對(duì)待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理可以包括:清除待檢測(cè)腳本的代碼中包含的冗余變量;以及清除待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
[0058]傳統(tǒng)的腳本是直接進(jìn)行解釋執(zhí)行,腳本解釋為機(jī)器代碼進(jìn)行執(zhí)行,一般不進(jìn)行編譯,而在實(shí)施例中首先使用編譯器對(duì)腳本進(jìn)行編譯,從而優(yōu)化了腳本代碼,既可以提高腳本的運(yùn)行速度,又可以去除腳本中的混淆代碼,可以確定出腳本的隱含特征。
[0059]具體地,清除待檢測(cè)腳本的代碼中包含的冗余變量包括:掃描待檢測(cè)腳本的代碼中的變量;確定變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行常量運(yùn)算;使用常量運(yùn)算后的結(jié)果重新賦值變量。清除待檢測(cè)腳本的代碼中包含的冗余函數(shù)包括:掃描待檢測(cè)腳本的代碼中的函數(shù),確定待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系;根據(jù)函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。
[0060]例如,腳本中包括某一字符串,在進(jìn)行防檢測(cè)處理時(shí),腳本設(shè)計(jì)者將該字符串進(jìn)行了拆分,此處舉例字符串為“ fromXcode ”,腳本中將“ from”、“X”、“ code ”進(jìn)行了切割,中間添加了冗余語(yǔ)句,此時(shí)現(xiàn)有技術(shù)中無(wú)法得到腳本中隱藏的“fromXcode”語(yǔ)句。而在本實(shí)施例的檢測(cè)腳本病毒的方法中可以使用編譯器對(duì)腳本進(jìn)行優(yōu)化,對(duì)于字符串類的靜態(tài)常量,就可以在編譯過(guò)程就可以將分割的“from”、“X”、“COde”拼接為“fromXcode”,這樣就得到了隱藏字符串。
[0061]對(duì)于動(dòng)態(tài)行為,如果腳本設(shè)置了運(yùn)行條件,僅在滿足條件,例如訪問(wèn)某一同一資源定位符時(shí),才會(huì)觸發(fā)拼接字符串的代碼,在現(xiàn)有的動(dòng)態(tài)行為檢測(cè)的過(guò)程中,可能滿足代碼的運(yùn)行條件。而在本實(shí)施例的檢測(cè)腳本病毒的方法中,編譯過(guò)程中就可以將運(yùn)行條件下的代碼進(jìn)行執(zhí)行,完成字符串的拼接,去掉了混淆代碼,在腳本的運(yùn)行過(guò)程可以提高速度。
[0062]而且腳本編譯過(guò)程中可以將一些無(wú)用的代碼進(jìn)行了清除,也可以減少腳本檢測(cè)的數(shù)據(jù)量,提高效率。
[0063]以上僅以字符串舉例說(shuō)明,步驟S304確定出隱藏的數(shù)據(jù)特征可以包括以下至少一項(xiàng):二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符。
[0064]步驟S306調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描的流程可以為調(diào)用多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征并對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。惡意特征識(shí)別可以包括:靜態(tài)特征匹配和動(dòng)態(tài)特征匹配。
[0065]在使用一種殺毒引擎的情況下,步驟S306的一種流程可以直接調(diào)用該殺毒引擎進(jìn)行腳本的特征提取,并利用該殺毒引擎預(yù)置的腳本病毒特征庫(kù)進(jìn)行惡意特征匹配。
[0066]為了防止單一的殺毒引擎查殺遺漏可能的惡意特征,保證全面地檢測(cè)腳本病毒,病毒檢測(cè)模塊120使用的殺毒引擎可以為多個(gè),其中特征提取子模塊122可以調(diào)用多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征;特征識(shí)別子模塊124調(diào)用多個(gè)殺毒引擎分別對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
[0067]調(diào)用多個(gè)殺毒引擎的動(dòng)作可以依次進(jìn)行,例如第一殺毒引擎完成病毒檢測(cè)后,依次執(zhí)行第二殺毒引擎、第三殺毒引擎的檢測(cè)流程。當(dāng)有殺毒引擎確定出腳本病毒或者所有預(yù)置的殺毒引擎均未發(fā)現(xiàn)腳本病毒時(shí),檢測(cè)過(guò)程結(jié)束。
[0068]調(diào)用多個(gè)殺毒引擎的動(dòng)作可以并行執(zhí)行,例如多個(gè)殺毒引擎同時(shí)對(duì)一個(gè)經(jīng)過(guò)優(yōu)化的編譯器編譯過(guò)的腳本進(jìn)行病毒檢測(cè),從而提高病毒檢測(cè)的效率。
[0069]病毒引擎對(duì)數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別包括:將數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或?qū)?shù)據(jù)特征中的動(dòng)態(tài)行為特征與殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。
[0070]其中靜態(tài)特征匹配將精簡(jiǎn)后的腳本的靜態(tài)特征與靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配,靜態(tài)特征至少包括以下中的任意一種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符。
[0071]動(dòng)態(tài)特征匹配將精簡(jiǎn)后的腳本的動(dòng)態(tài)行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。動(dòng)態(tài)行為特征至少包括以下中的任意一種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
[0072]靜態(tài)特征匹配具體的匹配可以包括:將腳本的二進(jìn)制文件與靜態(tài)特征庫(kù)中的已知惡意腳本二進(jìn)制文件進(jìn)行匹配,將腳本的函數(shù)結(jié)構(gòu)與靜態(tài)特征庫(kù)中的已知惡意腳本函數(shù)結(jié)構(gòu)進(jìn)行匹配,將腳本的至少部分字符串與靜態(tài)特征庫(kù)中的已知惡意腳本的字符串進(jìn)行匹配。
[0073]如果根據(jù)靜態(tài)特征庫(kù)無(wú)法判斷獲取的腳本是否為惡意腳本,則可以繼續(xù)從腳本中提取動(dòng)態(tài)行為特征,例如動(dòng)態(tài)特征匹配通過(guò)跟蹤腳本的運(yùn)行行為,例如以Hook(鉤子函數(shù))、SSDT表(系統(tǒng)服務(wù)描述符表),DebugAPI (調(diào)試應(yīng)用函數(shù)接口)等方式根據(jù)腳本的運(yùn)行行為。對(duì)于windows操作系統(tǒng),可以使用微軟提供的平臺(tái)WDK(驅(qū)動(dòng)程序工具包)來(lái)獲取腳本運(yùn)行行為。
[0074]例如,動(dòng)態(tài)特征匹配將待檢測(cè)腳本的虛擬行為啟發(fā)時(shí)的行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配;將待檢測(cè)腳本的網(wǎng)絡(luò)行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征行匹配;待檢測(cè)腳本的在沙箱中運(yùn)行時(shí)的行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。
[0075]沙箱(Sandbox)可模擬代碼運(yùn)行的真實(shí)環(huán)境,并用相應(yīng)地安全機(jī)制隔離運(yùn)行惡意腳本帶來(lái)的安全問(wèn)題。通過(guò)沙箱技術(shù),代碼分析人員可以評(píng)估惡意代碼。虛擬機(jī)是一種典型的沙箱。它通過(guò)軟件仿真物理意義上的主機(jī),該主機(jī)就像在真實(shí)機(jī)器上啟動(dòng)運(yùn)行。常見(jiàn)的虛擬機(jī)包括VMware。在現(xiàn)有技術(shù)中直接在沙箱中運(yùn)行腳本,由于沙箱本身無(wú)法模擬所有的實(shí)際運(yùn)行情況,比如腳本中存在條件運(yùn)行,在沙箱不滿足該預(yù)設(shè)條件時(shí),有可能無(wú)法是腳本動(dòng)態(tài)行為出現(xiàn)。而在本實(shí)施例的檢測(cè)腳本病毒的方法中,對(duì)腳本進(jìn)行編譯精簡(jiǎn)處理,清除了某些冗余的運(yùn)行條件,可以使腳本的動(dòng)態(tài)行為得到全面的模擬,從而可以進(jìn)行全面的動(dòng)態(tài)特征匹配,提高了腳本的檢測(cè)準(zhǔn)確程度。
[0076]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的方法中特征匹配的示意圖,殺毒引擎對(duì)經(jīng)過(guò)編譯后的腳本進(jìn)行特征匹配過(guò)程:二進(jìn)制文件匹配、函數(shù)結(jié)構(gòu)特征匹配、字符串特征匹配、虛擬行為特征匹配、網(wǎng)絡(luò)行為特征匹配、沙箱行為匹配、后臺(tái)特征匹配。
[0077]二進(jìn)制文件匹配可以將待檢測(cè)腳本中的二進(jìn)制文件與靜態(tài)特征庫(kù)中的已知惡意腳本的二進(jìn)制文件進(jìn)行匹配。其中二進(jìn)制文件可以是在編譯過(guò)程中進(jìn)行脫殼或卸出(dump)后的結(jié)果,從而可以提取出有效的特征信息,以避免殼或包對(duì)二進(jìn)制文件匹配的干擾。
[0078]函數(shù)結(jié)構(gòu)特征匹配將待檢測(cè)腳本的函數(shù)結(jié)構(gòu)與靜態(tài)特征庫(kù)中的已知惡意腳本的函數(shù)結(jié)構(gòu)進(jìn)行匹配。
[0079]字符串特征匹配將待檢測(cè)腳本的至少部分字符串與靜態(tài)特征庫(kù)中的已知惡意腳本的進(jìn)行匹配。
[0080]虛擬行為特征匹配將待檢測(cè)腳本的虛擬行為啟發(fā)時(shí)的行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。具體地,將待檢測(cè)腳本模擬執(zhí)行,分析待檢測(cè)腳本是否匹配惡意腳本行為規(guī)則。
[0081]網(wǎng)絡(luò)行為特征匹配將待檢測(cè)腳本的網(wǎng)絡(luò)行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。具體地,通過(guò)模擬執(zhí)行或虛擬機(jī)內(nèi)執(zhí)行,匹配網(wǎng)絡(luò)數(shù)據(jù)包規(guī)則。
[0082]沙箱行為匹配將待檢測(cè)腳本在沙箱中運(yùn)行時(shí)的行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。具體地,將惡意代碼樣本自動(dòng)放入VMware或Sandbox執(zhí)行,觀察待檢測(cè)腳本的是否觸發(fā)惡意規(guī)則。
[0083]后臺(tái)特征匹配將待檢測(cè)腳本在虛擬運(yùn)行時(shí)的后臺(tái)行為特征與動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。例如后臺(tái)行為可以是后臺(tái)升級(jí)行為。
[0084]當(dāng)待檢測(cè)腳本中的一項(xiàng)或多項(xiàng)特征與特征庫(kù)中的特征匹配,可以認(rèn)定待檢測(cè)腳本存在安全隱患,存在腳本病毒,需要及時(shí)向用戶進(jìn)行提示,并屏蔽惡意腳本的運(yùn)行。保護(hù)用戶不受侵害,提高了用戶訪問(wèn)網(wǎng)頁(yè)或使用其他客戶端的安全性。
[0085]以上是一個(gè)殺毒引擎進(jìn)行腳本病毒查殺的過(guò)程,在使用多個(gè)殺毒引擎進(jìn)行腳本病毒檢測(cè)時(shí),可以根據(jù)殺毒引擎具備的功能執(zhí)行以上特征匹配流程的至少一項(xiàng)或多項(xiàng)。
[0086]由于不同殺毒引擎的病毒特征庫(kù)以及查殺算法存在差異,因此使用多個(gè)殺毒引擎共同進(jìn)行病毒檢測(cè),提高了檢測(cè)的全面性和準(zhǔn)確性。
[0087]本實(shí)施例的腳本病毒的檢測(cè)方法中,多個(gè)殺毒引擎可以預(yù)置與同一殺毒客戶端中,以一個(gè)殺毒客戶端集成有第一殺毒引擎和第二殺毒引擎為例。第一殺毒引擎和第二殺毒引擎可以具體為針對(duì)腳本的不同特征進(jìn)行檢測(cè)。第一殺毒引擎和第二殺毒引擎之間可以采用并行查殺的方式,即當(dāng)?shù)谝粴⒍疽嬖跈z測(cè)某些腳本特征的過(guò)程中,第二殺毒引擎對(duì)另一些腳本特征進(jìn)行檢測(cè),既提高了檢測(cè)準(zhǔn)確性,也提高了檢測(cè)效率。
[0088]其中,第一殺毒引擎和第二殺毒引擎均可以采用本地檢測(cè)和云檢測(cè)的方式進(jìn)行檢測(cè)。例如第一殺毒引擎和第二殺毒引擎分別將其提取的腳本特征上傳給對(duì)應(yīng)的云端安全檢測(cè)器,然后接收云端的檢測(cè)結(jié)果。以上第一殺毒引擎和第二殺毒引擎可以從QVM(Qihc)0Virtual Machine,人工智能引擎)引擎、BitDefender殺毒引擎、小紅傘殺毒引擎或其他殺毒引擎中進(jìn)行選擇。
[0089]以上第一殺毒引擎和第二殺毒引擎檢測(cè)的腳本特征類型可以是重復(fù)的,從而利用其不同的特征匹配規(guī)則和特征庫(kù)實(shí)現(xiàn)腳本特征匹配。
[0090]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的檢測(cè)腳本病毒的方法中集成多個(gè)殺毒引擎的示意圖。圖5示出的用于對(duì)本實(shí)施例的腳本病毒的檢測(cè)方法內(nèi)部測(cè)試的病毒查殺客戶端中集成有QVMII人工智能引擎、小紅傘殺毒引擎、Bit Defender殺毒引擎、360云查殺引擎等多個(gè)病毒掃描引擎。另外在該病毒查殺客戶端中還集成了以上介紹的用于對(duì)待檢測(cè)腳本進(jìn)行編譯的編譯器。在該實(shí)施例的檢測(cè)腳本病毒的方法執(zhí)行過(guò)程中,在獲取待檢測(cè)腳本后,編譯器首先對(duì)待檢測(cè)樣本進(jìn)行編譯,消除可能的對(duì)腳本進(jìn)行的混淆處理,然后調(diào)用以上殺毒引擎進(jìn)行檢測(cè)。
[0091]進(jìn)一步地,本發(fā)明實(shí)施例中,還可以向一些高級(jí)用戶提供多引擎的選擇功能,用戶可以對(duì)預(yù)置的多個(gè)殺毒引擎進(jìn)行選擇設(shè)置,使用用戶開(kāi)啟的一個(gè)或多個(gè)殺毒引擎進(jìn)行腳本病毒的檢測(cè)。
[0092]本實(shí)施例的檢測(cè)腳本病毒的方法,利用預(yù)置的編譯器對(duì)待檢測(cè)的腳本進(jìn)行編譯,得到原本在腳本中隱藏的數(shù)據(jù)特征,然后使用至少一個(gè)殺毒引擎進(jìn)行腳本病毒檢測(cè),進(jìn)而實(shí)現(xiàn)對(duì)腳本病毒樣本的準(zhǔn)確識(shí)別,消除了腳本帶來(lái)的安全隱患。
[0093]在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。
[0094]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0095]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0096]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0097]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例檢測(cè)腳本病毒的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0098]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0099]至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,雖然本文已詳盡示出和描述了本發(fā)明的多個(gè)示例性實(shí)施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開(kāi)的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。
[0100]本發(fā)明實(shí)施例還提供了 Al.—種檢測(cè)腳本病毒的方法,包括:
[0101]使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯,
[0102]在編譯過(guò)程中對(duì)所述待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理;
[0103]調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。
[0104]A2.根據(jù)Al所述的方法,其中,在編譯過(guò)程中對(duì)所述待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理包括:
[0105]清除所述待檢測(cè)腳本的代碼中包含的冗余變量;
[0106]清除所述待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
[0107]A3.根據(jù)A2所述的方法,其中,清除所述待檢測(cè)腳本的代碼中包含的冗余變量包括:
[0108]掃描所述待檢測(cè)腳本的代碼中的變量;
[0109]確定所述變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行所述常量運(yùn)算;
[0110]使用所述常量運(yùn)算后的結(jié)果重新賦值所述變量。
[0111]A4.根據(jù)A2所述的方法,其中,清除所述待檢測(cè)腳本的代碼中包含的冗余函數(shù)包括:
[0112]掃描所述待檢測(cè)腳本的代碼中的函數(shù),確定所述待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系;
[0113]根據(jù)所述函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。
[0114]A5.根據(jù)Al至A4中任一項(xiàng)所述的方法,其中,所述殺毒引擎為多個(gè),
[0115]調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描包括:調(diào)用所述多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征并對(duì)所述數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
[0116]A6.根據(jù)A5所述的方法,其中,對(duì)所述數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別包括:
[0117]將所述數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或
[0118]將所述數(shù)據(jù)特征中的動(dòng)態(tài)行為特征與所述殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。
[0119]A7.根據(jù)A6所述的方法,其中,所述靜態(tài)特征至少包括以下中的任意一種或多種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符。
[0120]AS.根據(jù)A6所述的方法,其中,所述動(dòng)態(tài)行為特征至少包括以下中的任意一種或多種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
[0121]本發(fā)明實(shí)施例還提供了 B9.—種檢測(cè)腳本病毒的裝置,包括:
[0122]編譯模塊,配置為使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯,并在編譯過(guò)程中對(duì)所述待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理;
[0123]病毒檢測(cè)模塊,配置為調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。
[0124]B10.根據(jù)B9所述的裝置,其中,所述編譯模塊包括:
[0125]變量處理子模塊,配置為清除所述待檢測(cè)腳本的代碼中包含的冗余變量;
[0126]函數(shù)處理子模塊,配置為清除所述待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
[0127]Bll.根據(jù)BlO所述的裝置,其中,所述變量處理子模塊還被配置為:
[0128]掃描所述待檢測(cè)腳本的代碼中的變量;
[0129]確定所述變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行所述常量運(yùn)算;
[0130]使用所述常量運(yùn)算后的結(jié)果重新賦值所述變量。
[0131]B12.根據(jù)BlO所述的裝置,其中,所述函數(shù)處理子模塊還被配置為:
[0132]掃描所述待檢測(cè)腳本的代碼中的函數(shù),確定所述待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系;
[0133]根據(jù)所述函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。
[0134]B13.根據(jù)B9至B12中任一項(xiàng)所述的裝置,其中,
[0135]所述病毒檢測(cè)模塊使用的所述殺毒引擎為多個(gè),
[0136]所述病毒檢測(cè)模塊包括:
[0137]特征提取子模塊,配置為調(diào)用所述多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征;
[0138]特征識(shí)別子模塊,配置為調(diào)用所述多個(gè)殺毒引擎分別對(duì)所述數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
[0139]B14.根據(jù)B13所述的裝置,其中,特征識(shí)別子模塊還配置為:
[0140]將所述數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或
[0141]將所述數(shù)據(jù)特征中的動(dòng)態(tài)行為特征與所述殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配,
[0142]所述靜態(tài)特征至少包括以下中的任意一種或多種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符,
[0143]所述動(dòng)態(tài)行為特征至少包括以下中的任意一種或多種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
【權(quán)利要求】
1.一種檢測(cè)腳本病毒的方法,包括: 使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯, 在編譯過(guò)程中對(duì)所述待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理; 調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果O
2.根據(jù)權(quán)利要求1所述的方法,其中,在編譯過(guò)程中對(duì)所述待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理包括: 清除所述待檢測(cè)腳本的代碼中包含的冗余變量; 清除所述待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其中,清除所述待檢測(cè)腳本的代碼中包含的冗余變量包括: 掃描所述待檢測(cè)腳本的代碼中的變量; 確定所述變量的賦值代碼中包含常量運(yùn)算,并執(zhí)行所述常量運(yùn)算; 使用所述常量運(yùn)算后的結(jié)果重新賦值所述變量。
4.根據(jù)權(quán)利要求2所述的方法,其中,清除所述待檢測(cè)腳本的代碼中包含的冗余函數(shù)包括: 掃描所述待檢測(cè)腳本的代碼中的函數(shù),確定所述待檢測(cè)腳本中的函數(shù)調(diào)用關(guān)系; 根據(jù)所述函數(shù)調(diào)用關(guān)系,確定出冗余函數(shù)并清除。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述殺毒引擎為多個(gè), 調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描包括:調(diào)用所述多個(gè)殺毒引擎分別從精簡(jiǎn)后的腳本中提取出數(shù)據(jù)特征并對(duì)所述數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別。
6.根據(jù)權(quán)利要求5所述的方法,其中,對(duì)所述數(shù)據(jù)特征進(jìn)行惡意特征識(shí)別包括: 將所述數(shù)據(jù)特征中的靜態(tài)特征與提取該特征的殺毒引擎的靜態(tài)特征庫(kù)中的已知靜態(tài)特征進(jìn)行匹配;和/或 將所述數(shù)據(jù)特征中的動(dòng)態(tài)行為特征與所述殺毒引擎的動(dòng)態(tài)行為特征庫(kù)中的已知?jiǎng)討B(tài)行為特征進(jìn)行匹配。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述靜態(tài)特征至少包括以下中的任意一種或多種:二進(jìn)制文件、函數(shù)結(jié)構(gòu)、字符串、數(shù)值、數(shù)組、函數(shù)、統(tǒng)一資源定位符。
8.根據(jù)權(quán)利要求6所述的方法,其中,所述動(dòng)態(tài)行為特征至少包括以下中的任意一種或多種:虛擬行為啟動(dòng)時(shí)的行為特征、網(wǎng)絡(luò)行為特征、沙箱中運(yùn)行時(shí)的行為特征、系統(tǒng)請(qǐng)求權(quán)限。
9.一種檢測(cè)腳本病毒的裝置,包括: 編譯模塊,配置為使用預(yù)置的編譯器對(duì)待檢測(cè)腳本進(jìn)行編譯,并在編譯過(guò)程中對(duì)所述待檢測(cè)腳本進(jìn)行精簡(jiǎn)處理; 病毒檢測(cè)模塊,配置為調(diào)用預(yù)先設(shè)置的至少一個(gè)殺毒引擎對(duì)精簡(jiǎn)后的腳本進(jìn)行掃描,得到腳本病毒檢測(cè)結(jié)果。
10.根據(jù)權(quán)利要求9所述的裝置,其中,所述編譯模塊包括: 變量處理子模塊,配置為清除所述待檢測(cè)腳本的代碼中包含的冗余變量; 函數(shù)處理子模塊,配置為清除所述待檢測(cè)腳本的代碼中包含的冗余函數(shù)。
【文檔編號(hào)】G06F21/00GK104134019SQ201410361072
【公開(kāi)日】2014年11月5日 申請(qǐng)日期:2014年7月25日 優(yōu)先權(quán)日:2014年7月25日
【發(fā)明者】陳卓, 唐海, 楊康, 邢超 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1