本發明屬于(yu)通信技術(shu)(shu)領域(yu),更進一(yi)步涉及網絡安全(quan)技術(shu)(shu)領域(yu)中(zhong)的一(yi)種(zhong)利用(yong)隨機森林分類器(qi)實(shi)時檢(jian)測安卓惡(e)意(yi)(yi)軟件(jian)(jian)的方法。本發明可用(yong)于(yu)實(shi)時檢(jian)測安卓軟件(jian)(jian)中(zhong)是否存在惡(e)意(yi)(yi)軟件(jian)(jian),以便其他網絡安全(quan)技術(shu)(shu)對安卓軟件(jian)(jian)中(zhong)所存在的惡(e)意(yi)(yi)軟件(jian)(jian)進行處理,從而保障(zhang)安卓軟件(jian)(jian)的信息安全(quan)。
背景技術:
安卓惡意軟(ruan)(ruan)件(jian)檢(jian)(jian)測(ce)技(ji)(ji)術用(yong)(yong)于(yu)發現移(yi)動(dong)設備(bei)上存在(zai)的(de)(de)惡意軟(ruan)(ruan)件(jian),以(yi)便于(yu)其他網絡安全技(ji)(ji)術阻止惡意軟(ruan)(ruan)件(jian)對移(yi)動(dong)設備(bei)的(de)(de)危害活動(dong)。利用(yong)(yong)隨機(ji)森(sen)林(lin)分(fen)類器的(de)(de)安卓惡意軟(ruan)(ruan)件(jian)檢(jian)(jian)測(ce)技(ji)(ji)術在(zai)近(jin)些年受(shou)到了(le)學者的(de)(de)關注,這種(zhong)方法通(tong)常(chang)(chang)是對應用(yong)(yong)程(cheng)序(xu)產(chan)生的(de)(de)特征數(shu)據進行分(fen)析,從中提取出能夠區分(fen)正常(chang)(chang)軟(ruan)(ruan)件(jian)和惡意軟(ruan)(ruan)件(jian)的(de)(de)特征,作為(wei)惡意軟(ruan)(ruan)件(jian)的(de)(de)檢(jian)(jian)測(ce)依據。目(mu)前基于(yu)分(fen)類器分(fen)析的(de)(de)安卓惡意軟(ruan)(ruan)件(jian)檢(jian)(jian)測(ce)技(ji)(ji)術有:
董(dong)航(hang)在其發表的(de)博士論文“移(yi)動應(ying)(ying)用程(cheng)序(xu)檢測與防護技術研究”(北京(jing)郵電大學,中國知網(wang))中提出一(yi)種基于hmms-svm模(mo)型(xing)的(de)移(yi)動惡意行(xing)(xing)(xing)為(wei)動態分(fen)析方法(fa)。該(gai)方法(fa)分(fen)兩個(ge)階段(duan),首先,通(tong)過將所(suo)有(you)應(ying)(ying)用程(cheng)序(xu)按照功能分(fen)類,分(fen)別運(yun)行(xing)(xing)(xing)各個(ge)分(fen)類中的(de)所(suo)有(you)學習樣(yang)本,對其運(yun)行(xing)(xing)(xing)時行(xing)(xing)(xing)為(wei)進行(xing)(xing)(xing)捕(bu)獲,對捕(bu)獲的(de)運(yun)行(xing)(xing)(xing)時行(xing)(xing)(xing)為(wei)數據(ju)進行(xing)(xing)(xing)預(yu)處(chu)理和特征提取,作為(wei)隱(yin)馬(ma)爾(er)(er)可夫模(mo)型(xing)的(de)觀測值輸(shu)入(ru)(ru),使用baum-welch算法(fa)進行(xing)(xing)(xing)訓(xun)練(lian)建模(mo),得(de)(de)到(dao)每(mei)一(yi)類應(ying)(ying)用的(de)隱(yin)馬(ma)爾(er)(er)可夫模(mo)型(xing),并(bing)將hmm的(de)輸(shu)出結(jie)果組(zu)成最(zui)大似然(ran)向量(liang);然(ran)后(hou),將最(zui)大似然(ran)向量(liang)作為(wei)最(zui)終決(jue)策分(fen)類的(de)依(yi)據(ju),輸(shu)入(ru)(ru)svm,學習得(de)(de)到(dao)訓(xun)練(lian)好的(de)svm,建立hmms-svm分(fen)類器檢測模(mo)型(xing)的(de)訓(xun)練(lian)過程(cheng);最(zui)后(hou),使用建立的(de)分(fen)類器模(mo)型(xing)進行(xing)(xing)(xing)惡意軟(ruan)件的(de)檢測。該(gai)方法(fa)存在的(de)不(bu)足(zu)之(zhi)處(chu)是:該(gai)方法(fa)以(yi)支持向量(liang)機作為(wei)最(zui)后(hou)檢測依(yi)據(ju),這種處(chu)理方式使得(de)(de)非常多的(de)參數需要調整,導致調整周期長,如選擇(ze)最(zui)合適的(de)核函數,正則懲(cheng)罰等。
電(dian)子科(ke)技大學(xue)在(zai)(zai)其擁有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)專利技術“基(ji)于(yu)隨機(ji)森林分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)android平(ping)臺惡(e)(e)意(yi)(yi)(yi)應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)”(申請(qing)號cn201510969901.6公開號cn105550583a)中(zhong)提出(chu)了一(yi)種利用(yong)(yong)(yong)(yong)(yong)(yong)(yong)隨機(ji)森林分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)來(lai)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)android平(ping)臺惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)行(xing)(xing)(xing)為的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)。該方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)針對(dui)(dui)android應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)樣(yang)(yang)本(ben)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)多類(lei)(lei)(lei)特(te)(te)(te)(te)征(zheng)(zheng),設計相(xiang)應(ying)(ying)(ying)(ying)(ying)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)隨機(ji)森林決分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器,包(bao)括以(yi)下(xia)(xia)幾種:android應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)樣(yang)(yang)本(ben)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)靜態(tai)特(te)(te)(te)(te)征(zheng)(zheng)、權限(xian)集(ji)和api集(ji)構建樣(yang)(yang)本(ben)庫(ku)。該檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)存(cun)在(zai)(zai)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)不足之(zhi)(zhi)(zhi)處是(shi):該方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)設計的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)隨機(ji)森林分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器所(suo)有(you)(you)提取的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)特(te)(te)(te)(te)征(zheng)(zheng)均來(lai)自(zi)樣(yang)(yang)本(ben)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)靜態(tai)特(te)(te)(te)(te)征(zheng)(zheng),并不能(neng)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)android應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)樣(yang)(yang)本(ben)在(zai)(zai)運(yun)行(xing)(xing)(xing)時(shi)數(shu)(shu)據(ju)。該方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)對(dui)(dui)于(yu)所(suo)有(you)(you)android應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)程序(xu)(xu)(xu)進(jin)行(xing)(xing)(xing)特(te)(te)(te)(te)征(zheng)(zheng)提取,降低(di)了安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)成功率(lv),不能(neng)充(chong)(chong)分(fen)(fen)(fen)(fen)(fen)(fen)利用(yong)(yong)(yong)(yong)(yong)(yong)(yong)隨機(ji)森林分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器對(dui)(dui)特(te)(te)(te)(te)征(zheng)(zheng)進(jin)行(xing)(xing)(xing)分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)。現(xian)階段的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)一(yi)些基(ji)于(yu)分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)存(cun)在(zai)(zai)以(yi)下(xia)(xia)不足之(zhi)(zhi)(zhi)處:第一(yi),現(xian)有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)基(ji)于(yu)分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)通(tong)常是(shi)對(dui)(dui)不同(tong)android樣(yang)(yang)本(ben)分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)之(zhi)(zhi)(zhi)后進(jin)行(xing)(xing)(xing)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi),或者是(shi)對(dui)(dui)樣(yang)(yang)本(ben)逐個進(jin)行(xing)(xing)(xing)靜態(tai)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)處理(li)方(fang)(fang)(fang)式使(shi)得(de)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)實時(shi)性不能(neng)得(de)到保障;第二(er),現(xian)有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)基(ji)于(yu)應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)程序(xu)(xu)(xu)接口數(shu)(shu)據(ju)流(liu)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)使(shi)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)調用(yong)(yong)(yong)(yong)(yong)(yong)(yong)序(xu)(xu)(xu)列(lie)(lie)特(te)(te)(te)(te)征(zheng)(zheng)比較單一(yi),沒(mei)(mei)有(you)(you)充(chong)(chong)分(fen)(fen)(fen)(fen)(fen)(fen)利用(yong)(yong)(yong)(yong)(yong)(yong)(yong)應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)程序(xu)(xu)(xu)接口數(shu)(shu)據(ju)流(liu)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)各種類(lei)(lei)(lei)型的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)特(te)(te)(te)(te)征(zheng)(zheng),使(shi)得(de)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)準確率(lv)不能(neng)得(de)到保障;第三(san),現(xian)有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)基(ji)于(yu)應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)程序(xu)(xu)(xu)接口數(shu)(shu)據(ju)流(liu)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)中(zhong)使(shi)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)程序(xu)(xu)(xu)接口數(shu)(shu)據(ju)流(liu)調用(yong)(yong)(yong)(yong)(yong)(yong)(yong)序(xu)(xu)(xu)列(lie)(lie)特(te)(te)(te)(te)征(zheng)(zheng),通(tong)常現(xian)有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)基(ji)于(yu)聚類(lei)(lei)(lei)算(suan)法(fa)(fa)(fa)(fa)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)是(shi)對(dui)(dui)具有(you)(you)相(xiang)同(tong)家族(zu)安卓(zhuo)(zhuo)(zhuo)樣(yang)(yang)本(ben)進(jin)行(xing)(xing)(xing)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi),或者是(shi)對(dui)(dui)樣(yang)(yang)本(ben)逐個進(jin)行(xing)(xing)(xing)靜態(tai)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)處理(li)方(fang)(fang)(fang)式使(shi)得(de)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)樣(yang)(yang)本(ben)之(zhi)(zhi)(zhi)間的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)內在(zai)(zai)關聯性不能(neng)得(de)到保障;第四,現(xian)有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)基(ji)于(yu)隨機(ji)森林分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器分(fen)(fen)(fen)(fen)(fen)(fen)析(xi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)中(zhong)使(shi)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)靜態(tai)特(te)(te)(te)(te)征(zheng)(zheng),通(tong)常是(shi)android應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)標識(shi)符、申請(qing)權限(xian)、所(suo)調用(yong)(yong)(yong)(yong)(yong)(yong)(yong)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)api等(deng)特(te)(te)(te)(te)征(zheng)(zheng),在(zai)(zai)面對(dui)(dui)使(shi)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)安卓(zhuo)(zhuo)(zhuo)應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)樣(yang)(yang)本(ben)進(jin)行(xing)(xing)(xing)運(yun)行(xing)(xing)(xing)時(shi)數(shu)(shu)據(ju)分(fen)(fen)(fen)(fen)(fen)(fen)析(xi)之(zhi)(zhi)(zhi)時(shi)便不能(neng)有(you)(you)效進(jin)行(xing)(xing)(xing)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce);第五,現(xian)有(you)(you)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)基(ji)于(yu)分(fen)(fen)(fen)(fen)(fen)(fen)類(lei)(lei)(lei)器的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)安卓(zhuo)(zhuo)(zhuo)惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)方(fang)(fang)(fang)法(fa)(fa)(fa)(fa)使(shi)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)運(yun)行(xing)(xing)(xing)時(shi)數(shu)(shu)據(ju)特(te)(te)(te)(te)征(zheng)(zheng)比較單一(yi),沒(mei)(mei)有(you)(you)充(chong)(chong)分(fen)(fen)(fen)(fen)(fen)(fen)利用(yong)(yong)(yong)(yong)(yong)(yong)(yong)android應(ying)(ying)(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)(yong)(yong)樣(yang)(yang)本(ben)運(yun)行(xing)(xing)(xing)時(shi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)各種類(lei)(lei)(lei)型的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)特(te)(te)(te)(te)征(zheng)(zheng),降低(di)了惡(e)(e)意(yi)(yi)(yi)軟(ruan)(ruan)(ruan)(ruan)件(jian)(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)(ce)的(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)(de)準確率(lv)。
技術實現要素:
本發明的(de)目的(de)是(shi)克服(fu)上(shang)述現有技術(shu)的(de)不足,提(ti)出一種利用(yong)隨機(ji)森林分類(lei)器(qi)實時檢測安卓惡意軟件(jian)的(de)方法,在隱馬(ma)爾科夫模型之(zhi)上(shang)加(jia)入隨機(ji)森林決策樹模型,進一步加(jia)強和(he)鞏固程(cheng)序的(de)安全性評估。
實(shi)(shi)(shi)現本發明的(de)(de)具體思路是:本發明提出的(de)(de)方法包括模(mo)(mo)型(xing)建立(li)階段(duan)和實(shi)(shi)(shi)時檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)階段(duan),其(qi)中模(mo)(mo)型(xing)建立(li)階段(duan),對所有已經下載的(de)(de)android應用(yong)(yong)軟(ruan)件(jian)樣(yang)本通過運行,提取(qu)出運行時數(shu)據特征,然后(hou)使用(yong)(yong)隱(yin)馬(ma)爾(er)可(ke)夫模(mo)(mo)型(xing)對不(bu)同類型(xing)的(de)(de)數(shu)據特征建立(li)隱(yin)馬(ma)爾(er)科夫模(mo)(mo)型(xing),將隱(yin)馬(ma)爾(er)科夫模(mo)(mo)型(xing)的(de)(de)各個觀(guan)測(ce)(ce)(ce)(ce)單元的(de)(de)最(zui)大似然輸出組(zu)成(cheng)最(zui)大似然向量,作(zuo)為隨機森林分類器的(de)(de)觀(guan)測(ce)(ce)(ce)(ce)值輸入,完成(cheng)hmm-rf檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)模(mo)(mo)型(xing)的(de)(de)訓練過程;實(shi)(shi)(shi)時檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)階段(duan),是使用(yong)(yong)模(mo)(mo)型(xing)訓練階段(duan)建立(li)的(de)(de)惡意(yi)軟(ruan)件(jian)檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)模(mo)(mo)型(xing),對待檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)軟(ruan)件(jian)樣(yang)本進行實(shi)(shi)(shi)時檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce),輸出檢(jian)(jian)(jian)測(ce)(ce)(ce)(ce)結果。
實現(xian)本發明(ming)目的的具(ju)體步驟如下(xia):
(1)收集網絡數據:
使用(yong)數(shu)據包(bao)捕(bu)獲工具(ju),分(fen)別收集(ji)正常軟件樣本和惡意(yi)軟件樣本所產(chan)生的運(yun)(yun)行(xing)時(shi)應用(yong)程序接口調用(yong)數(shu)據流(liu),將收集(ji)到的運(yun)(yun)行(xing)時(shi)應用(yong)程序接口調用(yong)數(shu)據流(liu)作為(wei)訓練惡意(yi)軟件檢(jian)測模型的初(chu)始數(shu)據集(ji);
(2)應用(yong)程序(xu)接(jie)口調(diao)用(yong)數據(ju)流分(fen)組:
根據(ju)(ju)應用程(cheng)序(xu)接(jie)口(kou)數(shu)(shu)據(ju)(ju)流的分組規則,對初(chu)始(shi)應用程(cheng)序(xu)接(jie)口(kou)調用數(shu)(shu)據(ju)(ju)集進(jin)行分組,得到多個不同應用程(cheng)序(xu)接(jie)口(kou)數(shu)(shu)據(ju)(ju)流類(lei)型的分組;
(3)提(ti)取(qu)數據流最小(xiao)單元:
根據(ju)應(ying)用(yong)程序(xu)接口數(shu)據(ju)流最(zui)小單元(yuan)(yuan)的(de)分組規則,提(ti)取(qu)不同應(ying)用(yong)程序(xu)接口數(shu)據(ju)流類型的(de)分組,從(cong)運行時trace文件生成(cheng)的(de)應(ying)用(yong)程序(xu)接口數(shu)據(ju)流調用(yong)關(guan)系(xi)樹中,提(ti)取(qu)應(ying)用(yong)程序(xu)接口數(shu)據(ju)流最(zui)小單元(yuan)(yuan);
(4)提取(qu)調用序列特(te)征:
(4a)根據(ju)運行時trace文件對應的(de)應用(yong)程(cheng)序(xu)接(jie)口數(shu)據(ju)流最小(xiao)單元,分別從(cong)每(mei)個應用(yong)程(cheng)序(xu)接(jie)口數(shu)據(ju)流最小(xiao)單元的(de)頭部字段調用(yong)信息(xi)中,提取多種網絡行為(wei)特征序(xu)列(lie);
(4b)將提(ti)取(qu)到的(de)多種網絡(luo)行為特(te)征(zheng)(zheng)中每一項網絡(luo)行為特(te)征(zheng)(zheng)作為對應(ying)向量的(de)每一列特(te)征(zheng)(zheng)元素(su),組成字段(duan)網絡(luo)特(te)征(zheng)(zheng)向量;
(5)訓練(lian)隱(yin)馬爾科夫模型:
(5a)分別(bie)(bie)將每個字段網絡(luo)特(te)征(zheng)(zheng)向量標記(ji)(ji)為與(yu)該特(te)征(zheng)(zheng)向量對應的(de)軟件樣本(ben)類(lei)別(bie)(bie),將所(suo)有標記(ji)(ji)后的(de)字段網絡(luo)特(te)征(zheng)(zheng)向量組成隱馬爾科夫模型的(de)訓練(lian)樣本(ben)集;
(5b)利用baum-welch算(suan)法(fa),對訓(xun)練樣本集進行訓(xun)練,得到(dao)隱馬爾科夫模型;
(5c)利用最(zui)(zui)大似(si)然推導公式,計(ji)算(suan)在baum-welch算(suan)法下(xia)得到的隱馬爾科夫模型的最(zui)(zui)大似(si)然輸(shu)出,將多個類型的最(zui)(zui)大似(si)然輸(shu)出組成(cheng)最(zui)(zui)大似(si)然向(xiang)量;
(6)訓練隨機森林模型:
(6a)將最大(da)似然向量作為隨機森(sen)林(lin)模(mo)型的觀(guan)測(ce)值訓練(lian)樣本集(ji);
(6b)利用隨機森(sen)林算法,對訓(xun)(xun)練樣本集進行訓(xun)(xun)練,得到隨機森(sen)林分(fen)類器檢測(ce)模(mo)型(xing);
(7)提取待檢測樣本的應(ying)用程(cheng)序(xu)接口(kou)數(shu)據流(liu)特(te)征:
(7a)利用(yong)網絡(luo)數據(ju)包捕(bu)獲(huo)工(gong)具,實時(shi)捕(bu)獲(huo)待(dai)檢測樣本的應用(yong)程(cheng)序接(jie)口(kou)數據(ju)流(liu)特(te)征;
(7b)根據(ju)(ju)各類數據(ju)(ju)流(liu)的(de)分組定義規則,得(de)到待(dai)檢(jian)測樣本的(de)應用程序接口數據(ju)(ju)流(liu)分組;
(7c)根(gen)據數(shu)據流(liu)最(zui)小單(dan)元的定義規則,從待檢測樣(yang)本的應(ying)(ying)用程序(xu)接口(kou)數(shu)據流(liu)分組中提取應(ying)(ying)用程序(xu)接口(kou)數(shu)據流(liu)最(zui)小單(dan)元;
(7d)提取(qu)到網(wang)絡(luo)行為(wei)特征作為(wei)向量的元素,組成字段網(wang)絡(luo)特征向量;
(8)將待檢(jian)測樣本的特(te)征向量(liang)輸(shu)入隨機森林檢(jian)測模型,判(pan)斷特(te)征檢(jian)測模型的輸(shu)出是否(fou)(fou)為惡(e)意軟件類別(bie),若是,則執行步驟(9),否(fou)(fou)則,執行步驟(10);
(9)將待(dai)檢測樣(yang)本標(biao)記為惡意軟件(jian),輸(shu)出待(dai)檢測樣(yang)本對應的惡意軟件(jian)類別;
(10)將待檢(jian)測樣(yang)(yang)本標記為正常軟件,輸出待檢(jian)測樣(yang)(yang)本對應的正常軟件類別。
本發明與現有技術相比具有如下優(you)點:
第一,由于本發明(ming)在(zai)數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)分(fen)(fen)組(zu)中(zhong),根(gen)據(ju)應用(yong)(yong)程(cheng)序接口數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)的(de)(de)(de)(de)分(fen)(fen)組(zu)規則,對(dui)(dui)(dui)初始應用(yong)(yong)程(cheng)序接口調用(yong)(yong)數(shu)(shu)據(ju)集進(jin)行(xing)分(fen)(fen)組(zu),得到多個不(bu)(bu)同應用(yong)(yong)程(cheng)序接口數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)類(lei)型(xing)的(de)(de)(de)(de)分(fen)(fen)組(zu);在(zai)提(ti)取數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)最小單(dan)元中(zhong),根(gen)據(ju)應用(yong)(yong)程(cheng)序接口數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)最小單(dan)元的(de)(de)(de)(de)分(fen)(fen)組(zu)規則,提(ti)取不(bu)(bu)同應用(yong)(yong)程(cheng)序接口數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)類(lei)型(xing)的(de)(de)(de)(de)分(fen)(fen)組(zu),克服(fu)了現有技術通常對(dui)(dui)(dui)相似數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)進(jin)行(xing)分(fen)(fen)析,或者(zhe)是對(dui)(dui)(dui)數(shu)(shu)據(ju)流(liu)(liu)(liu)(liu)逐個進(jin)行(xing)分(fen)(fen)析的(de)(de)(de)(de)處理方(fang)式使(shi)(shi)得惡意軟件檢測(ce)的(de)(de)(de)(de)實(shi)時(shi)性不(bu)(bu)能(neng)(neng)得到保障的(de)(de)(de)(de)缺(que)點,使(shi)(shi)得本發明(ming)的(de)(de)(de)(de)方(fang)法具有能(neng)(neng)夠實(shi)時(shi)檢測(ce)惡意軟件的(de)(de)(de)(de)優點。
第二,由于本發明通過對(dui)應用(yong)程(cheng)序接口數(shu)據(ju)流(liu)進行分析,提取調用(yong)序列特征,克服(fu)了現有(you)的基于應用(yong)程(cheng)序接口數(shu)據(ju)流(liu)分析的安卓惡意軟件(jian)檢(jian)測方法使用(yong)的調用(yong)序列特征比較單一(yi),沒(mei)有(you)充分利用(yong)應用(yong)程(cheng)序接口數(shu)據(ju)流(liu)的各種類型的特征的缺點(dian),使得本發明的方法具有(you)良好(hao)的檢(jian)測準確(que)率。
第(di)三,由于本發明通過訓練隱馬爾科(ke)夫(fu)檢(jian)測(ce)模型,克(ke)服了現有的(de)(de)基于應用(yong)(yong)程序(xu)(xu)接(jie)口(kou)數據(ju)流分析(xi)的(de)(de)安卓(zhuo)惡(e)意軟(ruan)件(jian)(jian)檢(jian)測(ce)方(fang)法(fa)中(zhong)使(shi)用(yong)(yong)的(de)(de)應用(yong)(yong)程序(xu)(xu)接(jie)口(kou)數據(ju)流調用(yong)(yong)序(xu)(xu)列特征,通常現有的(de)(de)基于聚類算法(fa)的(de)(de)安卓(zhuo)惡(e)意軟(ruan)件(jian)(jian)檢(jian)測(ce)方(fang)法(fa)是(shi)對具有相同家(jia)族安卓(zhuo)樣(yang)本進(jin)(jin)行(xing)分析(xi),或者是(shi)對樣(yang)本逐個進(jin)(jin)行(xing)靜(jing)態分析(xi)的(de)(de)處(chu)理方(fang)式使(shi)得(de)惡(e)意軟(ruan)件(jian)(jian)檢(jian)測(ce)的(de)(de)樣(yang)本之間的(de)(de)內在關(guan)聯(lian)性(xing)不能(neng)得(de)到保障的(de)(de)缺點(dian),使(shi)得(de)本發明具有更好(hao)的(de)(de)內在關(guan)聯(lian)性(xing)。
第四(si),由于本發(fa)明(ming)通(tong)過(guo)訓練隨(sui)機森林檢測模(mo)型,克服(fu)了現(xian)有(you)的(de)(de)(de)基于隨(sui)機森林分(fen)(fen)類器分(fen)(fen)析的(de)(de)(de)安卓惡意軟件檢測方(fang)法中使(shi)用的(de)(de)(de)靜態(tai)特征,通(tong)常(chang)是android應用標識符、申請權限、所調用的(de)(de)(de)api等特征,在面對使(shi)用安卓應用樣本進行運行時(shi)數據分(fen)(fen)析之時(shi)便不能有(you)效進行檢測的(de)(de)(de)缺點,使(shi)得本發(fa)明(ming)具有(you)更好的(de)(de)(de)實(shi)時(shi)檢測性。
第(di)五(wu),由于本(ben)發(fa)明實現(xian)了隱馬爾(er)科夫與隨(sui)機森林決策樹的(de)雙重惡(e)意軟(ruan)(ruan)件(jian)檢(jian)測(ce)(ce),克服了現(xian)有(you)的(de)基于分類器的(de)安卓(zhuo)(zhuo)惡(e)意軟(ruan)(ruan)件(jian)檢(jian)測(ce)(ce)方法(fa)使用的(de)運行(xing)時(shi)數據(ju)特(te)征比較單一,沒有(you)充分利用安卓(zhuo)(zhuo)應用樣本(ben)運行(xing)時(shi)的(de)各(ge)種類型的(de)特(te)征,使得惡(e)意軟(ruan)(ruan)件(jian)檢(jian)測(ce)(ce)的(de)準(zhun)確率降(jiang)低的(de)缺點,使得本(ben)發(fa)明進一步增大了惡(e)意軟(ruan)(ruan)件(jian)檢(jian)測(ce)(ce)準(zhun)確率。
附圖說明
圖(tu)(tu)1為本發(fa)明(ming)方法(fa)的流程圖(tu)(tu);
圖2為使用隱(yin)馬爾可夫(fu)檢測模型(xing)步驟的(de)流程圖;
圖3為使用隨機森林分(fen)類器檢測模(mo)型步驟的流程圖。
具體實施方式
本發明提(ti)出了一(yi)種利用(yong)隨機森(sen)林(lin)分(fen)類(lei)器實時檢測安卓(zhuo)惡意(yi)軟件的(de)(de)方法,該方法基(ji)于(yu)隱馬爾科夫(fu)模型,可以通過內(nei)在的(de)(de)相似(si)(si)性來判斷(duan)應用(yong)程序與(yu)各(ge)個類(lei)別(bie)的(de)(de)相似(si)(si)度(du);在此基(ji)礎之上(shang)引入更(geng)適合處理分(fen)類(lei)問題的(de)(de)隨機森(sen)林(lin)模型,在一(yi)定程度(du)上(shang)反映出不同(tong)類(lei)別(bie)、相似(si)(si)行(xing)為的(de)(de)差(cha)異,即利用(yong)隨機森(sen)林(lin)分(fen)類(lei)器模型對相似(si)(si)的(de)(de)行(xing)為序列進行(xing)識別(bie)。
參照圖1,本發明的雙重安(an)全認(ren)證(zheng)過(guo)程如下:
步(bu)驟1,收集網絡數據。
使用(yong)數據(ju)包捕獲工具,分別收集正常軟件(jian)樣(yang)本和惡意軟件(jian)樣(yang)本所產生的運行(xing)時應用(yong)程(cheng)序(xu)接(jie)口調(diao)用(yong)數據(ju)流,將收集到(dao)的運行(xing)時應用(yong)程(cheng)序(xu)接(jie)口調(diao)用(yong)數據(ju)流作為訓練惡意軟件(jian)檢測模型的初始數據(ju)集;
步(bu)驟2,應(ying)用(yong)程序接口(kou)調用(yong)數據流分(fen)組。
根據(ju)應用(yong)程序(xu)接口(kou)數據(ju)流的分(fen)組(zu)規則,對初始(shi)應用(yong)程序(xu)接口(kou)調(diao)用(yong)數據(ju)集進行分(fen)組(zu),得(de)到多個不同應用(yong)程序(xu)接口(kou)數據(ju)流類型(xing)的分(fen)組(zu)。
所述的(de)應用程(cheng)序(xu)(xu)接(jie)(jie)口(kou)數(shu)(shu)據(ju)流的(de)分(fen)組(zu)規則是指,對于初始數(shu)(shu)據(ju)集中的(de)應用程(cheng)序(xu)(xu)接(jie)(jie)口(kou)數(shu)(shu)據(ju)流,按照數(shu)(shu)據(ju)流的(de)時間順序(xu)(xu),將兩(liang)個(ge)(ge)數(shu)(shu)據(ju)流時間間隔小于4.5秒的(de)相鄰(lin)應用程(cheng)序(xu)(xu)接(jie)(jie)口(kou)數(shu)(shu)據(ju)流,劃分(fen)為一個(ge)(ge)數(shu)(shu)據(ju)流分(fen)組(zu)。
步驟3,提(ti)取(qu)數據流最小單元。
根據(ju)應用程(cheng)序接口數(shu)(shu)據(ju)流最小單(dan)元的分組規則,提(ti)取(qu)不同應用程(cheng)序接口數(shu)(shu)據(ju)流類型的分組,從運行時(shi)trace文件生成的應用程(cheng)序接口數(shu)(shu)據(ju)流調(diao)用關系樹(shu)中,提(ti)取(qu)應用程(cheng)序接口數(shu)(shu)據(ju)流最小單(dan)元;
所述的應(ying)用程(cheng)序(xu)接(jie)口(kou)數(shu)據(ju)流(liu)最小(xiao)(xiao)單元的分組規則是指,對于(yu)每(mei)一(yi)個(ge)(ge)應(ying)用程(cheng)序(xu)接(jie)口(kou)數(shu)據(ju)流(liu)分組內的數(shu)據(ju)包(bao)(bao)(bao),按照(zhao)數(shu)據(ju)包(bao)(bao)(bao)的時間(jian)順序(xu),將具(ju)有相同的應(ying)用程(cheng)序(xu)接(jie)口(kou)數(shu)據(ju)包(bao)(bao)(bao),劃分成一(yi)個(ge)(ge)應(ying)用程(cheng)序(xu)數(shu)據(ju)流(liu)最小(xiao)(xiao)單元,7<count<256,其中(zhong),count為(wei)應(ying)用程(cheng)序(xu)數(shu)據(ju)流(liu)最小(xiao)(xiao)單元中(zhong)數(shu)據(ju)包(bao)(bao)(bao)的總數(shu)。
步(bu)驟(zou)4,提取(qu)調用序列特(te)征。
根據運行(xing)時trace文(wen)件對應的應用程(cheng)序接(jie)口數據流最(zui)小單元,分別從每個應用程(cheng)序接(jie)口數據流最(zui)小單元的頭(tou)部字段(duan)調用信(xin)息中,提(ti)取多種網絡行(xing)為特征(zheng)序列;
將(jiang)提取到(dao)的多種網(wang)絡(luo)行為(wei)特(te)征中每(mei)一項網(wang)絡(luo)行為(wei)特(te)征作為(wei)對應向量的每(mei)一列特(te)征元(yuan)素,組(zu)成(cheng)字段(duan)網(wang)絡(luo)特(te)征向量;
所述的網絡特征向量包括,硬件(jian)訪問、隱私信息獲取(qu)、網絡請求、網絡數據傳輸、頻(pin)繁文件(jian)讀寫、系統資(zi)源高(gao)負載(zai)、空閑(xian)狀態(tai)字段。
步(bu)驟5,訓練隱馬(ma)爾科夫模型(xing)。
分別將每個字段網(wang)絡特(te)征(zheng)向(xiang)量(liang)標記為與該(gai)特(te)征(zheng)向(xiang)量(liang)對應(ying)的(de)軟件(jian)樣本(ben)類別,將所(suo)有標記后的(de)字段網(wang)絡特(te)征(zheng)向(xiang)量(liang)組成隱(yin)馬爾(er)科夫模型的(de)訓(xun)練樣本(ben)集(ji);
利用baum-welch算法,對訓(xun)練(lian)樣(yang)本集(ji)進行訓(xun)練(lian),得到隱馬爾科(ke)夫模型(xing);
利用最(zui)大(da)(da)似(si)(si)然(ran)(ran)推(tui)導公(gong)式,計(ji)算在baum-welch算法下得到的(de)隱(yin)馬爾科(ke)夫模型的(de)最(zui)大(da)(da)似(si)(si)然(ran)(ran)輸(shu)出(chu),將多個(ge)類型的(de)最(zui)大(da)(da)似(si)(si)然(ran)(ran)輸(shu)出(chu)組成最(zui)大(da)(da)似(si)(si)然(ran)(ran)向量;
所述(shu)的軟(ruan)(ruan)件樣本(ben)類(lei)別包括,正常(chang)軟(ruan)(ruan)件樣本(ben)和(he)惡意(yi)軟(ruan)(ruan)件樣本(ben)兩種類(lei)別。
參照附圖(tu)2,對使用baum-welch算法(fa)訓練隱馬爾科夫模(mo)型(xing)模(mo)型(xing)的步驟做進(jin)一步的描述。
所述的baum-welch算法的具體步驟(zou)如下。
第1步,將(jiang)字段特(te)征向量(liang)作為訓練(lian)樣本集,其中每個(ge)字段特(te)征向量(liang)的所有字段特(te)征組成特(te)征集合;
第2步,創建一(yi)個樹(shu)節點;
第3步(bu),判斷訓練樣本集中的樣本是否(fou)全屬于同一類別,若(ruo)是,則執(zhi)行第4步(bu),否(fou)則,執(zhi)行第5步(bu);
第(di)4步(bu),將(jiang)樹節點標(biao)記為(wei)該類葉子結點,執行第(di)13步(bu);
第(di)5步(bu)(bu),判斷特征集合中的候選(xuan)特征是否不為空,若(ruo)是,則(ze)執行第(di)7步(bu)(bu),否則(ze),執行第(di)6步(bu)(bu);
第6步,將樹節點標記(ji)為訓練樣(yang)本集中樣(yang)本數最多的軟(ruan)件樣(yang)本類(lei)別,執行第13步;
第7步,按照下式(shi),計算訓練樣本集的信息熵:
其中,h(d)表(biao)示(shi)訓練樣(yang)本集(ji)d的(de)信息熵,σ表(biao)示(shi)求和操(cao)作,v表(biao)示(shi)當前字段特(te)征(zheng)向量(liang)(liang)中向量(liang)(liang)元素的(de)總(zong)數,pj表(biao)示(shi)到達第j個字段特(te)征(zheng)的(de)概率(lv)的(de)總(zong)和,*表(biao)示(shi)相乘操(cao)作,log2表(biao)示(shi)以2為底(di)的(de)自然對數操(cao)作;
第8步,按照下式,計(ji)算(suan)特征集(ji)合中每個字段(duan)特征的信(xin)息增益率:
其中,ii表示特征集合中第i個字段特征的信息增益率,|·|表示取絕對值操作,dj表示所有訓(xun)練(lian)樣(yang)本中特征值(zhi)均相等為數值(zhi)j的訓(xun)練(lian)樣(yang)本集;
第9步,從特征(zheng)集合所有字段特征(zheng)的信(xin)息(xi)增益率(lv)中(zhong),選擇信(xin)息(xi)增益率(lv)最大的字段特征(zheng),作為樹節點的最優特征(zheng);
第10步,將訓(xun)(xun)練(lian)樣(yang)本(ben)集代入樹節點(dian)的最(zui)優特(te)征的信息增益率(lv)公(gong)式中(zhong),得到訓(xun)(xun)練(lian)樣(yang)本(ben)集的不同(tong)(tong)(tong)取值(zhi),將訓(xun)(xun)練(lian)樣(yang)本(ben)集以(yi)取值(zhi)相同(tong)(tong)(tong)為依據(ju)劃分為不同(tong)(tong)(tong)的訓(xun)(xun)練(lian)樣(yang)本(ben)子集;
第(di)11步(bu),判斷每(mei)個(ge)訓練樣本子(zi)集是否不為空,若(ruo)是,則執行第(di)12步(bu),否則,生成一個(ge)子(zi)節(jie)點,執行第(di)13步(bu);
第12步,將訓練樣本(ben)子集作為訓練樣本(ben)集,從特(te)征集合(he)中去掉當前最優特(te)征,繼續遞歸(gui)執行(xing)第2步;
第13步,將當前(qian)分支結點標記為(wei)葉子結點,類(lei)別標記為(wei)訓練樣(yang)本集中樣(yang)本最多的(de)類(lei)別,循(xun)環結束,將每一個子節點依次串聯生成baum-welch模型,執行(xing)第14步;
第14步(bu),將baum-welch模型作為隱馬(ma)爾科夫模型。
所述的最大似然推(tui)導公式(shi)如下(xia):
第1步,按照(zhao)下式,計算特征(zheng)集合的轉移概(gai)率:
其中(zhong),aij表(biao)(biao)示(shi)狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qi轉(zhuan)(zhuan)移到狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qj的轉(zhuan)(zhuan)移概(gai)率,t表(biao)(biao)示(shi)當前(qian)字(zi)(zi)段(duan)(duan)(duan)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)向量中(zhong)向量元素的總數,δ(qi,qj)表(biao)(biao)示(shi)狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qi與(yu)狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qj的克羅奈(nai)可值,當狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qi與(yu)狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qj相等(deng)時,δ(qi,qj)等(deng)于1,當狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qi與(yu)狀(zhuang)態(tai)(tai)(tai)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)qj不相等(deng)時,δ(qi,qj)等(deng)于0,qt表(biao)(biao)示(shi)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)集合(he)中(zhong)第t個字(zi)(zi)段(duan)(duan)(duan)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng),qi表(biao)(biao)示(shi)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)集合(he)中(zhong)第i個字(zi)(zi)段(duan)(duan)(duan)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng),qt+1表(biao)(biao)示(shi)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)集合(he)中(zhong)第t+1個字(zi)(zi)段(duan)(duan)(duan)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng),qj表(biao)(biao)示(shi)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng)集合(he)中(zhong)第j個字(zi)(zi)段(duan)(duan)(duan)特(te)(te)(te)征(zheng)(zheng)(zheng)(zheng);
第2步,按(an)照下(xia)式,計(ji)算特征(zheng)集合的發(fa)散概率(lv):
其中(zhong),bj(k)表示(shi)從特征集(ji)合中(zhong)的(de)狀態特征qj至下一個狀態特征qk的(de)發散(san)概率;
第3步,將狀態特(te)征(zheng)qi與狀態特(te)征(zheng)qj的轉移(yi)概(gai)率和(he)發散概(gai)率作為特(te)征(zheng)集合(he)的最大(da)似然輸出。
步驟6,訓練(lian)隨機森林(lin)模型。
將(jiang)最大(da)似然(ran)向量作為隨(sui)機森林(lin)模(mo)型的(de)觀測(ce)值訓練樣本集(ji);
利用(yong)隨機森林(lin)算法,對訓練樣本集進(jin)行訓練,得到隨機森林(lin)分類器檢測模型;
利用隨機森林(lin)算法,對訓練樣本集進行訓練,得到統計特征檢(jian)測模型。
參照附圖2,對使用隨(sui)機森林(lin)算(suan)法訓練(lian)統計(ji)特征(zheng)檢(jian)測模型的步驟做進一步的描述。
所述的隨機(ji)森林算法(fa)的具體(ti)步驟如下。
第1步,在(zai)[100,200]的(de)范圍內任意選取一個數(shu),將其設定為隨機森林中(zhong)的(de)基分類器的(de)總數(shu);
第2步,使用自助采樣(yang)法,對應用程序數(shu)據流特征向量組(zu)成的(de)訓練(lian)樣(yang)本集(ji)(ji)進行采樣(yang),得到基分類器的(de)訓練(lian)樣(yang)本集(ji)(ji);
第(di)3步,從基分類(lei)器的訓練樣本(ben)集的統(tong)計特(te)(te)征(zheng)集合(he)(he)中(zhong),隨機選取(qu)m個特(te)(te)征(zheng),組成特(te)(te)征(zheng)子集,m=log2m,其中(zhong)m表示統(tong)計特(te)(te)征(zheng)集合(he)(he)中(zhong)的特(te)(te)征(zheng)總數;
第(di)4步,使用基(ji)分類(lei)(lei)器(qi)的訓(xun)練(lian)樣本集和特征子集對一(yi)棵(ke)決策(ce)樹模型進行訓(xun)練(lian),將訓(xun)練(lian)后的決策(ce)樹模型存入到基(ji)分類(lei)(lei)器(qi)集合中;
第5步(bu),判斷(duan)基分(fen)類器集合中的決(jue)策樹模型總數是否(fou)等于設定的基分(fen)類器的總數,若是,則執行第6步(bu),否(fou)則,執行第2步(bu);
第6步,將基分類(lei)器集合中的所有決(jue)策(ce)樹(shu)模型組成隨機森林,作為統(tong)計(ji)特征檢測模型。
步驟(zou)7,提取待檢(jian)測樣本的應用(yong)程(cheng)序接口(kou)數據流特征。
利(li)用網絡(luo)數據包(bao)捕(bu)獲工具(ju),實時捕(bu)獲待檢測(ce)樣本的應用程序接口數據流(liu)特征;
根據各類數據流的分組定義規則(ze),得到待檢(jian)測樣本的應用程(cheng)序接口數據流分組;
根據(ju)數據(ju)流(liu)最小單(dan)元的定義規則,從待(dai)檢測樣本(ben)的應用程序接(jie)口數據(ju)流(liu)分組(zu)中提取應用程序接(jie)口數據(ju)流(liu)最小單(dan)元;
提取到(dao)網(wang)(wang)絡行為(wei)特征(zheng)作為(wei)向(xiang)量的元素,組成字段網(wang)(wang)絡特征(zheng)向(xiang)量;
步(bu)驟8,將待檢測(ce)(ce)樣本的(de)特征向量輸(shu)(shu)入隨機森(sen)林檢測(ce)(ce)模型(xing),判斷(duan)字段網絡特征檢測(ce)(ce)模型(xing)的(de)輸(shu)(shu)出(chu)是(shi)否(fou)(fou)為惡意軟件類別,若(ruo)是(shi),則執(zhi)行(xing)步(bu)驟(9),否(fou)(fou)則,執(zhi)行(xing)步(bu)驟(10);
步驟(zou)9,將待(dai)(dai)檢測樣(yang)本(ben)標(biao)記為惡意軟件(jian)(jian),輸出待(dai)(dai)檢測樣(yang)本(ben)對(dui)應(ying)的惡意軟件(jian)(jian)類(lei)別。
步驟10,將待(dai)(dai)檢測(ce)樣(yang)本標記(ji)為正常(chang)軟件(jian),輸出(chu)待(dai)(dai)檢測(ce)樣(yang)本對應的(de)正常(chang)軟件(jian)類別。