麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

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

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

【技術領域】
[0001]本發明涉及計算機安全【技術領域】,特別是涉及一種檢測腳本病毒的方法和裝置。

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


【發明內容】

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

【專利附圖】

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

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