專利名稱:反惡意軟件裝置、服務器和匹配惡意軟件模式的方法
技術(shù)領(lǐng)域:
符合示例性實施例的方法和設(shè)備涉及一種反惡意軟件裝置、服務器和匹配惡意軟件模式(malware pattern)的方法,更具體地說,涉及一種能夠在病毒模式匹配中最小化哈希沖突的反惡意軟件裝置、服務器和匹配惡意軟件模式的方法。
背景技術(shù):
惡意軟件(malware)是一種被設(shè)計為用于侵害計算機系統(tǒng)的軟件,諸如,計算機病毒、木馬程序、惡意代碼等。由于與打開附件或者下載并安裝軟件的傳統(tǒng)概念不同,僅通過點擊著名搜索頁面的鏈接或圖像,非期望的軟件就被安裝并且系統(tǒng)可被襲擊,所以需要留意惡意軟件。與計算機相比,對操作系統(tǒng)和文件系統(tǒng)的關(guān)注較少,而使用的數(shù)據(jù)的重要性相對較低,因此,迄今為止,對于無線通信系統(tǒng)的移動病毒并未被很好地識別和破壞。然而,隨著移動終端的硬件變得高端,并且其中運行的應用程序變得多樣和復雜, 過去攻擊計算機的惡意軟件很可能對移動終端造成嚴重的損害。具體說來,隨著移動終端互聯(lián)網(wǎng)服務(諸如WiBro)趨向于普及,除了攻擊計算機應用程序的脆弱性的惡意軟件之外,還出現(xiàn)了攻擊服務和便攜式終端應用程序(諸如,藍牙、多媒體消息系統(tǒng)(MMS)等)的脆弱性的移動惡意軟件。這些多樣的移動惡意軟件會造成嚴重的損害,包括引起便攜式終端的故障、數(shù)據(jù)的刪除或用戶隱私信息的泄露。
發(fā)明內(nèi)容
一個或多個示例性實施例可克服上述缺點以及以上未描述的其它缺點。然而,應理解一個或多個示例性實施例不需要克服上述缺點,并且可以不克服上述任何問題?!獋€或多個示例性實施例提供一種反惡意軟件裝置、服務器和匹配惡意軟件模式的方法,其在服務器選擇用于防止哈希沖突的哈希系數(shù)或哈希函數(shù),并將所述哈希系數(shù)或哈希函數(shù)發(fā)送到反惡意軟件裝置,由此最小化哈希沖突。一個或多個示例性實施例還提供一種用于匹配惡意軟件模式的反惡意軟件裝置、 服務器和方法,其在反惡意軟件系統(tǒng)的服務器中計算哈希系數(shù),由此在客戶機防止哈希沖突。根據(jù)示例性實施例的一方面,提供一種反惡意軟件裝置,所述反惡意軟件裝置包括哈希值產(chǎn)生單元,用于通過使用具有至少一個哈希系數(shù)的哈希函數(shù)來產(chǎn)生惡意軟件模式的哈希值以及目標數(shù)據(jù)的哈希值;哈希匹配器單元,用于將目標數(shù)據(jù)的哈希值匹配到惡意軟件模式的哈希值;以及匹配單元,如果哈希匹配器單元匹配成功,則所述匹配單元將惡意軟件模式與目標數(shù)據(jù)進行匹配。根據(jù)另一示例性實施例的一方面,提供一種用于將惡意軟件模式發(fā)送到反惡意軟件裝置的服務器,其中,所述反惡意軟件裝置通過使用具有哈希系數(shù)的哈希函數(shù)來執(zhí)行惡意軟件模式匹配,所述服務器包括更新單元,用于當惡意軟件模式被發(fā)送到反惡意軟件裝置時,將哈希系數(shù)發(fā)送到反惡意軟件裝置。根據(jù)另一示例性實施例的一方面,提供一種用于通過使用哈希系數(shù)來執(zhí)行惡意軟件模式匹配操作的方法,所述方法包括基于惡意軟件模式來選擇哈希系數(shù),使得惡意軟件模式的哈希值之間的沖突概率被最小化;通過使用選擇的哈希系數(shù)來計算惡意軟件的哈希值;當惡意軟件模式的哈希值中的至少一個與目標數(shù)據(jù)的哈希值彼此匹配時,將惡意軟件模式與目標數(shù)據(jù)進行匹配。根據(jù)另一示例性實施例的一方面,提供一種通過使用哈希函數(shù)進行的惡意軟件模式匹配方法,所述方法包括通過使用哈希函數(shù)來計算惡意軟件模式的哈希值;通過使用哈希函數(shù)來計算目標數(shù)據(jù)的哈希值;當惡意軟件模式的哈希值與目標數(shù)據(jù)的哈希值彼此匹配時,將惡意軟件模式與目標數(shù)據(jù)進行匹配;確定計算的惡意軟件模式數(shù)據(jù)的哈希值是否彼此沖突。示例性實施例的附加方面和優(yōu)點將在下面的詳細描述中進行闡述,將通過所述詳細描述而變得清楚,或者可通過對示例性實施例的實踐而獲知。
通過參照附圖進行的對示例性實施例的詳細描述,本發(fā)明的上述和/或其它方面將會更加清楚,其中圖1是根據(jù)本發(fā)明示例性實施例的反惡意軟件系統(tǒng)的框圖;圖2是根據(jù)本發(fā)明示例性實施例的用于解釋發(fā)送到反惡意軟件裝置的惡意軟件模式數(shù)據(jù)的包和/或文件的格式的示圖;圖3示意性示出在哈希值產(chǎn)生單元中產(chǎn)生用于第一惡意軟件模式數(shù)據(jù)中的病毒模式數(shù)據(jù)的哈希值的一系列操作;圖4是第一哈希匹配器表和第一子項匹配器(sub matcher)表;圖5是模式DB的表;圖6是第二哈希匹配器表和第二子項匹配器表;圖7是根據(jù)本發(fā)明另一示例性實施例的反惡意軟件系統(tǒng)的框圖;圖8是示出根據(jù)本發(fā)明示例性實施例的惡意軟件模式匹配方法中服務器的操作的流程圖;圖9是根據(jù)本發(fā)明示例性實施例的反惡意軟件裝置的惡意軟件模式匹配方法的流程圖;圖10是根據(jù)本發(fā)明示例性實施例的反惡意軟件裝置的惡意軟件模式匹配方法的更新操作的流程圖;圖11是根據(jù)本發(fā)明另一示例性實施例的反惡意軟件系統(tǒng)的框圖;圖12是根據(jù)本發(fā)明示例性實施例的在反惡意軟件系統(tǒng)中防止哈希沖突的方法的流程6
圖13是根據(jù)本發(fā)明示例性實施例的產(chǎn)生塊(block)的操作的流程圖;圖14是根據(jù)本發(fā)明示例性實施例的防止哈希沖突的操作的流程圖;圖15是根據(jù)本發(fā)明示例性實施例的處理哈希函數(shù)的操作的流程圖;以及圖16是根據(jù)本發(fā)明示例性實施例的由服務器執(zhí)行的更新操作的流程圖。
具體實施例方式現(xiàn)將參照附圖更加全面地描述示例性實施例,以闡明本發(fā)明的各方面、特點和優(yōu)點。然而,本發(fā)明可以按照許多不同的形式來實施,而不應被解釋為受限于這里闡述的示例性實施例。而提供了這些實施例,以使本公開將是全面和完整的,并將本發(fā)明的范圍充分傳達給本領(lǐng)域的普通技術(shù)人員。應理解當部件、層或區(qū)域被稱為在另一部件、層或區(qū)域“之上”時,所述部件、層或區(qū)域可以直接位于所述另一部件、層或區(qū)域之上,或者可插入部件、 層或區(qū)域。這里使用的術(shù)語僅僅是為了描述特定實施例,并不是為了限制本發(fā)明。如這里所使用的,單數(shù)形式意在還包括復數(shù)形式,除非上下文清楚地指示并非如此。還應理解當在說明書中使用術(shù)語“包括”時,所述術(shù)語“包括”表示存在聲明的特征、整數(shù)、步驟、操作、層、 區(qū)域、部件、組件和/或它們的組合,但是并不排除存在或者添加有一個或多個其它特征、 整數(shù)、步驟、操作、層、區(qū)域、部件、組件和/或它們的組合。如這里所使用的,術(shù)語“和/或” 包括一個或多個相關(guān)的列出項中的任何項或項組合。圖1是根據(jù)本發(fā)明示例性實施例的反惡意軟件系統(tǒng)的框圖。參照圖1,反惡意軟件系統(tǒng)包括服務器100和反惡意軟件裝置200。服務器100和反惡意軟件裝置200可通過網(wǎng)絡10彼此連接,以執(zhí)行通信。服務器100將惡意軟件模式數(shù)據(jù)庫(DB)和至少一個哈希系數(shù)發(fā)送到反惡意軟件裝置200。惡意軟件模式DB包括多個惡意軟件模式。惡意軟件模式(諸如病毒、木馬程序、 感染文件、惡意代碼等)會侵害文件。惡意軟件模式是被反惡意軟件裝置200用來檢測目標數(shù)據(jù)是否感染有惡意軟件的參考數(shù)據(jù)。惡意軟件模式可包括用于病毒掃描的病毒模式以及用于放火墻過濾的規(guī)則模式。后面將描述病毒模式和規(guī)則模式。哈希系數(shù)被用于在反惡意軟件裝置200中計算哈希值。哈希系數(shù)可被選為用于盡可能地防止哈希沖突的系數(shù)。根據(jù)本發(fā)明的實施例,哈希系數(shù)可包括基于惡意軟件模式的病毒模式選擇的病毒哈希系數(shù)以及基于規(guī)則模式選擇的規(guī)則哈希系數(shù)。如果更新惡意軟件模式被產(chǎn)生,則服務器100重新選擇哈希系數(shù),并將包括更新惡意軟件模式和重新選擇的哈希系數(shù)的更新惡意軟件模式DB發(fā)送到反惡意軟件裝置200。反惡意軟件裝置200通過使用具有至少一個哈希系數(shù)的哈希函數(shù)來執(zhí)行惡意軟件模式匹配。所述至少一個哈希系數(shù)由服務器100選擇。為此,反惡意軟件裝置200將從服務器100接收的惡意軟件模式DB中所包括的哈希系數(shù)用作哈希函數(shù)的系數(shù),并將惡意軟件模式代入哈希函數(shù)的參數(shù)。反惡意軟件裝置200可相應于移動電子裝置,諸如,片上系統(tǒng)、 筆記本、桌上型計算機、智能電話、智能卡、半導體知識產(chǎn)權(quán)芯片(IP)等。以下,“惡意軟件模式或多個惡意軟件模式”通常被稱為“惡意軟件模式數(shù)據(jù)”,“將被發(fā)送到反惡意軟件裝置 200的惡意軟件模式數(shù)據(jù)”或“先前存儲在反惡意軟件裝置200中的惡意軟件模式數(shù)據(jù)”被稱為“第一惡意軟件模式數(shù)據(jù)”,“將被發(fā)送到反惡意軟件裝置200的哈希系數(shù)”被稱為“第一哈希系數(shù)”,“具有第一哈希系數(shù)的哈希函數(shù)”被稱為“第一哈希函數(shù)”。此外,以下,如果從服務器100發(fā)送到反惡意軟件裝置200的第一惡意軟件模式數(shù)據(jù)是病毒模式數(shù)據(jù),則與病毒模式數(shù)據(jù)一起發(fā)送的第一哈希系數(shù)可以是病毒哈希系數(shù)。如果從服務器100發(fā)送到反惡意軟件裝置200的第一惡意軟件模式數(shù)據(jù)是規(guī)則模式數(shù)據(jù),則與規(guī)則模式數(shù)據(jù)一起發(fā)送的第一哈希系數(shù)可以是規(guī)則哈希系數(shù)。如果從服務器100發(fā)送到反惡意軟件裝置200的第一惡意軟件模式數(shù)據(jù)包括病毒模式數(shù)據(jù)和規(guī)則模式數(shù)據(jù)兩者,則與病毒模式數(shù)據(jù)和規(guī)則模式數(shù)據(jù)一起發(fā)送的第一哈希系數(shù)可包括病毒哈希系數(shù)和規(guī)則哈希系數(shù)。根據(jù)本發(fā)明的實施例,服務器100可包括哈希系數(shù)選擇單元110和更新單元120。當哈希函數(shù)被應用于第一惡意軟件模式數(shù)據(jù)時,哈希系數(shù)選擇單元110基于產(chǎn)生最小哈希沖突結(jié)果的哈希函數(shù)選擇將被發(fā)送到反惡意軟件裝置200的第一哈希系數(shù)。例如,當?shù)谝粣阂廛浖J綌?shù)據(jù)被應用于哈希函數(shù)時,哈希系數(shù)選擇單元110可通過使用以下算法來選擇第一哈希系數(shù),所述算法使獲得的哈希值的沖突概率最小化。更具體地說,哈希系數(shù)選擇單元110可通過使用多個候選哈希組(iN(N= 1,2…)來獲得第一惡意軟件模式數(shù)據(jù)的哈希值。每個候選哈希組&包括至少一個候選哈希系數(shù)。例如,第一候選哈希組G1包括候選哈希系數(shù)J^b1A1,第二候選哈希組(;2包括候選哈希系數(shù) 、b2、c2。 哈希系數(shù)選擇單元110可通過將候選哈希組G” G2,…的候選哈希系數(shù)應用于哈希函數(shù)來計算每個候選哈希組&的哈希值。在這一點上,哈希系數(shù)選擇單元110可基于反惡意軟件裝置200正在使用的第一惡意軟件模式數(shù)據(jù)來計算哈希值。哈希系數(shù)選擇單元110可對每個候選哈希組&的哈希值的沖突數(shù)量(即,哈希沖突的數(shù)量)進行計數(shù),并將具有最少哈希沖突的候選哈希組的哈希系數(shù)選擇為第一哈希系數(shù)。或者,當?shù)谝粣阂廛浖J綌?shù)據(jù)被應用于哈希函數(shù)時,哈希系數(shù)選擇單元110可將使獲得的哈希值的方差值最小化的哈希系數(shù)選為第一哈希系數(shù)。也就是說,如果每個候選哈希組&的哈希值被計算,則哈希系數(shù)選擇單元110可針對每個候選哈希組(^計算哈希值的方差值。哈希系數(shù)選擇單元110可確認導致針對每個候選哈希組計算的方差值中的最小方差值的計算的候選哈希組,并將確認的候選哈希組的哈希系數(shù)選為第一哈希系數(shù)。更新單元120在將第一惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置200時,可發(fā)送選擇的第一哈希系數(shù),作為惡意軟件模式數(shù)據(jù)。由更新單元120發(fā)送的第一哈希系數(shù)可被用于計算被發(fā)送到反惡意軟件裝置200的第一惡意軟件模式數(shù)據(jù)的哈希值。圖2是根據(jù)本發(fā)明示例性實施例的用于解釋被發(fā)送到反惡意軟件裝置200的惡意軟件模式數(shù)據(jù)的包和/或文件的格式的示圖。參照圖2,所述包和/或文件包括頭部項310、哈希項320和數(shù)據(jù)項330。更新單元120將頭部信息寫入頭部項310,將第一哈希系數(shù)寫入哈希項320,并將第一惡意軟件模式數(shù)據(jù)記錄在數(shù)據(jù)項330中。如果數(shù)據(jù)被寫入頭部項310、哈希項320和數(shù)據(jù)項330中,則更新單元120可按照SVD格式將包和/或文件發(fā)送到反惡意軟件裝置200。同時,下面,當存在將被更新的數(shù)據(jù)時,將描述第一惡意軟件模式數(shù)據(jù)。以下,“第一惡意軟件模式數(shù)據(jù)中將被更新的數(shù)據(jù)”被稱為“更新惡意軟件模式數(shù)據(jù)”,基于更新惡意軟件模式數(shù)據(jù)被進一步重新計算的哈希系數(shù)被稱為“第二哈希系數(shù)”,“具有第二哈希系數(shù)的哈希函數(shù)”被稱為“第二哈希函數(shù)”。
當更新惡意軟件模式數(shù)據(jù)和第一惡意軟件模式數(shù)據(jù)被用于哈希函數(shù)時,哈希系數(shù)選擇單元110可通過使用以下算法來選擇第二哈希系數(shù),所述算法使獲得的哈希值之間的沖突概率最小化。或者,當更新惡意軟件模式數(shù)據(jù)和第一惡意軟件模式數(shù)據(jù)被應用于哈希函數(shù)時,哈希系數(shù)選擇單元110可將使獲得的哈希值的方差值最小化的哈希系數(shù)作為第二哈希系數(shù)。更新單元120可將選擇的第二哈希系數(shù)和更新惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置200。參照圖2,更新單元120可將頭部信息寫入頭部項310,將第二哈希系數(shù)寫入哈希項320,將更新惡意軟件模式數(shù)據(jù)寫入數(shù)據(jù)項330,并將包和/或文件發(fā)送到反惡意軟件裝置200。返回參照圖1,根據(jù)本發(fā)明實施例的反惡意軟件裝置200可包括模式DB210、哈希值產(chǎn)生單元220、模式的哈希值表230、表產(chǎn)生單元M0、第一哈希匹配器表250、第一子項匹配器表255、第二哈希匹配器表沈0、第二子項匹配器表沈5、哈希匹配器單元270和匹配單
元 280 ο反惡意軟件裝置200按照圖2所示的SVD格式從服務器100接收包括第一惡意軟件模式數(shù)據(jù)和第一哈希系數(shù)的惡意軟件模式DB。惡意軟件模式DB中的第一惡意軟件模式數(shù)據(jù)被存儲在模式DB 210中的存儲器(未示出)中,第一哈希系數(shù)被輸入到哈希值產(chǎn)生單元 220。模式DB 210存儲從服務器100接收的第一惡意軟件模式數(shù)據(jù)。當匹配單元觀0 對目標數(shù)據(jù)執(zhí)行匹配時,第一惡意軟件模式數(shù)據(jù)可被用于檢測目標數(shù)據(jù)是否感染有惡意軟件。當從服務器100接收的第一惡意軟件模式數(shù)據(jù)包括病毒模式數(shù)據(jù)和規(guī)則模式數(shù)據(jù)兩者時,模式DB 210可包括病毒模式DB和規(guī)則模式DB。病毒模式DB和規(guī)則模式DB可被存儲在片上系統(tǒng)(SoC)中所包括的存儲器(未示出)中。病毒模式DB是病毒模式數(shù)據(jù)的集合,被用于對目標數(shù)據(jù)執(zhí)行病毒掃描。也就是說,病毒模式數(shù)據(jù)被用于檢測目標數(shù)據(jù)是否感染有病毒。規(guī)則模式DB是存儲規(guī)則模式數(shù)據(jù)的DB。規(guī)則模式數(shù)據(jù)被用于過濾從外部輸入的包數(shù)據(jù),即,用于確定是阻止還是允許所述包數(shù)據(jù)。規(guī)則模式數(shù)據(jù)可由用戶直接設(shè)置,或可被服務器100設(shè)置為默認值并發(fā)送到用戶裝置。哈希值產(chǎn)生單元220可通過使用從服務器100接收的第一哈希系數(shù)以及存儲在模式DB 210中的第一惡意軟件模式數(shù)據(jù)中的至少一個來產(chǎn)生第一惡意軟件模式數(shù)據(jù)的哈希值ΗΡ。也就是說,哈希值產(chǎn)生單元220可產(chǎn)生病毒模式數(shù)據(jù)的哈希值Hv或產(chǎn)生規(guī)則模式數(shù)據(jù)的哈希值Ηκ。因此,以下,哈希值Hp可以是哈希值Hv或哈希值Ηκ。由服務器100基于通過對于第一惡意軟件模式數(shù)據(jù)的哈希函數(shù)的最小哈希沖突結(jié)果來選擇第一哈希系數(shù)。第一哈希函數(shù)是被確定用于使針對將被發(fā)送到反惡意軟件裝置 200的第一惡意軟件模式數(shù)據(jù)而隨機獲得的哈希值之間的沖突概率最小化的函數(shù)。哈希值產(chǎn)生單元220可通過使用具有第一哈希系數(shù)的第一哈希函數(shù)來產(chǎn)生第一惡意軟件模式數(shù)據(jù)的哈希值?,F(xiàn)將參照圖3到圖5來描述通過在反惡意軟件裝置200中使用病毒模式數(shù)據(jù)和病毒哈希系數(shù)來產(chǎn)生病毒模式數(shù)據(jù)的哈希值,以及執(zhí)行病毒掃描的操作。
圖3示意性示出在哈希值產(chǎn)生單元220中產(chǎn)生用于第一惡意軟件模式數(shù)據(jù)中的病毒模式數(shù)據(jù)的哈希值的一系列操作。參照圖3,當哈希函數(shù)形式為f(H) = ax+by+c時,a、b、c指示哈希系數(shù),x、y、ζ 指示參數(shù)。因此,當從服務器110接收的第一哈希系數(shù)(即,病毒哈希系數(shù))SapbpC1 時,哈希值產(chǎn)生單元220可通過將&1、bp C1分別代入a、b、c來產(chǎn)生第一哈希函數(shù)f (H)= hx+biy+cp。哈希值產(chǎn)生單元220可將存儲在模式DB 210中的病毒模式數(shù)據(jù)的值輸入到 χ、y、z,并產(chǎn)生每個病毒模式數(shù)據(jù)的哈希值Hv。作為參數(shù)輸入的值可具有從病毒模式數(shù)據(jù)輸入的所有數(shù)值。也就是說,如果輸入?yún)?shù)值的數(shù)量是100,則一條病毒模式數(shù)據(jù)的哈希值的最大數(shù)量可以是100。如果全部病毒模式數(shù)據(jù)的哈希值Hv被產(chǎn)生,則哈希值產(chǎn)生單元220可產(chǎn)生模式的哈希值表230。模式的哈希值表230是由哈希值產(chǎn)生單元220產(chǎn)生的哈希值Hv與對應于哈希值 Hv的病毒模式數(shù)據(jù)的模式的映射表,并可被加載到存儲器(未示出)。在圖3中,當病毒模式數(shù)據(jù)中的任一哈希值為“X”時,與哈希值X對應的病毒模式數(shù)據(jù)的模式具有abcdefg。表產(chǎn)生單元240可基于模式的哈希值表230產(chǎn)生第一哈希匹配器表250和第一子項匹配器表255。圖4是第一哈希匹配器表250和第一子項匹配器表255。參照圖4的右側(cè)表,可從第一哈希函數(shù)產(chǎn)生的所有哈希值Hv被定義為索引。表產(chǎn)生單元240可產(chǎn)生第一哈希匹配器表250。例如,表產(chǎn)生單元240可將模式的哈希值表230的哈希值Hv與所有索引進行比較,如果哈希值Hv與索引相同,則將相同的索引設(shè)置為“1”。當沒有與哈希值Hv相同的索引時,使用值“0”,當存在與哈希值Hv相同的索引時,使用值“1”。圖3的模式的哈希值表包括與哈希值Hv相同的X和Y,因此,在圖4的第一哈希匹配器表250的索引X和Y處標示“1”。表產(chǎn)生單元240可通過使用模式的哈希值表230和第一哈希匹配器表250來產(chǎn)生第一子項匹配器表255。第一子項匹配器表255可被用于執(zhí)行用于在匹配單元觀0中的病毒掃描的輕微模式匹配(LPM,light pattern matching)和精確模式匹配(EPM,exact pattern matching)中的至少一個。后面將描述LPM和EPM。參照圖5,表產(chǎn)生單元240可針對第一哈希匹配器表250的所有索引中與哈希值Hv 相同的索引(包括X和Y)產(chǎn)生第一子項匹配器表255。以下,“所有索引中與哈希值比相同的索引”被稱為“匹配索引”。表產(chǎn)生單元240可通過使用與匹配索引對應的每個病毒模式數(shù)據(jù)的中間值和末尾值以及存儲了病毒模式數(shù)據(jù)的地址來產(chǎn)生第一子項匹配器表255。與匹配索引對應的每個病毒模式數(shù)據(jù)的中間值和末尾值可參照模式的哈希值表230。例如,如果匹配索引是X, 則X的模式為abcdefg。表產(chǎn)生單元240可確認模式的哈希值表中的模式abcdefg的中間值d和末尾值g。圖4的“病毒模式數(shù)據(jù)地址”是存儲有病毒模式數(shù)據(jù)的地址?!捌?”表示模式的頭部值與中間值之間的偏移?!捌?”表示模式的頭部值與末尾值之間的偏移。如果兩個或更多哈希值Hv與第一哈希匹配器表250中的索引相同,則認為已經(jīng)發(fā)生了哈希沖突。例如,如果兩個哈希值Hv與第一哈希匹配器表250中的索引相同,則“沖突模式的偏移”表示分配給所述兩個哈希值Hv之一的匹配索引。由于與所述兩個哈希值Hv對應的病毒模式數(shù)據(jù)不同,因此,所述兩個哈希值Hv可具有不同的中間值和末尾值。因此,表產(chǎn)生單元240通過向所述兩個哈希值Hv之一分配不同的匹配索引來產(chǎn)生第一子項匹配器表255。參照圖5,匹配索引X的沖突模式偏移為Z。這表示相同的哈希值Hv被映射到匹配索引Z。返回參照圖1,哈希值產(chǎn)生單元220可接收將對其執(zhí)行病毒掃描的目標數(shù)據(jù),并且還可產(chǎn)生目標數(shù)據(jù)的哈希值。目標數(shù)據(jù)可包括先前被劃分為預定義大小的多條子項數(shù)據(jù) Si、S2、S3…。在這種情況下,哈希值產(chǎn)生單元220可順序地接收子項數(shù)據(jù)Si、S2、S3…,并產(chǎn)生子項數(shù)據(jù)Si、S2、S3…的哈希值Hs。哈希值產(chǎn)生單元220可向匹配單元280提供產(chǎn)生的子項數(shù)據(jù)S1、S2、S3…的哈希值Hs。以下,將描述第一子項數(shù)據(jù)Sl和第一子項數(shù)據(jù)Sl的哈希值Hsi。哈希匹配器單元270可從哈希值產(chǎn)生單元220接收第一子項數(shù)據(jù)Sl的哈希值HS1。 哈希匹配器單元270可將第一子項數(shù)據(jù)Sl的哈希值Hsi匹配到第一哈希匹配器表250的標示“1”的索引(例如,X和Y)。標示“1”的匹配索引是病毒模式數(shù)據(jù)的哈希值Hv的一部分。與哈希匹配器單元270以接口相連的硬件(未示出)可確定匹配的成功。如果第一哈希匹配器表250的標示“1”的匹配索引(例如,X和Y)包括與第一子項數(shù)據(jù)Sl的哈希值Hsi相同的匹配索引,則所述硬件可確定匹配成功。例如,當?shù)谝蛔禹棓?shù)據(jù)Sl的哈希值 Hsi是X時,如果匹配索引包括X,則硬件確定匹配成功。如果通過哈希匹配器單元270使匹配成功,則匹配單元280可將至少一條病毒模式數(shù)據(jù)與第一子項數(shù)據(jù)Sl的模式進行匹配。更具體地說,匹配單元280可執(zhí)行將對應于與哈希值Hsi相同的匹配索引(例如,X)的病毒模式數(shù)據(jù)與第一子項數(shù)據(jù)Sl的模式進行匹配的操作。這是因為“與第一子項數(shù)據(jù)Sl的哈希值Hsi相同的匹配索引”是通過將病毒模式數(shù)據(jù)代入第一哈希函數(shù)而產(chǎn)生的哈希值。將病毒模式數(shù)據(jù)與第一子項數(shù)據(jù)Sl的模式進行匹配的結(jié)果影響對第一子項數(shù)據(jù)S是否感染有惡意軟件的判定。為此,匹配單元280可使用LPM和EPM。LPM是一種通過使用病毒模式數(shù)據(jù)以及第一子項數(shù)據(jù)Sl的中間值和末尾值來匹配模式的方法。更具體地說,匹配單元280確認第一子項匹配器表255中與第一子項數(shù)據(jù) Sl的哈希值Hsi相同的匹配索引(例如,X)的中間值和末尾值。匹配單元280確認第一子項數(shù)據(jù)Sl的中間值和末尾值。匹配單元280將確認的匹配索引的中間值與第一子項數(shù)據(jù) Sl的中間值進行匹配,并將確認的匹配索引的末尾值與第一子項數(shù)據(jù)Sl的末尾值進行匹配。作為使用LPM的結(jié)果,如果中間值彼此不同或者末尾值彼此不同,則表示第一子項數(shù)據(jù)Sl不具有病毒模式數(shù)據(jù)的模式。因此,第一子項數(shù)據(jù)Sl可被確定為未感染有惡意軟件的正常數(shù)據(jù)。同時,作為使用LPM的結(jié)果,如果中間值彼此相同并且末尾值彼此相同,則匹配單元280可通過使用EPM來執(zhí)行模式匹配操作。更具體地說,作為使用LPM的結(jié)果,如果中間值和末尾值彼此相同,則匹配單元280可通過使用病毒模式數(shù)據(jù)和第一子項數(shù)據(jù)Sl的所有位置的值來對模式進行匹配。為此,匹配單元280基于第一子項匹配器表255來確認被映射到并存儲在匹配索
11引X中的病毒模式數(shù)據(jù)的地址。匹配單元280從存儲器(未示出)讀取存儲在確認的地址中的病毒模式數(shù)據(jù)的模式。模式DB 210或模式的哈希值表230可被加載到存儲器中。圖 5是模式DB 210的表。匹配單元280將存儲在對應的地址中的病毒模式數(shù)據(jù)的全部模式 abcdefg與第一子項數(shù)據(jù)Sl的全部模式進行匹配。以下,現(xiàn)將參照圖6來描述通過在反惡意軟件裝置200中使用規(guī)則模式數(shù)據(jù)和規(guī)則哈希函數(shù)來產(chǎn)生規(guī)則模式數(shù)據(jù)的哈希值并過濾哈希值的操作。圖6是第二哈希匹配器表260和第二子項匹配器表沈5。哈希值產(chǎn)生單元220可通過將從服務器100接收的規(guī)則哈希系數(shù)應用于先前的哈希函數(shù)來創(chuàng)建第一哈希函數(shù)。哈希值產(chǎn)生單元220可通過將存儲在模式DB 210中的至少一部分規(guī)則模式數(shù)據(jù)的值輸入到第一哈希函數(shù)來產(chǎn)生規(guī)則模式數(shù)據(jù)的哈希值Ηκ。這類似于參照圖3描述的產(chǎn)生哈希值仏的處理。如果所有規(guī)則模式數(shù)據(jù)的哈希值仏被產(chǎn)生,則哈希值產(chǎn)生單元220可產(chǎn)生規(guī)則模式哈希值表(未示出)。規(guī)則模式哈希值表(未示出)可被加載到存儲器(未示出),其中,所述規(guī)則模式哈希值表為將由哈希值產(chǎn)生單元220產(chǎn)生的哈希值仏與對應于所述哈希值4的規(guī)則模式數(shù)據(jù)的模式進行匹配的表。如果所有規(guī)則模式數(shù)據(jù)的哈希值仏被產(chǎn)生,則表產(chǎn)生單元240可基于規(guī)則模式的哈希值表(未示出)來產(chǎn)生第二哈希匹配器表260和第二子項匹配器表沈5。參照圖6,第二哈希匹配器表260包括索引(鍵值,key value)和指示“存在/不存在”的項。表產(chǎn)生單元240可將能夠從第一哈希函數(shù)產(chǎn)生的所有哈希值Hk確定為索引。 表產(chǎn)生單元240可通過將從規(guī)則模式數(shù)據(jù)產(chǎn)生的哈希值仏與所有索引進行比較來產(chǎn)生第二哈希匹配器表沈0。在第二哈希匹配器表沈0中,指示“存在/不存在”的項的值“ 1”表示存在與哈希值Hk相同的索引,指示“存在/不存在”的所述項的值“0”表示不存在與哈希值Hk相同的索引。這類似于參照圖4所描述的產(chǎn)生第一哈希匹配器表250的處理。在第二哈希匹配器表沈0的索引X處標示“1”,因此,在所有規(guī)則模式數(shù)據(jù)的哈希值仏中存在X。表產(chǎn)生單元240可通過使用規(guī)則模式的哈希值表(未示出)和第二哈希匹配器表 260來產(chǎn)生第二子項匹配器表沈5。表產(chǎn)生單元240可針對第二哈希匹配器表沈0的所有索引中與哈希值Hk相同的索引(包括X和A)產(chǎn)生第二子項匹配器表沈5。以下,將所有索引中與哈希值仏相同的索引稱為匹配索引。第二子項匹配器表265包括僅用于IP和端口的子項(sub)。每個子項具有不同的值。IP子項包括索弓丨、中間值“中間(mid) ”、末尾值“末尾(tail) ”、應用于所有協(xié)議的規(guī)則模式的存在/不存在“ispro”、應用于所有端口的規(guī)則模式的存在/不存在“isport”、 實際模式存儲器地址、下一地址“ next ”等。端口子項包括索引、IP哈希值、協(xié)議哈希值“proto hash(哈希)”、實際模式存儲器地址、下一地址“ next,,等。IP子項的中間值“mid”具有IP地址的第三字節(jié)值,IP子項的末尾值具有IP地址的最后字節(jié)的值。這種字節(jié)位置選擇可實現(xiàn)通過在哈希匹配器270中使用IP的開頭2字節(jié)、中間值和末尾值對IPv4的IP地址執(zhí)行認證??赏ㄟ^作為規(guī)則模式數(shù)據(jù)的包的頭部來確認與匹配索引對應的規(guī)則模式數(shù)據(jù)的中間值和末尾值。ispro值指示應用于所有協(xié)議的規(guī)則模式的存在/不存在“ispro”。如果對應的索引值的實際規(guī)則模式中的一個協(xié)議是全部(ALL),則ispro值為1,如果不是,則ispro值為0。ispro可允許根據(jù)對應IP的值來重新構(gòu)建標記(IP,Protocol (協(xié)議),Port (端口))的范圍。例如,如果存在兩個規(guī)則模式,諸如,[in, 202. 131.29. 71,TCP,80,Allow(允許)]和[in,202. 131.29. 70,ALL (全部),80,Allow],則標記被設(shè)置為非全部(Not all)、 全部(ALL)和非全部。在這一點上,由于202. 131. 29. 71不具有對于協(xié)議為ALL的規(guī)則模式,所以ispro變?yōu)?,這隨后將標記“Protocol (協(xié)議),,改為非全部(Not all)。isport值指示應用于所有端口的規(guī)則模式的存在/不存在“ isport”。如果對應的索引值的實際規(guī)則模式中的一個端口是全部(ALL),則isport值為1,如果不是,則isport 值為0。這類似于ispro值的函數(shù)。實際模式存儲器地址具有實際存儲對應的規(guī)則數(shù)據(jù)的存儲器的地址值。下一地址 “next”是用于當在作為第二子項匹配器表沈5的一哈希值中聚焦各種規(guī)則模式時搜索下一子項所必需的值。下一地址“next”類似于第一子項匹配器表255的沖突模式的偏移。在本發(fā)明中,端口子項的IP哈希值和協(xié)議的哈希值被用于給出對應的規(guī)則的端口、IP和協(xié)議之間的關(guān)聯(lián)。如果端口、IP和協(xié)議沒有關(guān)聯(lián),則必須針對端口搜索全部規(guī)則模式。返回參照圖1,哈希值產(chǎn)生單元220可接收將被過濾的目標數(shù)據(jù),還可產(chǎn)生目標數(shù)據(jù)的哈希值Hf,并向匹配單元280提供所述哈希值Hf。哈希值產(chǎn)生單元220可產(chǎn)生目標數(shù)據(jù)的包的各種類型的信息(諸如,IP地址、端口、協(xié)議等)中的每一種信息的哈希值Hf。如果第二哈希匹配器表260和第二子項匹配器表265被產(chǎn)生,則哈希匹配器單元 270可從哈希值產(chǎn)生單元220接收目標數(shù)據(jù)的哈希值Hf。哈希匹配器單元270可將第二哈希匹配器表沈0的標示有“1”的匹配索引(例如,X和A)與目標數(shù)據(jù)的哈希值Hf進行匹配。如果通過哈希匹配器單元270使匹配成功,則匹配單元280可將與哈希值Hf相同的匹配索引(例如,X)所對應的規(guī)則模式數(shù)據(jù)的模式與目標數(shù)據(jù)進行匹配,并執(zhí)行過濾。為了進行模式匹配,匹配單元280可基于第二子項匹配器表265使用LPM和EPM。這與針對病毒模式數(shù)據(jù)的模式匹配描述的內(nèi)容相同,因此,將不在這里重復其詳細描述??砂凑沼布壿嫹绞絹韺崿F(xiàn)哈希匹配器單元270和匹配單元觀0。如果通過模式匹配,規(guī)則模式數(shù)據(jù)的模式和目標數(shù)據(jù)的模式彼此相同,則可阻止目標數(shù)據(jù)。同時,返回參照圖1,如果第一惡意軟件模式數(shù)據(jù)被更新,即,如果存在更新惡意軟件模式數(shù)據(jù),則可基于更新惡意軟件模式數(shù)據(jù)的特性來改變第一哈希系數(shù)和第一哈希函數(shù)。這是因為服務器100基于通過對于更新惡意軟件模式數(shù)據(jù)的哈希函數(shù)的最小哈希沖突結(jié)果來重新產(chǎn)生哈希系數(shù)。重新產(chǎn)生的哈希系數(shù)或改變的第一哈希函數(shù)是以上聲明的第二哈希系數(shù)。因此,從服務器100提供的第二哈希系數(shù)被包括在更新惡意軟件模式數(shù)據(jù)中。當哈希值產(chǎn)生單元220從服務器100接收到更新惡意軟件模式數(shù)據(jù)時,哈希值產(chǎn)生單元220可通過使用與更新惡意軟件模式數(shù)據(jù)一起發(fā)送的第二哈希系數(shù)來重新產(chǎn)生哈希值。也就是說,哈希值產(chǎn)生單元220可通過使用具有與更新惡意軟件模式數(shù)據(jù)一起從服務器100發(fā)送的第二哈希系數(shù)的第二哈希函數(shù)來重新產(chǎn)生哈希值。因此,包括更新惡意軟件模式數(shù)據(jù)的更新惡意軟件模式DB可包括寫有頭部信息的頭部項310和寫有第二哈希系數(shù)的哈希項320。此外,更新惡意軟件模式數(shù)據(jù)可被添加到模式DB 210。然后,哈希值產(chǎn)生單元220、表產(chǎn)生單元M0、哈希匹配器單元270和匹配單元觀0的操作與輸入第一惡意軟件模式數(shù)據(jù)的操作相同,因此,這里將省略對它們的詳細描述。根據(jù)以上描述的本發(fā)明的實施例,服務器100可將包括哈希系數(shù)的惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置200。反惡意軟件裝置200可通過使用從服務器100接收的哈希系數(shù)來確定哈希函數(shù),并執(zhí)行模式匹配。圖7是根據(jù)本發(fā)明另一示例性實施例的反惡意軟件系統(tǒng)的框圖。參照圖7,反惡意軟件系統(tǒng)包括服務器600和反惡意軟件裝置700。服務器600和反惡意軟件裝置700可通過網(wǎng)絡20彼此連接以執(zhí)行通信。圖7的服務器600和反惡意軟件裝置700類似于參照圖1到圖6描述的服務器100和反惡意軟件裝置200,這里將省略對它們的詳細描述。然而,圖1的服務器100選擇哈希系數(shù),并將所述哈希系數(shù)發(fā)送到反惡意軟件200, 而服務器600可選擇應用哈希系數(shù)的哈希函數(shù),并將所述哈希函數(shù)發(fā)送到反惡意軟件裝置 700。反惡意軟件裝置700可通過使用接收的哈希函數(shù)來產(chǎn)生第一惡意軟件模式數(shù)據(jù)的哈希值和目標數(shù)據(jù)的哈希值。為此,本實施例的服務器600包括哈希函數(shù)選擇單元610和更新單元620。哈希函數(shù)選擇單元610可針對第一惡意軟件模式數(shù)據(jù)從反惡意軟件引擎選擇可檢測并快速搜索全部模式數(shù)據(jù)的函數(shù),將用于選擇的函數(shù)的最佳系數(shù)值選為哈希系數(shù),并確定將被發(fā)送到反惡意軟件裝置700的第一哈希函數(shù)。例如,哈希函數(shù)選擇單元610針對第一惡意軟件模式數(shù)據(jù)從各個哈希函數(shù)選擇可檢測并快速搜索最佳模式的函數(shù)。哈希函數(shù)選擇單元610可通過使用由圖1的哈希系數(shù)選擇單元110使用的算法來選擇第一哈希系數(shù),將第一哈希系數(shù)更新到給定哈希函數(shù),并選擇第一哈希函數(shù)?;蛘撸:瘮?shù)選擇單元610可通過使用由圖1的哈希系數(shù)選擇單元110計算的方差值來選擇第一哈希系數(shù),將第一哈希系數(shù)更新到給定哈希函數(shù),并選擇第一哈希函數(shù)。如果存在用于更新第一惡意軟件模式數(shù)據(jù)的數(shù)據(jù),則哈希函數(shù)選擇單元610可通過使用發(fā)送到反惡意軟件裝置700的新的更新惡意軟件模式數(shù)據(jù)和第一惡意軟件模式數(shù)據(jù)來選擇第二哈希函數(shù)。當更新單元620將第一惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置700時,更新單元620可發(fā)送選擇的第一哈希函數(shù)和惡意軟件模式數(shù)據(jù)。第一哈希函數(shù)可被用于產(chǎn)生發(fā)送到反惡意軟件裝置700的第一惡意軟件模式數(shù)據(jù)的哈希值。如果服務器600從反惡意軟件裝置700接收請求,則服務器600將更新哈希函數(shù)隨同必要的更新惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置700。根據(jù)本發(fā)明的實施例,如果從服務器600發(fā)送到反惡意軟件裝置700的第一惡意軟件模式數(shù)據(jù)是病毒模式數(shù)據(jù),則與病毒模式數(shù)據(jù)一起發(fā)送的第一哈希函數(shù)可以是病毒哈希函數(shù)。此外,如果從服務器600發(fā)送到反惡意軟件裝置700的第一惡意軟件模式數(shù)據(jù)是規(guī)則模式數(shù)據(jù),則與規(guī)則模式數(shù)據(jù)一起發(fā)送的第一哈希函數(shù)可以是規(guī)則哈希函數(shù)。如果從服務器600發(fā)送到反惡意軟件裝置700的第一惡意軟件模式數(shù)據(jù)包括病毒模式數(shù)據(jù)和規(guī)則模式數(shù)據(jù),則與病毒模式數(shù)據(jù)和規(guī)則模式數(shù)據(jù)一起發(fā)送的第一哈希函數(shù)可包括病毒哈希函數(shù)和規(guī)則哈希函數(shù)。同時,根據(jù)本發(fā)明的另一實施例,反惡意軟件裝置700可包括模式DB710、哈希值產(chǎn)生單元720、模式的哈希值表730、表產(chǎn)生單元740、第一哈希匹配器表750、第一子項匹配器表755、第二哈希匹配器表760、第二子項匹配器表765、哈希匹配器單元770、匹配單元 780和更新請求單元790。圖7的模式DB 710、模式的哈希值表730、表產(chǎn)生單元740、第一哈希匹配器表 750、第一子項匹配器表755、第二哈希匹配器表760、第二子項匹配器表765、哈希匹配器單元770和匹配單元780與圖1的模式DB 210、模式的哈希值表230、表產(chǎn)生單元M0、第一哈希匹配器表250、第一子項匹配器表255、第二哈希匹配器表沈0、第二子項匹配器表沈5、哈希匹配器單元270和匹配單元280相同。然而,哈希值產(chǎn)生單元720通過使用從服務器600接收的第一哈希函數(shù)來產(chǎn)生第一惡意軟件模式數(shù)據(jù)的哈希值和子項數(shù)據(jù)的哈希值。例如,如果第一惡意軟件模式數(shù)據(jù)是病毒模式數(shù)據(jù),則哈希值產(chǎn)生單元720通過使用病毒哈希函數(shù)來產(chǎn)生病毒模式數(shù)據(jù)的哈希值。如果由哈希值產(chǎn)生單元720產(chǎn)生的第一惡意軟件模式數(shù)據(jù)的哈希值之間的沖突數(shù)量超過參考值,則更新請求單元790可請求服務器600更新第一哈希系數(shù)或第一哈希函數(shù)。更新請求單元790還可請求服務器600更新第一惡意軟件模式數(shù)據(jù)以及第一哈希系數(shù)。 更新請求單元790可選擇性地包括在反惡意軟件裝置700中。更新請求單元790可監(jiān)測第一子項匹配器表755并對哈希沖突數(shù)量進行計數(shù)。例如,更新請求單元790可將寫入第二子項匹配器表755的沖突模式偏移項中的匹配索引的數(shù)量用作哈希沖突數(shù)量?;蛘?,可由計數(shù)器(未示出)對哈希沖突數(shù)量進行計數(shù)。根據(jù)本發(fā)明的另一實施例,服務器600可將包括哈希函數(shù)的惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置700。反惡意軟件裝置700可通過使用從服務器600接收的哈希函數(shù)來產(chǎn)生哈希值,并執(zhí)行哈希匹配。圖8是示出根據(jù)本發(fā)明示例性實施例的惡意軟件模式匹配方法中服務器的操作的流程圖。參照圖8,可由參照圖1或圖7描述的服務器100或服務器600中的任何一個來執(zhí)行所述操作。在操作S810,服務器可選擇候選哈希組(iN(N= 1,2,…)。例如,第一候選哈希組 G1可包括候選哈希系數(shù),作為%、bp C1,第二候選哈希組( 可包括候選哈希系數(shù),作為 、
b2、C20在操作S820,服務器可計算每個候選哈希組的哈希值。也就是說,服務器可通過將候選哈希組61、(;2、…應用于哈希函數(shù)來計算每個候選哈希組&的哈希值。在這一點上,服務器可通過將由反惡意軟件裝置正在使用的惡意軟件模式數(shù)據(jù)代入哈希函數(shù)來計算哈希值。在操作S830,服務器可比較針對每個候選哈希組&、&、…計算的哈希值,并確認
15每個候選哈希組61、(;2、…的哈希沖突的數(shù)量。在操作S840,服務器可確認具有最少哈希沖突的候選哈希組,并選擇確認的候選哈希組的哈希系數(shù),作為將被發(fā)送到反惡意軟件裝置的哈希系數(shù)。在操作S850,服務器可將在操作S840選擇的哈希系數(shù)以及用于在操作S820計算哈希值的惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置。在操作S860,服務器可針對每個候選哈希組61、(;2、…計算在操作S820計算的哈希值的方差值。在操作S870,服務器可確認具有針對候選哈希組計算的方差值中的最小方差值的候選哈希組,并選擇確認的候選哈希組的哈希系數(shù),作為將被發(fā)送到反惡意軟件裝置的哈希系數(shù)。如上所述,當惡意軟件模式數(shù)據(jù)被應用于哈希函數(shù)時,服務器可選擇使獲得的哈希值之間的沖突概率最小化的哈希系數(shù)。如果惡意軟件模式數(shù)據(jù)是病毒模式數(shù)據(jù),服務器可按照病毒模式數(shù)據(jù)來選擇病毒哈希系數(shù),如果惡意軟件模式數(shù)據(jù)是規(guī)則模式數(shù)據(jù),則服務器可按照規(guī)則模式數(shù)據(jù)來選擇規(guī)則哈希系數(shù)。圖9是根據(jù)本發(fā)明示例性實施例的反惡意軟件裝置的惡意軟件模式匹配方法的流程圖。可由參照圖1或圖7描述的反惡意軟件裝置200和反惡意軟件裝置700中的任何一個來執(zhí)行圖9的惡意軟件模式匹配方法。在操作S905,反惡意軟件裝置可從服務器接收惡意軟件模式DB。惡意軟件模式DB 包括用于進行模式匹配以確定目標數(shù)據(jù)感染有惡意軟件的惡意軟件模式數(shù)據(jù)以及哈希系數(shù)。如果在操作S905接收的惡意軟件模式數(shù)據(jù)是用于病毒掃描的病毒模式數(shù)據(jù),則哈希系數(shù)可以是按照病毒模式數(shù)據(jù)選擇的病毒哈希系數(shù)。此外,如果在操作S905接收的惡意軟件模式數(shù)據(jù)是規(guī)則模式數(shù)據(jù),則哈希系數(shù)可以是按照規(guī)則模式數(shù)據(jù)選擇的規(guī)則哈希系數(shù)。此外,如果在操作S905接收的惡意軟件模式數(shù)據(jù)包括病毒模式數(shù)據(jù)和規(guī)則模式數(shù)據(jù)兩者,則哈希系數(shù)可包括病毒哈希系數(shù)和規(guī)則哈希系數(shù)兩者。在操作S910,反惡意軟件裝置在模式DB中存儲或更新接收的惡意軟件模式數(shù)據(jù)。在操作S915,反惡意軟件裝置可將哈希函數(shù)的哈希系數(shù)改變?yōu)榻邮盏墓O禂?shù)。在操作S920,反惡意軟件裝置可將惡意軟件模式數(shù)據(jù)代入應用了接收的哈希系數(shù)的哈希函數(shù),產(chǎn)生惡意軟件模式數(shù)據(jù)的哈希值,并通過使用產(chǎn)生的哈希值來更新模式的哈希值表。如果不存在模式的哈希值表,則反惡意軟件裝置可通過使用產(chǎn)生的哈希值來重新產(chǎn)生模式的哈希值表。在操作S925,反惡意軟件裝置可基于模式的哈希值表來更新哈希匹配器表和子項匹配器表。如果不存在哈希匹配器表和子項匹配器表,則反惡意軟件裝置可重新產(chǎn)生哈希匹配器表和子項匹配器表。這已經(jīng)參照圖4和圖5詳細描述過。在操作S930,反惡意軟件裝置可通過以子項數(shù)據(jù)單位接收目標數(shù)據(jù)來產(chǎn)生子項數(shù)據(jù)的哈希值。反惡意軟件裝置可通過將子項數(shù)據(jù)代入在操作S915更新的哈希函數(shù)來產(chǎn)生子項數(shù)據(jù)的哈希值。在操作S935,反惡意軟件裝置對子項數(shù)據(jù)的哈希值執(zhí)行匹配操作。也就是說,反惡意軟件裝置可將產(chǎn)生的子項數(shù)據(jù)的哈希值匹配到哈希匹配器表的匹配索引(即,哈希匹配器表中標示有“1”的索引)。在操作S940,反惡意軟件裝置可確定所述匹配索引之一是否與子項數(shù)據(jù)的哈希值相同。如果在操作S940,匹配索引之一與子項數(shù)據(jù)的哈希值相同(Y),則反惡意軟件裝置可執(zhí)行LPM操作。LPM是通過使用惡意軟件模式數(shù)據(jù)以及子項數(shù)據(jù)的中間值和末尾值來進行模式匹配的方法。在操作S950,反惡意軟件裝置可確定惡意軟件模式數(shù)據(jù)和子項數(shù)據(jù)的中間值是否相同以及惡意軟件模式數(shù)據(jù)和子項數(shù)據(jù)的末尾值是否相同。如果在操作S950,惡意軟件模式數(shù)據(jù)與子項數(shù)據(jù)的中間值和末尾值相同(Y),則反惡意軟件裝置可執(zhí)行EPM操作。EPM是通過使用惡意軟件模式數(shù)據(jù)和子項數(shù)據(jù)的所有位置的值來進行模式匹配的方法。在操作S960,反惡意軟件裝置可確定惡意軟件模式數(shù)據(jù)與全部子項數(shù)據(jù)是否完全相同。如果在操作S960,惡意軟件模式數(shù)據(jù)與全部子項數(shù)據(jù)完全相同(Y),則在操作 S965,反惡意軟件裝置可確定子項數(shù)據(jù)對應于惡意軟件模式。同時,如果在操作S960,惡意軟件模式數(shù)據(jù)與全部子項數(shù)據(jù)沒有完全相同(N),則在操作S975,反惡意軟件裝置可確定子項數(shù)據(jù)對應于正常模式。同時,如果在操作S940,匹配索引之一與子項數(shù)據(jù)的哈希值不相同(N),并且如果在操作S950,惡意軟件模式數(shù)據(jù)與子項數(shù)據(jù)的中間值和末尾值不相同(N),則在操作S975, 反惡意軟件裝置確定當前處理的子項數(shù)據(jù)是否是目標數(shù)據(jù)的最后子項數(shù)據(jù)。如果當前處理的子項數(shù)據(jù)不是目標數(shù)據(jù)的最后子項數(shù)據(jù),則反惡意軟件裝置在操作S935對下一子項數(shù)據(jù)執(zhí)行模式匹配。圖10是根據(jù)本發(fā)明示例性實施例的反惡意軟件裝置的惡意軟件模式匹配方法的更新操作的流程圖。可由參照圖1或圖7描述的反惡意軟件裝置200和反惡意軟件裝置700之一以及服務器100和服務器600之一來執(zhí)行圖10的更新操作。在操作S1010,如果發(fā)生哈希沖突,則在操作S1020,反惡意軟件裝置可對哈希沖突數(shù)量進行計數(shù)或確認。反惡意軟件裝置可對在操作S920產(chǎn)生的惡意軟件模式數(shù)據(jù)的哈希值之間的沖突數(shù)量進行計數(shù)。反惡意軟件裝置可從在操作S925產(chǎn)生的子項匹配器表的沖突模式偏移的數(shù)量來獲知哈希沖突數(shù)量。在操作S1030,反惡意軟件裝置可將在操作S1020確認的哈希沖突數(shù)量與參考值進行比較。如果在操作S1030,在操作S1020確認的哈希沖突數(shù)量超過參考值(Y),則在操作 S1040,反惡意軟件裝置可請求服務器更新惡意軟件模式數(shù)據(jù)和哈希系數(shù)。在操作S1050,服務器可根據(jù)反惡意軟件裝置的請求,選擇使哈希沖突發(fā)生概率最小化的哈希系數(shù)或哈希函數(shù)。服務器可基于先前涉及的惡意軟件模式數(shù)據(jù)或更新惡意軟件模式數(shù)據(jù)來重新選擇哈希系數(shù)或哈希函數(shù)。上述處理可類似于參照圖8描述的操作。在操作S1060,服務器可將在操作S1050涉及的更新惡意軟件模式數(shù)據(jù)和重新選擇的哈希系數(shù)或哈希函數(shù)發(fā)送到反惡意軟件裝置。
圖11是根據(jù)本發(fā)明另一示例性實施例的反惡意軟件系統(tǒng)的框圖。參照圖11,反惡意軟件系統(tǒng)包括服務器1100和客戶機1200。服務器1100更新惡意軟件模式DB,計算用于防止在客戶機1200檢測惡意軟件的操作中發(fā)生哈希沖突的哈希系數(shù),并將計算出的哈希系數(shù)發(fā)送到客戶機1200。服務器1100 可以是參照圖1和圖7描述的服務器100和服務器600之一,也可按照類似于服務器100 和服務器600的方式來操作。惡意軟件模式DB可以是參照圖1和圖7描述的惡意軟件模式DB??蛻魴C1200可從服務器1100下載惡意軟件模式DB,并檢測目標數(shù)據(jù)是否感染有惡意軟件??蛻魴C1200可以是參照圖1和圖7描述的反惡意軟件裝置200和反惡意軟件裝置700之一,也可以按照類似于反惡意軟件裝置200和反惡意軟件裝置700的方式來操作。然而,可利用SOC來實現(xiàn)客戶機1200。在本實施例中,如果服務器1100從客戶機1200接收到更新請求,則服務器1100 可將哈希系數(shù)和必要的更新信息發(fā)送到客戶機1200。必要的更新信息可包括由服務器 1100計算的哈希系數(shù)或哈希函數(shù)和惡意軟件模式數(shù)據(jù)。服務器1100包括用于更新惡意軟件模式DB的更新單元1110和用于計算哈希系數(shù)的沖突避免單元1120。更新單元1110可額外提供由圖1和圖7的更新單元120和更新單元620中的至少一個執(zhí)行的功能。更新單元1110包括惡意軟件模式輸入處理單元1111、塊產(chǎn)生處理單元 1112和更新信息構(gòu)建單元1114。惡意軟件模式輸入處理單元1111處理將被發(fā)送到客戶機1200的惡意軟件模式數(shù)據(jù)的輸入。塊產(chǎn)生處理單元1112產(chǎn)生塊。更新信息構(gòu)建單元1114構(gòu)建更新信息。例如,更新信息構(gòu)建單元1114可通過以下操作來構(gòu)建更新信息(即,惡意軟件模式DB)將由哈希系數(shù)選擇單元1122選擇的哈希系數(shù)和由哈希函數(shù)選擇單元1123選擇的哈希函數(shù)之一寫入哈希項320,并將惡意軟件模式數(shù)據(jù)寫入數(shù)據(jù)項330。沖突避免單元1120包括累計塊DB 1121、哈希系數(shù)選擇單元1122和哈希函數(shù)選擇單元1123。累計塊DB 1121存儲累計塊信息。哈希系數(shù)選擇單元1122選擇哈希系數(shù)。哈希函數(shù)選擇單元1123選擇哈希函數(shù)。哈希系數(shù)選擇單元1122可執(zhí)行圖1的哈希系數(shù)選擇單元110的功能。也就是說, 哈希系數(shù)選擇單元1122可基于通過對于惡意軟件模式的哈希函數(shù)的最小哈希沖突結(jié)果來選擇將被發(fā)送到客戶機1200的哈希系數(shù)。例如,當惡意軟件模式數(shù)據(jù)被應用于哈希函數(shù)時,哈希系數(shù)選擇單元1122可通過使用以下算法來選擇哈希系數(shù),所述算法使獲得的哈希值的沖突概率最小化。或者,當惡意軟件模式數(shù)據(jù)被應用于哈希函數(shù)時,哈希系數(shù)選擇單元 1122可通過使用獲得的哈希值的方差值來選擇哈希系數(shù)。哈希函數(shù)選擇單元1123可執(zhí)行圖7的哈希函數(shù)選擇單元610的功能。也就是說, 哈希函數(shù)選擇單元1123按照由哈希系數(shù)選擇單元1122使用的相同方式來選擇哈希系數(shù), 并選擇應用了所選擇的哈希系數(shù)的哈希函數(shù)。同時,客戶機1200包括反惡意軟件應用單元1210和反惡意軟件S0C1220。反惡意軟件應用單元1210可提供反惡意軟件必需的驅(qū)動器和環(huán)境設(shè)置。為此,反惡意軟件應用單元1210包括環(huán)境設(shè)置和DB更新請求單元1211、DB處理模塊1212、SOC調(diào)用單元1213以及掃描隊列和驅(qū)動器模塊1214。環(huán)境設(shè)置和DB更新請求單元1211可設(shè)置用于反惡意軟件操作的環(huán)境,并請求服務器1100更新惡意軟件模式DB。環(huán)境設(shè)置和DB更新請求單元1211可額外提供圖7的更新請求單元790的功能。DB處理模塊1212可處理惡意軟件模式DB,即,惡意軟件模式數(shù)據(jù)、哈希函數(shù)或哈希系數(shù)。SOC調(diào)用單元1213調(diào)用S0C。掃描隊列和驅(qū)動器模塊1214可提供和/或驅(qū)動由客戶機1200執(zhí)行的模式匹配所必需的各種驅(qū)動器。反惡意軟件SOC 1220通過使用惡意軟件模式DB來檢測感染有惡意軟件的數(shù)據(jù)。 為此,反惡意軟件SOC 1220包括搜索引擎1221、模式匹配模塊1222、DB管理器模塊1223、 文件數(shù)據(jù)處理模塊12M、包數(shù)據(jù)處理模塊1225和防火墻規(guī)則管理器模塊12沈。搜索引擎1211負責搜索惡意軟件模式。搜索引擎1211可以是執(zhí)行圖1和圖7的哈希產(chǎn)生單元220和哈希產(chǎn)生單元720、表產(chǎn)生單元240和表產(chǎn)生單元740以及哈希匹配器單元270和哈希匹配器單元770的功能的硬件。因此,搜索引擎1211可產(chǎn)生惡意軟件模式數(shù)據(jù)的哈希值和子項數(shù)據(jù)的哈希值,產(chǎn)生模式的哈希值表,并執(zhí)行哈希值匹配。模式匹配模塊1222對惡意軟件模式數(shù)據(jù)和子項數(shù)據(jù)執(zhí)行模式匹配。模式匹配模塊1222可對應于圖1和圖7的匹配單元280和匹配單元780。DB管理器模塊1223管理惡意軟件模式DB。例如,DB管理器模塊1223可將惡意軟件模式數(shù)據(jù)加載到存儲器(未示出),從而搜索引擎1211可產(chǎn)生哈希值。文件數(shù)據(jù)處理模塊12 處理文件數(shù)據(jù)。包數(shù)據(jù)處理模塊1225處理包數(shù)據(jù)。例如, 包數(shù)據(jù)處理模塊12M可將目標數(shù)據(jù)劃分為具有預定單位的子項數(shù)據(jù)。每個子項數(shù)據(jù)被提供給搜索引擎1211并被用于產(chǎn)生子項數(shù)據(jù)的哈希值。防火墻規(guī)則管理器模塊12 管理防火墻規(guī)則。以下,參照圖12到圖16來描述在具有圖11的結(jié)構(gòu)的反惡意軟件系統(tǒng)中防止哈希沖突的方法。圖12到圖16是根據(jù)本發(fā)明示例性實施例的在反惡意軟件系統(tǒng)中防止哈希沖突的方法的流程圖。執(zhí)行防止哈希沖突的方法的反惡意軟件系統(tǒng)可包括圖11的服務器 1100和客戶機1200。圖12是根據(jù)本發(fā)明示例性實施例的在反惡意軟件系統(tǒng)中防止哈希沖突的方法的流程圖。參照圖12,服務器設(shè)置并初始化用于惡意軟件模式DB塊的初始值(操作S1201)。如果新的惡意軟件模式數(shù)據(jù)(S卩,更新惡意軟件模式數(shù)據(jù))被輸入,則服務器確定新的塊作業(yè)是否必要(操作S1203和S1205)。如果服務器確定新的塊作業(yè)必要,則服務器按照確定的格式來準備惡意軟件模式數(shù)據(jù)DB并將惡意軟件模式數(shù)據(jù)DB存儲在惡意軟件模式DB中(操作S1207)。服務器對惡意軟件模式數(shù)據(jù)執(zhí)行新的塊產(chǎn)生處理,并產(chǎn)生塊(操作S1209)。服務器執(zhí)行沖突避免處理,以避免針對在操作S1209產(chǎn)生的塊的哈希沖突(操作 S1211)。服務器可通過執(zhí)行沖突避免處理來選擇哈希系數(shù)。盡管沒有在操作S1211示出, 但是服務器可通過執(zhí)行沖突避免處理來選擇哈希函數(shù)。
服務器存儲通過沖突避免處理所選擇的哈希系數(shù)或哈希函數(shù)(操作S1213)。圖13是根據(jù)本發(fā)明示例性實施例的產(chǎn)生塊的操作S1209的流程圖。參照圖13,服務器從在操作S1207存儲的惡意軟件模式數(shù)據(jù)DB讀取惡意軟件模式數(shù)據(jù)。服務器從惡意軟件模式數(shù)據(jù)提取數(shù)據(jù)(操作S130;3)。例如,服務器可根據(jù)包括在惡意軟件模式數(shù)據(jù)中的位置、OS信息和輸入時間,提取以loCationID_OSID_YYYYMMDD格式的塊ID“BlockID”,作為所述數(shù)據(jù)。如果與提取的塊ID相同的塊ID已經(jīng)存在,則服務器可更新提取的塊數(shù)據(jù)的版本。然后,服務器輸入對應的塊數(shù)據(jù)的大小和數(shù)據(jù)、md5值、是否使用、輸入人員和輸入時間。然后,服務器通過使用在操作S1303提取的數(shù)據(jù)來產(chǎn)生塊數(shù)據(jù)(操作S1305)。服務器將產(chǎn)生的塊數(shù)據(jù)存儲在惡意軟件模式數(shù)據(jù)DB中(操作S1307)。圖14是根據(jù)本發(fā)明示例性實施例的防止哈希沖突的操作S1211的流程圖。參照圖14,服務器確認惡意軟件模式DB中的塊數(shù)據(jù)(操作S1401)。服務器確定新添加的塊是否包括在塊數(shù)據(jù)中(操作S1403)。如果服務器確定新添加的塊包括在塊數(shù)據(jù)中,則服務器將新添加的塊的塊數(shù)據(jù)添加在惡意軟件模式DB中(操作S1405)。服務器針對包括在惡意軟件模式DB中的惡意軟件模式數(shù)據(jù)執(zhí)行用于計算哈希系數(shù)的初始化(操作S1407)。服務器選擇多個候選系數(shù)值(操作S1409)。多個候選系數(shù)值可以是多個候選哈希組(^^= 1,2…)的形式,其中,每個候選哈希組具有參照圖1描述的一個或多個候選哈希系數(shù)。服務器通過使用在操作S1409選擇的候選系數(shù)值對惡意軟件模式數(shù)據(jù)執(zhí)行哈希函數(shù)處理(操作S1411)。服務器通過比較哈希函數(shù)處理結(jié)果來選擇使哈希沖突最小化的哈希系數(shù)(操作 S1413)。圖15是根據(jù)本發(fā)明示例性實施例的處理哈希函數(shù)的操作S1411的流程圖。參照圖15,服務器初始化包括存儲器存儲位置的大小和系數(shù)值的范圍的信息(操作 S1501)。服務器構(gòu)建系數(shù)矩陣和哈希函數(shù)表(操作S1503和S1505)。系數(shù)矩陣可以是具有在操作S1409選擇的多個候選系數(shù)值的候選哈希組。例如,系數(shù)矩陣可包括61= Ia1^1, cj、G2 = {a2, b2, c2}、G3 = {a3, b3, c3}、…,并且可以是多個。服務器從惡意軟件模式DB讀取惡意軟件模式數(shù)據(jù)(操作S1507)。服務器將讀取的惡意軟件模式數(shù)據(jù)轉(zhuǎn)換為將被應用于哈希函數(shù)的格式(操作 S1509)。服務器通過將系數(shù)矩陣的候選系數(shù)值和轉(zhuǎn)換的惡意軟件模式數(shù)據(jù)應用于哈希函數(shù)來計算哈希值,并將計算出的哈希值應用于哈希函數(shù)表(操作S1511)。在操作S1511,服務器計算每個候選哈希組的哈希值并將哈希值應用于哈希函數(shù)表。服務器計算哈希函數(shù)表的值的方差值(操作S15i;3)。也就是說,服務器計算每個候選哈希組的哈希值,并計算每個候選哈希組的哈希值的方差值。
然后,服務器選擇指示從每個候選哈希組計算的方差值中的最小方差值的系數(shù)矩陣(操作S1515)。包括在選擇的系數(shù)矩陣中的候選系數(shù)是將被發(fā)送到客戶機的哈希系數(shù)。同時,客戶機1200在更新時間請求服務器1100進行更新。在這一點上,客戶機 1200可將存儲在其中的校驗和、裝置執(zhí)行環(huán)境、位置信息、版本ID發(fā)送到服務器1100。更新單元1110基于接收的信息確定客戶機1200是否被改變,當客戶機1200被改變時,更新單元1110運行位置判決器,并設(shè)置精確的位置。因此,服務器1110運行更新信息構(gòu)建單元1114,并將以下項發(fā)送到客戶機1200 客戶機1200所必需的塊信息、塊信息的作業(yè)類型(附加/下載/添加/刪除/替換)、更新惡意軟件模式數(shù)據(jù)以及根據(jù)更新惡意軟件模式數(shù)據(jù)重新選擇的哈希系數(shù)。接收到對應的信息的客戶機1200基于塊信息和作業(yè)類型來更新它的塊,并將更新結(jié)果轉(zhuǎn)送到服務器1100。服務器1100存儲更新結(jié)果并完成所述操作。圖16是根據(jù)本發(fā)明示例性實施例的由服務器執(zhí)行的更新操作的流程圖。參照圖16,服務器從客戶機確定最后更新信息是否被改變(操作S1601)。如果服務器確定最后更新信息被改變,則服務器更新客戶機的更新信息(操作 S1619)。如果服務器確定最后更新信息沒有被改變,則服務器確定客戶機是否包括塊(操作 S1603)。如果服務器確定客戶機包括塊,則服務器針對塊信息確定版本ID是否不同或者其塊的數(shù)量是否不同(操作S1605)。如果服務器確定版本ID不同,則服務器向客戶機請求關(guān)于客戶機塊的信息(操作 S1613)。服務器從客戶機接收關(guān)于客戶機塊的信息(操作S1615)。服務器確定每個塊的作業(yè)類型(添加/移除/替換/更新),并構(gòu)建對應的作業(yè)類型所必需的信息(操作S1617)。如果在操作S1605服務器確定塊的數(shù)量不同,則服務器構(gòu)建塊附加信息(操作 S1607)。服務器讀取將被發(fā)送到客戶機的塊的哈希系數(shù)(操作S1609)。服務器通過使用讀取的哈希系數(shù)來構(gòu)建每個塊的最終更新信息,并將最終更新信息發(fā)送到客戶機(操作S1611)。然后,服務器返回操作S1601,并重復所述操作。如果服務器確定客戶機不包括塊,則服務器直接進行到操作S1609。根據(jù)本發(fā)明,服務器通過服務器的計算環(huán)境,執(zhí)行能夠最小化哈希沖突的作業(yè),構(gòu)建最佳哈希系數(shù)值,并將最佳哈希系數(shù)值和簽名DB發(fā)送到客戶機,從而解決客戶機的存儲器存儲空間和計算效率有限這一現(xiàn)有問題。因此,客戶機顯著減少負載消耗,并僅通過處理結(jié)果部分來預計性能的提高。此外,哈希系數(shù)被最小化,由此快速地處理模式檢測。存儲器訪問得越少,小型計算裝置中的哈希沖突越少,由此減少由于存儲器較快的速度和較小的容量導致的電池消耗。上述示例性實施例和優(yōu)點僅僅是示例性的,而不被解釋為對本發(fā)明構(gòu)思的限制。所述示例性實施例可被容易地應用于其它類型的設(shè)備。此外,對示例性實施例的描述意在進行說明,而不是為了限制權(quán)利要求的范圍,許多可選方式、改進和變型對于本領(lǐng)域技術(shù)人員而言是明顯的。
權(quán)利要求
1.一種反惡意軟件裝置,包括哈希值產(chǎn)生單元,用于通過使用具有至少一個哈希系數(shù)的哈希函數(shù)來產(chǎn)生惡意軟件模式的哈希值和目標數(shù)據(jù)的哈希值;哈希匹配器單元,用于將目標數(shù)據(jù)的哈希值匹配到惡意軟件模式的哈希值;以及匹配單元,如果哈希匹配器單元匹配成功,則所述匹配單元將惡意軟件模式與目標數(shù)據(jù)進行匹配。
2.如權(quán)利要求1所述的反惡意軟件裝置,其中,基于從應用于惡意軟件模式的多個哈希函數(shù)產(chǎn)生的哈希沖突結(jié)果中的最小哈希沖突結(jié)果來確定所述至少一個哈希系數(shù)和/或哈希函數(shù)。
3.如權(quán)利要求1所述的反惡意軟件裝置,其中,所述至少一個哈希系數(shù)和/或哈希函數(shù)與惡意軟件模式一起被從通過網(wǎng)絡連接的服務器接收。
4.如權(quán)利要求3所述的反惡意軟件裝置,其中,當哈希值產(chǎn)生單元從服務器接收到更新惡意軟件模式時,所述哈希值產(chǎn)生單元通過使用與更新惡意軟件模式一起發(fā)送的哈希系數(shù)來重新產(chǎn)生哈希值。
5.如權(quán)利要求1所述的反惡意軟件裝置,其中,當惡意軟件模式被更新時,基于通過對于更新惡意軟件模式的哈希函數(shù)的最小哈希沖突結(jié)果來改變所述至少一個哈希系數(shù)和/ 或哈希函數(shù)。
6.如權(quán)利要求5所述的反惡意軟件裝置,其中,所述改變的至少一個哈希系數(shù)和/或改變的哈希函數(shù)被包括在更新惡意軟件模式中,其中,哈希值產(chǎn)生單元通過使用包括在更新惡意軟件模式中的所述改變的至少一個哈希系數(shù)和/或改變的哈希函數(shù)來重新產(chǎn)生哈希值。
7.如權(quán)利要求5所述的反惡意軟件裝置,其中,包括更新惡意軟件模式的更新惡意軟件模式DB包括頭部項和哈希項,其中,在所述頭部項中寫有頭部信息,在所述哈希項中寫有所述改變的至少一個哈希系數(shù)和/或改變的哈希函數(shù)。
8.如權(quán)利要求1所述的反惡意軟件裝置,其中,當將被發(fā)送到反惡意軟件裝置的惡意軟件模式的哈希值被獲得時,按照使獲得的哈希值之間的沖突概率最小化的方式來確定哈希函數(shù)。
9.如權(quán)利要求1所述的反惡意軟件裝置,還包括更新請求單元,用于當由哈希值產(chǎn)生單元產(chǎn)生的惡意軟件模式的哈希值之間的沖突數(shù)量超過參考值時,請求更新所述至少一個哈希系數(shù)和/或哈希函數(shù)。
10.如權(quán)利要求1所述的反惡意軟件裝置,其中,惡意軟件模式包括用于病毒掃描的病毒模式和用于防火墻過濾的規(guī)則模式中的至少一個,所述至少一個哈希系數(shù)包括用于病毒掃描的病毒哈希系數(shù)和用于防火墻過濾的規(guī)則哈希系數(shù)中的至少一個。
11.如權(quán)利要求1所述的反惡意軟件裝置,其中,所述反惡意軟件裝置相應于片上系統(tǒng) (SOC)、桌上型計算機、智能電話、智能卡和半導體知識產(chǎn)權(quán)芯片(IP)之一。
12.一種用于將惡意軟件模式數(shù)據(jù)發(fā)送到反惡意軟件裝置的服務器,其中,所述反惡意軟件裝置通過使用具有哈希系數(shù)的哈希函數(shù)來執(zhí)行惡意軟件匹配,所述服務器包括更新單元,用于當惡意軟件模式被發(fā)送到反惡意軟件裝置時,用于將哈希系數(shù)發(fā)送到反惡意軟件裝置。
13.如權(quán)利要求12所述的服務器,其中,由更新單元發(fā)送的哈希系數(shù)被用于計算被發(fā)送到反惡意軟件裝置的惡意軟件模式的哈希值。
14.如權(quán)利要求12所述的服務器,還包括哈希系數(shù)選擇單元,用于基于通過對于被發(fā)送到反惡意軟件裝置的惡意軟件模式的哈希函數(shù)的最小哈希沖突結(jié)果來選擇哈希系數(shù),其中,由更新單元發(fā)送的哈希系數(shù)是由哈希系數(shù)選擇單元選擇的哈希系數(shù)。
15.如權(quán)利要求14所述的服務器,其中,當將被發(fā)送到反惡意軟件裝置的惡意軟件模式數(shù)據(jù)被應用于哈希函數(shù)時,哈希系數(shù)選擇單元通過使用以下算法來選擇哈希系數(shù),所述算法使獲得的哈希值之間的沖突概率最小化,或者,所述哈希系數(shù)選擇單元選擇使獲得的哈希值的方差值最小化的哈希系數(shù)。
16.如權(quán)利要求14所述的服務器,其中,如果存在被用于更新惡意軟件模式的數(shù)據(jù),則當先前存儲在反惡意軟件裝置中的惡意軟件模式數(shù)據(jù)和更新惡意軟件模式被應用于哈希函數(shù)時,哈希系數(shù)選擇單元通過使用使獲得的哈希值之間的沖突概率最小化的算法來選擇哈希系數(shù),或選擇使獲得的哈希值的方差值最小化的哈希系數(shù)。
17.如權(quán)利要求12所述的服務器,還包括哈希函數(shù)選擇單元,用于基于通過對于被發(fā)送到反惡意軟件裝置的惡意軟件模式的哈希函數(shù)的最小哈希沖突結(jié)果來選擇哈希函數(shù),其中,更新單元將由哈希函數(shù)選擇單元選擇的哈希函數(shù)與惡意軟件模式一起發(fā)送到反惡意軟件裝置。
18.如權(quán)利要求12所述的服務器,其中,惡意軟件模式包括用于病毒掃描的病毒模式和用于防火墻過濾的規(guī)則模式中的至少一個,所述哈希系數(shù)包括用于病毒掃描的病毒哈希系數(shù)和用于防火墻過濾的規(guī)則哈希系數(shù)中的至少一個。
19.一種通過使用哈希系數(shù)來執(zhí)行惡意軟件模式匹配操作的方法,所述方法包括基于惡意軟件模式選擇哈希系數(shù),使得惡意軟件模式的哈希值之間的沖突概率最小化;通過使用選擇的哈希系數(shù)來計算惡意軟件模式的哈希值;以及當惡意軟件模式的哈希值中的至少一個與目標數(shù)據(jù)的哈希值彼此匹配時,將惡意軟件模式與目標數(shù)據(jù)進行匹配。
20.如權(quán)利要求19所述的方法,還包括如果惡意軟件模式被改變,則重新選擇哈希系數(shù),使得改變的惡意軟件模式的哈希值之間的沖突概率最小化。
21.如權(quán)利要求20所述的方法,還包括通過使用重新選擇的哈希系數(shù)來重新計算改變的惡意軟件模式的哈希值,其中,基于改變的惡意軟件模式來重新選擇哈希系數(shù)。
22.如權(quán)利要求19所述的方法,其中,選擇哈希系數(shù)的步驟包括通過使用每個準備的候選哈希系數(shù)來計算惡意軟件模式的哈希值;以及選擇具有針對每個候選哈希系數(shù)獲得的惡意軟件模式的哈希值的最小方差值的候選哈希系數(shù),作為用于計算目標數(shù)據(jù)的哈希值的哈希系數(shù)。
23.一種通過使用哈希函數(shù)進行的惡意軟件模式匹配方法,所述方法包括通過使用哈希函數(shù)來計算惡意軟件模式的哈希值;通過使用哈希函數(shù)來計算目標數(shù)據(jù)的哈希值;當惡意軟件模式的哈希值與目標數(shù)據(jù)的哈希值彼此匹配時,將惡意軟件模式與目標數(shù)據(jù)進行匹配;以及確定計算出的惡意軟件的哈希值是否彼此沖突。
24.如權(quán)利要求23所述的方法,其中,如果惡意軟件模式的哈希值之間的沖突數(shù)量超過先前設(shè)置的參考值,重新選擇哈希函數(shù)或包括在哈希函數(shù)中的哈希系數(shù)。
25.如權(quán)利要求M所述的方法,其中,重新選擇哈希函數(shù)或包括在哈希函數(shù)中的哈希系數(shù)的步驟包括選擇候選哈希系數(shù);通過使用候選哈希系數(shù)獲得將被用于進行匹配的惡意軟件模式的哈希值;以及通過比較獲得的哈希值從候選哈希系數(shù)選擇使哈希系數(shù)最小化的哈希系數(shù)。
26.如權(quán)利要求24所述的方法,其中,重新選擇哈希函數(shù)或包括在哈希函數(shù)中的哈希系數(shù)的步驟包括選擇候選哈希系數(shù);通過使用候選哈希系數(shù)獲得被用于進行匹配的惡意軟件模式的哈希值;以及通過計算每個獲得的哈希值的方差值從候選哈希系數(shù)選擇具有最小方差值的哈希系
全文摘要
提供一種反惡意軟件裝置、服務器和匹配惡意軟件模式的方法。哈希值產(chǎn)生單元通過使用具有至少一個哈希系數(shù)的哈希函數(shù)來產(chǎn)生惡意軟件模式的哈希值和目標數(shù)據(jù)的哈希值。哈希匹配器單元將目標數(shù)據(jù)的哈希值與惡意軟件模式的哈希值進行匹配。如果哈希匹配器單元匹配成功,則匹配單元將惡意軟件模式與目標數(shù)據(jù)進行匹配。
文檔編號G06F21/56GK102289617SQ20111018397
公開日2011年12月21日 申請日期2011年6月21日 優(yōu)先權(quán)日2010年6月21日
發(fā)明者俞仁善 申請人:三星Sds株式會社