本發(fā)明涉及檢測(cè)技術(shù),尤其涉及一種病毒檢測(cè)方法、終端、服務(wù)器及系統(tǒng)。
背景技術(shù):
隨著智能終端的發(fā)展,人手一部智能終端已經(jīng)非常普及,大部分的生活服務(wù)都可以通過(guò)智能終端上安裝的應(yīng)用或通過(guò)聯(lián)網(wǎng)實(shí)現(xiàn),給用戶帶來(lái)很多便利??墒牵瑤?lái)便利的同時(shí),也存在安全隱患,聯(lián)網(wǎng)的過(guò)程中容易受到病毒的入侵。在與病毒的對(duì)抗中,能及早發(fā)現(xiàn)病毒非常重要。通過(guò)對(duì)病毒早發(fā)現(xiàn),早處置,可以減少用戶的損失,保障用戶的資金賬戶和隱私信息等等的信息安全。檢測(cè)病毒的方法包括:特征碼匹配法、行為監(jiān)測(cè)法、軟件模擬法等等,這些方法依據(jù)的原理不同,實(shí)現(xiàn)病毒檢測(cè)所占用系統(tǒng)開(kāi)銷(xiāo)不同,檢測(cè)范圍也不同,各有所長(zhǎng)。其中,特征碼匹配法是比較常用的方法,然而,現(xiàn)有的特征碼匹配法,并不能準(zhǔn)確有效的檢測(cè)出病毒的變種,從而影響到病毒檢測(cè)的準(zhǔn)確性,無(wú)法保障用戶的資金賬戶和隱私信息等等的信息安全。對(duì)于該問(wèn)題,尚無(wú)有效解決方案。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例希望提供一種病毒檢測(cè)方法、終端及服務(wù)器,至少解決了現(xiàn)有技術(shù)存在的問(wèn)題。
本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,所述方法包括:
對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;
根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);
接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
上述方案中,所述對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,包括:
獲取所述待處理文件,從所述待處理文件中查詢到指定文件;
從所述指定文件中解析出目標(biāo)指令,從所述目標(biāo)指令中提取字節(jié)分布符合所述指定規(guī)則的部分指令片段,根據(jù)所述部分指令片段生成目標(biāo)序列,將所述目標(biāo)序列確定為所述有效信息。
上述方案中,所述根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè),包括:
將所述目標(biāo)序列作為病毒檢測(cè)的待檢測(cè)樣本,將由所述待檢測(cè)樣本計(jì)算得到的第一模糊哈希值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);
所述第一特征參數(shù)值包括所述第一模糊哈希值。
上述方案中,所述方法還包括:
根據(jù)收集的已知病毒特征信息及病毒變種的趨勢(shì)信息生成所述預(yù)設(shè)策略,以得到對(duì)抗病毒變種入侵的有效信息。
本發(fā)明實(shí)施例的一種終端,所述終端包括:
第一預(yù)處理單元,用于對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;
第一特征參數(shù)運(yùn)算單元,用于根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);
病毒查殺單元,用于接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
上述方案中,所述預(yù)處理單元,進(jìn)一步用于:
獲取所述待處理文件,從所述待處理文件中查詢到指定文件;
從所述指定文件中解析出目標(biāo)指令,從所述目標(biāo)指令中提取字節(jié)分布符合所述指定規(guī)則的部分指令片段,根據(jù)所述部分指令片段生成目標(biāo)序列,將所述 目標(biāo)序列確定為所述有效信息。
上述方案中,所述第一特征參數(shù)運(yùn)算單元,進(jìn)一步用于:
將所述目標(biāo)序列作為病毒檢測(cè)的待檢測(cè)樣本,將由所述待檢測(cè)樣本計(jì)算得到的第一模糊哈希值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);
所述第一特征參數(shù)值包括所述第一模糊哈希值。
上述方案中,所述終端還包括:
策略生成單元,用于根據(jù)收集的已知病毒特征信息及病毒變種的趨勢(shì)信息生成所述預(yù)設(shè)策略,以得到對(duì)抗病毒變種入侵的有效信息。
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,所述方法包括:
對(duì)病毒庫(kù)樣本文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;
根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值;
接收由待檢測(cè)樣本計(jì)算得到的第一特征參數(shù)值,對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;
所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒。
上述方案中,所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒,包括:
在所述第一特征參數(shù)值和所述第二特征參數(shù)值間的相似度滿足所述閾值時(shí),將待檢測(cè)樣本加入待決策結(jié)果列表中,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,如果從所述待決策結(jié)果列表中能選出與所述待檢測(cè)樣本相似度最高的病毒樣本,則疑似病毒為病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;如果從所述待決策結(jié)果列表中未能選出與所述待檢測(cè)樣本相似的病毒樣本,則疑似病毒為非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;
所述方法還包括:將所述病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端。
本發(fā)明實(shí)施例的一種服務(wù)器,所述服務(wù)器包括:
第二預(yù)處理單元,用于對(duì)病毒庫(kù)樣本文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;
第二特征參數(shù)運(yùn)算單元,用于根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值;
判斷單元,用于接收由待檢測(cè)樣本計(jì)算得到的第一特征參數(shù)值,對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;
病毒檢測(cè)單元,用于所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒。
上述方案中,所述病毒檢測(cè)單元,進(jìn)一步用于:
在所述第一特征參數(shù)值和所述第二特征參數(shù)值間的相似度滿足所述閾值時(shí),將待檢測(cè)樣本加入待決策結(jié)果列表中,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,如果從所述待決策結(jié)果列表中能選出與所述待檢測(cè)樣本相似度最高的病毒樣本,則疑似病毒為病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;如果從所述待決策結(jié)果列表中未能選出與所述待檢測(cè)樣本相似的病毒樣本,則疑似病毒為非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;
所述服務(wù)器還包括:
發(fā)送單元,用于將所述病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端。
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,所述方法包括:
服務(wù)器對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;
服務(wù)器對(duì)病毒庫(kù)樣本文件按照所述預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;
服務(wù)器根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,所述第一特征參數(shù)值作為待檢測(cè)樣本的特征值;
服務(wù)器根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值,所述第二特征參數(shù) 值作為病毒樣本的特征值;
服務(wù)器對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;
所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,服務(wù)器確定出所述疑似病毒為病毒或非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端;
終端接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
本發(fā)明實(shí)施例的一種病毒檢測(cè)系統(tǒng),所述系統(tǒng)包括:服務(wù)器和終端;其中,
所述服務(wù)器包括:
第一預(yù)處理單元,用于對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;
第二預(yù)處理單元,用于對(duì)病毒庫(kù)樣本文件按照所述預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;
第一特征參數(shù)值運(yùn)算單元,用于根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,所述第一特征參數(shù)值作為待檢測(cè)樣本的特征值;
第二特征參數(shù)值運(yùn)算單元,用于根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值,所述第二特征參數(shù)值作為病毒樣本的特征值;
判斷單元,用于對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;
病毒檢測(cè)單元,用于所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端;
所述終端包括:
病毒查殺單元,用于接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
本發(fā)明實(shí)施例的病毒檢測(cè)方法包括:對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。采用本發(fā)明實(shí)施例,能準(zhǔn)確有效的檢測(cè)出病毒的變種,從而提高病毒檢測(cè)的準(zhǔn)確性,保障用戶的資金賬戶和隱私信息等等的信息安全。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中進(jìn)行信息交互的各方硬件實(shí)體的示意圖;
圖2-7為本發(fā)明實(shí)施例中病毒查殺應(yīng)用的多個(gè)可選UI界面示意圖;
圖8為本發(fā)明實(shí)施例一的一個(gè)實(shí)現(xiàn)流程示意圖;
圖9為應(yīng)用本發(fā)明實(shí)施例二的上報(bào)第一模糊哈希值的示意圖;
圖10為本發(fā)明實(shí)施例三的一個(gè)模塊組成結(jié)構(gòu)示意圖;
圖11為本發(fā)明實(shí)施例七的一個(gè)模塊交互示意圖;
圖12為應(yīng)用本發(fā)明實(shí)施例的一個(gè)硬件組成結(jié)構(gòu)示意圖;
圖13為應(yīng)用本發(fā)明實(shí)施例一應(yīng)用場(chǎng)景的模塊組成結(jié)構(gòu)示意圖;
圖14為應(yīng)用本發(fā)明實(shí)施例一應(yīng)用場(chǎng)景的分片模糊哈希值計(jì)算示意圖;
圖15為應(yīng)用本發(fā)明實(shí)施例一應(yīng)用場(chǎng)景的病毒庫(kù)生成流程示意圖;
圖16為應(yīng)用本發(fā)明實(shí)施例一應(yīng)用場(chǎng)景的待檢測(cè)樣本的病毒比對(duì)檢測(cè)流程;
圖17為應(yīng)用本發(fā)明實(shí)施例一應(yīng)用場(chǎng)景的客戶端+云端方式實(shí)現(xiàn)病毒檢測(cè)的示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)技術(shù)方案的實(shí)施作進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明實(shí)施例中進(jìn)行信息交互的各方硬件實(shí)體的示意圖,圖1中包括:服務(wù)器11、終端設(shè)備21-24,終端設(shè)備21-24通過(guò)有線網(wǎng)絡(luò)或者無(wú)線網(wǎng)絡(luò) 與服務(wù)器進(jìn)行信息交互,終端設(shè)備包括手機(jī)、臺(tái)式機(jī)、PC機(jī)、一體機(jī)等類(lèi)型。其中,終端設(shè)備中安裝有應(yīng)用(如游戲應(yīng)用,地圖導(dǎo)航應(yīng)用,高鐵線路應(yīng)用,病毒查殺應(yīng)用等)采用本發(fā)明實(shí)施例,基于上述圖1所示的系統(tǒng),終端對(duì)獲取的待處理文件(需進(jìn)行病毒檢測(cè)的文件)按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,有效信息具備穩(wěn)定性,經(jīng)預(yù)處理后得到的該信息是待處理文件中最穩(wěn)定的信息,這種信息是病毒作者很難繞過(guò)去和容易重新混淆的部分,所以該信息作為對(duì)抗病毒變種入侵的有效信息使用,該信息為圖1中終端上報(bào)給服務(wù)器的待檢測(cè)樣本,具體應(yīng)用中,還可以對(duì)該待檢測(cè)樣本進(jìn)行模糊哈希值計(jì)算,將計(jì)算結(jié)果(第一模糊哈希值)上報(bào)給服務(wù)器進(jìn)行病毒檢測(cè)比對(duì),構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則(即具備上述穩(wěn)定性要求,是待處理文件中最穩(wěn)定的信息);服務(wù)器對(duì)病毒庫(kù)樣本文件按照所述預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則,具體的,服務(wù)器對(duì)已有的病毒庫(kù)樣本文件中的病毒樣本文件進(jìn)行預(yù)處理,也采用與終端側(cè)相同的預(yù)設(shè)策略進(jìn)行預(yù)處理,目的是為了從病毒庫(kù)樣本文件中截取出與終端上報(bào)待檢測(cè)樣本中相同特征的數(shù)據(jù)進(jìn)行比對(duì),這樣會(huì)提高比對(duì)的精確度,具體應(yīng)用中,還可以對(duì)該病毒樣本文件進(jìn)行模糊哈希值計(jì)算,將計(jì)算結(jié)果(第二模糊哈希值)與終端上報(bào)的計(jì)算結(jié)果(第一模糊哈希值)進(jìn)行病毒檢測(cè)比對(duì),其中,第一模糊哈希值是終端根據(jù)所述有效信息(待檢測(cè)樣本)計(jì)算得到的第一特征參數(shù)值,第二模糊哈希值是服務(wù)器根據(jù)所述待比對(duì)信息(病毒樣本)計(jì)算得到的第二特征參數(shù)值;服務(wù)器對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,服務(wù)器確定出所述疑似病毒為病毒或非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端;終端接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
圖2-圖7為應(yīng)用本發(fā)明實(shí)施例的幾個(gè)可選的UI界面示意圖。如圖2所示,在終端用戶界面顯示有多個(gè)已安裝的應(yīng)用,在終端用戶界面找到病毒查殺應(yīng)用 (如手機(jī)管家),點(diǎn)擊病毒查殺應(yīng)用(如手機(jī)管家)以開(kāi)啟病毒查殺應(yīng)用(如手機(jī)管家),進(jìn)入如圖3或圖4所示的病毒查殺應(yīng)用(如手機(jī)管家)的應(yīng)用界面,應(yīng)用界面中包含病毒查殺的啟動(dòng)按鈕,如圖3中的“立即掃描”,或者,如圖4中的“快速掃描”和“全盤(pán)掃描”,通過(guò)圖4中的不同啟動(dòng)按鈕可以觸發(fā)不同查殺策略,舉例來(lái)說(shuō),快速掃描是選取終端中的核心內(nèi)容作為待檢測(cè)樣本,與10萬(wàn)病毒樣本進(jìn)行比對(duì),而全盤(pán)掃描是將終端中的全部?jī)?nèi)容作為待檢測(cè)樣本,與全部病毒樣本(如30萬(wàn)病毒樣本)進(jìn)行比對(duì),圖5-圖6為終端上報(bào)待檢測(cè)樣本后,在云端進(jìn)行病毒樣本查殺過(guò)程的界面圖,可以對(duì)終端中應(yīng)用內(nèi)嵌的廣告插件,染毒文件或染毒網(wǎng)址等進(jìn)行高效快捷的查殺,查殺結(jié)束后的界面如圖7所示,這個(gè)實(shí)例是終端未被病毒入侵,病毒比對(duì)檢測(cè)結(jié)果為安全。如果終端被病毒入侵,病毒比對(duì)檢測(cè)結(jié)果中會(huì)包括需要用戶處理的待清理的病毒文件或廣告插件等,用戶根據(jù)自身需求進(jìn)行文件清理。
上述圖1的例子只是實(shí)現(xiàn)本發(fā)明實(shí)施例的一個(gè)系統(tǒng)架構(gòu)實(shí)例,本發(fā)明實(shí)施例并不限于上述圖1所述的系統(tǒng)結(jié)構(gòu),上述圖2-圖7為可選的UI界面圖,本發(fā)明實(shí)施例實(shí)際應(yīng)用中并不限于這些UI界面圖。在此,基于圖1的系統(tǒng)架構(gòu),提出本發(fā)明各個(gè)實(shí)施例。
實(shí)施例一:
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,如圖8所示,所述方法包括:
步驟101、對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;
這里,本步驟的一個(gè)具體應(yīng)用為:在終端側(cè)實(shí)現(xiàn)預(yù)處理,以得到該有效信息。終端對(duì)獲取的待處理文件(需進(jìn)行病毒檢測(cè)的文件)按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,有效信息具備穩(wěn)定性,經(jīng)預(yù)處理后得到的該信息是待處理文件中最穩(wěn)定的信息,這種信息是病毒作者很難繞過(guò)去和容易重新混淆的部分,所以該信息作為對(duì)抗病毒變種入侵的有效信息使用。
本步驟的另一個(gè)具體應(yīng)用為:在服務(wù)器側(cè)實(shí)現(xiàn)預(yù)處理,包括得到有效信息的預(yù)處理操作,將有效信息作為待檢測(cè)樣本;還包括:得到比對(duì)信息的預(yù)處理 操作,將比對(duì)信息作為病毒樣本,二者可以采用相同的預(yù)處理策略,以便能更精確的將待檢測(cè)樣本與病毒樣本進(jìn)行對(duì)應(yīng)特征的精確特征匹配。
步驟102、根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);
這里,該有效信息的一個(gè)實(shí)例為圖1中終端上報(bào)給服務(wù)器的待檢測(cè)樣本,實(shí)際應(yīng)用中,可以對(duì)該待檢測(cè)樣本進(jìn)行模糊哈希值計(jì)算,將計(jì)算結(jié)果(第一模糊哈希值)上報(bào)給服務(wù)器進(jìn)行病毒檢測(cè)比對(duì),構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則(即具備上述穩(wěn)定性要求,是待處理文件中最穩(wěn)定的信息)。第一模糊哈希值是終端根據(jù)所述有效信息(待檢測(cè)樣本)計(jì)算得到的第一特征參數(shù)值。
步驟103、接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
這里,檢測(cè)的目的是為了病毒查殺,在終端病毒查殺應(yīng)用界面對(duì)用戶進(jìn)行提示,病毒查殺應(yīng)用界面幾個(gè)可選的例子如圖2-圖7所示。根據(jù)不同查殺策略會(huì)生成不同的終端病毒查殺應(yīng)用界面,如圖3和圖4的病毒查殺應(yīng)用界面就有所不同。圖4中包含不同的啟動(dòng)按鈕“快速掃描”和“全盤(pán)掃描”,不同啟動(dòng)按鈕可以觸發(fā)不同查殺策略,舉例來(lái)說(shuō),快速掃描是選取終端中的核心內(nèi)容作為待檢測(cè)樣本,與10萬(wàn)病毒樣本進(jìn)行比對(duì),而全盤(pán)掃描是將終端中的全部?jī)?nèi)容作為待檢測(cè)樣本,與全部病毒樣本(如30萬(wàn)病毒樣本)進(jìn)行比對(duì)。
實(shí)施例二:
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,所述方法包括:
步驟201、獲取所述待處理文件,從所述待處理文件中查詢到指定文件;
這里,以終端系統(tǒng)為安卓系統(tǒng)為例,獲取APK文件作為待處理文件,APK文件為可執(zhí)行文件,病毒通常入侵可執(zhí)行文件,以觸發(fā)病毒的運(yùn)行,因此,首先要對(duì)APK文件進(jìn)行重點(diǎn)監(jiān)控和病毒檢測(cè)。在APK文件查詢Dex和SO文件,由于對(duì)APK文件通常進(jìn)行Dex加殼、亂序保護(hù)、SO加殼、虛擬機(jī)指令保護(hù)等多重保護(hù),有效的對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密保護(hù)、保護(hù)APK文件安全,是APK 文件安全加固的首選,因此,在本發(fā)明實(shí)施例中,對(duì)從所述待處理文件中查詢指定文件時(shí),選取的是Dex和SO文件。
步驟202、從所述指定文件中解析出目標(biāo)指令,從所述目標(biāo)指令中提取字節(jié)分布符合所述指定規(guī)則的部分指令片段,根據(jù)所述部分指令片段生成目標(biāo)序列,將所述目標(biāo)序列確定為所述有效信息;
這里,結(jié)合上述步驟201,考慮到需要得到具備穩(wěn)定性的特征代碼進(jìn)行特征代碼匹配的病毒檢測(cè)出來(lái),因此,從所述待處理文件中選取出Dex和SO文件后,從Dex和SO文件的函數(shù)指令中提取其中opcode代碼部分(指令中最具穩(wěn)定性特征的代碼部分),opcode代碼部分的字節(jié)分布符合所述指定規(guī)則(指令中最具穩(wěn)定性特征),根據(jù)所述opcode部分生成的目標(biāo)序列。
通過(guò)上述步驟201-202對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息為:根據(jù)所述opcode部分生成的目標(biāo)序列。
這里,本步驟的一個(gè)具體應(yīng)用為:在終端側(cè)實(shí)現(xiàn)預(yù)處理,以得到該有效信息。終端對(duì)獲取的待處理文件(需進(jìn)行病毒檢測(cè)的文件)按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列),有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列)具備穩(wěn)定性,經(jīng)預(yù)處理后得到的該信息是待處理文件中最穩(wěn)定的信息,這種信息是病毒作者很難繞過(guò)去和容易重新混淆的部分,所以該信息作為對(duì)抗病毒變種入侵的有效信息使用。
本步驟的另一個(gè)具體應(yīng)用為:在服務(wù)器側(cè)實(shí)現(xiàn)預(yù)處理,包括得到有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列)的預(yù)處理操作,將有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列)作為待檢測(cè)樣本;還包括:得到比對(duì)信息的預(yù)處理操作,將比對(duì)信息作為病毒樣本,二者可以采用相同的預(yù)處理策略,以便能更精確的將待檢測(cè)樣本與病毒樣本進(jìn)行對(duì)應(yīng)特征的精確特征匹配。
步驟203、根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);
這里,一個(gè)具體應(yīng)用為:將所述目標(biāo)序列作為病毒檢測(cè)的待檢測(cè)樣本,將 由所述待檢測(cè)樣本計(jì)算得到的第一模糊哈希值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);所述第一特征參數(shù)值包括所述第一模糊哈希值。
這里,該有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列)的一個(gè)實(shí)例為圖1中終端上報(bào)給服務(wù)器的待檢測(cè)樣本,實(shí)際應(yīng)用中,可以對(duì)該待檢測(cè)樣本進(jìn)行模糊哈希值計(jì)算,將計(jì)算結(jié)果(第一模糊哈希值)上報(bào)給服務(wù)器進(jìn)行病毒檢測(cè)比對(duì),構(gòu)成所述有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列)的字節(jié)分布符合指定規(guī)則(即具備上述穩(wěn)定性要求,是待處理文件中最穩(wěn)定的信息)。第一模糊哈希值是終端根據(jù)所述有效信息(根據(jù)所述opcode部分生成的目標(biāo)序列)計(jì)算得到的第一特征參數(shù)值,終端將第一模糊哈希值上報(bào)給服務(wù)器進(jìn)行病毒檢測(cè)比對(duì),如圖9所示。圖9中,包括:服務(wù)器31和終端32,終端32作為服務(wù)器收集待檢測(cè)樣本的來(lái)源,上報(bào)的樣本來(lái)源包括活躍病毒,疑似病毒和非病毒類(lèi)型,本發(fā)明實(shí)施例只是一個(gè)實(shí)例,除此類(lèi)型外,還可以包括已知病毒變種和新病毒類(lèi)型等等。終端32將其待檢測(cè)樣本進(jìn)行分段求哈希值得到第一模糊哈希值后,上報(bào)第一模糊哈希值給服務(wù)器31,在服務(wù)器31側(cè)進(jìn)行病毒檢測(cè)的比對(duì),最終,服務(wù)器31將病毒檢測(cè)比對(duì)結(jié)果反饋給終端進(jìn)行呈現(xiàn)。
步驟204、接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
這里,檢測(cè)的目的是為了病毒查殺,在終端病毒查殺應(yīng)用界面對(duì)用戶進(jìn)行提示,病毒查殺應(yīng)用界面幾個(gè)可選的例子如圖2-圖7所示。根據(jù)不同查殺策略會(huì)生成不同的終端病毒查殺應(yīng)用界面,如圖3和圖4的病毒查殺應(yīng)用界面就有所不同。圖4中包含不同的啟動(dòng)按鈕“快速掃描”和“全盤(pán)掃描”,不同啟動(dòng)按鈕可以觸發(fā)不同查殺策略,舉例來(lái)說(shuō),快速掃描是選取終端中的核心內(nèi)容作為待檢測(cè)樣本,與10萬(wàn)病毒樣本進(jìn)行比對(duì),而全盤(pán)掃描是將終端中的全部?jī)?nèi)容作為待檢測(cè)樣本,與全部病毒樣本(如30萬(wàn)病毒樣本)進(jìn)行比對(duì)。
在本發(fā)明實(shí)施例一實(shí)施方式中,所述方法還包括:根據(jù)收集的已知病毒特征信息及病毒變種的趨勢(shì)信息生成所述預(yù)設(shè)策略,以得到對(duì)抗病毒變種入侵的有效信息。根據(jù)病毒及其變種利用序列進(jìn)行入侵的特征,來(lái)選擇利用該opcode 序列穩(wěn)定性來(lái)對(duì)抗這個(gè)入侵干擾。
實(shí)施例三:
本發(fā)明實(shí)施例的一種終端,如圖10所示,所述終端包括:第一預(yù)處理單元41,用于對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;第一特征參數(shù)運(yùn)算單元42,用于根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,將所述第一特征參數(shù)值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);病毒查殺單元43,用于接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
這里,第一預(yù)處理單元41的一個(gè)具體處理過(guò)程為:第一預(yù)處理單元41可以為終端側(cè),則在終端側(cè)實(shí)現(xiàn)預(yù)處理,以得到該有效信息。終端對(duì)獲取的待處理文件(需進(jìn)行病毒檢測(cè)的文件)按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,有效信息具備穩(wěn)定性,經(jīng)預(yù)處理后得到的該信息是待處理文件中最穩(wěn)定的信息,這種信息是病毒作者很難繞過(guò)去和容易重新混淆的部分,所以該信息作為對(duì)抗病毒變種入侵的有效信息使用。
第一預(yù)處理單元41的另一個(gè)具體處理過(guò)程為:第一預(yù)處理單元41可以為服務(wù)器側(cè),則在服務(wù)器側(cè)實(shí)現(xiàn)預(yù)處理,包括得到有效信息的預(yù)處理操作,將有效信息作為待檢測(cè)樣本;還包括:得到比對(duì)信息的預(yù)處理操作,將比對(duì)信息作為病毒樣本,二者可以采用相同的預(yù)處理策略,以便能更精確的將待檢測(cè)樣本與病毒樣本進(jìn)行對(duì)應(yīng)特征的精確特征匹配。
這里,該有效信息的一個(gè)實(shí)例為圖1中終端上報(bào)給服務(wù)器的待檢測(cè)樣本,實(shí)際應(yīng)用中,可以對(duì)該待檢測(cè)樣本進(jìn)行模糊哈希值計(jì)算,則第一特征參數(shù)運(yùn)算單元42用于將計(jì)算結(jié)果(第一模糊哈希值)上報(bào)給服務(wù)器進(jìn)行病毒檢測(cè)比對(duì),構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則(即具備上述穩(wěn)定性要求,是待處理文件中最穩(wěn)定的信息)。第一模糊哈希值是終端根據(jù)所述有效信息(待檢測(cè)樣本)計(jì)算得到的第一特征參數(shù)值。
這里,病毒查殺單元43的一個(gè)具體處理過(guò)程為:由于檢測(cè)的目的是為了病毒查殺,因此,病毒查殺單元43用于接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描,將掃描結(jié)果在終端病毒查殺應(yīng)用界面對(duì)用戶進(jìn)行提示,病毒查殺應(yīng)用界面幾個(gè)可選的例子如圖2-圖7所示。根據(jù)不同查殺策略會(huì)生成不同的終端病毒查殺應(yīng)用界面,如圖3和圖4的病毒查殺應(yīng)用界面就有所不同。圖4中包含不同的啟動(dòng)按鈕“快速掃描”和“全盤(pán)掃描”,不同啟動(dòng)按鈕可以觸發(fā)不同查殺策略,舉例來(lái)說(shuō),快速掃描是選取終端中的核心內(nèi)容作為待檢測(cè)樣本,與10萬(wàn)病毒樣本進(jìn)行比對(duì),而全盤(pán)掃描是將終端中的全部?jī)?nèi)容作為待檢測(cè)樣本,與全部病毒樣本(如30萬(wàn)病毒樣本)進(jìn)行比對(duì)。
本發(fā)明實(shí)施例一實(shí)施方式中,所述預(yù)處理單元,進(jìn)一步用于:獲取所述待處理文件,從所述待處理文件中查詢到指定文件;從所述指定文件中解析出目標(biāo)指令,從所述目標(biāo)指令中提取字節(jié)分布符合所述指定規(guī)則的部分指令片段,根據(jù)所述部分指令片段生成目標(biāo)序列,將所述目標(biāo)序列確定為所述有效信息。
本發(fā)明實(shí)施例一實(shí)施方式中,所述第一特征參數(shù)運(yùn)算單元,進(jìn)一步用于:將所述目標(biāo)序列作為病毒檢測(cè)的待檢測(cè)樣本,將由所述待檢測(cè)樣本計(jì)算得到的第一模糊哈希值發(fā)送給服務(wù)器進(jìn)行病毒比對(duì)的檢測(cè);所述第一特征參數(shù)值包括所述第一模糊哈希值。
本發(fā)明實(shí)施例一實(shí)施方式中,所述終端還包括:策略生成單元,用于根據(jù)收集的已知病毒特征信息及病毒變種的趨勢(shì)信息生成所述預(yù)設(shè)策略,以得到對(duì)抗病毒變種入侵的有效信息。
實(shí)施例四:
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,所述方法包括:
步驟301、對(duì)病毒庫(kù)樣本文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;
這里,以終端系統(tǒng)為安卓系統(tǒng)為例,病毒庫(kù)樣本文件為APK文件為例, APK文件為可執(zhí)行文件,病毒通常入侵可執(zhí)行文件,以觸發(fā)病毒的運(yùn)行,因此,首先要對(duì)APK文件進(jìn)行重點(diǎn)監(jiān)控和病毒檢測(cè)。在APK文件查詢Dex和SO文件,由于對(duì)APK文件通常進(jìn)行Dex加殼、亂序保護(hù)、SO加殼、虛擬機(jī)指令保護(hù)等多重保護(hù),有效的對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密保護(hù)、保護(hù)APK文件安全,是APK文件安全加固的首選,因此,在本發(fā)明實(shí)施例中,從APK文件中選取Dex和SO文件,以生成比對(duì)信息。具體的,從所述待處理文件中選取出Dex和SO文件后,從Dex和SO文件的函數(shù)指令中提取其中opcode代碼部分,opcode代碼部分的字節(jié)分布符合所述指定規(guī)則,將由所述opcode部分生成的目標(biāo)序列作為比對(duì)信息。
步驟302、根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值;
這里,一個(gè)具體應(yīng)用為:將所述目標(biāo)序列作為比對(duì)信息,將由比對(duì)信息計(jì)算得到的第二模糊哈希值與終端上報(bào)的第一模糊哈希值進(jìn)行病毒比對(duì)的檢測(cè);所述第二特征參數(shù)值包括所述第二模糊哈希值。
步驟303、接收由待檢測(cè)樣本計(jì)算得到的第一特征參數(shù)值,對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;
這里,由比對(duì)信息計(jì)算得到的第二模糊哈希值與終端上報(bào)的第一模糊哈希值進(jìn)行病毒比對(duì)的檢測(cè),可以是計(jì)算二者的相似度,得到相似度判斷結(jié)果。
步驟304、所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒。
這里,在所述第一模糊哈希值和所述第二模糊哈希值間的相似度滿足所述閾值時(shí),將待檢測(cè)樣本加入待決策結(jié)果列表中,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,如果從所述待決策結(jié)果列表中能選出與所述待檢測(cè)樣本相似度最高的病毒樣本,則疑似病毒為病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;如果從所述待決策結(jié)果列表中未能選出與所述待檢測(cè)樣本相似的病毒樣本,則疑似病毒為非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果,之后,將所述病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端。
實(shí)施例五:
本發(fā)明實(shí)施例的一種服務(wù)器,所述服務(wù)器包括:第二預(yù)處理單元,用于對(duì)病毒庫(kù)樣本文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;及第二特征參數(shù)運(yùn)算單元,用于根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值;及判斷單元,用于接收由待檢測(cè)樣本計(jì)算得到的第一特征參數(shù)值,對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;及病毒檢測(cè)單元,用于所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒。
在本發(fā)明實(shí)施例一實(shí)施方式中,所述病毒檢測(cè)單元,進(jìn)一步用于:在所述第一特征參數(shù)值和所述第二特征參數(shù)值間的相似度滿足所述閾值時(shí),將待檢測(cè)樣本加入待決策結(jié)果列表中,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,如果從所述待決策結(jié)果列表中能選出與所述待檢測(cè)樣本相似度最高的病毒樣本,則疑似病毒為病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;如果從所述待決策結(jié)果列表中未能選出與所述待檢測(cè)樣本相似的病毒樣本,則疑似病毒為非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果;所述服務(wù)器還包括:發(fā)送單元,用于將所述病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端。
實(shí)施例六:
本實(shí)施例區(qū)別于上述實(shí)施例,上述實(shí)施例中,可以通過(guò)終端上報(bào)經(jīng)預(yù)處理后得到的待檢測(cè)樣本,對(duì)待檢測(cè)樣本進(jìn)行哈希值計(jì)算后提供給服務(wù)器進(jìn)行與病毒樣本哈希值的比對(duì),以實(shí)現(xiàn)病毒檢測(cè)的比對(duì)。本發(fā)明實(shí)施例,預(yù)處理及哈希值計(jì)算等都是在服務(wù)器執(zhí)行的,終端只作為提供樣本的來(lái)源。由于所有處理過(guò)程都是在服務(wù)器執(zhí)行的,可以避免占用終端的開(kāi)銷(xiāo)。
本發(fā)明實(shí)施例的一種病毒檢測(cè)方法,包括:
步驟401、服務(wù)器對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì) 抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;
步驟402、服務(wù)器對(duì)病毒庫(kù)樣本文件按照所述預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;
步驟403、服務(wù)器根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,所述第一特征參數(shù)值作為待檢測(cè)樣本的特征值;
步驟404、服務(wù)器根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值,所述第二特征參數(shù)值作為病毒樣本的特征值;
步驟405、服務(wù)器對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié)果;
步驟406、所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,服務(wù)器確定出所述疑似病毒為病毒或非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端;
步驟407、終端接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
實(shí)施例七:
本發(fā)明實(shí)施例的一種病毒檢測(cè)系統(tǒng),如11所示,所述系統(tǒng)包括:服務(wù)器和終端;其中,所述服務(wù)器包括:第一預(yù)處理單元51,用于對(duì)獲取的待處理文件按照預(yù)設(shè)策略進(jìn)行預(yù)處理,得到對(duì)抗病毒變種入侵的有效信息,構(gòu)成所述有效信息的字節(jié)分布符合指定規(guī)則;第二預(yù)處理單元52,用于對(duì)病毒庫(kù)樣本文件按照所述預(yù)設(shè)策略進(jìn)行預(yù)處理,得到病毒庫(kù)樣本文件中的待比對(duì)信息,構(gòu)成所述待比對(duì)信息的字節(jié)分布符合指定規(guī)則;第一特征參數(shù)值運(yùn)算單元53,用于根據(jù)所述有效信息計(jì)算得到第一特征參數(shù)值,所述第一特征參數(shù)值作為待檢測(cè)樣本的特征值;第二特征參數(shù)值運(yùn)算單元54,用于根據(jù)所述待比對(duì)信息計(jì)算得到第二特征參數(shù)值,所述第二特征參數(shù)值作為病毒樣本的特征值;判斷單元55,用于對(duì)所述第一特征參數(shù)值和所述第二特征參數(shù)值進(jìn)行相似度判斷,得到判斷結(jié) 果;及病毒檢測(cè)單元56,用于所述判斷結(jié)果滿足閾值時(shí),將待檢測(cè)樣本作為疑似病毒,直至與指定數(shù)量或所有病毒庫(kù)樣本文件比對(duì)結(jié)束后,確定出所述疑似病毒為病毒或非病毒,并將其作為病毒比對(duì)的檢測(cè)結(jié)果發(fā)送給終端。所述終端包括:樣本上報(bào)單元61,用于上報(bào)待檢測(cè)樣本,待檢測(cè)樣本的類(lèi)型如圖9所示,可以包括活躍病毒,疑似病毒和非病毒;及病毒查殺單元62,用于接收病毒比對(duì)的檢測(cè)結(jié)果,根據(jù)所述病毒比對(duì)的檢測(cè)結(jié)果對(duì)本地文件進(jìn)行病毒查殺的全部掃描或部分掃描。
這里需要指出的是,上述終端可以為PC這種電子設(shè)備,還可以為如PAD,平板電腦,手提電腦這種便攜電子設(shè)備、還可以為如手機(jī)這種智能移動(dòng)終端,不限于這里的描述;所述服務(wù)器可以是通過(guò)集群系統(tǒng)構(gòu)成的,為實(shí)現(xiàn)各單元功能而合并為一或各單元功能分體設(shè)置的電子設(shè)備,終端和服務(wù)器都至少包括用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)和用于數(shù)據(jù)處理的處理器,或者包括設(shè)置于服務(wù)器內(nèi)的存儲(chǔ)介質(zhì)或獨(dú)立設(shè)置的存儲(chǔ)介質(zhì)。
其中,對(duì)于用于數(shù)據(jù)處理的處理器而言,在執(zhí)行處理時(shí),可以采用微處理器、中央處理器(CPU,Central Processing Unit)、數(shù)字信號(hào)處理器(DSP,Digital Singnal Processor)或可編程邏輯陣列(FPGA,F(xiàn)ield-Programmable Gate Array)實(shí)現(xiàn);對(duì)于存儲(chǔ)介質(zhì)來(lái)說(shuō),包含操作指令,該操作指令可以為計(jì)算機(jī)可執(zhí)行代碼,通過(guò)所述操作指令來(lái)實(shí)現(xiàn)上述本發(fā)明實(shí)施例信息處理方法流程中的各個(gè)步驟。
該終端和該服務(wù)器作為硬件實(shí)體S11的一個(gè)示例如圖12所示。所述裝置包括處理器71、存儲(chǔ)介質(zhì)72以及至少一個(gè)外部通信接口73;所述處理器71、存儲(chǔ)介質(zhì)72以及外部通信接口73均通過(guò)總線74連接。
這里需要指出的是:以上涉及終端和服務(wù)器項(xiàng)的描述,與上述方法描述是類(lèi)似的,同方法的有益效果描述,不做贅述。對(duì)于本發(fā)明終端和服務(wù)器實(shí)施例中未披露的技術(shù)細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例的描述。
以一個(gè)現(xiàn)實(shí)應(yīng)用場(chǎng)景為例對(duì)本發(fā)明實(shí)施例闡述如下:
本應(yīng)用場(chǎng)景中,對(duì)Android病毒的檢測(cè)技術(shù)方案主要依靠特征碼匹配進(jìn)行 檢測(cè),常用的特征有:APK文件的HASH、簽名、Package名字、classes.dex中的類(lèi)名和函數(shù)名。這些現(xiàn)有的病毒檢測(cè)方案都存在各種的問(wèn)題,比如,1)基于APK文件的哈希、簽名、Package名字、類(lèi)名等特征是基于簡(jiǎn)單的規(guī)則或者數(shù)字簽名進(jìn)行識(shí)別,很容易被病毒制作者繞開(kāi),造成漏過(guò)惡意程序的問(wèn)題。2)基于APK文件的哈希進(jìn)行識(shí)別的方式,采用的哈希算法一般是MD5、SHA1等,這些算法對(duì)輸入值很敏感,APK文件即使只有一個(gè)字節(jié)的變化,計(jì)算出來(lái)的哈希值就會(huì)不同,因此,病毒作者很容易通過(guò)重新混淆,或者,在APK文件中添加新的資源文件乃至修改代碼等方式,使通過(guò)哈希算法提取的KEY發(fā)生改變,進(jìn)而導(dǎo)致無(wú)法識(shí)別;3)基于簽名的識(shí)別方式可以通過(guò)更換簽名的方式繞過(guò);4)基于Package名字來(lái)識(shí)別的方式也可通過(guò)修改包名的方式來(lái)繞過(guò);通過(guò)掃描類(lèi)名來(lái)進(jìn)行識(shí)別的方式,一方面因?yàn)閮H僅檢查類(lèi)名從而容易誤報(bào),另一方面也很容易被病毒制造者通過(guò)混淆或者直接修改類(lèi)名而繞過(guò)。而且更改混淆方式,修改APK文件(添加刪除資源,代碼等)或者更換簽名對(duì)病毒制造者而言都很容易,所以病毒作者很輕易地就可以制造新的病毒變種從而繞過(guò)安全軟件的識(shí)別。有鑒于此,針對(duì)這些問(wèn)題,需要一種更精準(zhǔn)的病毒檢測(cè)技術(shù),以便更能行之有效的對(duì)病毒進(jìn)行查殺,用以準(zhǔn)確、有效地檢測(cè)Android病毒變種,從而提高APK的安全性。
本應(yīng)用場(chǎng)景采用本發(fā)明實(shí)施例,可以是一種基于opcode相似度的Android病毒檢測(cè)技術(shù),通過(guò)解析APK文件中的dex文件和so文件,獲取其中函數(shù)的指令,跳過(guò)指令中容易變化的部分,提取比較穩(wěn)定的opcode部分組成序列,然后依據(jù)這些函數(shù)的opcode序列來(lái)計(jì)算模糊哈希值。進(jìn)行樣本檢測(cè)時(shí),將待檢測(cè)樣本的模糊哈希值與病毒樣本庫(kù)中的模糊哈希值進(jìn)行比較,得到的相似度若滿足閾值,則加入待決策結(jié)果列表中,比較完所有病毒樣本后,從待決策結(jié)果列表中選出與待檢測(cè)樣本相似度最高的病毒作為檢測(cè)結(jié)果。如果待決策列表為空,說(shuō)明沒(méi)有找到與待檢測(cè)樣本相似的病毒樣本,此時(shí)檢測(cè)結(jié)果為非病毒。采用本發(fā)明實(shí)施例,能夠有效識(shí)別那些通過(guò)混淆或者重編譯等方法企圖繞過(guò)安全軟件的病毒變種,并且能有效減小病毒檢測(cè)過(guò)程中的資源消耗。
一個(gè)采用手機(jī)安裝的病毒查殺應(yīng)用實(shí)現(xiàn)本發(fā)明實(shí)施例的多個(gè)可選UI示意圖如圖2-圖7所示,首先,開(kāi)啟病毒查殺應(yīng)用的云查殺功能,病毒查殺應(yīng)用對(duì)手機(jī)上的待檢測(cè)樣本生成待檢測(cè)樣本對(duì)應(yīng)的模糊哈希值,將待檢測(cè)樣本對(duì)應(yīng)的模糊哈希值發(fā)到云端(服務(wù)器側(cè)),云端(服務(wù)器側(cè))使用預(yù)置的病毒庫(kù)來(lái)計(jì)算相似度(具體是將待檢測(cè)樣本的模糊哈希值與病毒樣本庫(kù)中的模糊哈希值,進(jìn)行相似度判斷),從而判別該待檢測(cè)樣本的安全狀態(tài),后將病毒比對(duì)檢測(cè)結(jié)果返回給病毒查殺應(yīng)用,病毒查殺應(yīng)用可以根據(jù)需要對(duì)用戶展示和對(duì)樣本進(jìn)行處理。
技術(shù)實(shí)現(xiàn)中涉及的流程及系統(tǒng)中的信息交互圖如圖13-圖17所示。
本應(yīng)用場(chǎng)景采用本發(fā)明實(shí)施例,一個(gè)基本模塊的組成功能如圖13所示,以下對(duì)每個(gè)模塊的具體功能描述如下:
一,模糊哈希生成模塊:
a)分片:
Android平臺(tái)的安裝包格式為apk格式,即標(biāo)準(zhǔn)的zip壓縮包格式,dex和so文件是apk中的代碼可執(zhí)行文件,是惡意代碼的真實(shí)載體。
dex文件中每條指令的基本格式可以概括為:
A/OP Index Arg
其中第一段中的OP部分用來(lái)描述當(dāng)前指令類(lèi)型,A是配置部分,用于對(duì)OP或OP使用參數(shù)進(jìn)行配置,Index是調(diào)用函數(shù)的索引或當(dāng)期指令所引用的靜態(tài)數(shù)據(jù)的索引,通過(guò)索引可以在dex文件中的其他部分找到函數(shù)的對(duì)應(yīng)詳細(xì)信息,Arg部分則是參數(shù)寄存器相關(guān)的定義和指令。從實(shí)際情況來(lái)看,不同的函數(shù)調(diào)用和數(shù)據(jù)操作指令,每次生成dex的文件中指令的二進(jìn)制內(nèi)容都會(huì)發(fā)生變化,Index和Arg部分的二進(jìn)制內(nèi)容對(duì)dex的重新編譯生成和調(diào)用而出現(xiàn)一定的隨機(jī)性,根據(jù)不同的編譯和優(yōu)化策略A也會(huì)有一定的變化,只有OP段部分是相對(duì)穩(wěn)定的數(shù)值內(nèi)容,一般不會(huì)發(fā)生變化。
同樣的,對(duì)于so文件來(lái)說(shuō),一般使用的是ARM指令集,ARM指令的基本格式可以概括為:
<opcode>{<cond>}{S}<Rd>,<Rn>{,<opcode2>}
其中opcode是指令助記符,即操作碼,說(shuō)明指令需要執(zhí)行的操作,在指令中是必需的。
本發(fā)明實(shí)施例通過(guò)對(duì)dex和so文件進(jìn)行解析,獲取每個(gè)函數(shù)的Opcode序列,作為模糊哈希計(jì)算中的分片。
b)每片求哈希值:
將文件分片完以后,就可以對(duì)每片分別計(jì)算哈希了??梢允褂脗鹘y(tǒng)的哈希算法,本發(fā)明實(shí)施例中使用MD5算法。
c)壓縮映射:
對(duì)每一個(gè)文件分片,計(jì)算得到一個(gè)哈希值以后,可以選擇將結(jié)果壓縮短。但是,這種壓縮映射會(huì)損失一部分準(zhǔn)確性,引入誤報(bào)問(wèn)題。本發(fā)明選擇不做壓縮映射,保留MD5的結(jié)果。
d)連接哈希值:
將每片壓縮后的哈希值連接到一起,就得到這個(gè)文件的模糊哈希值了。
本發(fā)明實(shí)施例中使用的分片模糊哈希值(simhash)算法的整個(gè)生成流程如圖14所示。這里,模糊哈希算法有多種,可以是simhash,也可以是spamsum或者其他模糊哈希算法。
二,相似度計(jì)算模塊:
本發(fā)明實(shí)施例中使用海明距離來(lái)計(jì)算兩個(gè)樣本的相似度。二進(jìn)制串A和二進(jìn)制串B的海明距離就是A xor B后二進(jìn)制中1的個(gè)數(shù)。
舉例如下:
A=100111;
B=101010;
hamming_distance(A,B)=count_1(A xor B)=count_1(001101)=3;
當(dāng)算出兩個(gè)樣本的simhash值之后,樣本A和樣本B之間是否相似的條件是:A和B的海明距離是否小于等于N,這個(gè)N值可以根據(jù)經(jīng)驗(yàn)或者實(shí)驗(yàn)來(lái)選取。
三,結(jié)果判定模塊:
對(duì)于一個(gè)待檢測(cè)樣本來(lái)說(shuō),其模糊哈希值可能和病毒庫(kù)里面的多個(gè)樣本的模糊哈希值間的海明距離都小于我們的閾值,也就是說(shuō)此檢測(cè)樣本與病毒庫(kù)里的多個(gè)病毒樣本都相似,此時(shí),需要以一種策略來(lái)決定應(yīng)該選取哪個(gè)病毒樣本的病毒id來(lái)作為檢測(cè)樣本的病毒id。本發(fā)明實(shí)施例中使用的策略是取其中距離最小的樣本的病毒id作為結(jié)果。
本發(fā)明實(shí)施例中主要有兩個(gè)流程:圖15所示的病毒庫(kù)生成流程和圖16所示的待檢測(cè)樣本的病毒比對(duì)檢測(cè)流程。
一,病毒庫(kù)生成流程如圖15所示,包括:
步驟701、從病毒樣本庫(kù)中隨機(jī)取出一個(gè)樣本;
步驟702、生成模糊哈希值;
步驟703、將生成的模糊哈希值和樣本對(duì)應(yīng)的病毒id加入病毒庫(kù)中;
步驟704、判斷全部樣本是否已處理完畢,如果是,執(zhí)行步驟705,否則,返回執(zhí)行步驟701;
步驟705、輸出病毒庫(kù)。
二,待檢測(cè)樣本的病毒比對(duì)檢測(cè)流程如圖16所示,包括:
步驟801、取出待檢測(cè)樣本;
步驟802、生成模糊哈希值;
步驟803、從病毒庫(kù)中依次取出一個(gè)模糊哈希vh及其對(duì)應(yīng)的病毒vid;
步驟804、計(jì)算待檢測(cè)樣本的模糊哈希dh和病毒庫(kù)取出的模糊哈希vh間的距離d;
步驟805、判斷d<=N,如果是,執(zhí)行步驟806,否則,執(zhí)行步驟807;
步驟806、將vh、vid及d作為一項(xiàng)加入待決策列表中;
步驟807、判斷病毒庫(kù)中所有項(xiàng)是否已處理完,如果是,執(zhí)行步驟808;否則,返回執(zhí)行步驟803。
步驟808、判斷待決策列表為空;如果是,則執(zhí)行步驟809;否則,執(zhí)行步驟810。
步驟809、判斷為非病毒APK;
步驟810、將待決策列表中選出距離d最小的項(xiàng)對(duì)應(yīng)的vid作為此檢測(cè)樣本的病毒id。
本發(fā)明實(shí)施例的病毒檢測(cè)系統(tǒng)可以將所有的執(zhí)行過(guò)程都放在云端(服務(wù)器)處理,也可以采用終端(終端上安裝的病毒查殺應(yīng)用客戶端)+云端(服務(wù)器)的方式部署,將病毒庫(kù)生成流程和樣本檢測(cè)流程放到云端,客戶端負(fù)責(zé)生成待檢測(cè)樣本的模糊哈希值,發(fā)送給云端,云端完成檢測(cè)后,回傳結(jié)果給客戶端。此時(shí),系統(tǒng)的架構(gòu)如圖17所示,系統(tǒng)各個(gè)模塊的功能和流程和之前一致,不做贅述。
本應(yīng)用場(chǎng)景采用本發(fā)明實(shí)施例,一個(gè)具體實(shí)現(xiàn)是通過(guò)提取dex和so文件中函數(shù)的opcode序列作為模糊哈希的輸入分片,然后利用模糊哈希的比較來(lái)檢測(cè)Android病毒,由于opcode序列的穩(wěn)定性較高,不隨文件中其他數(shù)據(jù)變化,因此抗變性好,使得本實(shí)施例可以有效檢測(cè)病毒變種,能對(duì)病毒進(jìn)精準(zhǔn)的檢測(cè)和病毒查殺處理。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過(guò)一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說(shuō)明的單元可以是、或也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟 件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。