午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

利用隨機森林分類器實時檢測安卓惡意軟件的方法與流程

文檔序號:11234366閱讀:722來源:國知局
利用隨機森林分類器實時檢測安卓惡意軟件的方法與流程

本發(fā)明屬于通信技術領域,更進一步涉及網絡安全技術領域中的一種利用隨機森林分類器實時檢測安卓惡意軟件的方法。本發(fā)明可用于實時檢測安卓軟件中是否存在惡意軟件,以便其他網絡安全技術對安卓軟件中所存在的惡意軟件進行處理,從而保障安卓軟件的信息安全。



背景技術:

安卓惡意軟件檢測技術用于發(fā)現移動設備上存在的惡意軟件,以便于其他網絡安全技術阻止惡意軟件對移動設備的危害活動。利用隨機森林分類器的安卓惡意軟件檢測技術在近些年受到了學者的關注,這種方法通常是對應用程序產生的特征數據進行分析,從中提取出能夠區(qū)分正常軟件和惡意軟件的特征,作為惡意軟件的檢測依據。目前基于分類器分析的安卓惡意軟件檢測技術有:

董航在其發(fā)表的博士論文“移動應用程序檢測與防護技術研究”(北京郵電大學,中國知網)中提出一種基于hmms-svm模型的移動惡意行為動態(tài)分析方法。該方法分兩個階段,首先,通過將所有應用程序按照功能分類,分別運行各個分類中的所有學習樣本,對其運行時行為進行捕獲,對捕獲的運行時行為數據進行預處理和特征提取,作為隱馬爾可夫模型的觀測值輸入,使用baum-welch算法進行訓練建模,得到每一類應用的隱馬爾可夫模型,并將hmm的輸出結果組成最大似然向量;然后,將最大似然向量作為最終決策分類的依據,輸入svm,學習得到訓練好的svm,建立hmms-svm分類器檢測模型的訓練過程;最后,使用建立的分類器模型進行惡意軟件的檢測。該方法存在的不足之處是:該方法以支持向量機作為最后檢測依據,這種處理方式使得非常多的參數需要調整,導致調整周期長,如選擇最合適的核函數,正則懲罰等。

電子科技大學在其擁有的專利技術“基于隨機森林分類方法的android平臺惡意應用檢測方法”(申請?zhí)朿n201510969901.6公開號cn105550583a)中提出了一種利用隨機森林分類方法來檢測android平臺惡意軟件行為的方法。該方法針對android應用樣本的多類特征,設計相應的隨機森林決分類器,包括以下幾種:android應用樣本的靜態(tài)特征、權限集和api集構建樣本庫。該檢測方法存在的不足之處是:該方法設計的隨機森林分類器所有提取的特征均來自樣本的靜態(tài)特征,并不能檢測android應用樣本在運行時數據。該方法對于所有android應用程序進行特征提取,降低了安卓惡意檢測成功率,不能充分利用隨機森林分類器對特征進行分類?,F階段的一些基于分類器的安卓惡意軟件檢測方法存在以下不足之處:第一,現有的基于分類器的安卓惡意軟件檢測方法通常是對不同android樣本分類之后進行分析,或者是對樣本逐個進行靜態(tài)分析的處理方式使得惡意軟件檢測的實時性不能得到保障;第二,現有的基于應用程序接口數據流分析的安卓惡意軟件檢測方法使用的調用序列特征比較單一,沒有充分利用應用程序接口數據流的各種類型的特征,使得惡意軟件檢測的檢測準確率不能得到保障;第三,現有的基于應用程序接口數據流分析的安卓惡意軟件檢測方法中使用的應用程序接口數據流調用序列特征,通?,F有的基于聚類算法的安卓惡意軟件檢測方法是對具有相同家族安卓樣本進行分析,或者是對樣本逐個進行靜態(tài)分析的處理方式使得惡意軟件檢測的樣本之間的內在關聯性不能得到保障;第四,現有的基于隨機森林分類器分析的安卓惡意軟件檢測方法中使用的靜態(tài)特征,通常是android應用標識符、申請權限、所調用的api等特征,在面對使用安卓應用樣本進行運行時數據分析之時便不能有效進行檢測;第五,現有的基于分類器的安卓惡意軟件檢測方法使用的運行時數據特征比較單一,沒有充分利用android應用樣本運行時的各種類型的特征,降低了惡意軟件檢測的準確率。



