一種安卓惡意應(yīng)用的檢測方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及安卓系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種安卓惡意應(yīng)用的檢測方法及裝置。
【背景技術(shù)】
[0002] 當前,隨著安卓(Android)移動智能終端的迅速普及,安卓應(yīng)用(APP)的種類、數(shù) 量也正在呈井噴式增長。然而,隨之而來的網(wǎng)絡(luò)與信息安全問題日益凸顯,移動智能終端安 全事件層出不窮,移動惡意應(yīng)用肆意泛濫,個人隱私竊取、資費消耗等安全問題時有發(fā)生, 嚴重影響行業(yè)的健康發(fā)展。而上述這些問題,大多是由移動惡意代碼造成的。移動惡意代 碼通常在APP軟件開發(fā)或二次打包過程中植入,通過誘騙欺詐、隱私竊取、惡意扣費等方式 攫取經(jīng)濟利益或傳播垃圾信息。其中惡意應(yīng)用增長尤其迅猛,給智能終端用戶帶來了嚴重 的經(jīng)濟損失。
[0003] 為了避免惡意應(yīng)用對安卓用戶的損害,一般需要對惡意應(yīng)用進行檢測。國內(nèi)外典 型的安卓平臺惡意代碼檢測技術(shù)主要有基于特征碼、基于靜態(tài)源碼分析或者基于動態(tài)行為 的檢測方法?;谔卣鞔a的惡意應(yīng)用檢測方法是基于在被測樣本中檢測已經(jīng)定義好的惡意 代碼的特征碼。特征碼是惡意代碼分析工程師在對惡意應(yīng)用進行逆向分析后提取出的一段 字節(jié)序列。利用該字節(jié)序列與目標樣本文件做比對判斷是否包含惡意代碼。特征碼包含偏 移地址和該地址的二進制信息,比如字符串、操作碼、資源信息等。特征碼往往需要手工處 理分析得到,需要花費很長的時間和人力成本。基于靜態(tài)源碼分析是在不運行代碼的方式 下,通過語法分析、語言結(jié)構(gòu)分析和控制流/數(shù)據(jù)流分析等技術(shù)對程序代碼進行掃描分析 得到敏感數(shù)據(jù)以及應(yīng)用程序編程接口(ApplicationProgrammingInterface,API)調(diào)用; 最后,根據(jù)預(yù)先制定的的對敏感數(shù)據(jù)以及API調(diào)用進行分析,確定是否為惡意行為。然而, 基于靜態(tài)源碼分析方法無法檢測代碼混淆或加密的APP?;趧討B(tài)行為的檢測方法主要是 分析安卓應(yīng)用的系統(tǒng)調(diào)用、網(wǎng)絡(luò)訪問、文件和內(nèi)存等方面的信息。將應(yīng)用置于一個受控的環(huán) 境中運行,監(jiān)控應(yīng)用與外界發(fā)生交互,例如調(diào)用操作系統(tǒng)API,或者使用通信功能收發(fā)數(shù)據(jù), 這些行為就會立刻被受控環(huán)境捕獲并記錄在案。通過對這些記錄進行分析,判斷應(yīng)用中是 否存在惡意行為。當然,動態(tài)行為監(jiān)測方法也容易被惡意代碼檢測和反制。
[0004] 可見,由于安卓惡意應(yīng)用的數(shù)量和種類越來越多,以及安卓惡意應(yīng)用反逆向、加 固、抗檢測技術(shù)不斷發(fā)展增強當前對安卓惡意應(yīng)用的檢測較為困難,通過基于特征碼、基于 靜態(tài)源碼分析或者基于動態(tài)行為等檢測方法均可能造成安卓惡意應(yīng)用的檢測失敗,不能正 確確定惡意應(yīng)用。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的實施例提供一種安卓惡意應(yīng)用的檢測方法及裝置,以解決當前的通過基 于特征碼、基于靜態(tài)源碼分析或者基于動態(tài)行為等檢測方法均可能造成安卓惡意應(yīng)用的檢 測失敗,不能正確確定惡意應(yīng)用的問題。
[0006] 為達到上述目的,本發(fā)明采用如下技術(shù)方案:
[0007] -種安卓惡意應(yīng)用的檢測方法,包括:
[0008] 獲取由惡意應(yīng)用樣本和正常應(yīng)用樣本組成的訓(xùn)練樣本集;
[0009] 對所述訓(xùn)練樣本集進行融合特征提取,并通過主分量分析法對提取出的融合特征 進行選擇,獲取安卓應(yīng)用相關(guān)融合特征;
[0010] 根據(jù)所述安卓應(yīng)用相關(guān)融合特征建立基于極限學習機的惡意應(yīng)用檢測模型;
[0011] 根據(jù)所述基于極限學習機的惡意應(yīng)用檢測模型對待測試的安卓應(yīng)用進行檢測,確 定所述待測試的安卓應(yīng)用是否為惡意應(yīng)用。
[0012] 具體的,對所述訓(xùn)練樣本集進行融合特征提取,包括:
[0013] 對所述訓(xùn)練樣本集進行基于靜態(tài)分析的特征提取,形成所述訓(xùn)練樣本集的靜態(tài)特 征;
[0014] 對所述訓(xùn)練樣本集進行基于動態(tài)分析的特征提取,形成所述訓(xùn)練樣本集的動態(tài)特 征;
[0015] 對所述訓(xùn)練樣本集進行基于網(wǎng)絡(luò)流量的特征提取,形成所述訓(xùn)練樣本集的網(wǎng)絡(luò)流 量特征;
[0016] 將所述訓(xùn)練樣本集的靜態(tài)特征、動態(tài)特征以及網(wǎng)絡(luò)流量特征進行融合,形成融合 特征。
[0017] 具體的,對所述訓(xùn)練樣本集進行基于靜態(tài)分析的特征提取,形成所述訓(xùn)練樣本集 的靜態(tài)特征,包括:
[0018] 獲取所述訓(xùn)練樣本集中各應(yīng)用調(diào)用安卓系統(tǒng)組件的情況數(shù)據(jù),并根據(jù)所述各應(yīng)用 調(diào)用安卓系統(tǒng)組件的情況數(shù)據(jù)確定第一靜態(tài)特征向量Xstatid;
[0019] 獲取所述訓(xùn)練樣本集中各應(yīng)用所申請的安卓系統(tǒng)權(quán)限和調(diào)用API情況的統(tǒng)計數(shù) 據(jù),并根據(jù)所述各應(yīng)用所申請的安卓系統(tǒng)權(quán)限和調(diào)用API情況的統(tǒng)計數(shù)據(jù)確定第二靜態(tài)特 征向量xstatlc2。
[0020] 具體的,對所述訓(xùn)練樣本集進行基于動態(tài)分析的特征提取,形成所述訓(xùn)練樣本集 的動態(tài)特征,包括:
[0021] 獲取所述訓(xùn)練樣本集中各應(yīng)用調(diào)用安卓敏感API的次數(shù);
[0022] 根據(jù)所述各應(yīng)用調(diào)用安卓敏感API的次數(shù)確定動態(tài)特征向量XdynaB1。。
[0023] 具體的,對所述訓(xùn)練樣本集進行基于網(wǎng)絡(luò)流量的特征提取,形成所述訓(xùn)練樣本集 的網(wǎng)絡(luò)流量特征,包括:
[0024] 獲取所述訓(xùn)練樣本集中各應(yīng)用所用TCP數(shù)據(jù)包的數(shù)據(jù)包大小、數(shù)據(jù)包數(shù)量、平均 數(shù)據(jù)包大小、連接的IP地址數(shù);
[0025] 根據(jù)各應(yīng)用所用TCP數(shù)據(jù)包的數(shù)據(jù)包大小、數(shù)據(jù)包數(shù)量、平均數(shù)據(jù)包大小、連接的 IP地址數(shù),確定所述訓(xùn)練樣本集的網(wǎng)絡(luò)流量特征向量XtMffi。。
[0026] 具體的,將所述訓(xùn)練樣本集的靜態(tài)特征、動態(tài)特征以及網(wǎng)絡(luò)流量特征進行融合,形 成融合特征,包括:
[0027] 將所述第一靜態(tài)特征向量Xstati(:1、第二靜態(tài)特征向量Xstati(:2、動態(tài)特征向量Xdynami。 以及網(wǎng)絡(luò)流量特征向量XtMffi。進行融合疊加,獲取得到融合特征X;X=[Xstati(:1,Xdym atici-^traffic-l°
[0028] 具體的,通過主分量分析法對提取出的融合特征進行選擇,獲取安卓應(yīng)用相關(guān)融 合特征,包括:
[0029] 根據(jù)所述融合特征X生成融合特征矩陣A;所述融合特征矩陣A為NXK矩陣,且 A= {義}:;其中,n為訓(xùn)練樣本集中的應(yīng)用樣本數(shù)目;κ為融合特征矩陣a的維數(shù)。
[0030] 對所述融合特征矩陣A進行歸一化處理,得到歸一化特征矩陣S;其中,S=(Sj NXK
為所述融合特征矩陣A每一列的均值,
所述Dj為所 述融合特征矩陣A每一列的標準差,
[0031] 確定所述歸一化特征矩陣S的相關(guān)系數(shù)矩陣Rs;其中,
;T為歸一 化特征矩陣S的轉(zhuǎn)置;
[0032] 計算相關(guān)系數(shù)矩陣札的特征值的累計貢獻率B t;其中,所述相關(guān)系數(shù)矩陣Rs的特 征值為入i,入i= {λη入2, . - - .λλλ 2 - - ·彡λκ,所述特征值入i對應(yīng)的特征 向量為E,E= {EdE2, · · ·,Εκ) ? ' , - 1~ ±J2:5? .? 9K. \
[0033] 根據(jù)一預(yù)先設(shè)置的提取效率p,從特征向量E中選取T個主成分;其中,T= min{tIBt^p,t= 1, 2, ···,K};
[0034]確定所述歸一化特征矩陣S在提取出的T個特征向量E上的投影X',將所述X'確 定為安卓應(yīng)用相關(guān)融合特征;其中,X' =SE。
[0035] 具體的,根據(jù)所述安卓應(yīng)用相關(guān)融合特征建立基于極限學習機的惡意應(yīng)用檢測模 型,包括:
[0036]獲取包含所述安卓應(yīng)用相關(guān)融合特征X'的N個訓(xùn)練樣本丨,其中Yi為樣本 類別標簽;Y# {-1,1};
[0037] 獲取預(yù)先設(shè)置的隱層節(jié)點輸出函數(shù)g(x)、隱層節(jié)點M、前饋神經(jīng)網(wǎng)絡(luò)的輸入權(quán)值I 和偏置b1;其中g(shù)(x)為徑向基函數(shù);
[0038] 根據(jù)訓(xùn)練樣本丨、預(yù)先設(shè)置的隱層節(jié)點輸出函數(shù)g(x)、隱層節(jié)點M、前饋神 經(jīng)網(wǎng)絡(luò)的輸入權(quán)值I和偏置bi,計算隱層節(jié)點的輸出矩陣Η;
[0039]
[0040]根據(jù)隱層節(jié)點的輸出矩陣Η和期望輸出Υ,確宙輸出叔重邊;其中,|;麗¥ ;逆為 所述隱層節(jié)點的輸出矩陣Η的Moore-Penrose廣義逆 ;
[0041] 根據(jù)隱層節(jié)點的輸出矩陣H、前饋神經(jīng)網(wǎng)絡(luò)的輸入權(quán)值%、偏置bi以及輸出權(quán)重# 確定基于極限學習機的惡意應(yīng)用檢測模型:
[0042] f(X) =sgn(H(ff,b)β)〇
[0043] 具體的,根據(jù)所述基于極限學習機的惡意應(yīng)用檢測模型對待測試的安卓應(yīng)用進行 檢測,確定所述待測試的安卓應(yīng)用是否為惡意應(yīng)用,包括:
[0044] 獲取待測試的安卓應(yīng)用的安卓應(yīng)用相關(guān)融合特征X" ;
[0045] 根據(jù)所述待測試的安卓應(yīng)用的安卓應(yīng)用相關(guān)融合特征X"以及基于極限學習機的 惡意應(yīng)用檢測模型f(X) =sgn(H(W,b)β)確定待測試的安卓應(yīng)用的輸出值;
[0046] 若所述輸出值為1,則確定所述待測試的安卓應(yīng)用為正常應(yīng)用;
[0047] 若所述輸出值為-1,則確定所述待測試的安卓應(yīng)用為惡意應(yīng)用。
[0048] 一種安卓惡意應(yīng)用的檢測裝置,包括:
[0049] 訓(xùn)練樣本集獲取單元,用于獲取由惡意應(yīng)用樣本和正常應(yīng)用樣本組成的訓(xùn)練樣本 集;
[0050] 特征提取融合單元,用于對所述訓(xùn)練樣本集進行融合特征提取,并通過主分量分 析法對提取出的融合特征進行選擇,獲取安卓應(yīng)用相關(guān)融合特征;
[0051] 模型建立單元,用于根據(jù)所述安卓應(yīng)用相關(guān)融合特征建立基于極限學習機的惡意 應(yīng)用檢測模型;
[0052] 檢測單元,用于根據(jù)所述基于極限學習機的惡意應(yīng)用檢測模型對待測試的安卓應(yīng) 用進行檢測,確定所述待測試的安卓應(yīng)用是否為惡意應(yīng)用。
[0053] 具體的,所述特征提取融合單元,包括:
[0054]