本發(fā)明涉及惡意軟件的檢測領(lǐng)域。更具體地,涉及一種基于深度學(xué)習(xí)的安卓惡意應(yīng)用的檢測和分析方法。
背景技術(shù):
安卓操作系統(tǒng)是一種基于linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦,是目前使用最為廣泛的移動終端。隨著智能手機和移動設(shè)備的快速發(fā)展,安卓平臺服務(wù)已經(jīng)成為大部分網(wǎng)絡(luò)用戶不可或缺的要素。與此同時,移動惡意軟件也快速增長成為威脅網(wǎng)絡(luò)安全和隱私的重要源頭。最近的研究報告指出,安卓系統(tǒng)已經(jīng)占據(jù)了87.6%的市場份額,同時高達91.1%的惡意軟件來自于安卓市場。大量的安卓惡意軟件對企業(yè)及個人信息造成了威脅。安卓惡意應(yīng)用的檢測已經(jīng)成了現(xiàn)今移動互聯(lián)網(wǎng)發(fā)展的重要技術(shù)保障,研究和實現(xiàn)高精準的安卓惡意應(yīng)用檢測具有很強的現(xiàn)實意義和實用價值,被相關(guān)學(xué)術(shù)界和業(yè)界所關(guān)注。安卓平臺的開放性導(dǎo)致其成為了惡意應(yīng)用攻擊的重點,隨著偽裝、加殼等惡意軟件的不斷出現(xiàn),如何提高安卓系統(tǒng)惡意軟件檢測的準確率,并且降低人工參與的難度,是當(dāng)前亟待解決的問題。
當(dāng)前,隨著安卓移動智能終端的迅速普及、安卓應(yīng)用(app)的種類、數(shù)量也正在呈井噴式增長。然而,隨之而來的網(wǎng)絡(luò)與信息安全問題司益凸顯,移動智能終端安全事件層出不窮,移動惡意應(yīng)用肆意泛濫,個人隱私竊取、資費消耗等安全問題時有發(fā)生,嚴重影響行業(yè)的健康發(fā)展。而上述這些問題,大多是由移動惡意代碼造成的。移動惡意代碼通常在app軟件開發(fā)或二次打包過程中植入,通過誘騙欺詐、障私竊取、惡意扣費等方式蓮取經(jīng)濟利益或傳播垃圾信息。其中惡意在用增長尤其迅猛,給智能終端用戶帶來了嚴重的經(jīng)濟損失。
目前,安卓惡意應(yīng)用檢測技術(shù)手段主要依賴于一種風(fēng)險評估機制,這種評估機制可以在惡意應(yīng)用軟件安裝前提示并警告用戶正在安裝的應(yīng)用所需求的系統(tǒng)權(quán)限信息。實際上,由于這種技術(shù)提示的“應(yīng)用所需權(quán)限”過于單一和片面,很難使得普通用戶僅根據(jù)此項信息能夠快速地分辨出是否屬于惡意應(yīng)用。實踐表明,許多的惡意應(yīng)用與正常應(yīng)用很可能所需求的權(quán)限是一致的,這使得用戶更加難以分辨惡意應(yīng)用和正常應(yīng)用。因此,構(gòu)建準確的安卓惡意家族分類和行為描述的特征子集十分有必要。
惡意家族是指具有相似性、繼承性、以及衍生性的惡意軟件集合,在惡意軟件檢測領(lǐng)域逐漸引起注意。然而針對惡意家族的研究,目前仍然存在如下問題:
1、惡意家族的界定不清,針對同一個惡意軟件的樣本,不同的殺毒軟件可能將其定義為不同的家族;
2、家族識別方法不完善,不論是基于特征的檢測,還是基于異常的檢測方法,在當(dāng)前的研究中都沒有廣泛接受的結(jié)論。惡意家族難以識別,主要是因為惡意軟件本身可能會具有不只一種惡意行為,同時,也沒有確定的結(jié)果指出,哪些特征可以有效的用于惡意家族的識別;
3、針對新出現(xiàn)的類型難以處理,惡意行為的偽裝性和復(fù)雜度逐漸增強,因此對于新出現(xiàn)的惡意軟件,通常難以在第一時間檢測和分析,這也導(dǎo)致了在檢測上的滯后性。
深度學(xué)習(xí)是近年來興起的一種新的機器學(xué)習(xí)領(lǐng)域。傳統(tǒng)的及其學(xué)習(xí)模型,像直齒向量機、邏輯回歸、決策樹、貝葉斯以及傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型,均被認為含有少于三層的計算單元和淺層的學(xué)習(xí)構(gòu)架。與之不同,深度學(xué)習(xí)擁有較深層次的學(xué)習(xí)構(gòu)架,能夠更好地模仿人腦更聰明的學(xué)習(xí)和認知。實際應(yīng)用中,深度學(xué)習(xí)更多的是一種構(gòu)架設(shè)計思想,可以采用不同的思路方式,利用多種不同的算法和方法共同實現(xiàn)。
因此,需要提供一種基于深度學(xué)習(xí)構(gòu)建的特征數(shù)據(jù)集,來實現(xiàn)對惡意家族的識別和行為分析的方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于深度學(xué)習(xí)構(gòu)建的特征數(shù)據(jù)集來實現(xiàn)對惡意家族的識別和行為分析的方法,將深度學(xué)習(xí)方法應(yīng)用于安卓惡意軟件檢測中,并且通過應(yīng)用特征選擇方法,實現(xiàn)惡意家族的分類,進一步挑選出能夠進行惡意家族行為分析的特征子集。
為達到上述目的,本發(fā)明采用下述技術(shù)方案:
一種基于深度學(xué)習(xí)的安卓惡意應(yīng)用的檢測和分析方法,包括:
基于類別提取惡意應(yīng)用特征集;
采用深度學(xué)習(xí)算法對應(yīng)用樣本進行惡意性檢測并依據(jù)檢測結(jié)果將應(yīng)用樣本分為惡意應(yīng)用和正常應(yīng)用;
采用特征選擇算法對惡意應(yīng)用特征進行排序;
采用機器學(xué)習(xí)分類算法對惡意家族進行識別;
構(gòu)建惡意家族特征子集并進行惡意家族行為分析。
優(yōu)選地,采用靜態(tài)分析方法提取惡意應(yīng)用特征集,特征集至少包括以下類別的特征:可疑api調(diào)用(suspiciousapicalls)、代碼相關(guān)模式(coderelatedpatterns)、硬件特征(hardwarefeatures)、過濾的intent對象(filteredintents)、請求的權(quán)限(requestedpermissions)、受限制的api調(diào)用(restrictedapicalls)和應(yīng)用的權(quán)限(usedpermissions)。
上述特征為算法的有效輸入。
優(yōu)選地,對應(yīng)用樣本進行惡意性檢測之前,還包括以下步驟:
通過清洗、構(gòu)建特征表、數(shù)值化映射過程,并采用word2vector技術(shù),將所提取的安卓軟件特征處理為可以供深度學(xué)習(xí)訓(xùn)練的特征矩陣。
對應(yīng)用樣本進行惡意性檢測時,通過不同的參數(shù)對比,給出不同數(shù)據(jù)集的參數(shù)建議。
優(yōu)選地,采用特征選擇算法對惡意應(yīng)用特征進行排序具體包括:
采用fisher特征選擇算法對惡意軟件特征進行排序并給出惡意家族特征的重要性序列,基于重要性序列挑選特征子集;
基于頻率的特征篩選算法,在特征選擇結(jié)果的基礎(chǔ)上挑選出能夠描述惡意家族行為的特征。
進一步優(yōu)選地,基于頻率的特征篩選算法基于當(dāng)前特征在惡意樣本和正常樣本中出現(xiàn)的概率,判斷該特征是否能夠用來描述惡意家族的特征。
進一步優(yōu)選地,基于頻率的特征篩選算法具體包括:
針對特征選擇排序結(jié)果中的一個特征,計算該特征在兩個類別樣本中分別出現(xiàn)的概率;
當(dāng)出現(xiàn)在惡意樣本中的概率大于出現(xiàn)在正常樣本中的概率時,則認為當(dāng)前特征能夠用來描述惡意家族的特征;
當(dāng)出現(xiàn)在正常樣本中的概率大于或等于出現(xiàn)在惡意樣本中的概率時,則認為當(dāng)前特征不能用來描述惡意家族的特征。
優(yōu)選地,對惡意家族進行識別采用svm機器學(xué)習(xí)算法,將構(gòu)建出的特征作為輸入來識別出經(jīng)過訓(xùn)練的惡意家族類型。
優(yōu)選地,結(jié)合特征選擇、特征篩選和特征子集進行惡意家族行為分析,用于反映并分類當(dāng)前家族的惡意行為。
本發(fā)明的有益效果如下:
本發(fā)明提出的基于深度學(xué)習(xí)的安卓惡意應(yīng)用的檢測和分析方法,將深度學(xué)習(xí)方法應(yīng)用于安卓惡意應(yīng)用檢測中,并且通過應(yīng)用特征選擇方法,實現(xiàn)惡意家族的分類,進一步挑選出能夠進行惡意家族行為分析的特征子集,通過特征子集的構(gòu)建對惡意家族進行行為分析。本發(fā)明能夠提高現(xiàn)有的安卓惡意應(yīng)用分類的準確率,改善當(dāng)前安卓市場人工審核造成的工作量巨大、準確率不高的問題,有助于根據(jù)惡意應(yīng)用的行為采取有針對性的防護措施。
附圖說明
下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步詳細的說明。
圖1示出一種基于深度學(xué)習(xí)的安卓惡意應(yīng)用的檢測和分析方法步驟圖。
圖2示出實施例中基于深度學(xué)習(xí)的安卓惡意應(yīng)用的檢測和分析方法流程圖。
圖3示出實施例中cnn惡意軟件分類結(jié)果。
圖4(a)示出實施例中s_l1的cnn惡意軟件分類roc曲線圖。
圖4(b)示出實施例中s_l2的cnn惡意軟件分類roc曲線圖。
圖4(c)示出實施例中s_l3的cnn惡意軟件分類roc曲線圖。
圖4(d)示出實施例中s_l4的cnn惡意軟件分類roc曲線圖。
圖4(e)示出實施例中s_l5的cnn惡意軟件分類roc曲線圖。
圖5示出實施例中排名前20的特征。
圖6示出實施例中特征子集。
圖7示出實施例中十個家族的識別率對比柱形圖。
具體實施方式
為了更清楚地說明本發(fā)明,下面結(jié)合優(yōu)選實施例和附圖對本發(fā)明做進一步的說明。附圖中相似的部件以相同的附圖標記進行表示。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下面所具體描述的內(nèi)容是說明性的而非限制性的,不應(yīng)以此限制本發(fā)明的保護范圍。
深度學(xué)習(xí)通過組合低層特征的訓(xùn)練和學(xué)習(xí),形成抽象的高層特征表示,從而用以發(fā)現(xiàn)數(shù)據(jù)的分布式特征。lecuny等提出的卷積神經(jīng)網(wǎng)絡(luò)(cnn)算法,是第一個真正多層結(jié)構(gòu)的學(xué)習(xí)算法,利用空間相對關(guān)系減少參數(shù)數(shù)目,從而提高訓(xùn)練的性能。cnn是一種特殊的深層神經(jīng)網(wǎng)絡(luò)模型,采用局部感受野、權(quán)值共享、子采樣等技術(shù),來實現(xiàn)對位移、比例縮放、以及一些其他變形操作的不變性。其中,局部感受野是指每一個神經(jīng)元從上一層的局部接受域得到輸入,提取局部特征。當(dāng)一個特征被提取出來時,它相對于其他特征的位置被近似的保留下來,因此其精確位置變的不那么重要,因此能夠降低圖片位移和變形帶來的影響。權(quán)值共享是指每個卷積核通過相同的權(quán)值覆蓋整個可視域,這些共享的單元構(gòu)成一個特征映射。權(quán)值共享的原因在于重復(fù)的單元能夠?qū)μ卣鬟M行識別,而不考慮它在可視域中的位置。每一個卷積層后面都跟有一個實現(xiàn)子采樣的計算層,由此特征映射過程中的分辨率降低,這種操作使特征映射的輸出對平移和其他形變的變形敏感度下降,同時也降低參數(shù)的數(shù)量。
如圖1所示,一種基于深度學(xué)習(xí)的安卓惡意應(yīng)用的檢測和分析方法,包括以下步驟:
s1:基于類別提取惡意應(yīng)用特征集。采用靜態(tài)分析方法提取惡意應(yīng)用特征集,特征集至少包括以下類別的特征:可疑api調(diào)用(suspiciousapicalls)、代碼相關(guān)模式(coderelatedpatterns)、硬件特征(hardwarefeatures)、過濾的intent對象(filteredintents)、請求的權(quán)限(requestedpermissions)、受限制的api調(diào)用(restrictedapicalls)和應(yīng)用的權(quán)限(usedpermissions),這些特征將作為算法的有效輸入。
s2:采用深度學(xué)習(xí)算法對應(yīng)用樣本進行惡意性檢測并依據(jù)檢測結(jié)果將應(yīng)用樣本分為惡意應(yīng)用和正常應(yīng)用。其處理過程包括:采用word2vector技術(shù),將所提取的安卓軟件特征通過清洗、構(gòu)建特征表、數(shù)值化映射過程,處理為可以供深度學(xué)習(xí)訓(xùn)練的特征矩陣;采用深度學(xué)習(xí)算法對應(yīng)用樣本進行惡意性檢測并依據(jù)檢測結(jié)果將應(yīng)用樣本分為惡意應(yīng)用和正常應(yīng)用,其中,通過不同的參數(shù)對比,給出不同數(shù)據(jù)集的參數(shù)建議。
s3:采用特征選擇算法對惡意應(yīng)用特征進行排序。其處理過程包括:采用fisher特征選擇算法對惡意軟件特征進行排序并給出惡意家族特征的重要性序列,基于重要性序列挑選特征子集;基于頻率的特征篩選算法,在特征選擇結(jié)果的基礎(chǔ)上挑選出能夠描述惡意家族行為的特征。
基于頻率的特征篩選算法基于當(dāng)前特征在惡意樣本和正常樣本中出現(xiàn)的概率,判斷該特征是否能夠用來描述惡意家族的特征。具體地,針對特征選擇排序結(jié)果中的一個特征,計算該特征在兩個類別樣本中分別出現(xiàn)的概率;當(dāng)出現(xiàn)在惡意樣本中的概率大于出現(xiàn)在正常樣本中的概率時,則認為當(dāng)前特征能夠用來描述惡意家族的特征;當(dāng)出現(xiàn)在正常樣本中的概率大于或等于出現(xiàn)在惡意樣本中的概率時,則認為當(dāng)前特征不能用來描述惡意家族的特征。
s4:采用機器學(xué)習(xí)分類算法對惡意家族進行識別。對惡意家族進行識別采用svm機器學(xué)習(xí)算法,將構(gòu)建出的特征作為輸入來識別出經(jīng)過訓(xùn)練的惡意家族類型。
s5:構(gòu)建惡意家族特征子集并進行惡意家族行為分析。結(jié)合特征選擇、特征篩選和特征子集進行惡意家族行為分析,用于反映并分類當(dāng)前家族的惡意行為。
下面結(jié)合一個具體實施例對檢測與分析過程進行說明
如圖2所示,本發(fā)明實施例實現(xiàn)了一個集成深度學(xué)習(xí)方法cnn、特征選擇方法fisher、機器學(xué)習(xí)算法svm以及自定義的特征篩選方法,從而進行安卓惡意軟件檢測、惡意家族識別、以及惡意家族行為分析。
步驟一構(gòu)建樣本數(shù)據(jù)集
首先,構(gòu)建安卓惡意軟件和正常軟件的測試集。本實施例中構(gòu)建兩種類型的數(shù)據(jù)集。從國內(nèi)典型的安卓惡意軟件第三方市場中收集應(yīng)用軟件樣本,并且采用virustotal進行檢測和標記,最終構(gòu)建出1000個正常樣本、1000個惡意樣本作為測試數(shù)據(jù)集。采用androguard提取樣本的特征,共包含七個類別、34570個維度的特征。這些數(shù)據(jù)將用來顯示cnn惡意軟件分類的過程。
然后,構(gòu)建惡意家族的數(shù)據(jù)集。由于惡意家族的樣本通常難以獲得,并且各家族的類別通常也不平衡,因此在本實施過程中,通過單獨收集樣本,構(gòu)建了包含10個惡意家族的數(shù)據(jù)集,分別是:fakeinst,dowgin,opfake,agent,plankton,wapsx,adwo,droidkungfu,smsreg,gingermaster。
應(yīng)注意的是,構(gòu)建不同樣本的過程,不影響本發(fā)明方法的連續(xù)性應(yīng)用。
步驟二cnn惡意軟件分類
鑒于cnn有不同的實現(xiàn)方法,本實施例中選擇了以順序模型為例,分別進行了五組比較,其中訓(xùn)練樣本時采用不同的模型類別,從1層到5層,卷積核設(shè)為5*5,驗證指標包含了誤報率(fpr)、檢測率(tpr)、準確率(acc),敏感率(spc),以及精確率(ppv)。
從圖3中可以看出,隨著訓(xùn)練層數(shù)的增加,分類準確率逐漸上升,其中s_l4和s_l5能夠達到相同的tpr,但是s_l5有更好的準確率acc,以及更低的誤報率fpr。進一步比較五組實驗的roc曲線,從圖4(a)~(e)中可以看出,當(dāng)fpr較低時,s_l4的分類效果略高于s_l5,然而當(dāng)fpr逐漸升高時,各組的tpr逐漸相似??傮w而言,采用深度學(xué)習(xí)方法能夠達到較高的分類準確率99.25%。
步驟三fisher特征選擇方法特征排序
驗證特征選擇方法應(yīng)用于特征排序中的有效性,需要將十個惡意家族中的所有類別的特征分別采用fisher算法進行排序。這里將包含93個維度的“申請權(quán)限”作為特征的樣例,以fakeinst,dowgin,opfake三個家族作為樣例,按照fisher特征選擇方法對其進行排序,排序結(jié)果中的前20個特征如圖5所示??梢钥闯觯卣鬟x擇算法能夠有效的實現(xiàn)對特征的排序。
步驟四特征篩選算法
特征篩選算法是在特征選擇方法的基礎(chǔ)上對結(jié)果的進一步處理。特征選擇方法能夠挑選出那些傾向于將兩個類別樣本區(qū)分開的特征,因此所選擇出來的特征,不能夠作為有效描述惡意家族特征的特征。因此提出一種特征篩選算法,從而對特征進行進一步的篩選,挑選出能夠有效描述惡意家族的特征。定義五元組[f,n,m,ns,r],其中包含如下定義:
(1)f:當(dāng)前待評估的特征類別,特征的維度表示為dim_f,該特征集中的某一個特定的維度,即某一個特定的特定,表示為f_i;
(2)n:樣本數(shù),其中n_be表示正常(benign)組中包含的樣本數(shù);n_ma表示惡意(malicious)組中包含的樣本數(shù);
(3)m:特征數(shù),其中m_be表示正常(benign)在當(dāng)前特征數(shù);m_ma表示惡意(malicious)組當(dāng)前的特征數(shù)。采用樣本數(shù)與特征維度的乘積來估計特征數(shù),即m_be=n_be*dim_f。m-ma=n_ma*dim_f;
(4)ns:某一個特征f_i在特征集中出現(xiàn)的次數(shù)。ns_be表示特征f_i在正常(benign)中出現(xiàn)的次數(shù),ns_ma表示特征f_i在惡意(malicious)中出現(xiàn)的次數(shù)。
(5)r:特征數(shù)量比值,用來衡量當(dāng)前特征f_i是否納入特征子集。
因此將根據(jù)r值的大小,來選擇是否將當(dāng)前特征納入特征集中。
步驟五5、構(gòu)建惡意家族特征子集并進行行為分析
以“申請權(quán)限”、“硬件”、“可疑api調(diào)用”三個類別的特征,以三個家族作為樣例,通過特征選擇和特征篩選算法的處理,得到的關(guān)鍵特征結(jié)果如圖6所示。其中“申請權(quán)限”類每個家族選擇10個特征,其余兩個類別分別包含5個特征。根據(jù)這些特征的選擇結(jié)果,可以對特定家族的行為進行分析。例如,fakeinst家族中,包含了大量的與短消息、網(wǎng)絡(luò)相關(guān)的權(quán)限:“receive_sms”,“send_sms”,以及“access_network_state”,在硬件特征方面,更為關(guān)注手機狀態(tài)以及網(wǎng)絡(luò)狀態(tài),例如“telephony”,“bluetooth”,在api調(diào)用方面,則包含了“sendsms()”,“httppost()”,“readsms()”,這說明這一家族的惡意行為傾向于收集操作系統(tǒng)狀態(tài)或手機的狀態(tài),并且向外界發(fā)送信息等。
步驟六、svm進行惡意家族識別
采用上述構(gòu)建出來的20個特征,分別構(gòu)建出十個惡意家族的數(shù)據(jù)集。在一次分類中,將當(dāng)前家族標記為一類,同時將所有的其他家族標記為另一類,據(jù)此檢驗所構(gòu)建出來的特征對于識別當(dāng)前家族的能力。采用svm算法對數(shù)據(jù)集進性分類,十個家族的識別結(jié)果如圖7所示,可以看出,識別效果最好的plankton家族可以達到超過99%的準確率。
綜上所述,本發(fā)明實施方式所采取的方法,能夠結(jié)合深度學(xué)習(xí)的優(yōu)勢,并且通過所提出的特征篩選方法,能夠在特征選擇的基礎(chǔ)上,構(gòu)建出惡意家族的描述性特征,從而實現(xiàn)對安卓惡意軟件的檢測,從而根據(jù)惡意行為有針對性的預(yù)防,降低人工分析的難度,提高檢測的準確率。
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定,對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動,這里無法對所有的實施方式予以窮舉,凡是屬于本發(fā)明的技術(shù)方案所引伸出的顯而易見的變化或變動仍處于本發(fā)明的保護范圍之列。