技術實現要素:

本發(fā)明的目的是克服上述現有技術的不足,提出一種利用隨機森林分類器實時檢測安卓惡意軟件的方法,在隱馬爾科夫模型之上加入隨機森林決策樹模型,進一步加強和鞏固程序的安全性評估。

實現本發(fā)明的具體思路是:本發(fā)明提出的方法包括模型建立階段和實時檢測階段,其中模型建立階段,對所有已經下載的android應用軟件樣本通過運行,提取出運行時數據特征,然后使用隱馬爾可夫模型對不同類型的數據特征建立隱馬爾科夫模型,將隱馬爾科夫模型的各個觀測單元的最大似然輸出組成最大似然向量,作為隨機森林分類器的觀測值輸入,完成hmm-rf檢測模型的訓練過程;實時檢測階段,是使用模型訓練階段建立的惡意軟件檢測模型,對待檢測軟件樣本進行實時檢測,輸出檢測結果。

實現本發(fā)明目的的具體步驟如下:

(1)收集網絡數據:

使用數據包捕獲工具,分別收集正常軟件樣本和惡意軟件樣本所產生的運行時應用程序接口調用數據流,將收集到的運行時應用程序接口調用數據流作為訓練惡意軟件檢測模型的初始數據集;

(2)應用程序接口調用數據流分組:

根據應用程序接口數據流的分組規(guī)則,對初始應用程序接口調用數據集進行分組,得到多個不同應用程序接口數據流類型的分組;

(3)提取數據流最小單元:

根據應用程序接口數據流最小單元的分組規(guī)則,提取不同應用程序接口數據流類型的分組,從運行時trace文件生成的應用程序接口數據流調用關系樹中,提取應用程序接口數據流最小單元;

(4)提取調用序列特征:

(4a)根據運行時trace文件對應的應用程序接口數據流最小單元,分別從每個應用程序接口數據流最小單元的頭部字段調用信息中,提取多種網絡行為特征序列;

(4b)將提取到的多種網絡行為特征中每一項網絡行為特征作為對應向量的每一列特征元素,組成字段網絡特征向量;

(5)訓練隱馬爾科夫模型:

(5a)分別將每個字段網絡特征向量標記為與該特征向量對應的軟件樣本類別,將所有標記后的字段網絡特征向量組成隱馬爾科夫模型的訓練樣本集;

(5b)利用baum-welch算法,對訓練樣本集進行訓練,得到隱馬爾科夫模型;

(5c)利用最大似然推導公式,計算在baum-welch算法下得到的隱馬爾科夫模型的最大似然輸出,將多個類型的最大似然輸出組成最大似然向量;

(6)訓練隨機森林模型:

(6a)將最大似然向量作為隨機森林模型的觀測值訓練樣本集;

(6b)利用隨機森林算法,對訓練樣本集進行訓練,得到隨機森林分類器檢測模型;

(7)提取待檢測樣本的應用程序接口數據流特征:

(7a)利用網絡數據包捕獲工具,實時捕獲待檢測樣本的應用程序接口數據流特征;

(7b)根據各類數據流的分組定義規(guī)則,得到待檢測樣本的應用程序接口數據流分組;

(7c)根據數據流最小單元的定義規(guī)則,從待檢測樣本的應用程序接口數據流分組中提取應用程序接口數據流最小單元;

(7d)提取到網絡行為特征作為向量的元素,組成字段網絡特征向量;

