成人打一炮免费视频,亚洲天堂视频在线观看,97视频久久久,日本japanese护士色高清,五月婷婷丁香,日韩精品一级无码毛片免费,国产欧美日韩精品网红剧情演绎

檢測腳本病毒的方法和裝置制造方法

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

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

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


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

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

【專利附圖】

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

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