本發(fā)明實施例涉及軟件檢測技術領域,特別涉及一種惡意軟件檢測方法及裝置。
背景技術:
惡意軟件是指在計算機系統(tǒng)上執(zhí)行惡意任務的應用程序。終端安裝惡意軟件之后,惡意軟件會進行惡意扣費、發(fā)送欺詐信息或竊取用戶個人信息等操作,嚴重影響安全性。因此,需要對惡意軟件進行自動檢測。
在相關技術中,通過對待檢測軟件的代碼進行分析,提取待檢測軟件的代碼特征,將待檢測軟件的代碼特征與惡意軟件的代碼特征進行比對,如果兩者匹配,則將待檢測軟件確定為惡意軟件。
由于大部分的惡意軟件所執(zhí)行的惡意操作為惡意扣費、發(fā)送欺詐信息或竊取用戶個人信息,從軟件的代碼所實現(xiàn)的操作來看,其與正常的非惡意軟件并無明顯差異。因此,上述相關技術提供的基于代碼特征比對的惡意軟件檢測方法,存在檢出成功率低、誤報率高的問題。
技術實現(xiàn)要素:
為了解決相關技術提供的基于代碼特征比對的惡意軟件檢測方法所存在的檢出成功率低、誤報率高的問題,本發(fā)明實施例提供了一種惡意軟件檢測方法及裝置。所述技術方案如下:
第一方面,提供了一種惡意軟件檢測方法,所述方法包括:
獲取待檢測軟件的軟件名稱;
提取所述待檢測軟件的軟件名稱中包含的目標類型字符;
檢測是否存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,所述惡意軟件字符是指惡意軟件的軟件名稱中包含的目標類型字符;
若存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,則確定所述待檢測軟件為惡意軟件。
第二方面,提供了一種惡意軟件檢測裝置,所述裝置包括:
第一獲取模塊,用于獲取待檢測軟件的軟件名稱;
第一提取模塊,用于提取所述待檢測軟件的軟件名稱中包含的目標類型字符;
第一檢測模塊,用于檢測是否存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,所述惡意軟件字符是指惡意軟件的軟件名稱中包含的目標類型字符;
第一確定模塊,用于若存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,則確定所述待檢測軟件為惡意軟件。
本發(fā)明實施例提供的技術方案可以帶來如下有益效果:
利用惡意軟件的軟件名稱與正常的非惡意軟件的軟件名稱存在明顯區(qū)別這一特性,通過獲取待檢測軟件的軟件名稱,根據(jù)待檢測軟件的軟件名稱檢測待檢測軟件是否為惡意軟件,有助于提高檢出成功率及降低誤報率。
另外,相較于相關技術提供的基于代碼特征比對的惡意軟件檢測方法,本發(fā)明實施例無需對軟件代碼進行分析,僅需對軟件名稱進行分析處理,因此檢測效率會得到大幅提升。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1a是本發(fā)明一個實施例提供的惡意軟件檢測方法的流程圖;
圖1b是本發(fā)明實施例涉及的一個界面示意圖;
圖2是本發(fā)明一個實施例提供的確定惡意軟件字符的方法的流程圖;
圖3是本發(fā)明另一個實施例提供的惡意軟件檢測方法的流程圖;
圖4a是本發(fā)明另一個實施例提供的惡意軟件檢測方法的流程圖;
圖4b是圖4a實施例涉及的步驟403的流程圖;
圖5是本發(fā)明一個實施例提供的惡意軟件檢測裝置的框圖;
圖6是本發(fā)明一個實施例提供的終端的結構示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
在本發(fā)明實施例中,嘗試從其它維度對惡意軟件進行檢測。通過對一些惡意軟件進行分析發(fā)現(xiàn),這些惡意軟件的軟件名稱與正常的非惡意軟件的軟件名稱存在明顯區(qū)別。因此,在本發(fā)明實施例中,通過獲取待檢測軟件的軟件名稱,根據(jù)待檢測軟件的軟件名稱檢測待檢測軟件是否為惡意軟件,以達到提高檢出成功率、降低誤報率的目的。
本發(fā)明實施例提供的方法,各步驟的執(zhí)行主體可以是終端。例如,終端可以是諸如手機、平板電腦、電子書閱讀器、多媒體播放設備、pda(personaldigitalassistant,個人數(shù)字助理)、pc(personalcomputer,個人計算機)等電子設備??蛇x地,終端是基于android(安卓)操作系統(tǒng)的移動終端。當然,本發(fā)明實施例并不限定終端的操作系統(tǒng)還可以是ios操作系統(tǒng)、windowsphone操作系統(tǒng)等其它操作系統(tǒng)。
下面將基于上面所述的本發(fā)明實施例涉及的共性方面,對本發(fā)明實施例進一步詳細說明。
請參考圖1a,其示出了本發(fā)明一個實施例提供的惡意軟件檢測方法的流程圖。該方法可以包括如下步驟。
步驟101,獲取待檢測軟件的軟件名稱。
軟件名稱(softname)也稱為軟件名,是軟件的標識符。不同的軟件對應于不同的軟件名稱。
在一個示例中,步驟101包括如下幾個子步驟:
步驟101a,讀取待檢測軟件的應用程序包中的信息描述文件;
待檢測軟件的應用程序包即是指待檢測軟件的安裝包。信息描述文件是待檢測軟件的基礎配置文件,軟件的應用程序包中包含信息描述文件。
以待檢測軟件為android應用程序為例,android應用程序的應用程序包稱為apk(androidapplicationpackage)。android應用程序的信息描述文件是manifest文件,也即androidmanifest.4ml文件。在信息描述文件中,開發(fā)者可以說明軟件的基礎信息,比如軟件名稱、入口頁面、所需要的權限信息、版本信息等。信息描述文件也可稱為清單文件。
步驟101b,讀取上述信息描述文件中的軟件名稱條目中的數(shù)據(jù),并將讀取到的數(shù)據(jù)作為待檢測軟件的軟件名稱。
待檢測軟件的信息描述文件中存在一個記錄有待檢測軟件的軟件名稱的條目(可稱為軟件名稱條目),終端從該條目中讀取待檢測軟件的軟件名稱。
以待檢測軟件為android應用程序為例,從android應用程序的manifest文件中讀取軟件名稱。
步驟102,提取待檢測軟件的軟件名稱中包含的目標類型字符。
軟件名稱中可以包含中文字符(也即漢字)、韓文字符、日文字符、英文字母、希臘字母、拉丁字母、俄文字母、數(shù)字、符號、標點等多種不同類型的字符。目標類型字符可以是一種類型的字符,也可以是多種類型的字符。在本發(fā)明實施例中,主要以目標類型字符為中文字符進行介紹說明。但是,在本發(fā)明實施例中,并不限定目標類型字符還可以是其它某一類型的字符,如日文字符;或者也可以是其它多種類型的字符,如中文字符和日文字符。
終端首先識別待檢測軟件的軟件名稱中包含的目標類型字符,然后提取識別出的目標類型字符。以目標類型字符為中文字符為例,終端首先識別待檢測軟件的軟件名稱中包含的中文字符,然后提取識別出的中文字符。
可選地,終端獲取待檢測軟件的軟件名稱之后,檢測待檢測軟件的軟件名稱中包含的目標類型字符的字符數(shù)量是否大于預設字符數(shù)量;若字符數(shù)量大于預設字符數(shù)量,則執(zhí)行步驟102;若字符數(shù)量不大于預設字符數(shù)量,則不執(zhí)行步驟102,結束流程。
以目標類型字符為中文字符為例,軟件名稱中包含的中文字符的字符數(shù)量是指軟件名稱中包含的漢字的個數(shù)。例如,待檢測軟件的軟件名稱為“蜜ぃ汁ぃ影ぃ城”,其包含的中文字符為“蜜汁影城”,中文字符的字符數(shù)量為4。
預設字符數(shù)量可以是預先根據(jù)經驗設定的經驗值,例如3或4。
通過上述方式,當待檢測軟件的軟件名稱中包含的目標類型字符的字符數(shù)量大于預設字符數(shù)量時,執(zhí)行后續(xù)的檢測流程,否則不執(zhí)行后續(xù)的檢測流程,可以避免進行非必要的檢測,且有助于降低誤報率。
步驟103,檢測是否存在與待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符。
惡意軟件字符是指惡意軟件的軟件名稱中包含的目標類型字符。惡意軟件是指在計算機系統(tǒng)上執(zhí)行惡意任務的應用程序。終端安裝惡意軟件之后,惡意軟件會進行惡意扣費、發(fā)送欺詐信息或竊取用戶個人信息等操作。一些惡意軟件通常會以情色、中獎、危險告警等信息為噱頭,引導用戶在終端中下載安裝惡意軟件。
可選地,若采用精確匹配方式,則待檢測軟件的軟件名稱中包含的目標類型字符與惡意軟件字符相匹配,是指待檢測軟件的軟件名稱中包含的目標類型字符與惡意軟件字符完全相同。若采用模糊匹配方式,則待檢測軟件的軟件名稱中包含的目標類型字符與惡意軟件字符相匹配,是指待檢測軟件的軟件名稱中包含的目標類型字符與惡意軟件字符的匹配度達到預設匹配度;其中,匹配度可以是指待檢測軟件的軟件名稱中包含的目標類型字符與惡意軟件字符中相同字符的數(shù)量占待檢測軟件的軟件名稱中包含的目標類型字符的字符數(shù)量的比值。
可選地,終端檢測惡意軟件字符集合中是否存在與待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,惡意軟件字符集合中包括至少一個惡意軟件字符。有關惡意軟件字符的確定方式可參見下文圖2實施例中的介紹說明。
步驟104,若存在與待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,則確定待檢測軟件為惡意軟件。
仍然以待檢測軟件的軟件名稱為“蜜ぃ汁ぃ影ぃ城”為例,假設存在惡意軟件字符“蜜汁影城”,則確定該待檢測軟件為惡意軟件。
另外,若不存在與待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,則確定待檢測軟件為非惡意軟件。非惡意軟件即是指不是惡意軟件的軟件。
在本發(fā)明實施例中,對上述步驟101至步驟104涉及的檢測流程的執(zhí)行時機不作限定。例如,終端可以在已下載待檢測軟件但未安裝待檢測軟件時(也即在安裝待檢測軟件之前),執(zhí)行上述檢測流程;終端也可以在安裝待檢測軟件的過程中,執(zhí)行上述檢測流程;終端還可以在安裝待檢測軟件之后,執(zhí)行上述檢測流程;或者終端還可以在下載待檢測軟件之前或者在下載待檢測軟件的過程中,執(zhí)行上述檢測流程。
結合參考圖1b,假設終端中安裝運行有目標應用,該目標應用具備本發(fā)明實施例提供的惡意軟件檢測功能,例如該目標應用為“手機管家”應用11。終端中還安裝有一款軟件名稱為“蜜ぃ汁ぃ影ぃ城”的應用12,目標應用通過上述流程對這款應用的軟件名稱“蜜ぃ汁ぃ影ぃ城”進行分析,確定這款應用為惡意軟件,生成并顯示相應的提示信息13,通過該提示信息13提示用戶這款應用為惡意軟件??蛇x地,用戶可以基于上述提示信息13刪除惡意軟件。
綜上所述,本發(fā)明實施例提供的方法,利用惡意軟件的軟件名稱與正常的非惡意軟件的軟件名稱存在明顯區(qū)別這一特性,通過獲取待檢測軟件的軟件名稱,根據(jù)待檢測軟件的軟件名稱檢測待檢測軟件是否為惡意軟件,有助于提高檢出成功率及降低誤報率。
另外,相較于相關技術提供的基于代碼特征比對的惡意軟件檢測方法,本發(fā)明實施例無需對軟件代碼進行分析,僅需對軟件名稱進行分析處理,因此檢測效率會得到大幅提升。
在基于圖1a所示實施例提供的一個可選實施例中,結合參考圖2,本實施例提供一種確定惡意軟件字符的方法,該方法可以包括如下幾個步驟。
步驟201,獲取惡意軟件樣本的軟件名稱。
惡意軟件樣本是指預先被確定為惡意軟件的軟件樣本。惡意軟件樣本也可稱為黑樣本。惡意軟件樣本的數(shù)量為至少一個,在通常情況下,惡意軟件樣本的數(shù)量為多個。惡意軟件樣本的數(shù)量越多,后續(xù)確定的惡意軟件字符越齊全,惡意軟件的檢出成功率越高。
另外,惡意軟件樣本的軟件名稱的獲取方式可以參考上述圖1a實施例中有關步驟101的介紹,本實施例對此不再贅述。
步驟202,提取惡意軟件樣本的軟件名稱中包含的目標類型字符。
終端首先識別惡意軟件樣本的軟件名稱中包含的目標類型字符,然后提取識別出的目標類型字符。
可選地,終端獲取惡意軟件樣本的軟件名稱之后,檢測惡意軟件樣本的軟件名稱中包含的目標類型字符的字符數(shù)量是否大于預設字符數(shù)量;若字符數(shù)量大于預設字符數(shù)量,則執(zhí)行步驟202;若字符數(shù)量不大于預設字符數(shù)量,則不執(zhí)行步驟202,結束流程。
步驟203,檢測惡意軟件樣本的軟件名稱中包含的目標類型字符是否符合預設條件。
預設條件是指根據(jù)惡意軟件的軟件名稱的特征所預先設定的判定條件(或規(guī)則)。
例如,一些惡意軟件的軟件名稱如下:情て趣て影て院-38581,情つ趣つ影つ院-38797,情と趣と影と院-85479。上述軟件名稱存在一些共同特征,例如中文字符間隔排列且間隔數(shù)為3,又例如中文字符之后存在相同字符串“-”和5個數(shù)字,因此可以將上述共同特征設定為預設條件。
可選地,預設條件包括以下至少一項:軟件名稱中包含的目標類型字符間隔排列且間隔數(shù)大于預設間隔數(shù)、軟件名稱中包含的目標類型字符之后存在預設字符或預設字符串、軟件名稱中包含的目標類型字符之后緊接著非目標類型字符且非目標類型字符的數(shù)量大于預設門限值。預設間隔數(shù)可以是預先根據(jù)經驗設定的經驗值,例如2或3。預設字符是指某一個特定字符,預設字符串是指多個特定字符。預設門限值可以是預先根據(jù)經驗設定的經驗值,例如6或8。
示例性地,以目標類型字符為中文字符為例,預設條件包括如下幾項:
(1)軟件名稱中包含的中文字符間隔排列且間隔數(shù)大于或等于3;
例如,軟件名稱為“蜜ぃ汁ぃ影ぃ城”;又例如,“蜜aa汁bb影cc城”。
(2)軟件名稱中包含的中文字符之后存在預設字符串“(vip”;
例如,軟件名稱為“桃つ澀つ視つ頻(vip64796)”。
(3)軟件名稱中包含的中文字符之后存在預設字符串“_v”或“v_”;
例如,軟件名稱為“快播成人版_v2.6”;又例如,軟件名稱為“快播成人版v_2.6”。
(4)軟件名稱中包含的中文字符之后緊跟著非中文字符,且非中文字符的數(shù)量大于或等于8;
例如,軟件名稱為“快播4成人版lkybplpfiph”,軟件名稱中包含的中文字符的形式不作限定,中文字符之間也可間隔有非中文字符。
需要說明的是,上文介紹的預設條件進行示例性和解釋性的,在實際應用中,可根據(jù)實際情況設定預設條件。
步驟204,若惡意軟件樣本的軟件名稱中包含的目標類型字符符合預設條件,則確定惡意軟件樣本的軟件名稱中包含的目標類型字符為惡意軟件字符。
可選地,終端在確定惡意軟件樣本的軟件名稱中包含的目標類型字符為惡意軟件字符之后,將惡意軟件字符添加至惡意軟件字符集合中。
另外,若惡意軟件樣本的軟件名稱中包含的目標類型字符不符合預設條件,則確定惡意軟件樣本的軟件名稱中包含的目標類型字符不是惡意軟件字符。
可選地,上述步驟203之后還包括如下步驟:
1、若惡意軟件樣本的軟件名稱中包含的目標類型字符符合預設條件,則確定惡意軟件樣本的軟件名稱中包含的目標類型字符為候選惡意軟件字符;
2、獲取候選惡意軟件字符對應的提取次數(shù);
3、檢測提取次數(shù)是否大于預設次數(shù);
4、若提取次數(shù)大于預設次數(shù),則將候選惡意軟件字符確定為惡意軟件字符。
提取次數(shù)是指從惡意軟件樣本的軟件名稱中提取到候選惡意軟件字符的次數(shù)。例如,惡意軟件樣本的數(shù)量為100個,從這100個惡意軟件樣本中提取到候選惡意軟件字符“蜜汁影城”的次數(shù)為20次,則候選惡意軟件字符“蜜汁影城”的提取次數(shù)即為20。預設次數(shù)可以是預先根據(jù)經驗設定的經驗值,例如4或5。另外,若提取次數(shù)不大于預設次數(shù),則確定候選惡意軟件字符不是惡意軟件字符。
可選地,上述有關提取次數(shù)的檢測步驟也可在將惡意軟件字符添加至惡意軟件字符集合中之后執(zhí)行。例如,對于已添加至惡意軟件字符集合中的每一個惡意軟件字符,終端獲取該惡意軟件字符對應的提取次數(shù),檢測提取次數(shù)是否大于預設次數(shù),若提取次數(shù)大于預設次數(shù),則將該惡意軟件字符在惡意軟件字符集合中保留,若提取次數(shù)不大于預設次數(shù),則將該惡意軟件字符從惡意軟件字符集合中刪除。
通過上述方式,確保最終確定的惡意軟件字符是具有通用性的,有助于降低誤報率,且有助于提高時效性。
可選地,對于每一個惡意軟件字符,終端檢測該惡意軟件字符是否與從非惡意軟件樣本的軟件名稱中提取的目標類型字符相匹配;若該惡意軟件字符與從非惡意軟件樣本的軟件名稱中提取的目標類型字符相匹配,則刪除該惡意軟件字符;若該惡意軟件字符與從非惡意軟件樣本的軟件名稱中提取的目標類型字符相匹配,則保留該惡意軟件字符。
非惡意軟件樣本是指預先被確定為非惡意軟件的軟件樣本。非惡意軟件樣本也可稱為白樣本。非惡意軟件樣本的數(shù)量為至少一個,在通常情況下,非惡意軟件樣本的數(shù)量為多個。上述將非惡意軟件樣本的軟件名稱中提取的目標類型字符與惡意軟件字符的匹配過程可以參考圖1a實施例中有關步驟103的介紹,本實施例對此不再贅述。
通過上述方式,有助于提高最終確定的惡意軟件字符的準確性,降低誤報率。
請參考圖3,其示出了本發(fā)明另一個實施例提供的惡意軟件檢測方法的流程圖。該方法可以包括如下步驟。
步驟301,獲取待檢測軟件的軟件名稱。
本步驟與圖1a實施例中的步驟101相同,可以參考圖1a實施例中有關步驟101的介紹,本實施例對此不再贅述。
步驟302,提取待檢測軟件的軟件名稱中包含的目標類型字符。
本步驟與圖1a實施例中的步驟102相同,可以參考圖1a實施例中有關步驟102的介紹,本實施例對此不再贅述。
步驟303,獲取待檢測軟件的軟件名稱中包含的目標類型字符對應的特征值。
特征值通常為一個字符串,不同的目標類型字符所對應生成的特征值也不同。終端可以采用預設算法根據(jù)目標類型字符生成相應的特征值,該預設算法包括但不限于消息摘要算法、哈希算法。
在一種可能的實施方式中,采用消息摘要算法計算待檢測軟件的軟件名稱中包含的目標類型字符對應的消息摘要,并將該消息摘要作為待檢測軟件對應的特征值。例如,消息摘要算法可以是md5(messagedigestalgorithm5,消息摘要算法第五版)。
在另一種可能的實施方式中,采用哈希算法計算待檢測軟件的軟件名稱中包含的目標類型字符對應的哈希值,并將該哈希值作為待檢測軟件對應的特征值。例如,哈希算法可以是sha1(securehashalgorithm,安全哈希算法)。
步驟304,檢測惡意軟件特征值集合中是否存在與待檢測軟件對應的特征值相同的惡意軟件特征值。
其中,惡意軟件特征值集合中包括至少一個惡意軟件特征值,每一個惡意軟件特征值是指一個惡意軟件字符對應的特征值。惡意軟件字符對應的特征值也可采用上述舉例的消息摘要算法或哈希算法對惡意軟件字符進行計算得到。
如果存在與待檢測軟件對應的特征值相同的惡意軟件特征值,則說明存在與待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符;反之,如果不存在與待檢測軟件對應的特征值相同的惡意軟件特征值,則說明不存在與待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符。
步驟305,若惡意軟件特征值集合中存在與待檢測軟件對應的特征值相同的惡意軟件特征值,則確定待檢測軟件為惡意軟件。
另外,若惡意軟件特征值集合中不存在與待檢測軟件對應的特征值相同的惡意軟件特征值,則確定待檢測軟件為非惡意軟件。
可選地,采用如下方法生成惡意軟件特征值集合:在生成惡意軟件字符集之后,獲取惡意軟件字符集中的每一個惡意軟件字符對應的惡意軟件特征值,得到惡意軟件特征值集合。
綜上所述,本發(fā)明實施例提供的方法,還通過獲取待檢測軟件的軟件名稱中包含的目標類型字符對應的特征值,通過將待檢測軟件對應的特征值和惡意軟件特征值進行比對,來確定待檢測軟件是否為惡意軟件,相較于直接比對匹配目標類型字符,比對效率會得到提升。
下面,在圖4a實施例中,以目標類型字符為中文字符為例,對本發(fā)明實施例提供的方法流程進行介紹。
步驟401,從樣本數(shù)據(jù)庫中獲取至少一個惡意軟件樣本和至少一個非惡意軟件樣本;
例如,樣本數(shù)據(jù)庫包括惡意軟件樣本庫和非惡意軟件樣本庫。惡意軟件樣本庫中包括多個惡意軟件,從惡意軟件樣本庫中獲取至少一個惡意軟件樣本。非惡意軟件樣本庫中包括多個非惡意軟件,從非惡意軟件樣本庫中獲取至少一個非惡意軟件樣本。
步驟402,獲取每一個惡意軟件樣本的軟件名稱;
步驟403,對于每一個惡意軟件樣本,確定該惡意軟件樣本的軟件名稱中包含的中文字符是否為惡意軟件字符;
可選地,如圖4b所示,步驟403包括如下幾個子步驟:
步驟403a,檢測第i個惡意軟件樣本的軟件名稱中包含的中文字符的字符數(shù)量是否大于預設字符數(shù)量;
若是,則執(zhí)行下述步驟403b;若否,則令i=i+1,并執(zhí)行下述步驟403f;
其中,i的初始值為1,1≤i≤n,n表示惡意軟件樣本的總數(shù)量,i、n均為正整數(shù)。
步驟403b,提取第i個惡意軟件樣本的軟件名稱中包含的中文字符;
步驟403c,檢測第i個惡意軟件樣本的軟件名稱中包含的中文字符是否符合第j個預設條件;
若是,則執(zhí)行下述步驟403d;若否,則令j=j+1,并執(zhí)行下述步驟403e;
其中,j的初始值為1,1≤j≤m,m表示預設條件的總數(shù)量,j、m均為正整數(shù)。在一個示例中,預設條件的總數(shù)量m為4,例如:
第1個預設條件為:軟件名稱中包含的中文字符間隔排列且間隔數(shù)大于或等于3;
第2個預設條件為:軟件名稱中包含的中文字符之后存在預設字符串“(vip”;
第3個預設條件為:軟件名稱中包含的中文字符之后存在預設字符串“_v”或“v_”;
第4個預設條件為:軟件名稱中包含的中文字符之后緊跟著非中文字符,且非中文字符的數(shù)量大于或等于8。
步驟403d,確定第i個惡意軟件樣本的軟件名稱中包含的目標類型字符為惡意軟件字符;
在步驟403d之后,令i=i+1,并執(zhí)行下述步驟403f;
步驟403e,判斷j是否大于m;
若是,則令i=i+1,并執(zhí)行下述步驟403f;若否,則再次從上述步驟403c開始執(zhí)行;
步驟403f,判斷i是否大于n;
若是,則結束流程;若否,則再次從上述步驟403a開始執(zhí)行。
步驟404,將惡意軟件字符添加至惡意軟件字符集合中;
步驟405,對于已添加至惡意軟件字符集合中的每一個惡意軟件字符,檢測該惡意軟件字符對應的提取次數(shù)是否大于預設次數(shù);
若是,則執(zhí)行下述步驟406;若否,則執(zhí)行下述步驟407;
步驟406,檢測該惡意軟件字符是否與從非惡意軟件樣本的軟件名稱中提取的中文字符相匹配;
若是,則執(zhí)行下述步驟407;若否,則將該惡意軟件字符保留在惡意軟件字符集合中。
步驟407,將該惡意軟件字符從惡意軟件字符集合中刪除;
步驟408,采用惡意軟件字符集合中最終剩余的惡意軟件字符,根據(jù)待檢測軟件的軟件名稱進行惡意軟件檢測。
下述為本發(fā)明裝置實施例,可以用于執(zhí)行本發(fā)明方法實施例。對于本發(fā)明裝置實施例中未披露的細節(jié),請參照本發(fā)明方法實施例。
請參考圖5,其示出了本發(fā)明一個實施例提供的惡意軟件檢測裝置的框圖。該裝置具有實現(xiàn)上述方法示例的功能,所述功能可以由硬件實現(xiàn),也可以由硬件執(zhí)行相應的軟件實現(xiàn)。該裝置可以包括:第一獲取模塊510、第一提取模塊520、第一檢測模塊530和第一確定模塊540。
第一獲取模塊510,用于獲取待檢測軟件的軟件名稱。
第一提取模塊520,用于提取所述待檢測軟件的軟件名稱中包含的目標類型字符。
第一檢測模塊530,用于檢測是否存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,所述惡意軟件字符是指惡意軟件的軟件名稱中包含的目標類型字符。
第一確定模塊540,用于若存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符,則確定所述待檢測軟件為惡意軟件。
在基于圖5所示實施例提供的一個可選實施例中,所述第一檢測模塊,包括:標識獲取單元、標識檢測單元和檢測確定單元。
標識獲取單元,用于獲取所述待檢測軟件的軟件名稱中包含的目標類型字符對應的特征值。
標識檢測單元,用于檢測惡意軟件特征值集合中是否存在與所述待檢測軟件對應的特征值相同的惡意軟件特征值,其中,所述惡意軟件特征值集合中包括至少一個惡意軟件特征值,每一個惡意軟件特征值是指一個惡意軟件字符對應的特征值。
檢測確定單元,用于若所述惡意軟件特征值集合中存在與所述待檢測軟件對應的特征值相同的惡意軟件特征值,則確定存在與所述待檢測軟件的軟件名稱中包含的目標類型字符相匹配的惡意軟件字符。
可選地,所述標識獲取單元,用于:
采用消息摘要算法計算所述待檢測軟件的軟件名稱中包含的目標類型字符對應的消息摘要,并將所述消息摘要作為所述待檢測軟件對應的特征值;
或者,
采用哈希算法計算所述待檢測軟件的軟件名稱中包含的目標類型字符對應的哈希值,并將所述哈希值作為所述待檢測軟件對應的特征值。
在基于圖5所示實施例提供的另一個可選實施例中,所述裝置還包括:第二獲取模塊、第二提取模塊、第二檢測模塊和第二確定模塊。
第二獲取模塊,用于獲取惡意軟件樣本的軟件名稱。
第二提取模塊,用于提取所述惡意軟件樣本的軟件名稱中包含的目標類型字符。
第二檢測模塊,用于檢測所述惡意軟件樣本的軟件名稱中包含的目標類型字符是否符合預設條件。
第二確定模塊,用于若所述惡意軟件樣本的軟件名稱中包含的目標類型字符符合所述預設條件,則確定所述惡意軟件樣本的軟件名稱中包含的目標類型字符為所述惡意軟件字符。
可選地,所述預設條件包括以下至少一項:軟件名稱中包含的目標類型字符間隔排列且間隔數(shù)大于預設間隔數(shù)、軟件名稱中包含的目標類型字符之后存在預設字符或預設字符串、軟件名稱中包含的目標類型字符之后緊接著非目標類型字符且非目標類型字符的數(shù)量大于預設門限值。
可選地,所述裝置還包括:第三確定模塊、第三獲取模塊和第三檢測模塊。
第三確定模塊,用于若所述惡意軟件樣本的軟件名稱中包含的目標類型字符符合所述預設條件,則確定所述惡意軟件樣本的軟件名稱中包含的目標類型字符為候選惡意軟件字符。
第三獲取模塊,用于獲取所述候選惡意軟件字符對應的提取次數(shù),所述提取次數(shù)是指從所述惡意軟件樣本的軟件名稱中提取到所述候選惡意軟件字符的次數(shù)。
第三檢測模塊,用于檢測所述提取次數(shù)是否大于預設次數(shù)。
所述第二確定模塊,還用于若所述提取次數(shù)大于所述預設次數(shù),則將所述候選惡意軟件字符確定為所述惡意軟件字符。
在基于圖5所示實施例提供的另一個可選實施例中,所述裝置還包括:第四檢測模塊和刪除模塊。
第四檢測模塊,用于對于每一個惡意軟件字符,檢測所述惡意軟件字符是否與從非惡意軟件樣本的軟件名稱中提取的目標類型字符相匹配。
刪除模塊,用于若所述惡意軟件字符與所述從非惡意軟件樣本的軟件名稱中提取的目標類型字符相匹配,則刪除所述惡意軟件字符。
在基于圖5所示實施例提供的另一個可選實施例中,所述第一獲取模塊,包括:文件讀取單元和名稱讀取單元。
文件讀取單元,用于讀取所述待檢測軟件的應用程序包中的信息描述文件。
名稱讀取單元,用于讀取所述信息描述文件中的軟件名稱條目中的數(shù)據(jù),并將讀取到的所述數(shù)據(jù)作為所述待檢測軟件的軟件名稱。
在基于圖5所示實施例提供的另一個可選實施例中,所述裝置還包括:第五檢測模塊。
第五檢測模塊,用于檢測所述待檢測軟件的軟件名稱中包含的目標類型字符的字符數(shù)量是否大于預設字符數(shù)量。
所述第一提取模塊,還用于若所述字符數(shù)量大于所述預設字符數(shù)量,則提取所述待檢測軟件的軟件名稱中包含的目標類型字符。
圖5實施例中未披露的細節(jié)可參見上述各個方法實施例。
需要說明的是,上述實施例提供的裝置在實現(xiàn)其功能時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設備的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的裝置與方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
請參考圖6,其示出了本發(fā)明一個實施例提供的終端的結構示意圖。該終端用于實施上述實施例中提供的惡意軟件檢測方法。具體來講:
終端600可以包括rf(radiofrequency,射頻)電路610、包括有一個或一個以上計算機可讀存儲介質的存儲器620、輸入單元630、顯示單元640、傳感器650、音頻電路660、wifi(wirelessfidelity,無線保真)模塊670、包括有一個或者一個以上處理核心的處理器680、以及電源690等部件。本領域技術人員可以理解,圖6中示出的終端結構并不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
rf電路610可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器680處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,rf電路610包括但不限于天線、至少一個放大器、調諧器、一個或多個振蕩器、用戶身份模塊(sim)卡、收發(fā)信機、耦合器、lna(lownoiseamplifier,低噪聲放大器)、雙工器等。此外,rf電路610還可以通過無線通信與網(wǎng)絡和其他設備通信。所述無線通信可以使用任一通信標準或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無線服務)、cdma(codedivisionmultipleaccess,碼分多址)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、lte(longtermevolution,長期演進)、電子郵件、sms(shortmessagingservice,短消息服務)等。
存儲器620可用于存儲軟件程序以及模塊,處理器680通過運行存儲在存儲器620的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理。存儲器620可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端600的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應地,存儲器620還可以包括存儲器控制器,以提供處理器680和輸入單元630對存儲器620的訪問。
輸入單元630可用于接收輸入的數(shù)字或字符信息,以及產生與用戶設置以及功能控制有關的鍵盤、鼠標、操作桿、光學或者軌跡球信號輸入。具體地,輸入單元630可包括圖像輸入設備631以及其他輸入設備632。圖像輸入設備631可以是攝像頭,也可以是光電掃描設備。除了圖像輸入設備631,輸入單元630還可以包括其他輸入設備632。具體地,其他輸入設備632可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
顯示單元640可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端600的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構成。顯示單元640可包括顯示面板641,可選的,可以采用lcd(liquidcrystaldisplay,液晶顯示器)、oled(organiclight-emittingdiode,有機發(fā)光二極管)等形式來配置顯示面板641。進一步的,觸敏表面631可覆蓋在顯示面板641之上,當觸敏表面631檢測到在其上或附近的觸摸操作后,傳送給處理器680以確定觸摸事件的類型,隨后處理器680根據(jù)觸摸事件的類型在顯示面板641上提供相應的視覺輸出。雖然在圖6中,觸敏表面631與顯示面板641是作為兩個獨立的部件來實現(xiàn)輸入和輸入功能,但是在某些實施例中,可以將觸敏表面631與顯示面板641集成而實現(xiàn)輸入和輸出功能。
終端600還可包括至少一種傳感器650,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調節(jié)顯示面板641的亮度,接近傳感器可在終端600移動到耳邊時,關閉顯示面板641和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應用(比如橫豎屏切換、相關游戲、磁力計姿態(tài)校準)、振動識別相關功能(比如計步器、敲擊)等;至于終端600還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路660、揚聲器661,傳聲器662可提供用戶與終端600之間的音頻接口。音頻電路660可將接收到的音頻數(shù)據(jù)轉換后的電信號,傳輸?shù)綋P聲器661,由揚聲器661轉換為聲音信號輸出;另一方面,傳聲器662將收集的聲音信號轉換為電信號,由音頻電路660接收后轉換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器680處理后,經rf電路610以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲器620以便進一步處理。音頻電路660還可能包括耳塞插孔,以提供外設耳機與終端600的通信。
wifi屬于短距離無線傳輸技術,終端600通過wifi模塊670可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖6示出了wifi模塊670,但是可以理解的是,其并不屬于終端600的必須構成,完全可以根據(jù)需要在不改變發(fā)明的本質的范圍內而省略。
處理器680是終端600的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器620內的軟件程序和/或模塊,以及調用存儲在存儲器620內的數(shù)據(jù),執(zhí)行終端600的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x的,處理器680可包括一個或多個處理核心;優(yōu)選的,處理器680可集成應用處理器和調制解調處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調制解調處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{制解調處理器也可以不集成到處理器680中。
終端600還包括給各個部件供電的電源690(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器680邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源690還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端600還可以包括藍牙模塊等,在此不再贅述。
具體在本實施例中,終端600還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經配置以由一個或者一個以上處理器執(zhí)行。上述一個或者一個以上程序包含用于執(zhí)行上述惡意軟件檢測方法的指令。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質,例如包括指令的存儲器,上述指令由終端的處理器執(zhí)行以完成上述方法實施例中的各個步驟。例如,所述非臨時性計算機可讀存儲介質可以是rom、隨機存取存儲器(ram)、cd-rom、磁帶、軟盤和光數(shù)據(jù)存儲設備等。
應當理解的是,在本文中提及的“多個”是指兩個或兩個以上?!昂?或”,描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。字符“/”一般表示前后關聯(lián)對象是一種“或”的關系。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上所述僅為本發(fā)明的示例性實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。