(8)將待檢測樣本的特征向量輸入隨機森林檢測模型,判斷特征檢測模型的輸出是否為惡意軟件類別,若是,則執(zhí)行步驟(9),否則,執(zhí)行步驟(10);

(9)將待檢測樣本標記為惡意軟件,輸出待檢測樣本對應的惡意軟件類別;

(10)將待檢測樣本標記為正常軟件,輸出待檢測樣本對應的正常軟件類別。

本發(fā)明與現有技術相比具有如下優(yōu)點:

第一,由于本發(fā)明在數據流分組中,根據應用程序接口數據流的分組規(guī)則,對初始應用程序接口調用數據集進行分組,得到多個不同應用程序接口數據流類型的分組;在提取數據流最小單元中,根據應用程序接口數據流最小單元的分組規(guī)則,提取不同應用程序接口數據流類型的分組,克服了現有技術通常對相似數據流進行分析,或者是對數據流逐個進行分析的處理方式使得惡意軟件檢測的實時性不能得到保障的缺點,使得本發(fā)明的方法具有能夠實時檢測惡意軟件的優(yōu)點。

第二,由于本發(fā)明通過對應用程序接口數據流進行分析,提取調用序列特征,克服了現有的基于應用程序接口數據流分析的安卓惡意軟件檢測方法使用的調用序列特征比較單一,沒有充分利用應用程序接口數據流的各種類型的特征的缺點,使得本發(fā)明的方法具有良好的檢測準確率。

第三,由于本發(fā)明通過訓練隱馬爾科夫檢測模型,克服了現有的基于應用程序接口數據流分析的安卓惡意軟件檢測方法中使用的應用程序接口數據流調用序列特征,通?,F有的基于聚類算法的安卓惡意軟件檢測方法是對具有相同家族安卓樣本進行分析,或者是對樣本逐個進行靜態(tài)分析的處理方式使得惡意軟件檢測的樣本之間的內在關聯性不能得到保障的缺點,使得本發(fā)明具有更好的內在關聯性。

第四,由于本發(fā)明通過訓練隨機森林檢測模型,克服了現有的基于隨機森林分類器分析的安卓惡意軟件檢測方法中使用的靜態(tài)特征,通常是android應用標識符、申請權限、所調用的api等特征,在面對使用安卓應用樣本進行運行時數據分析之時便不能有效進行檢測的缺點,使得本發(fā)明具有更好的實時檢測性。

第五,由于本發(fā)明實現了隱馬爾科夫與隨機森林決策樹的雙重惡意軟件檢測,克服了現有的基于分類器的安卓惡意軟件檢測方法使用的運行時數據特征比較單一,沒有充分利用安卓應用樣本運行時的各種類型的特征,使得惡意軟件檢測的準確率降低的缺點,使得本發(fā)明進一步增大了惡意軟件檢測準確率。

附圖說明

圖1為本發(fā)明方法的流程圖;

圖2為使用隱馬爾可夫檢測模型步驟的流程圖;

圖3為使用隨機森林分類器檢測模型步驟的流程圖。

具體實施方式

本發(fā)明提出了一種利用隨機森林分類器實時檢測安卓惡意軟件的方法,該方法基于隱馬爾科夫模型,可以通過內在的相似性來判斷應用程序與各個類別的相似度;在此基礎之上引入更適合處理分類問題的隨機森林模型,在一定程度上反映出不同類別、相似行為的差異,即利用隨機森林分類器模型對相似的行為序列進行識別。

參照圖1,本發(fā)明的雙重安全認證過程如下:

步驟1,收集網絡數據。

使用數據包捕獲工具,分別收集正常軟件樣本和惡意軟件樣本所產生的運行時應用程序接口調用數據流,將收集到的運行時應用程序接口調用數據流作為訓練惡意軟件檢測模型的初始數據集;

步驟2,應用程序接口調用數據流分組。

根據應用程序接口數據流的分組規(guī)則,對初始應用程序接口調用數據集進行分組,得到多個不同應用程序接口數據流類型的分組。

