惡意軟體檢測方法及裝置與流程
2023-10-24 04:45:27 1

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