1.一種安卓系統(tǒng)惡意應(yīng)用檢測方法,其特征在于,包括:
通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征;
通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進(jìn)行匹配得到行為特征;
將行為特征與所述權(quán)限特征組合成最終特征;
將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學(xué)習(xí)算法利用所述特征數(shù)據(jù)樣本集生成分類器;
將得到未知應(yīng)用程序的最終特征輸入生成的分類器,得到所述未知應(yīng)用是否為惡意應(yīng)用的結(jié)論。
2.根據(jù)權(quán)利要求1所述的安卓系統(tǒng)惡意應(yīng)用檢測方法,其特征在于,所述將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學(xué)習(xí)算法利用所述特征數(shù)據(jù)樣本集生成分類器的方法包括:
將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集;
將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集;
所述機器學(xué)習(xí)算法利用所述特征訓(xùn)練樣本集生成分類器,所述特征測試樣本集用于測試評估生成的分類器。
3.根據(jù)權(quán)利要求2所述的安卓系統(tǒng)惡意應(yīng)用檢測方法,其特征在于,所述通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征的方法包括:
使用反編譯工具對所述應(yīng)用程序的安裝文件進(jìn)行反編譯;
得到所述權(quán)限特征,定義權(quán)限特征向量P=(μ1,μ2…μi…μk),其中,k表示安卓操作系統(tǒng)中系統(tǒng)權(quán)限的總個數(shù),μi表示該應(yīng)用是否申請了第i個權(quán)限,i<1,μi∈{0,1},0表示沒有申請權(quán)限,1表示申請了權(quán)限。
4.根據(jù)權(quán)利要求3所述的安卓系統(tǒng)惡意應(yīng)用檢測方法,其特征在于,所述將所述行為記錄與定義的行為鏈模型進(jìn)行匹配得到行為特征的方法包括:
將得到的所述行為記錄與定義的所述行為鏈模型做匹配,可以得到每一個行為鏈的觸發(fā)次數(shù);
將所有行為鏈的觸發(fā)次數(shù)做歸一化處理,可以得到行為特征向量S=(σ1,σ2…σi…σm),其中,m表示行為鏈模型的總個數(shù),σi表示第i個行為鏈模型的每千條行為記錄中的觸發(fā)次數(shù),
所示將行為特征與所述權(quán)限特征組合成最終特征包括:
將權(quán)限特征向量P與行為特征向量S組合成一個最終的特征向量F:
F=(μ1,μ2…μi…μk,σ1,σ2…σi…σm)。
5.根據(jù)權(quán)利要求1-4任意一項所述的安卓系統(tǒng)惡意應(yīng)用檢測方法,其特征在于,所述通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄的方法包括:
將本地動態(tài)庫文件注入到目標(biāo)應(yīng)用程序的進(jìn)程空間內(nèi);
加載所述本地動態(tài)庫;
修改Java層API在Dalvik虛擬機實例中的對應(yīng)的Method結(jié)構(gòu)體;
通過動態(tài)綁定,攔截API調(diào)用,即獲取所述應(yīng)用程序的行為記錄。
6.一種安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),其特征在于,包括:
獲取權(quán)限特征單元,用于通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征;
獲取行為特征單元,用于通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進(jìn)行匹配得到行為特征;
生成最終特征單元,用于將匹配的行為特征與所述權(quán)限特征組合成最終特征;
生成分類器單元,用于將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學(xué)習(xí)算法利用所述特征數(shù)據(jù)樣本集生成分類器;
檢測單元,用于將未知應(yīng)用程序的最終特征輸入生成的分類器,檢測所述未知應(yīng)用是否為惡意應(yīng)用。
7.根據(jù)權(quán)利要求6所述的安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),其特征在于,所述生成分類器單元包括:
生成特征數(shù)據(jù)樣本集模塊,用于將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集;
劃分樣本集模塊,用于將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集;
訓(xùn)練分類器模塊,用于所述機器學(xué)習(xí)算法利用所述特征訓(xùn)練樣本集生成分類器,所述特征測試樣本集測試評估生成的分類器。
8.根據(jù)權(quán)利要求7所述的安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),其特征在于,所述獲取權(quán)限特征單元,進(jìn)一步用于使用反編譯工具對所述應(yīng)用程序的安裝文件進(jìn)行反編譯,得到所述權(quán)限特征;
以及用于定義權(quán)限特征向量P=(μ1,μ2…μi…μk),其中,k表示安卓操作系統(tǒng)中系統(tǒng)權(quán)限的總個數(shù),μi表示該應(yīng)用是否申請了第i個權(quán)限,i<1,μi∈{0,1},0表示沒有申請權(quán)限,1表示申請了權(quán)限。
9.根據(jù)權(quán)利要求8所述的安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),其特征在于,所述獲取行為特征單元,進(jìn)一步用于將得到的所述行為記錄與定義的所述行為鏈模型做匹配,可以得到每一個行為鏈的觸發(fā)次數(shù);
以及用于將所有行為鏈的觸發(fā)次數(shù)做歸一化處理,可以得到行為特征向量S=(σ1,σ2…σi…σm),其中,m表示行為鏈模型的總個數(shù),σi表示第i個行為鏈模型的每千條行為記錄中的觸發(fā)次數(shù),
所述生成最終特征單元,進(jìn)一步用于將權(quán)限特征向量P與行為特征向量S組合成一個最終的特征向量F:
F=(μ1,μ2…μi…μk,σ1,σ2…σi…σm)。
10.根據(jù)權(quán)利要求6-9任意一項所述的安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),其特征在于,所述獲取行為特征單元包括:獲取行為記錄模塊,用于將本地動態(tài)庫文件注入到目標(biāo)應(yīng)用程序的進(jìn)程空間內(nèi);進(jìn)一步用于加載所述本地動態(tài)庫,修改Java層API在Dalvik虛擬機實例中的對應(yīng)的Method結(jié)構(gòu)體;以及用于通過動態(tài)綁定,攔截API調(diào)用,即獲取所述應(yīng)用程序的行為記錄。