所述的應用程序接口數據流的分組規(guī)則是指,對于初始數據集中的應用程序接口數據流,按照數據流的時間順序,將兩個數據流時間間隔小于4.5秒的相鄰應用程序接口數據流,劃分為一個數據流分組。

步驟3,提取數據流最小單元。

根據應用程序接口數據流最小單元的分組規(guī)則,提取不同應用程序接口數據流類型的分組,從運行時trace文件生成的應用程序接口數據流調用關系樹中,提取應用程序接口數據流最小單元;

所述的應用程序接口數據流最小單元的分組規(guī)則是指,對于每一個應用程序接口數據流分組內的數據包,按照數據包的時間順序,將具有相同的應用程序接口數據包,劃分成一個應用程序數據流最小單元,7<count<256,其中,count為應用程序數據流最小單元中數據包的總數。

步驟4,提取調用序列特征。

根據運行時trace文件對應的應用程序接口數據流最小單元,分別從每個應用程序接口數據流最小單元的頭部字段調用信息中,提取多種網絡行為特征序列;

將提取到的多種網絡行為特征中每一項網絡行為特征作為對應向量的每一列特征元素,組成字段網絡特征向量;

所述的網絡特征向量包括,硬件訪問、隱私信息獲取、網絡請求、網絡數據傳輸、頻繁文件讀寫、系統(tǒng)資源高負載、空閑狀態(tài)字段。

步驟5,訓練隱馬爾科夫模型。

分別將每個字段網絡特征向量標記為與該特征向量對應的軟件樣本類別,將所有標記后的字段網絡特征向量組成隱馬爾科夫模型的訓練樣本集;

利用baum-welch算法,對訓練樣本集進行訓練,得到隱馬爾科夫模型;

利用最大似然推導公式,計算在baum-welch算法下得到的隱馬爾科夫模型的最大似然輸出,將多個類型的最大似然輸出組成最大似然向量;

所述的軟件樣本類別包括,正常軟件樣本和惡意軟件樣本兩種類別。

參照附圖2,對使用baum-welch算法訓練隱馬爾科夫模型模型的步驟做進一步的描述。

所述的baum-welch算法的具體步驟如下。

第1步,將字段特征向量作為訓練樣本集,其中每個字段特征向量的所有字段特征組成特征集合;

第2步,創(chuàng)建一個樹節(jié)點;

第3步,判斷訓練樣本集中的樣本是否全屬于同一類別,若是,則執(zhí)行第4步,否則,執(zhí)行第5步;

第4步,將樹節(jié)點標記為該類葉子結點,執(zhí)行第13步;

第5步,判斷特征集合中的候選特征是否不為空,若是,則執(zhí)行第7步,否則,執(zhí)行第6步;

第6步,將樹節(jié)點標記為訓練樣本集中樣本數最多的軟件樣本類別,執(zhí)行第13步;

第7步,按照下式,計算訓練樣本集的信息熵:

其中,h(d)表示訓練樣本集d的信息熵,σ表示求和操作,v表示當前字段特征向量中向量元素的總數,pj表示到達第j個字段特征的概率的總和,*表示相乘操作,log2表示以2為底的自然對數操作;

第8步,按照下式,計算特征集合中每個字段特征的信息增益率:

其中,ii表示特征集合中第i個字段特征的信息增益率,|·|表示取絕對值操作,dj表示所有訓練樣本中特征值均相等為數值j的訓練樣本集;

第9步,從特征集合所有字段特征的信息增益率中,選擇信息增益率最大的字段特征,作為樹節(jié)點的最優(yōu)特征;

第10步,將訓練樣本集代入樹節(jié)點的最優(yōu)特征的信息增益率公式中,得到訓練樣本集的不同取值,將訓練樣本集以取值相同為依據劃分為不同的訓練樣本子集;

第11步,判斷每個訓練樣本子集是否不為空,若是,則執(zhí)行第12步,否則,生成一個子節(jié)點,執(zhí)行第13步;

