本發(fā)明涉及移動互聯(lián)網(wǎng)信息安全領(lǐng)域,特別是指一種安卓系統(tǒng)惡意應(yīng)用檢測方法及系統(tǒng)。
背景技術(shù):
隨著智能手機的快速普及,人們進入了移動互聯(lián)網(wǎng)的時代?;趹?yīng)用商店的發(fā)布模式成為移動應(yīng)用的重要模式,移動應(yīng)用產(chǎn)業(yè)得到了快速的增長。由于移動應(yīng)用可從移動終端獲得大量的敏感信息,且其本身能通過移動市場及廣告商產(chǎn)生高利潤,移動應(yīng)用頻頻遭到了黑客的攻擊,移動應(yīng)用安全事件頻發(fā)。魚龍混雜的第三方應(yīng)用市場,海量的移動應(yīng)用缺乏集中有效的安全審查等,都導(dǎo)致大量的惡意移動應(yīng)用被發(fā)布在移動應(yīng)用市場。如何從海量的移動應(yīng)用中精確地識別出可能會給移動終端帶來安全隱患的惡意應(yīng)用,成為移動應(yīng)用安全研究的重要問題之一。
現(xiàn)階段惡意應(yīng)用檢測的主要手段可以分為靜態(tài)檢測和動態(tài)檢測。靜態(tài)檢測方法:FlowDroid通過分析目標程序字節(jié)碼文件和組件的生命周期,可以實現(xiàn)靜態(tài)的污點分析,并生成函數(shù)調(diào)用圖。TaintDroid提出了系統(tǒng)級的動態(tài)污點分析工具,通過標記敏感信息,實現(xiàn)對隱私數(shù)據(jù)的信息流實時監(jiān)控;但是靜態(tài)檢測方法需要不斷的更新惡意應(yīng)用的特征庫,且僅能識別已知的惡意應(yīng)用程序。
動態(tài)檢測方法:Kynoid在TaintDroid的基礎(chǔ)上,可以實現(xiàn)對應(yīng)用與數(shù)據(jù)之間的信息流的動態(tài)檢測,提供實時的監(jiān)控,防止隱私的泄露;基于TaintDroid動態(tài)檢測方法需要修改安卓操作系統(tǒng)源代碼,導(dǎo)致該方法難以推廣應(yīng)用。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提出一種高效率、低開銷且不需要修改安卓系統(tǒng)源代碼的安卓系統(tǒng)惡意應(yīng)用檢測方法及系統(tǒng)。
基于上述目的本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法,包括:
通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征;
通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征;
將行為特征與所述權(quán)限特征組合成最終特征;
將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學習算法利用所述特征數(shù)據(jù)樣本集生成分類器;
將得到未知應(yīng)用程序的最終特征輸入生成的分類器,得出所述未知應(yīng)用是否為惡意應(yīng)用的結(jié)論。
進一步的,所述將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學習算法利用所述特征數(shù)據(jù)樣本集化生成分類器的方法包括:
將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集;
將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集;
所述機器學習算法利用所述特征訓(xùn)練樣本集生成分類器,所述特征測試樣本集測試評估生成的分類器。
進一步的,所述通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征的方法包括:
使用反編譯工具對所述應(yīng)用程序的安裝文件進行反編譯,得到所述權(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)限。
進一步的,所述將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征的方法包括:
將得到的所述行為記錄與定義的所述行為鏈模型做匹配,可以得到每一個行為鏈的觸發(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)。
進一步的,所述通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄的方法包括:
將本地動態(tài)庫文件注入到目標應(yīng)用程序的進程空間內(nèi);
加載所述本地動態(tài)庫;
修改Java層API(Application Programming Interface,應(yīng)用程序編程接口)在Dalvik虛擬機實例中的對應(yīng)的Method結(jié)構(gòu)體;
通過動態(tài)綁定,攔截API(Application Programming Interface應(yīng)用程序編程接口)調(diào)用,即獲取所述應(yīng)用程序的行為記錄。
另一方面本發(fā)明還提供安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),包括:
獲取權(quán)限特征單元,用于通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征;
獲取行為特征單元,用于通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征;
生成最終特征單元,用于將匹配的行為特征與所述權(quán)限特征組合成最終特征;
生成分類器單元,用于將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集,機器學習算法利用所述特征訓(xùn)練樣本數(shù)據(jù)集生成分類器,所述特征測試樣本集用于測試評估生成的分類器;
檢測單元,用于將未知應(yīng)用程序的最終特征輸入生成的分類器,檢測所述未知應(yīng)用是否為惡意應(yīng)用。
進一步的,所述生成分類器單元包括:
生成特征數(shù)據(jù)樣本集模塊,用于將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集;
劃分樣本集模塊,用于將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集;
訓(xùn)練分類器模塊,用于所述機器學習算法利用所述特征訓(xùn)練樣本集生成分類器,所述特征測試樣本集用于測試評估生成的分類器。
所述獲取權(quán)限特征單元,進一步用于使用反編譯工具對所述應(yīng)用程序的安裝文件進行反編譯;
以及用于得到所述權(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)限。
進一步的,所述獲取行為特征單元,進一步用于將得到的所述行為記錄與定義的所述行為鏈模型做匹配,可以得到每一個行為鏈的觸發(fā)次數(shù);
以及用于將所有行為鏈的觸發(fā)次數(shù)做歸一化處理,可以得到行為特征向量S=(σ1,σ2…σi…σm),其中,m表示行為鏈模型的總個數(shù),σi表示第i個行為鏈模型的每千條行為記錄中的觸發(fā)次數(shù),
所述生成最終特征單元,進一步用于將權(quán)限特征向量P與行為特征向量S組合成一個最終的特征向量F:
F=(μ1,μ2…μi…μk,σ1,σ2…σi…σm)。
進一步的,所述獲取行為特征單元包括:獲取行為記錄模塊,用于將本地動態(tài)庫文件注入到目標應(yīng)用程序的進程空間內(nèi);進一步用于加載所述本地動態(tài)庫;修改Java層API在Dalvik虛擬機實例中的對應(yīng)的Method結(jié)構(gòu)體;以及用于通過動態(tài)綁定,攔截API調(diào)用,即獲取所述應(yīng)用程序的行為記錄。
從上面可以看出本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法通過提出基于逆向工程和動態(tài)行為采集的行為鏈模型,從移動應(yīng)用中獲得數(shù)據(jù);通過機器學習算法對未知應(yīng)用的進行檢測,從而實現(xiàn)對惡意應(yīng)用的有效識別,準確率較高,彌補了傳統(tǒng)靜態(tài)檢測方法難以檢測未知應(yīng)用的不足;且本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法不需要修改安卓系統(tǒng)源代碼,克服了動態(tài)檢測方法需要修改安卓操作系統(tǒng)源代碼的缺陷,可用性好,并且本方法通過云端檢測有效降低移動終端性能開銷。
附圖說明
圖1為本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法的一個實施例流程圖;
圖2為本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法的另一個實施例流程圖;
圖3為本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng)的一個實施例示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
如圖1所示為本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法的一個實施例流程圖,該檢測方法包括:
步驟101,通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征;
步驟102,通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征;
步驟103,將行為特征與所述權(quán)限特征組合成最終特征;
步驟104,將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學習算法利用所述特征數(shù)據(jù)樣本集化生成分類器;
步驟105,將得到未知應(yīng)用程序的最終特征輸入生成的分類器,得出所述未知應(yīng)用是否為惡意應(yīng)用的結(jié)論。
從上面可以看出本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法通過提出基于逆向工程和動態(tài)行為采集的行為鏈模型,從移動應(yīng)用中獲得數(shù)據(jù),通過機器學習算法對未知應(yīng)用的進行檢測,從而實現(xiàn)對惡意應(yīng)用的有效識別,準確率較高;本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法不需要修改安卓系統(tǒng)源代碼,可用性好,并且本方法通過云端檢測有效降低移動終端性能開銷。
進一步的如圖2所示為本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法的另一個實施例流程圖:
其中,步驟101,通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征的方法進一步包括:
步驟101a,使用反編譯工具對所述應(yīng)用程序的安裝文件進行反編譯;
步驟101b,得到所述權(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)限。
當一個應(yīng)用程序需要執(zhí)行有潛在風險的操作時,必須先向操作系統(tǒng)申請對應(yīng)的權(quán)限,比如讀取通訊錄需要android.permission.READ_CONTACTS權(quán)限,發(fā)送短信息需要android.permission.SEND_SMS權(quán)限。因此,一個應(yīng)用程序在安裝時所申請的權(quán)限,可以在一定程度上體現(xiàn)這個應(yīng)用程序的行為與動機。
逆向工程是通過不運行程序代碼而通過詞法分析、語法分析、控制流分析、數(shù)據(jù)流分析等各種方式對程序文件進行處理,從而生成程序的反匯編代碼,然后通過讀取反匯編代碼來了解程序功能。通過對安卓應(yīng)用程序安裝文件進行逆向處理可以獲取程序源代碼和應(yīng)用的權(quán)限申請信息。
安卓應(yīng)用程序的安裝文件是一個APK(Android Package),每一個APK文件都包含一個AndroidManifest.xml文件,該文件記錄了該應(yīng)用程序在安裝時需要向操作系統(tǒng)申請的權(quán)限。
步驟101a,使用反編譯工具對所述應(yīng)用程序的安裝文件進行反編譯具體包括:
使用apktool工具對APK文件進行反編譯,反編譯之后得到的文件夾內(nèi)容;
使用Smali2JavaUI工具將得到的文件夾內(nèi)容的smali文件轉(zhuǎn)換為java文件,java文件包含有權(quán)限特征。
進一步的,步驟102,通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征具體包括:
步驟102a,基于進程注入行為記錄采集:將本地動態(tài)庫文件注入到目標應(yīng)用程序的進程空間內(nèi);加載所述本地動態(tài)庫;修改Java層API(Application Programming Interface,應(yīng)用程序編程接口)在Dalvik虛擬機實例中的對應(yīng)的Method結(jié)構(gòu)體;通過動態(tài)綁定,攔截API調(diào)用,即獲取所述應(yīng)用程序的行為記錄。
進程注入是通過打包的第三方動態(tài)鏈接庫加載到指定進程的內(nèi)存映射中,并調(diào)用其中的入口函數(shù)從而執(zhí)行預(yù)先設(shè)定好的邏輯。進程注入成功后,通過查看進程的內(nèi)存映射表可以看到自己打包的動態(tài)鏈接庫文件。
通過動態(tài)行為捕獲技術(shù),安卓應(yīng)用程序調(diào)用安卓API時將會產(chǎn)生行為信息記錄,如調(diào)用時間、API類名、API方法名、線程號、參數(shù)、上下文等信息??梢圆捎肑SON對行為采集信息打包,利于在進程間與網(wǎng)絡(luò)中的快速傳輸。
同時執(zhí)行步驟102b,定義的行為鏈模型為:
L=(B1,B2,…,Bn)
L表示行為鏈,B表示行為,n表示所述行為鏈的行為個數(shù)。
行為是指應(yīng)用程序在運行時執(zhí)行了一段指令,獲取手機的GPS定位是一個行為,發(fā)起HTTP請求也是一個行為,然而一個行為本身并不具備惡意性,比如一個應(yīng)用程序獲取手機的GPS定位既有可能是在幫助用戶導(dǎo)航,也有可能是在泄露用戶的位置信息,因此,將多個行為以特定的順序組合成行為鏈,通過分析行為鏈,能更加有效的得到應(yīng)用程序的行為意圖。
步驟102c將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征,具體包括:
將得到的包含調(diào)用時間、API類名、API方法名、線程號、參數(shù)、上下文等信息的大量的行為記錄與定義的所述行為鏈模型做匹配,可以得到每一個行為鏈L的觸發(fā)次數(shù);
將所有行為鏈的觸發(fā)次數(shù)做歸一化處理,可以得到行為特征向量S=(σ1,σ2…σi…σm),其中,m表示行為鏈模型的總個數(shù),σi表示第i個行為鏈模型的每千條行為記錄中的觸發(fā)次數(shù),
步驟103,將行為特征與所述權(quán)限特征組合成最終特征,具體包括:征將權(quán)限特征向量P與行為特征向量S組合成一個最終的特征向量F:
F=(μ1,μ2…μi…μk,σ1,σ2…σi…σm)。
步驟104,將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學習算法利用所述特征數(shù)據(jù)樣本集化生成分類器具體包括:
步驟104a將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集;
步驟104b,將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集;
步驟104c,機器學習算法利用所述特征訓(xùn)練樣本集生成分類器,所述特征測試樣本集用于測試評估生成的分類器;
分類器通過對已知類別訓(xùn)練集的分析,從中發(fā)現(xiàn)分類規(guī)則,以此預(yù)測新數(shù)據(jù)的類別。本發(fā)明可以采用貝葉斯分類器,分類原理是通過某對象的先驗概率,利用貝葉斯公式計算出其后驗概率,即該對象屬于某一類的概率,選擇具有最大后驗概率的類作為該對象所屬的類。
在步驟103中可以得到任意應(yīng)用程序的所有對應(yīng)的特征向量F,在大量不同的已知應(yīng)用程序上重復(fù)這些操作,可以得到特征向量數(shù)據(jù)樣本集??梢詫⑻卣鲾?shù)據(jù)樣本集按9:1的比例分成特征訓(xùn)練樣本集和特征測試樣本集。用征訓(xùn)練樣本集訓(xùn)練貝葉斯分類器得到用于檢測惡意程序的分類器。
步驟105,將得到未知應(yīng)用程序的最終特征輸入生成的分類器,得出所述未知應(yīng)用是否為惡意應(yīng)用的結(jié)論具體包括:
檢測未知應(yīng)用時,得到待測應(yīng)用程序的最終特征向量,然后將待測應(yīng)用程序的最終特征向量,輸入到訓(xùn)練完成的貝葉斯分類器,得出該未知應(yīng)用是否為惡意應(yīng)用的結(jié)論。
通過一個具體實施例進一步說明本發(fā)明提供的檢測方法,例如:
從安卓系統(tǒng)權(quán)限中選出了30個潛在風險較高的權(quán)限。然后反編譯應(yīng)用程序的安裝文件,通過分析AndroidManifest.xml文件得到該應(yīng)用申請的權(quán)限,生成權(quán)限特征向量P。
P=(0,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,0,0,1,1)
通過動態(tài)行為捕獲可以得到安卓應(yīng)用程序的大量行為記錄,每一條記錄都包含API方法名、調(diào)用時間、方法參數(shù)、方法返回值、進程號、線程號的上下文信息。
以發(fā)起HTTP(HyperText Transfer Protocol超文本傳輸協(xié)議)請求為例建立行為鏈模型,應(yīng)用程序通過一系列方法調(diào)用能完成HTTP請求的發(fā)起:(1)構(gòu)造URL(Uniform Resoure Locator統(tǒng)一資源定位器)對象(2)調(diào)用URL對象的openConnection方法獲取HttpURLConnection對象(3)調(diào)用HttpURLConnection對象的getInputStream方法獲取輸入字節(jié)流(4)調(diào)用InputStream對象的read方法。由此可以得到HTTP請求的行為鏈模型L=(B1,B2,B3,B4)。
根據(jù)同樣的方法,可以定義多個有潛在風險的行為鏈模型,例如定義10個行為鏈模型。
將得到的行為鏈模型與大量的行為記錄進行匹配,可以得到每一個行為鏈L的觸發(fā)次數(shù),并生成行為特征向量S:S=(142,49,82,73,17,251,109,207,29,41)
由權(quán)限特征向量P和行為特征向量S可以得到最終的特征向量F:F=(0,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,0,0,1,1,142,49,82,73,17,251,109,207,29,41)。
通過以上步驟可以得到任意安卓應(yīng)用程序的特征向量,例如可以選擇200個惡意應(yīng)用和200個正常應(yīng)用作為樣本集,分別分析這400個應(yīng)用程序,將得到的400個特征向量作為特征向量數(shù)據(jù)樣本集,可以將特征數(shù)據(jù)樣本集按9:1的比例分成特征訓(xùn)練樣本集和特征測試樣本集,用征訓(xùn)練樣本集訓(xùn)練貝葉斯分類器得到訓(xùn)練完成的用于檢測惡意程序的貝葉斯分類器。
檢測未知應(yīng)用時,得到待測應(yīng)用程序的特征向量,然后將待測應(yīng)用程序的特征向量,輸入到訓(xùn)練完成的貝葉斯分類器,得出該未知應(yīng)用是否為惡意應(yīng)用的結(jié)論。
可見本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法通過提出基于逆向工程和動態(tài)行為采集的行為鏈模型,從移動應(yīng)用中獲得數(shù)據(jù);通過機器學習算法對未知應(yīng)用的進行檢測,從而實現(xiàn)對惡意應(yīng)用的有效識別,準確率較高,彌補了傳統(tǒng)靜態(tài)檢測方法難以檢測未知應(yīng)用的不足;本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法不需要修改安卓系統(tǒng)源代碼,克服了動態(tài)檢測方法需要修改安卓操作系統(tǒng)源代碼的缺陷;并且本發(fā)明提供的檢測方法采用動態(tài)分析與靜態(tài)分析相結(jié)合,優(yōu)勢互補,通過云端檢測,降低移動終端性能開銷,可見本發(fā)明提供一種高效率、低開銷且不需要修改安卓系統(tǒng)源代碼的安卓系統(tǒng)惡意應(yīng)用檢測方法。
另一方面本發(fā)明還提供安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng),如圖3所示為本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測系統(tǒng)實施例示意圖,該系統(tǒng)包括:
獲取權(quán)限特征單元301,用于通過逆向工程反編譯應(yīng)用程序的安裝文件,得到權(quán)限特征;
獲取行為特征單元302,用于通過動態(tài)行為捕獲技術(shù)得到所述應(yīng)用程序的行為記錄,將所述行為記錄與定義的行為鏈模型進行匹配得到行為特征;
生成最終特征單元303,用于將匹配的行為特征與所述權(quán)限特征組合成最終特征;
生成分類器單元304,用于將多個已知應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集,機器學習算法利用特征數(shù)據(jù)樣本集;
檢測單元305,用于將未知應(yīng)用程序的最終特征輸入生成的分類器,檢測所述未知應(yīng)用是否為惡意應(yīng)用。
其中,獲取權(quán)限特征單元301,進一步用于使用反編譯工具對所述應(yīng)用程序的安裝文件進行反編譯;以及用于得到所述權(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)限。
所述定義的行為鏈模型為:
L=(B1,B2,…,Bn)
L表示行為鏈,B表示行為,n表示所述行為鏈的行為個數(shù)。
獲取行為特征單元302,進一步用于將得到的所述行為記錄與定義的所述行為鏈模型做匹配,可以得到每一個行為鏈L的觸發(fā)次數(shù);
以及用于將所有行為鏈的觸發(fā)次數(shù)做歸一化處理,可以得到行為特征向量S=(σ1,σ2…σi…σm),其中,m表示行為鏈模型的總個數(shù),σi表示第i個行為鏈模型的每千條行為記錄中的觸發(fā)次數(shù),
生成最終特征單元303,進一步用于將權(quán)限特征向量P與行為特征向量S組合成一個最終的特征向量F:
F=(μ1,μ2…μi…μk,σ1,σ2…σi…σm)。
進一步的,獲取權(quán)限特征單元301包括:獲取行為記錄模塊,用于將本地動態(tài)庫文件注入到目標應(yīng)用程序的進程空間內(nèi);進一步用于加載所述本地動態(tài)庫;修改Java層API在Dalvik虛擬機實例中的對應(yīng)的Method結(jié)構(gòu)體;以及用于通過動態(tài)綁定,攔截API調(diào)用,即獲取所述應(yīng)用程序的行為記錄。
進一步的,生成分類器單元304包括:
生成特征數(shù)據(jù)樣本集模塊,用于將多個已知正常應(yīng)用程序和惡意應(yīng)用程序的最終特征生成特征數(shù)據(jù)樣本集;
劃分樣本集模塊,用于將所述特征數(shù)據(jù)樣本集化分為特征訓(xùn)練樣本集和特征測試樣本集;
訓(xùn)練分類器模塊,用于所述機器學習算法利用所述特征訓(xùn)練樣本集生成分類器,所述特征測試樣本集用于測試評估生成的分類器。
可見本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法及系統(tǒng)通過提出基于逆向工程和動態(tài)行為采集的行為鏈模型,從移動應(yīng)用中獲得數(shù)據(jù);通過機器學習算法對未知應(yīng)用的進行檢測,從而實現(xiàn)對惡意應(yīng)用的有效識別,準確率較高,彌補了傳統(tǒng)靜態(tài)檢測方法難以檢測未知應(yīng)用的不足;本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法不需要修改安卓系統(tǒng)源代碼,克服了動態(tài)檢測方法需要修改安卓操作系統(tǒng)源代碼的缺陷;并且本發(fā)明提供的檢測方法采用動態(tài)分析與靜態(tài)分析相結(jié)合,優(yōu)勢互補,通過云端檢測,降低移動終端性能開銷,可見本發(fā)明提供了高效率、低開銷且不需要修改安卓系統(tǒng)源代碼的安卓系統(tǒng)惡意應(yīng)用檢測方法及系統(tǒng)。
所屬領(lǐng)域的普通技術(shù)人員應(yīng)當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實施例或者不同實施例中的技術(shù)特征之間也可以進行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細節(jié)中提供。
本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法及系統(tǒng)通過提出基于逆向工程和動態(tài)行為采集的行為鏈模型,從移動應(yīng)用中獲得數(shù)據(jù);通過機器學習算法對未知應(yīng)用的進行檢測,從而實現(xiàn)對惡意應(yīng)用的有效識別,準確率較高,彌補了傳統(tǒng)靜態(tài)檢測方法難以檢測未知應(yīng)用的不足;本發(fā)明提供的安卓系統(tǒng)惡意應(yīng)用檢測方法不需要修改安卓系統(tǒng)源代碼,克服了動態(tài)檢測方法需要修改安卓操作系統(tǒng)源代碼的缺陷;并且本發(fā)明提供的檢測方法采用動態(tài)分析與靜態(tài)分析相結(jié)合,優(yōu)勢互補,通過云端檢測,降低移動終端性能開銷,可見本發(fā)明提供了高效率、低開銷且不需要修改安卓系統(tǒng)源代碼的安卓系統(tǒng)惡意應(yīng)用檢測方法及系統(tǒng)。
另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實,即關(guān)于這些框圖裝置的實施方式的細節(jié)是高度取決于將要實施本發(fā)明的平臺的(即,這些細節(jié)應(yīng)當完全處于本領(lǐng)域技術(shù)人員的理解范圍內(nèi))。在闡述了具體細節(jié)(例如,電路)以描述本發(fā)明的示例性實施例的情況下,對本領(lǐng)域技術(shù)人員來說顯而易見的是,可以在沒有這些具體細節(jié)的情況下或者這些具體細節(jié)有變化的情況下實施本發(fā)明。因此,這些描述應(yīng)被認為是說明性的而不是限制性的。
盡管已經(jīng)結(jié)合了本發(fā)明的具體實施例對本發(fā)明進行了描述,但是根據(jù)前面的描述,這些實施例的很多替換、修改和變型對本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。例如,其它存儲器架構(gòu)(例如,動態(tài)RAM(DRAM))可以使用所討論的實施例。
本發(fā)明的實施例旨在涵蓋落入所附權(quán)利要求的寬泛范圍之內(nèi)的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。