本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種惡意樣本的檢測方法及裝置。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)時代的到來,智能終端得到了廣泛發(fā)展。與此同時,惡意軟件也不斷泛濫、網(wǎng)絡(luò)安全正遭受著日益嚴峻的威脅。為了應(yīng)對這一問題,現(xiàn)有技術(shù)中提出了多種用于檢測惡意軟件的方式,目前常用的兩種檢測方式分別為動態(tài)分析法和靜態(tài)分析法:
動態(tài)分析法主要通過模擬軟件運行環(huán)境,并在該環(huán)境下監(jiān)測軟件運行過程中的各類行為,包括系統(tǒng)調(diào)用行為、網(wǎng)絡(luò)訪問行為、文件和內(nèi)存修改行為、信息的訪問模式和處理行為,以實現(xiàn)檢測軟件是否具有惡意行為的目的。發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),動態(tài)分析法至少具備如下弊端:由于惡意行為很容易被繞開,從而使得檢測結(jié)果不夠準確。
靜態(tài)分析法主要是在不運行軟件的情況下,通過對軟件中的程序代碼的控制流、語義以及文件清單中的訪問權(quán)限和觸發(fā)動作等靜態(tài)信息進行分析,以實現(xiàn)檢測軟件是否具有惡意行為的目的。發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),靜態(tài)分析法至少具備如下弊端:難以應(yīng)對代碼混淆和多態(tài)變形技術(shù)且難以識別漏洞攻擊。
由此可見,在惡意軟件日益多變的當下,現(xiàn)有的用于檢測惡意軟件的方式顯然已經(jīng)無法有效地檢測出各類惡意軟件,亟需一種新的惡意軟件檢測方式。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的惡意樣本的檢測方法及裝置。
依據(jù)本發(fā)明的一個方面,提供了一種惡意樣本的檢測方法,包括:獲取已知惡意樣本中包含的特征圖標;查詢預設(shè)的圖標關(guān)聯(lián)數(shù)據(jù)庫,確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)數(shù)據(jù)庫用于存儲各個樣本中包含的圖標;查詢預設(shè)的圖標樣本數(shù)據(jù)庫,確定包含所述相似圖標的待測樣本;其中,所述圖標樣本數(shù)據(jù)庫用于存儲與各個圖標相對應(yīng)的樣本;檢測所述待測樣本是否為惡意樣本。
可選地,所述獲取已知惡意樣本中包含的特征圖標的步驟具體包括:查詢預設(shè)的樣本圖標數(shù)據(jù)庫,確定所述已知惡意樣本中包含的全部圖標,從所述全部圖標中篩選出所述特征圖標;其中,所述樣本圖標數(shù)據(jù)庫用于存儲與各個樣本相對應(yīng)的圖標。
可選地,所述確定所述特征圖標對應(yīng)的相似圖標的步驟具體包括:通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;通過第二類相似度算法確定所述待匹配圖標中與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標作為所述特征圖標對應(yīng)的相似圖標。
可選地,所述確定所述特征圖標對應(yīng)的相似圖標的步驟具體包括:根據(jù)所述圖標關(guān)聯(lián)數(shù)據(jù)庫中存儲的圖標關(guān)聯(lián)信息確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)信息包括:各個圖標與其對應(yīng)的相似圖標之間的對應(yīng)關(guān)系;并且,所述圖標關(guān)聯(lián)信息預先通過下述方式確定:針對所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的每個圖標,通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與該圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;通過第二類相似度算法確定所述待匹配圖標中與該圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第二閾值的圖標作為與該圖標對應(yīng)的相似圖標。
可選地,所述獲取已知惡意樣本中包含的特征圖標的步驟之前,進一步包括:獲取增量樣本,將所述增量樣本中包含的圖標確定為待選圖標;根據(jù)預設(shè)的歷史圖標數(shù)據(jù)庫,將所述待選圖標中未包含在所述歷史圖標數(shù)據(jù)庫中的圖標作為增量圖標;將所述增量圖標添加到所述歷史圖標數(shù)據(jù)庫中;以及,將所述增量圖標存儲到分布式數(shù)據(jù)庫中,以供所述圖標關(guān)聯(lián)數(shù)據(jù)庫根據(jù)所述分布式數(shù)據(jù)庫進行更新。
可選地,所述樣本為安卓安裝包。
依據(jù)本發(fā)明的另一方面,提供了一種惡意樣本的檢測系統(tǒng),包括:圖標關(guān)聯(lián)數(shù)據(jù)庫,適于存儲各個樣本中包含的圖標;圖標樣本數(shù)據(jù)庫,適于存儲與各個圖標相對應(yīng)的樣本;獲取模塊,適于獲取已知惡意樣本中包含的特征圖標;圖標關(guān)聯(lián)查詢模塊,適于查詢所述圖標關(guān)聯(lián)數(shù)據(jù)庫,確定所述特征圖標對應(yīng)的相似圖標;圖標樣本查詢模塊,適于查詢所述圖標樣本數(shù)據(jù)庫,確定包含所述相似圖標的待測樣本;檢測模塊,適于檢測所述待測樣本是否為惡意樣本。
可選地,進一步包括:樣本圖標數(shù)據(jù)庫,用于存儲與各個樣本相對應(yīng)的圖標,則所述獲取模塊具體用于:查詢所述樣本圖標數(shù)據(jù)庫,確定所述已知惡意樣本中包含的全部圖標,從所述全部圖標中篩選出所述特征圖標。
可選地,所述圖標關(guān)聯(lián)查詢模塊具體用于:通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;通過第二類相似度算法確定所述待匹配圖標中與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標作為所述特征圖標對應(yīng)的相似圖標。
可選地,進一步包括:相似度計算模塊,用于計算所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的各個圖標之間的相似度,根據(jù)計算結(jié)果在所述圖標關(guān)聯(lián)數(shù)據(jù)庫中生成圖標關(guān)聯(lián)信息,以供所述圖標關(guān)聯(lián)查詢模塊根據(jù)所述圖標關(guān)聯(lián)信息確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)信息包括:各個圖標與其對應(yīng)的相似圖標之間的對應(yīng)關(guān)系。
可選地,所述相似度計算模塊具體用于:針對所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的每個圖標,通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與該圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;
通過第二類相似度算法確定所述待匹配圖標中與該圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第二閾值的圖標作為與該圖標對應(yīng)的相似圖標。
可選地,進一步包括:增量圖標獲取模塊、歷史圖標數(shù)據(jù)庫以及分布式數(shù)據(jù)庫,其中,所述增量圖標獲取模塊,適于獲取增量樣本,將所述增量樣本中包含的圖標確定為待選圖標,根據(jù)所述歷史圖標數(shù)據(jù)庫,將所述待選圖標中未包含在所述歷史圖標數(shù)據(jù)庫中的圖標作為增量圖標,并且,將所述增量圖標添加到所述歷史圖標數(shù)據(jù)庫中;以及,將所述增量圖標存儲到所述分布式數(shù)據(jù)庫中,以供所述圖標關(guān)聯(lián)數(shù)據(jù)庫根據(jù)所述分布式數(shù)據(jù)庫進行更新。
可選地,進一步包括:第一查詢模塊,適于通過預設(shè)的第一查詢接口接收樣本圖標查詢請求,根據(jù)所述樣本圖標查詢請求中包含的樣本標識,查詢所述樣本圖標數(shù)據(jù)庫,并返回該樣本標識對應(yīng)的樣本中包含的圖標;第二查詢模塊,適于通過預設(shè)的第二查詢接口接收圖標樣本查詢請求,根據(jù)所述圖標樣本查詢請求中包含的圖標標識,查詢所述圖標樣本數(shù)據(jù)庫,并返回包含該圖標標識對應(yīng)的圖標的樣本;和/或,第三查詢模塊,適于通過預設(shè)的第三查詢接口接收圖標關(guān)聯(lián)查詢請求,根據(jù)所述圖標關(guān)聯(lián)查詢請求中包含的圖標標識,查詢所述圖標關(guān)聯(lián)數(shù)據(jù)庫,并返回與該圖標標識對應(yīng)的相似圖標。
可選地,所述樣本為安卓安裝包。
在本發(fā)明提供的惡意樣本的檢測方法及裝置中,能夠根據(jù)已知惡意樣本中包含的特征圖標確定對應(yīng)的相似圖標,并進一步確定包含相似圖標的待測樣本,通過對待測樣本進行檢測來發(fā)現(xiàn)惡意樣本。由此可見,本發(fā)明提供了一種全新的惡意樣本檢測方法,通過相似圖標能夠快速便捷地建立相似樣本之間的關(guān)聯(lián)關(guān)系,進而根據(jù)該關(guān)聯(lián)關(guān)系實現(xiàn)根據(jù)已知惡意樣本檢測未知惡意樣本的目的。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明一個實施例提供的惡意樣本的檢測方法的流程圖;
圖2示出了本發(fā)明另一個具體實施例提供的惡意樣本的檢測方法的流程圖;
圖3a至圖3c示出了通過特征圖標查詢到的相似圖標以及包含相似圖標的樣本數(shù)量的查詢結(jié)果示意圖;
圖4a示出了特征圖標的示意圖;
圖4b示出了查詢相似圖標時的查詢結(jié)果示意圖;
圖4c示出了根據(jù)相似圖標反向查找與惡意樣本相似的樣本的查詢結(jié)果示意圖;
圖5示出了本發(fā)明實施例提供的一種惡意樣本的檢測系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提供了一種惡意樣本的檢測方法及裝置,至少能夠解決現(xiàn)有技術(shù)中的檢測方式無法有效地檢測出各類惡意軟件的技術(shù)問題。
圖1示出了本發(fā)明一個實施例提供的惡意樣本的檢測方法的流程圖。如圖1所示,該方法包括以下步驟:
步驟S110:獲取已知惡意樣本中包含的特征圖標。
具體地,可以通過各種方式來獲取已知惡意樣本中包含的特征圖標。例如,可以直接從已知惡意樣本中提取圖標,并從提取到的圖標中選擇具有標識性的圖標作為特征圖標。又如,還可以通過查詢預設(shè)的樣本圖標數(shù)據(jù)庫的方式來確定已知惡意樣本中包含的特征圖標,其中,樣本圖標數(shù)據(jù)庫用于存儲與各個樣本相對應(yīng)的圖標。
步驟S120:查詢預設(shè)的圖標關(guān)聯(lián)數(shù)據(jù)庫,確定特征圖標對應(yīng)的相似圖標;其中,圖標關(guān)聯(lián)數(shù)據(jù)庫用于存儲各個樣本中包含的圖標。
具體地,圖標關(guān)聯(lián)數(shù)據(jù)庫中存儲了所有樣本中包含的全部圖標,通過查詢,能夠確定與特征圖標對應(yīng)的相似圖標。具體實現(xiàn)時,可以通過一種或多種相似度算法計算特征圖標與圖標關(guān)聯(lián)數(shù)據(jù)庫中存儲的所有其他圖標之間的相似度,將相似度大于預設(shè)閾值的圖標作為與特征圖標對應(yīng)的相似圖標。在本步驟中,一個特征圖標對應(yīng)的相似圖標可能為一個,也可能為多個。
步驟S130:查詢預設(shè)的圖標樣本數(shù)據(jù)庫,確定包含相似圖標的待測樣本;其中,圖標樣本數(shù)據(jù)庫用于存儲與各個圖標相對應(yīng)的樣本。
由于圖標樣本數(shù)據(jù)庫中預先存儲了與各個圖標相對應(yīng)的樣本,因此,通過查詢該數(shù)據(jù)庫,能夠快捷方便地確定出包含相似圖標的待測樣本。其中,對于某一個相似圖標而言,包含該相似圖標的待測樣本的數(shù)量可能為一個,也可能為多個。
步驟S140:檢測待測樣本是否為惡意樣本。
由于待測樣本中包含與已知惡意樣本中的特征圖標相似的圖標,因此,待測樣本與已知惡意樣本之間很可能為相似樣本,甚至還可能為家族相關(guān)樣本,因此,通過對待測樣本進行檢測能夠顯著提高惡意樣本的檢出率,提高惡意樣本的檢測效率。具體檢測時,本領(lǐng)域技術(shù)人員可靈活通過各種檢測方式實現(xiàn),本發(fā)明對具體的檢測方式不做限定。
由此可見,在本發(fā)明提供的惡意樣本的檢測方法中,能夠根據(jù)已知惡意樣本中包含的特征圖標確定對應(yīng)的相似圖標,并進一步確定包含相似圖標的待測樣本,通過對待測樣本進行檢測來發(fā)現(xiàn)惡意樣本。由此可見,本發(fā)明提供了一種全新的惡意樣本檢測方法,通過相似圖標能夠快速便捷地建立相似樣本之間的關(guān)聯(lián)關(guān)系,進而根據(jù)該關(guān)聯(lián)關(guān)系實現(xiàn)根據(jù)已知惡意樣本檢測未知惡意樣本的目的。
圖2示出了本發(fā)明另一個具體實施例提供的惡意樣本的檢測方法的流程圖。如圖2所示,該方法包括以下步驟:
步驟S210:查詢預設(shè)的樣本圖標數(shù)據(jù)庫,確定已知惡意樣本中包含的全部圖標,從全部圖標中篩選出特征圖標。
其中,樣本圖標數(shù)據(jù)庫用于存儲與各個樣本相對應(yīng)的圖標,也就是說,樣本圖標數(shù)據(jù)庫中存儲了樣本與圖標之間的對應(yīng)關(guān)系。例如,假設(shè)樣本1中共包含圖標a、圖標b以及圖標c;樣本2中共包含圖標a、圖標d以及圖標e;樣本3中共包含圖標a、圖標b以及圖標f;則樣本圖標數(shù)據(jù)庫中至少存儲有如下三條數(shù)據(jù)記錄:
樣本1——圖標a、圖標b、圖標c;
樣本2——圖標a、圖標d、圖標e;
樣本3——圖標a、圖標b、圖標f。
其中,本實施例中的樣本主要是指APK樣本,當然,其他的各類程序樣本也可以應(yīng)用于本發(fā)明,本發(fā)明對樣本的類型和來源不做限定。假設(shè)已知惡意樣本為樣本1,通過查詢樣本圖標數(shù)據(jù)庫可以確定樣本1中包含的全部圖標為圖標a、圖標b、以及圖標c,相應(yīng)地,可以將圖標a、圖標b、以及圖標c全部作為特征圖標,也可以從圖標a、圖標b、以及圖標c中篩選一個或兩個圖標作為特征圖標,本發(fā)明對特征圖標的篩選方式及具體數(shù)量不做限定。
步驟S220:查詢預設(shè)的圖標關(guān)聯(lián)數(shù)據(jù)庫,確定特征圖標對應(yīng)的相似圖標;其中,圖標關(guān)聯(lián)數(shù)據(jù)庫用于存儲各個樣本中包含的圖標。
具體地,圖標關(guān)聯(lián)數(shù)據(jù)庫可通過如下方式創(chuàng)建:首先,獲取增量樣本并對樣本進行解包處理,將增量樣本中包含的圖標確定為待選圖標;然后,根據(jù)預設(shè)的歷史圖標數(shù)據(jù)庫,將待選圖標中未包含在歷史圖標數(shù)據(jù)庫中的圖標作為增量圖標;接下來,將增量圖標添加到歷史圖標數(shù)據(jù)庫中,以及將增量圖標存儲到分布式數(shù)據(jù)庫中;最后,根據(jù)分布式數(shù)據(jù)庫創(chuàng)建并更新圖標關(guān)聯(lián)數(shù)據(jù)庫。其中,歷史圖標數(shù)據(jù)庫用于按照時間周期存儲每隔預設(shè)時間后新增的圖標,例如,可以按照日期為單位記錄每天產(chǎn)生的所有圖標,通過歷史圖標數(shù)據(jù)庫可以過濾掉已經(jīng)錄入分布式數(shù)據(jù)庫的圖標,避免出現(xiàn)重復錄入的情況發(fā)生,進而減少后續(xù)的存儲及計算成本。由此可見,圖標關(guān)聯(lián)數(shù)據(jù)庫中存儲了所有樣本中包含的全部圖標,因此,通過查詢圖標關(guān)聯(lián)數(shù)據(jù)庫能夠確定與特征圖標對應(yīng)的相似圖標。
在本實施例中,可以通過以下兩種方式中的任一方式確定特征圖標對應(yīng)的相似圖標:在第一種方式中,首先,通過第一類相似度算法確定圖標關(guān)聯(lián)數(shù)據(jù)庫中與特征圖標之間的相似度大于預設(shè)的第一閾值的圖標,將與特征圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;然后,通過第二類相似度算法確定待匹配圖標中與特征圖標之間的相似度大于預設(shè)的第二閾值的圖標,將與特征圖標之間的相似度大于預設(shè)的第二閾值的圖標作為特征圖標對應(yīng)的相似圖標。在第二種方式中,圖標關(guān)聯(lián)數(shù)據(jù)庫中進一步存儲了圖標關(guān)聯(lián)信息,該圖標關(guān)聯(lián)信息具體包括:各個圖標與其對應(yīng)的相似圖標之間的對應(yīng)關(guān)系,相應(yīng)地,直接查詢該圖標關(guān)聯(lián)信息即可確定特征圖標對應(yīng)的相似圖標。由此可見,第二種方式預先計算并保存了圖標關(guān)聯(lián)數(shù)據(jù)庫中的各個相似圖標之間的對應(yīng)關(guān)系,從而在后續(xù)使用過程中節(jié)省了實時計算的時間成本,提升了查詢效率。在第二種方式中,也可以采用與第一種方式類似的方法計算圖標關(guān)聯(lián)信息:針對圖標關(guān)聯(lián)數(shù)據(jù)庫中的每個圖標,通過第一類相似度算法確定圖標關(guān)聯(lián)數(shù)據(jù)庫中與該圖標之間的相似度大于預設(shè)的第一閾值的圖標,將與該圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;通過第二類相似度算法確定待匹配圖標中與該圖標之間的相似度大于預設(shè)的第二閾值的圖標,將與該圖標之間的相似度大于預設(shè)的第二閾值的圖標作為與該圖標對應(yīng)的相似圖標。
具體實現(xiàn)時,上述的兩種方式可以單獨使用,也可以結(jié)合使用,第二種方式能夠顯著提升查詢的速度,但是,為了避免圖標關(guān)聯(lián)信息更新不及時的情況,可以將上述兩種方式相結(jié)合,即:在每次查詢過程中,不僅通過第二種方式查詢圖標關(guān)聯(lián)信息,還進一步采用第一種方式實時計算特征圖標與圖標關(guān)聯(lián)數(shù)據(jù)庫中已存儲的各個圖標之間的相似度,從而確保最新增加到圖標關(guān)聯(lián)數(shù)據(jù)庫中的圖標也能被查詢到。
在上述兩種方式中,同時采用兩類相似度算法能夠顯著提升計算的準確率。具體地,在本實施例中,第一類相似度算法采用ahash(average hash)算法以及phash(perceptual hash)算法的組合實現(xiàn)。其中,ahash算法以及phash算法同屬于哈希類算法,其優(yōu)點在于:簡單、易于實現(xiàn)、且計算速度快。但時,由于哈希類算法的精度有待提高,而且,哈希類算法對于含低頻成分較少的圖標的區(qū)分度不甚理想,因此,在本實施例中,將哈希類算法作為第一重過濾機制,以實現(xiàn)快速高效地過濾掉大量非相似圖標的效果;第二類相似度算法通過SIFT(Scale Invariant Feature Transform)算法實現(xiàn),該算法屬于特征提取類算法,其優(yōu)點在于:精度較高,對于含低頻成分較少的圖標的區(qū)分度較好。由此可見,在本實施例中,充分利用了各種相似度算法的優(yōu)勢,實現(xiàn)了取長補短的技術(shù)效果:具體地,首先由ahash算法和phash算法組成第一層協(xié)同過濾器,該層過濾器可以快速地過濾掉大量不相似的圖標,并且精確度可以達到90%左右,顯著降低了后續(xù)的過濾環(huán)節(jié)的計算量;然后,由sift算法形成第二層過濾器,該層過濾器用于對第一層過濾后保留下來的小批量圖標進行第二次篩選,從而進一步提高精度。由此可見,雖然特征提取類算法的計算量比哈希類算法的計算量大,且消耗時間比哈希類算法長,并且計算出來的特征無法存儲,但是,在本實施例中將特征提取類算法作為第二重過濾機制,充分利用了該算法適合于小批量圖標計算的優(yōu)勢。
通過實驗測試發(fā)現(xiàn),通過上述方式計算圖標相似度時的計算精度高達99%以上。具體地,為了測量圖標相似度的計算精度,發(fā)明人在預設(shè)時間內(nèi),每天隨機抽取一定數(shù)量的圖標,查詢經(jīng)上述方式計算得出的相似圖標,然后目測源圖標與搜索到的相似圖標是否相似。表1示出了每天抽檢的圖標總數(shù)、查詢出來的合適圖標數(shù)量、不合適圖標數(shù)量、以及正確率和錯誤率的統(tǒng)計信息:
表1
從表1中可以看出,通過上述方式計算圖標相似度時的計算精度可達到99%以上。并且,由3種算法形成的兩層過濾器可以極大地解決使用單一算法精度低的問題,也為后續(xù)通過相似圖標關(guān)聯(lián)相似樣本的過程提供了可靠保障。
步驟S230:查詢預設(shè)的圖標樣本數(shù)據(jù)庫,確定包含相似圖標的待測樣本;其中,圖標樣本數(shù)據(jù)庫用于存儲與各個圖標相對應(yīng)的樣本。
由于圖標樣本數(shù)據(jù)庫中預先存儲了與各個圖標相對應(yīng)的樣本,因此,通過查詢該數(shù)據(jù)庫,能夠快捷方便地確定出包含相似圖標的待測樣本。其中,對于某一個相似圖標而言,包含該相似圖標的待測樣本的數(shù)量可能為一個,也可能為多個。例如,仍然假設(shè)樣本1中共包含圖標a、圖標b以及圖標c;樣本2中共包含圖標a、圖標d以及圖標e;樣本3中共包含圖標a、圖標b以及圖標f;則圖標樣本數(shù)據(jù)庫中至少存儲有如下數(shù)據(jù)記錄:
圖標a——樣本1、樣本2、樣本3;
圖標b——樣本1、樣本2;
圖標c——樣本1;
圖標d——樣本2;
圖標e——樣本2;
圖標f——樣本3。
圖3a至圖3c示出了通過特征圖標查詢到的相似圖標以及包含相似圖標的樣本數(shù)量的查詢結(jié)果示意圖。在每幅圖中,左上角示出了特征圖標的圖標圖案以及圖標ID,右下角示出了與特征圖標對應(yīng)的相似圖標的圖案,并且,還示出了每個相似圖標的相似評分以及包含該相似圖標的APK個數(shù)。
步驟S240:檢測待測樣本是否為惡意樣本。
由于待測樣本中包含與已知惡意樣本中的特征圖標相似的圖標,因此,待測樣本與已知惡意樣本之間很可能為相似樣本,甚至還可能為家族相關(guān)樣本,因此,通過對待測樣本進行檢測能夠顯著提高惡意樣本的檢出率,提高惡意樣本的檢測效率。具體檢測時,本領(lǐng)域技術(shù)人員可靈活通過各種檢測方式實現(xiàn),本發(fā)明對具體的檢測方式不做限定。
為了便于理解本發(fā)明,下面給出本發(fā)明的一個具體應(yīng)用場景。假設(shè)分析人員發(fā)現(xiàn)一個惡意樣本,該已知惡意樣本的md5值為f60b826b3e2230b2c14ce2bf1aeeb3cd,其中包含的一幅特征圖標的md5值為e20857a4adc483f756ec2b654a4563a4,圖4a示出了該幅特征圖標的示意圖。為了通過特征圖標關(guān)聯(lián)起與該已知惡意樣本相似的樣本,首先,通過本發(fā)明提供的查詢界面查詢出與該特征圖標對應(yīng)所有相似圖標,然后,再點擊相似圖標,反向查找出包含相似圖標的樣本。具體步驟如下:首先,在查詢界面輸入特征圖標的md5值,查找出該特征圖標對應(yīng)的所有相似圖標,圖4b示出了查詢相似圖標時的查詢結(jié)果示意圖。如圖4b所示,該特征圖標對應(yīng)的相似圖標有三個,在圖中除列出了相似圖標的圖案之外,還示出了相似圖標的md5值、相似評分以及包含該相似圖標的APK個數(shù)。然后,通過相似圖標的md5值即可反向查找相似的樣本,例如,可以進一步點擊查找出來的相似圖標的md5值從而反向查找與該惡意樣本相似的樣本,圖4c示出了點擊圖4b中md5值為28c6c18c0056b90e97ca82843cffb041的相似圖標后反向查找到的所有與該惡意樣本相似的樣本的查詢結(jié)果示意圖。
由此可見,通過本發(fā)明的技術(shù)方案,為追蹤惡意樣本以及發(fā)現(xiàn)相似樣本提供了一種全新的解決思路。具體地,使用3種算法組合成兩層過濾器,可以極大提升圖標檢測的精度(通過手工檢索1000多組圖標證實最終的檢索合適率高達99%以上)。另外,在本發(fā)明的技術(shù)方案中,能夠通過分布式存儲和計算框架來有效解決海量圖標存儲以及海量圖標計算的壓力。而且,在本發(fā)明的技術(shù)方案中,能夠提供從數(shù)據(jù)存儲到查詢的一體化流程,可供分析人員實時查詢、跟蹤相應(yīng)的樣本。
圖5示出了本發(fā)明實施例提供的一種惡意樣本的檢測系統(tǒng)的結(jié)構(gòu)示意圖,如圖5所示,該系統(tǒng)包括:
圖標關(guān)聯(lián)數(shù)據(jù)庫51,適于存儲各個樣本中包含的圖標;
圖標樣本數(shù)據(jù)庫52,適于存儲與各個圖標相對應(yīng)的樣本;
獲取模塊53,適于獲取已知惡意樣本中包含的特征圖標;
圖標關(guān)聯(lián)查詢模塊54,適于查詢所述圖標關(guān)聯(lián)數(shù)據(jù)庫,確定所述特征圖標對應(yīng)的相似圖標;
圖標樣本查詢模塊55,適于查詢所述圖標樣本數(shù)據(jù)庫,確定包含所述相似圖標的待測樣本;
檢測模塊56,適于檢測所述待測樣本是否為惡意樣本。
可選地,該系統(tǒng)中進一步包括:樣本圖標數(shù)據(jù)庫57,用于存儲與各個樣本相對應(yīng)的圖標,則所述獲取模塊53具體用于:查詢所述樣本圖標數(shù)據(jù)庫,確定所述已知惡意樣本中包含的全部圖標,從所述全部圖標中篩選出所述特征圖標。
其中,所述圖標關(guān)聯(lián)查詢模塊54具體用于:通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;通過第二類相似度算法確定所述待匹配圖標中與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標作為所述特征圖標對應(yīng)的相似圖標?;蛘?,系統(tǒng)進一步包括:相似度計算模塊,用于計算所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的各個圖標之間的相似度,根據(jù)計算結(jié)果在所述圖標關(guān)聯(lián)數(shù)據(jù)庫中生成圖標關(guān)聯(lián)信息,以供所述圖標關(guān)聯(lián)查詢模塊根據(jù)所述圖標關(guān)聯(lián)信息確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)信息包括:各個圖標與其對應(yīng)的相似圖標之間的對應(yīng)關(guān)系。其中,所述相似度計算模塊具體用于:針對所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的每個圖標,通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與該圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;通過第二類相似度算法確定所述待匹配圖標中與該圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第二閾值的圖標作為與該圖標對應(yīng)的相似圖標。
另外,該系統(tǒng)還可以進一步包括:增量圖標獲取模塊、歷史圖標數(shù)據(jù)庫以及分布式數(shù)據(jù)庫,其中,所述增量圖標獲取模塊,適于獲取增量樣本,將所述增量樣本中包含的圖標確定為待選圖標,根據(jù)所述歷史圖標數(shù)據(jù)庫,將所述待選圖標中未包含在所述歷史圖標數(shù)據(jù)庫中的圖標作為增量圖標,并且,將所述增量圖標添加到所述歷史圖標數(shù)據(jù)庫中;以及,將所述增量圖標存儲到所述分布式數(shù)據(jù)庫中,以供所述圖標關(guān)聯(lián)數(shù)據(jù)庫根據(jù)所述分布式數(shù)據(jù)庫進行更新。
另外,為了便于查詢,該系統(tǒng)還可以進一步包括:
第一查詢模塊,適于通過預設(shè)的第一查詢接口接收樣本圖標查詢請求,根據(jù)所述樣本圖標查詢請求中包含的樣本標識,查詢所述樣本圖標數(shù)據(jù)庫,并返回該樣本標識對應(yīng)的樣本中包含的圖標;
第二查詢模塊,適于通過預設(shè)的第二查詢接口接收圖標樣本查詢請求,根據(jù)所述圖標樣本查詢請求中包含的圖標標識,查詢所述圖標樣本數(shù)據(jù)庫,并返回包含該圖標標識對應(yīng)的圖標的樣本;和/或,
第三查詢模塊,適于通過預設(shè)的第三查詢接口接收圖標關(guān)聯(lián)查詢請求,根據(jù)所述圖標關(guān)聯(lián)查詢請求中包含的圖標標識,查詢所述圖標關(guān)聯(lián)數(shù)據(jù)庫,并返回與該圖標標識對應(yīng)的相似圖標。其中,各個查詢模塊可提供web界面并通過web接口進行查詢。
上述系統(tǒng)中的各個模塊的具體結(jié)構(gòu)和工作原理可參照方法實施例中相應(yīng)步驟的描述,此處不再贅述。
綜上所述,在本發(fā)明提供的惡意樣本的檢測方法及裝置中,能夠根據(jù)已知惡意樣本中包含的特征圖標確定對應(yīng)的相似圖標,并進一步確定包含相似圖標的待測樣本,通過對待測樣本進行檢測來發(fā)現(xiàn)惡意樣本。由此可見,本發(fā)明提供了一種全新的惡意樣本檢測方法,通過相似圖標能夠快速便捷地建立相似樣本之間的關(guān)聯(lián)關(guān)系,進而根據(jù)該關(guān)聯(lián)關(guān)系實現(xiàn)根據(jù)已知惡意樣本檢測未知惡意樣本的目的。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了:A1、一種惡意樣本的檢測方法,包括:
獲取已知惡意樣本中包含的特征圖標;
查詢預設(shè)的圖標關(guān)聯(lián)數(shù)據(jù)庫,確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)數(shù)據(jù)庫用于存儲各個樣本中包含的圖標;
查詢預設(shè)的圖標樣本數(shù)據(jù)庫,確定包含所述相似圖標的待測樣本;其中,所述圖標樣本數(shù)據(jù)庫用于存儲與各個圖標相對應(yīng)的樣本;
檢測所述待測樣本是否為惡意樣本。
A2、根據(jù)A1所述的方法,其中,所述獲取已知惡意樣本中包含的特征圖標的步驟具體包括:
查詢預設(shè)的樣本圖標數(shù)據(jù)庫,確定所述已知惡意樣本中包含的全部圖標,從所述全部圖標中篩選出所述特征圖標;
其中,所述樣本圖標數(shù)據(jù)庫用于存儲與各個樣本相對應(yīng)的圖標。
A3、根據(jù)A1所述的方法,其中,所述確定所述特征圖標對應(yīng)的相似圖標的步驟具體包括:
通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;
通過第二類相似度算法確定所述待匹配圖標中與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標作為所述特征圖標對應(yīng)的相似圖標。
A4、根據(jù)A1所述的方法,其中,所述確定所述特征圖標對應(yīng)的相似圖標的步驟具體包括:根據(jù)所述圖標關(guān)聯(lián)數(shù)據(jù)庫中存儲的圖標關(guān)聯(lián)信息確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)信息包括:各個圖標與其對應(yīng)的相似圖標之間的對應(yīng)關(guān)系;
并且,所述圖標關(guān)聯(lián)信息預先通過下述方式確定:
針對所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的每個圖標,通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與該圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;
通過第二類相似度算法確定所述待匹配圖標中與該圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第二閾值的圖標作為與該圖標對應(yīng)的相似圖標。
A5、根據(jù)A1所述的方法,其中,所述獲取已知惡意樣本中包含的特征圖標的步驟之前,進一步包括:
獲取增量樣本,將所述增量樣本中包含的圖標確定為待選圖標;
根據(jù)預設(shè)的歷史圖標數(shù)據(jù)庫,將所述待選圖標中未包含在所述歷史圖標數(shù)據(jù)庫中的圖標作為增量圖標;
將所述增量圖標添加到所述歷史圖標數(shù)據(jù)庫中;以及,
將所述增量圖標存儲到分布式數(shù)據(jù)庫中,以供所述圖標關(guān)聯(lián)數(shù)據(jù)庫根據(jù)所述分布式數(shù)據(jù)庫進行更新。
A6、根據(jù)A1所述的方法,其中,所述樣本為安卓安裝包。
本發(fā)明還公開了:B7、一種惡意樣本的檢測系統(tǒng),包括:
圖標關(guān)聯(lián)數(shù)據(jù)庫,適于存儲各個樣本中包含的圖標;
圖標樣本數(shù)據(jù)庫,適于存儲與各個圖標相對應(yīng)的樣本;
獲取模塊,適于獲取已知惡意樣本中包含的特征圖標;
圖標關(guān)聯(lián)查詢模塊,適于查詢所述圖標關(guān)聯(lián)數(shù)據(jù)庫,確定所述特征圖標對應(yīng)的相似圖標;
圖標樣本查詢模塊,適于查詢所述圖標樣本數(shù)據(jù)庫,確定包含所述相似圖標的待測樣本;
檢測模塊,適于檢測所述待測樣本是否為惡意樣本。
B8、根據(jù)B7所述的系統(tǒng),其中,進一步包括:
樣本圖標數(shù)據(jù)庫,用于存儲與各個樣本相對應(yīng)的圖標,則所述獲取模塊具體用于:查詢所述樣本圖標數(shù)據(jù)庫,確定所述已知惡意樣本中包含的全部圖標,從所述全部圖標中篩選出所述特征圖標。
B9、根據(jù)B7所述的系統(tǒng),其中,所述圖標關(guān)聯(lián)查詢模塊具體用于:
通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;
通過第二類相似度算法確定所述待匹配圖標中與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與所述特征圖標之間的相似度大于預設(shè)的第二閾值的圖標作為所述特征圖標對應(yīng)的相似圖標。
B10、根據(jù)B7所述的系統(tǒng),其中,進一步包括:
相似度計算模塊,用于計算所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的各個圖標之間的相似度,根據(jù)計算結(jié)果在所述圖標關(guān)聯(lián)數(shù)據(jù)庫中生成圖標關(guān)聯(lián)信息,以供所述圖標關(guān)聯(lián)查詢模塊根據(jù)所述圖標關(guān)聯(lián)信息確定所述特征圖標對應(yīng)的相似圖標;其中,所述圖標關(guān)聯(lián)信息包括:各個圖標與其對應(yīng)的相似圖標之間的對應(yīng)關(guān)系。
B11、根據(jù)B10所述的系統(tǒng),其中,所述相似度計算模塊具體用于:
針對所述圖標關(guān)聯(lián)數(shù)據(jù)庫中的每個圖標,通過第一類相似度算法確定所述圖標關(guān)聯(lián)數(shù)據(jù)庫中與該圖標之間的相似度大于預設(shè)的第一閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第一閾值的圖標作為待匹配圖標;
通過第二類相似度算法確定所述待匹配圖標中與該圖標之間的相似度大于預設(shè)的第二閾值的圖標,將所述與該圖標之間的相似度大于預設(shè)的第二閾值的圖標作為與該圖標對應(yīng)的相似圖標。
B12、根據(jù)B7所述的系統(tǒng),其中,進一步包括:增量圖標獲取模塊、歷史圖標數(shù)據(jù)庫以及分布式數(shù)據(jù)庫,其中,
所述增量圖標獲取模塊,適于獲取增量樣本,將所述增量樣本中包含的圖標確定為待選圖標,根據(jù)所述歷史圖標數(shù)據(jù)庫,將所述待選圖標中未包含在所述歷史圖標數(shù)據(jù)庫中的圖標作為增量圖標,并且,將所述增量圖標添加到所述歷史圖標數(shù)據(jù)庫中;以及,將所述增量圖標存儲到所述分布式數(shù)據(jù)庫中,以供所述圖標關(guān)聯(lián)數(shù)據(jù)庫根據(jù)所述分布式數(shù)據(jù)庫進行更新。
B13、根據(jù)B7所述的系統(tǒng),其中,進一步包括:
第一查詢模塊,適于通過預設(shè)的第一查詢接口接收樣本圖標查詢請求,根據(jù)所述樣本圖標查詢請求中包含的樣本標識,查詢所述樣本圖標數(shù)據(jù)庫,并返回該樣本標識對應(yīng)的樣本中包含的圖標;
第二查詢模塊,適于通過預設(shè)的第二查詢接口接收圖標樣本查詢請求,根據(jù)所述圖標樣本查詢請求中包含的圖標標識,查詢所述圖標樣本數(shù)據(jù)庫,并返回包含該圖標標識對應(yīng)的圖標的樣本;和/或,
第三查詢模塊,適于通過預設(shè)的第三查詢接口接收圖標關(guān)聯(lián)查詢請求,根據(jù)所述圖標關(guān)聯(lián)查詢請求中包含的圖標標識,查詢所述圖標關(guān)聯(lián)數(shù)據(jù)庫,并返回與該圖標標識對應(yīng)的相似圖標。
B14、根據(jù)B7所述的系統(tǒng),其中,所述樣本為安卓安裝包。