第12步,將訓練樣本子集作為訓練樣本集,從特征集合中去掉當前最優(yōu)特征,繼續(xù)遞歸執(zhí)行第2步;

第13步,將當前分支結點標記為葉子結點,類別標記為訓練樣本集中樣本最多的類別,循環(huán)結束,將每一個子節(jié)點依次串聯生成baum-welch模型,執(zhí)行第14步;

第14步,將baum-welch模型作為隱馬爾科夫模型。

所述的最大似然推導公式如下:

第1步,按照下式,計算特征集合的轉移概率:

其中,aij表示狀態(tài)特征qi轉移到狀態(tài)特征qj的轉移概率,t表示當前字段特征向量中向量元素的總數,δ(qi,qj)表示狀態(tài)特征qi與狀態(tài)特征qj的克羅奈可值,當狀態(tài)特征qi與狀態(tài)特征qj相等時,δ(qi,qj)等于1,當狀態(tài)特征qi與狀態(tài)特征qj不相等時,δ(qi,qj)等于0,qt表示特征集合中第t個字段特征,qi表示特征集合中第i個字段特征,qt+1表示特征集合中第t+1個字段特征,qj表示特征集合中第j個字段特征;

第2步,按照下式,計算特征集合的發(fā)散概率:

其中,bj(k)表示從特征集合中的狀態(tài)特征qj至下一個狀態(tài)特征qk的發(fā)散概率;

第3步,將狀態(tài)特征qi與狀態(tài)特征qj的轉移概率和發(fā)散概率作為特征集合的最大似然輸出。

步驟6,訓練隨機森林模型。

將最大似然向量作為隨機森林模型的觀測值訓練樣本集;

利用隨機森林算法,對訓練樣本集進行訓練,得到隨機森林分類器檢測模型;

利用隨機森林算法,對訓練樣本集進行訓練,得到統(tǒng)計特征檢測模型。

參照附圖2,對使用隨機森林算法訓練統(tǒng)計特征檢測模型的步驟做進一步的描述。

所述的隨機森林算法的具體步驟如下。

第1步,在[100,200]的范圍內任意選取一個數,將其設定為隨機森林中的基分類器的總數;

第2步,使用自助采樣法,對應用程序數據流特征向量組成的訓練樣本集進行采樣,得到基分類器的訓練樣本集;

第3步,從基分類器的訓練樣本集的統(tǒng)計特征集合中,隨機選取m個特征,組成特征子集,m=log2m,其中m表示統(tǒng)計特征集合中的特征總數;

第4步,使用基分類器的訓練樣本集和特征子集對一棵決策樹模型進行訓練,將訓練后的決策樹模型存入到基分類器集合中;

第5步,判斷基分類器集合中的決策樹模型總數是否等于設定的基分類器的總數,若是,則執(zhí)行第6步,否則,執(zhí)行第2步;

第6步,將基分類器集合中的所有決策樹模型組成隨機森林,作為統(tǒng)計特征檢測模型。

步驟7,提取待檢測樣本的應用程序接口數據流特征。

利用網絡數據包捕獲工具,實時捕獲待檢測樣本的應用程序接口數據流特征;

根據各類數據流的分組定義規(guī)則,得到待檢測樣本的應用程序接口數據流分組;

根據數據流最小單元的定義規(guī)則,從待檢測樣本的應用程序接口數據流分組中提取應用程序接口數據流最小單元;

提取到網絡行為特征作為向量的元素,組成字段網絡特征向量;

步驟8,將待檢測樣本的特征向量輸入隨機森林檢測模型,判斷字段網絡特征檢測模型的輸出是否為惡意軟件類別,若是,則執(zhí)行步驟(9),否則,執(zhí)行步驟(10);

步驟9,將待檢測樣本標記為惡意軟件,輸出待檢測樣本對應的惡意軟件類別。

步驟10,將待檢測樣本標記為正常軟件,輸出待檢測樣本對應的正常軟件類別。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1