郝靖?jìng)ィ他惷?,李蕊,楊鵬,羅森林
(1.北京理工大學(xué) 信息與電子學(xué)院,北京 100081; 2.國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100029)
中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心在2019年發(fā)布的《第44次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展現(xiàn)狀統(tǒng)計(jì)報(bào)告》[1]顯示,中國(guó)移動(dòng)互聯(lián)網(wǎng)用戶數(shù)已達(dá)7.88億,手機(jī)互聯(lián)網(wǎng)用戶比例高達(dá)98.3%。國(guó)際數(shù)據(jù)中心發(fā)布的報(bào)告[2]顯示,2019年Android系統(tǒng)的市場(chǎng)份額為87%,占據(jù)了智能手機(jī)操作系統(tǒng)市場(chǎng)的主導(dǎo)地位。該系統(tǒng)具備的靈活性和開(kāi)放性給開(kāi)發(fā)者和用戶帶來(lái)了極大的便利,如開(kāi)發(fā)者能夠自由開(kāi)發(fā)并上傳應(yīng)用程序到應(yīng)用市場(chǎng),用戶可以從應(yīng)用市場(chǎng)中隨意下載應(yīng)用程序,但同時(shí)也使Android系統(tǒng)和用戶容易遭受惡意軟件的攻擊,因此,研究Android惡意軟件檢測(cè)方法是移動(dòng)端操作系統(tǒng)安全防護(hù)領(lǐng)域的重要內(nèi)容之一。
機(jī)器學(xué)習(xí)涉及概率論、統(tǒng)計(jì)學(xué)等多門學(xué)科,是近年來(lái)興起的最熱門的多領(lǐng)域交叉學(xué)科之一,現(xiàn)已被廣泛應(yīng)用到Android惡意軟件檢測(cè)領(lǐng)域?;跈C(jī)器學(xué)習(xí)的Android惡意軟件檢測(cè)方法不需要過(guò)多人工干預(yù),并且可隨著惡意軟件數(shù)據(jù)量的增加實(shí)現(xiàn)方法的自我改進(jìn),具有自動(dòng)化和高精度的特點(diǎn)。特征選擇是基于機(jī)器學(xué)習(xí)的Android惡意軟件檢測(cè)方法的重要組成部分。通過(guò)特征選擇能夠從高維特征空間中挖掘出用于檢測(cè)惡意軟件的關(guān)鍵特征。
針對(duì)Android惡意軟件檢測(cè)的特征選擇方法,主要分為基于過(guò)濾評(píng)價(jià)策略的特征選擇方法和基于包裝評(píng)價(jià)策略的特征選擇方法。
1)基于過(guò)濾評(píng)價(jià)策略的惡意軟件檢測(cè)特征選擇方法。主要包含信息增益、卡方檢驗(yàn)、頻率統(tǒng)計(jì)等方法。其中,卡方檢驗(yàn)、信息增益等方法計(jì)算特征與檢測(cè)結(jié)果的相關(guān)度,再對(duì)特征進(jìn)行排序,選擇相關(guān)度高的特征。例如,Yerima等[3]提出利用信息增益對(duì)惡意軟件原始權(quán)限特征集進(jìn)行特征選擇,選擇出信息增益最大的20個(gè)特征作為特征集訓(xùn)練樸素貝葉斯惡意軟件檢測(cè)器,檢測(cè)準(zhǔn)確率達(dá)92%。Pehlivan等[4]提出通過(guò)卡方檢驗(yàn)算法從97個(gè)權(quán)限特征中選擇出25個(gè)特征,利用該特征集訓(xùn)練隨機(jī)森林(RF)模型,檢測(cè)準(zhǔn)確率達(dá)到94.9%。Wang等[5]先通過(guò)互信息、相關(guān)系數(shù)和T-test檢驗(yàn)方法分別對(duì)權(quán)限特征進(jìn)行排序,再使用順序正向選擇算法和主成分分析(PCA)算法識(shí)別有風(fēng)險(xiǎn)的權(quán)限子集,使用支持向量機(jī)(SVM)和隨機(jī)森林等評(píng)估選擇出的權(quán)限特征的檢測(cè)效果,實(shí)驗(yàn)結(jié)果顯示,該方法能夠達(dá)到94.62%的檢測(cè)率及0.6%的誤報(bào)率。頻率統(tǒng)計(jì)的方法通過(guò)計(jì)算特征在軟件中出現(xiàn)的頻率,選擇頻率高的特征。但是,Cen等[6]在利用該方法進(jìn)行Android軟件特征選擇時(shí)研究發(fā)現(xiàn),有些低頻率出現(xiàn)的特征(如SMS相關(guān)的權(quán)限)對(duì)檢測(cè)效果貢獻(xiàn)較高不被選擇,有些高頻率出現(xiàn)的特征(如toString()在惡意軟件和良性軟件中同時(shí)出現(xiàn))對(duì)檢測(cè)效果貢獻(xiàn)度較低被選擇,即該特征選擇方法忽略了特征在類間的頻率分布,容易選擇出冗余特征。
2)基于包裝評(píng)價(jià)策略的惡意軟件檢測(cè)特征選擇方法。Pehlivan等[4]提出一種基于權(quán)限特征的惡意軟件檢測(cè)方法,利用隨機(jī)森林進(jìn)行特征選擇,選擇出25維特征,達(dá)到了89.32%的準(zhǔn)確率。Fest[7]利用Freqensel算法對(duì)權(quán)限、API等特征進(jìn)行特征選擇,得到92%的準(zhǔn)確率和召回率。2018年,Tao等[8]提出一種基于與權(quán)限相關(guān)的API特征的惡意軟件檢測(cè)方法,使用隨機(jī)森林進(jìn)行特征選擇,選擇出50個(gè)高度敏感的API,得到了98.24%的F1值。Li等[9]經(jīng)過(guò)多層特征選擇,從135維權(quán)限特征中選擇出22維特征,利用該特征集構(gòu)建基于支持向量機(jī)的檢測(cè)模型,實(shí)現(xiàn)對(duì)Android惡意軟件的檢測(cè)。特征選擇能夠從高維特征空間中挖掘出Android惡意軟件檢測(cè)的關(guān)鍵特征,提高檢測(cè)準(zhǔn)確率?,F(xiàn)有的Android惡意軟件特征選擇方法忽略特征在類間的頻率分布,有些高頻率出現(xiàn)的特征(如用戶界面設(shè)計(jì)“android.view.ViewGroup.addView”在惡意軟件和良性軟件中同時(shí)出現(xiàn))對(duì)檢測(cè)效果貢獻(xiàn)度較低,卻被過(guò)度估計(jì)重要性,成為檢測(cè)Android惡意軟件的特征,導(dǎo)致特征子集冗余性較高,影響檢測(cè)效果。
針對(duì)現(xiàn)有特征選擇方法中對(duì)類間相同頻率分布的特征過(guò)度關(guān)注導(dǎo)致特征冗余性較強(qiáng)的問(wèn)題,本文提出一種Android惡意軟件檢測(cè)低冗余特征選擇方法。首先,分離類間存在頻率分布偏差的特征,然后,量化偏差程度和頻率以剔除低偏差和低頻特征,并結(jié)合分類器實(shí)際分類效果選擇出特征子集,降低惡意軟件檢測(cè)特征集的冗余性。
Android惡意軟件檢測(cè)低冗余特征選擇方法的核心思想是:通過(guò)分離類間存在頻率分布偏差的特征,量化偏差程度和特征出現(xiàn)頻率以剔除低偏差和低頻特征,并結(jié)合分類器實(shí)際分類效果選擇出特征子集。其基本原理框架如圖1所示。
圖1 Android惡意軟件檢測(cè)低冗余特征選擇方法原理框架Fig.1 Framework of low redundancy feature selection method for Android malware detection
該方法包括2個(gè)主要的功能模塊:預(yù)處理模塊和特征選擇模塊。預(yù)處理模塊對(duì)輸入的Apk文件進(jìn)行解壓縮和反編譯得到Smali源代碼和Android Manifest.xml文件,再?gòu)闹刑崛〕?種類型的特征集,并對(duì)提取出的特征集進(jìn)行缺失值清理、重復(fù)值清理、格式清洗和異常值處理等處理;特征選擇模塊對(duì)處理后的特征集進(jìn)行Mann-Whitney檢驗(yàn),提取出存在頻率分布偏差的特征集,再利用外觀比率間隔算法對(duì)特征的偏差程度和出現(xiàn)頻率進(jìn)行量化并選擇,最終通過(guò)粒子群優(yōu)化算法結(jié)合分類器實(shí)際檢測(cè)效果得到最優(yōu)特征子集。
首先,使用Androguard工具[10]對(duì)Android應(yīng)用程序的Apk文件進(jìn)行解壓縮。其次,反編譯解壓縮后的文件,得到Smali源代碼及AndroidManifest.xml文件。然后,解析Smali源代碼中的invoke-virtual、invoke-direct、invoke-static和invokesuper四個(gè)指令的匯編代碼,得到API特征SApi={p1,p2,…,pm}。其中,m為應(yīng)用程序包的數(shù)量。當(dāng)pm出現(xiàn)在Apk Smali源代碼中時(shí),其值為1,否則為0。最后,解析AndroidManifest.xml文件,從文件中獲取訪問(wèn)控制機(jī)制的特征和組間通信的特征,如權(quán)限、系統(tǒng)組件包含的Intent元素等。分別從AndroidManifest.xml文件和Smali源代碼中提取出24個(gè)權(quán)限特征、45個(gè)系統(tǒng)Intent特征及620個(gè)敏感API作為原始特征集。初始特征的具體信息如表1所示。
表1 初始特征信息Table 1 Initial feature information
得到原始特征集后,對(duì)數(shù)據(jù)進(jìn)行清理缺失值、清理重復(fù)值、清洗格式及處理異常值的操作。清理缺失值主要是將數(shù)據(jù)集中有屬性值缺失的數(shù)據(jù)刪除,如若某個(gè)權(quán)限的數(shù)據(jù)值不存在,則直接刪除該應(yīng)用程序的所有數(shù)據(jù);清理重復(fù)值主要是以應(yīng)用程序的ID作為標(biāo)準(zhǔn),刪除所有具有相同ID的數(shù)據(jù),使得數(shù)據(jù)集中每個(gè)ID僅有一條數(shù)據(jù);清洗格式主要是刪除數(shù)據(jù)集中的不合法字符,如“-”等,修改不正確的數(shù)據(jù)格式,或?qū)?quán)限數(shù)量值由“科學(xué)計(jì)數(shù)”格式修改為“文本”格式等;處理異常值主要是識(shí)別數(shù)據(jù)集中的離群點(diǎn)及異常點(diǎn)并刪除該條數(shù)據(jù),如某個(gè)ID中權(quán)限特征值為10 000的數(shù)據(jù)。
經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,得到一個(gè)無(wú)空缺屬性值、無(wú)重復(fù)應(yīng)用程序、無(wú)異常屬性值及數(shù)據(jù)格式正確統(tǒng)一的Android惡意軟件特征集,以便后續(xù)步驟使用。
1.3.1 Mann-Whitney檢驗(yàn)
經(jīng)過(guò)預(yù)處理后得到包含系統(tǒng)權(quán)限、API和組間通信Intent特征的原始特征集。接下來(lái)使用Mann-Whitney檢驗(yàn)[11]來(lái)分析這些原始特征集中的特征在惡意和良性軟件中的頻率分布是否有顯著不同。
Mann-Whitney檢驗(yàn)方法是一種非參數(shù)秩和假設(shè)檢驗(yàn),對(duì)獨(dú)立樣本進(jìn)行的一種不要求正態(tài)分布的T-test檢驗(yàn)方法,能夠?qū)?lái)自除了總體均值以外完全相同的總體,檢驗(yàn)是否具有顯著差異。首先,假設(shè)2個(gè)獨(dú)立樣本之間沒(méi)有差異,成立則H0,不成立則H1。該方法的具體步驟如下:
步驟1 檢驗(yàn)的2組獨(dú)立樣本n1、n2先進(jìn)行混合,并根據(jù)數(shù)據(jù)大小升序排列并編排等級(jí)(秩rank),遇到相同的數(shù)據(jù)時(shí),等級(jí)值相等,為編排等級(jí)前的平均值。
步驟2 分別求出2個(gè)樣本的等級(jí)和R1、R2。
步驟3 Mann-Whitney檢驗(yàn)統(tǒng)計(jì)量U1、U2的計(jì)算公式如下:
式中:U1、U2中的最小值用于與顯著檢驗(yàn)閾值Uα(查Mann-Whitney Table可得具體值)相比較,如果Umin<Uα?xí)r則拒絕H0,接受H1,表明兩樣本之間存在差異。
分別假設(shè)在惡意軟件和良性軟件中第i個(gè)特征集沒(méi)有顯著不同(不存在分布偏差),拒絕零假設(shè)的閾值a為0.05。再將惡意和良性的軟件分為2組,輸入矩陣如表2所示。如果一個(gè)應(yīng)用軟件(惡意或者良性)包含某個(gè)特征,則該樣本的值Bf或Mf為1,反之為0。在一個(gè)檢驗(yàn)中,2組樣本集代表1個(gè)特定權(quán)限是否被惡意或者良性軟件使用。Mann-Whitney檢驗(yàn)的輸出為拒絕假設(shè)或接受假設(shè)。當(dāng)Mann-Whitney檢驗(yàn)的p值大于閾值時(shí)則拒絕假設(shè),當(dāng)Mann-Whitney檢驗(yàn)的p值小于閾值時(shí)則接受假設(shè)。
表2 Mann-Whitney檢驗(yàn)輸入矩陣Table 2 Mann-Whitney test input matrix
1.3.2 外觀比率間隔算法
通過(guò)Mann-Whitney檢驗(yàn)得到存在分布偏差的特征集F,接下來(lái)利用外觀比率間隔算法量化特征在惡意軟件和良性軟件中的分布偏差程度,以及特征在良性軟件和惡意軟件中的出現(xiàn)頻率,本文目標(biāo)是:選擇出在整體軟件中高頻出現(xiàn)且在惡意軟件和良性軟件中分布偏差程度大的特征。假設(shè)比例越小,一個(gè)特征在良性應(yīng)用和惡意軟件之間的外觀比例差距越大。因此,顯示小比例的特征對(duì)于檢測(cè)惡意軟件是有用的。外觀比率間隔算法主要步驟如下:
步驟1 分別計(jì)算特征集F中的特征f在良性軟件和惡意軟件中的外觀比率E(f)。特征在良性軟件的外觀比率E(f)benign和惡意軟件的外觀比率E(f)malicious計(jì)算公式如下:
步驟3 特征選擇。若特征f的外觀比率比例E(f)proportion不為0,則判斷外觀比率比例E(f)proportion是否小于閾值Tproportion,若小于閾值,則該特征為只在良性或惡意軟件中頻繁出現(xiàn)的特征,該特征被選擇進(jìn)入特征子集,若大于閾值,則該特征為只在良性或惡意軟件中較少出現(xiàn)的特征,不被選擇進(jìn)入特征子集。若外觀比率比例E(f)proportion為0,則 判 斷 外 觀 比 率 比 例 差 異E(f)difference是否小于閾值Tdifference。若小于閾值,則該特征為只在良性或惡意軟件中頻繁出現(xiàn)的特征,該特征被選擇進(jìn)入特征子集F′,若大于閾值,則該特征為只在良性或惡意軟件中較少出現(xiàn)的特征,不被選擇進(jìn)入特征子集F′。外觀比率間隔算法偽代碼如下。
算法1 外觀比率間隔算法。
輸入:F,n(B0f),n(M0f),n(B f),n(M f)。輸出:F′。
For i to F.size()do計(jì) 算 E(f)benign,E(f)malicious,E(f)proportion,E(f)difference If E(f)proportion不為0 then If E(f)proportion小于閾值T proportion then F←fi Else: F←/fi Else:If E(f)difference是否小于閾值T difference then F←fi Else: F←/fi
1.3.3 粒子群優(yōu)化算法
通過(guò)外觀比率間隔算法提出低頻和低偏差的特征后,接下來(lái)利用粒子群優(yōu)化算法選擇出用于Android惡意軟件檢測(cè)的特征子集。
首先,將粒子群隨機(jī)初始化即隨機(jī)選擇特征子集。粒子的位置即特征子集Xi={x1,x2,…,xN},xi∈{0,1},i=1,2,…,N。每個(gè)粒子的位置代表一個(gè)特征子集。其中,N為特征的總數(shù),xi=1代表i位置的特征被選擇,xi=0代表對(duì)應(yīng)位置的特征不被選擇。初始化時(shí),每個(gè)粒子位置在[0,1]之間。
然后,計(jì)算適應(yīng)度(Fitness),公式如下:
式中:r為屬于(0,1)區(qū)間的一個(gè)隨機(jī)數(shù);vi為粒子的速度大小。
最后,設(shè)置停止條件。當(dāng)選擇出的特征子集在分類器中的檢測(cè)準(zhǔn)確率達(dá)到閾值時(shí)則停止,否則繼續(xù)進(jìn)行特征選擇。
實(shí)驗(yàn)所用軟件資源如表3所示,包括Python和Anaconda,分別用來(lái)提供腳本語(yǔ)言環(huán)境和搭建虛擬環(huán)境。實(shí)驗(yàn)所用硬件資源如表4所示,使用Mac計(jì)算機(jī)來(lái)編寫(xiě)代碼和運(yùn)行程序。
表3 實(shí)驗(yàn)所用軟件資源Table 3 Software resources used in experiment
表4 實(shí)驗(yàn)所用硬件資源Table 4 Har dware resources used in exper iment
將準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1值作為實(shí)驗(yàn)評(píng)價(jià)指標(biāo),計(jì)算公式如下:
式中:tp為惡意軟件被正確檢測(cè)的樣本數(shù)量;tn為良性軟件被正確檢測(cè)的樣本數(shù)量;fp為良性軟件被檢測(cè)為惡意軟件的樣本數(shù)量;fn為惡意軟件被檢測(cè)為良性軟件的樣本數(shù)量。
2.3.1 實(shí)驗(yàn)?zāi)康暮蛿?shù)據(jù)源
本節(jié)實(shí)驗(yàn)旨在評(píng)估本文方法在不同算法上使用前后的檢測(cè)性能表現(xiàn)。AMD和DREBIN公開(kāi)數(shù)據(jù)集為實(shí)驗(yàn)數(shù)據(jù)源,數(shù)據(jù)集概況如表5所示。
表5 數(shù)據(jù)集概況Table 5 Description of dataset
表5中,AMD數(shù)據(jù)集包含了2010—2016年間的24 650個(gè)惡意軟件樣本及24 650個(gè)良性樣本,惡意軟件包含了135個(gè)惡意軟件類型和71個(gè)惡意軟件家族。DREBIN數(shù)據(jù)集包含了2010年8月至2012年10月的5 560個(gè)惡意軟件和5 560個(gè)良性軟件。由于廣告軟件處于惡意軟件和良性功能之間的模糊地帶,該數(shù)據(jù)集中不含有廣告軟件樣本。
2.3.2 實(shí)驗(yàn)過(guò)程和參數(shù)
首先,將DREBIN數(shù)據(jù)集中的80%數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測(cè)試集。
然后,利用訓(xùn)練集選擇出模型中合適的參數(shù)。其中,Mann-Whitney檢驗(yàn)拒絕零假設(shè)的閾值a為0.05,外觀比率比例的閾值Tproportion取值為0.2,外觀比率比例差異的閾值Tdifference取值為0.5,粒子群優(yōu)化算法中α取值為0.8,β取值為0.2,加速因子c1為0.5,c2為0.5。
其次,在訓(xùn)練集下,分別利用原始特征集和最優(yōu)特征集訓(xùn)練梯度提升樹(shù)算法(GBDT)[12]、自適應(yīng)提升算法(AdaBoost)[13]、多層神經(jīng)網(wǎng)絡(luò)算法(MLP)[14]、邏輯回歸算法(LR)[15]、貝葉斯算法(NB)[16]和隨機(jī)森林[17]算法。其中,隨機(jī)森林算法中樹(shù)的數(shù)量為100,每個(gè)決策樹(shù)隨機(jī)選擇的特征數(shù)目為241。
最后,在測(cè)試集下,分別利用原始特征集和最優(yōu)特征子集計(jì)算上述算法的準(zhǔn)確率、精確率、召回率和F1值,最終得到Android惡意軟件檢測(cè)外觀比率間隔特征選擇方法的實(shí)驗(yàn)結(jié)果。
AMD數(shù)據(jù)集重復(fù)以上過(guò)程。
2.3.3 實(shí)驗(yàn)結(jié)果
以AMD數(shù)據(jù)集為例,使用提出的外觀比率間隔特征選擇方法選擇出維度為294的最優(yōu)特征子集,如表6所示。檢測(cè)能力評(píng)估實(shí)驗(yàn)的結(jié)果如表7和表8所示。
表6 AMD數(shù)據(jù)集的最優(yōu)特征子集Table 6 Optimal feature subset of AMD dataset
表7 特征選擇實(shí)驗(yàn)結(jié)果(AMD數(shù)據(jù)集)Table 7 Experimental results of feature selection(AMD dataset)
表8 特征選擇實(shí)驗(yàn)結(jié)果(DREBIN數(shù)據(jù)集)Table 8 Experimental results of feature selection(DREBIN dataset)
2.4.1 實(shí)驗(yàn)?zāi)康暮蛿?shù)據(jù)源
本節(jié)實(shí)驗(yàn)旨在對(duì)比分析提出的外觀比率間隔特征選擇方法與其他特征選擇方法在Android惡意軟件檢測(cè)準(zhǔn)確率上的性能差異。DREBIN公開(kāi)數(shù)據(jù)集為實(shí)驗(yàn)數(shù)據(jù)源,其詳細(xì)介紹如表5所示。
2.4.2 實(shí)驗(yàn)過(guò)程和參數(shù)
首先,將DREBIN數(shù)據(jù)集中的80%數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測(cè)試集。
然后,利用訓(xùn)練集選擇出模型中合適的參數(shù)。其中,Mann-Whitney檢驗(yàn)拒絕零假設(shè)的閾值a為0.05,外觀比率比例的閾值Tproportion取值為0.5,外觀比率比例差異的閾值Tdifference取值為0.5,粒子群優(yōu)化算法中α取值為0.8,β取值為0.2,加速因子c1為0.5,c2為0.5。
其次,在訓(xùn)練集下,分別利用文獻(xiàn)[18-22]中提到的卡方檢驗(yàn)、方差選擇、遞歸特征消除、遺傳算法和關(guān)聯(lián)規(guī)則特征選擇方法,與本文方法對(duì)原始特征集進(jìn)行特征選擇并訓(xùn)練隨機(jī)森林分類器。其中,隨機(jī)森林算法中樹(shù)的數(shù)量為100,每個(gè)決策樹(shù)隨機(jī)選擇的特征數(shù)目為241。
最后,在測(cè)試集下,分別利用文獻(xiàn)[18-22]中的方法,與本文方法選擇出特征并測(cè)試隨機(jī)森林分類器的準(zhǔn)確率、精確率、召回率和F1值,最終得到Android惡意軟件檢測(cè)外觀比率間隔特征選擇方法對(duì)比實(shí)驗(yàn)結(jié)果。
2.4.3 實(shí)驗(yàn)結(jié)果
對(duì)比分析實(shí)驗(yàn)結(jié)果如表9所示。
表9 特征選擇方法實(shí)驗(yàn)結(jié)果對(duì)比Table 9 Comparison of experimental results among feature selection methods
在生成最優(yōu)特征子集時(shí),外觀比率間隔特征選擇方法可以挑選出低頻和低偏差的特征,同時(shí)將不相關(guān)特征及冗余特征從備選特征集中剔除。從表6可以看出,Android惡意軟件更傾向于使用與SMS短信相關(guān)的特征,這類特征在正常應(yīng)用中所使用的頻率較低,同時(shí)Dex Class Loader等在Android正常應(yīng)用中所使用的頻率遠(yuǎn)高于在惡意軟件中所使用的頻率。這一現(xiàn)象表明,Android開(kāi)發(fā)人員有意識(shí)地通過(guò)動(dòng)態(tài)加載這一技術(shù)對(duì)自己的核心代碼進(jìn)行保護(hù),同時(shí)開(kāi)發(fā)人員還可以通過(guò)該技術(shù)對(duì)自己的軟件進(jìn)行動(dòng)態(tài)拓展。
在檢測(cè)能力評(píng)估實(shí)驗(yàn)中,本文方法能夠提升分類方法的檢測(cè)效果。將本文方法應(yīng)用到分類方法后顯示(見(jiàn)表7),在AMD數(shù)據(jù)集中部分基礎(chǔ)分類方法的檢測(cè)效果有所提升,如使用GBDT方法進(jìn)行惡意軟件檢測(cè),其精確率從94.9%提升至96.2%,LR 方法的精確率從90.2% 提升至95.2%,MLP方法的召回率和F1值均提升了0.01,AdaBoost方法、NB方法等準(zhǔn)確率、精確率都有不同程度的提升。表8顯示,在DREBIN數(shù)據(jù)集中,部分基礎(chǔ)分類方法的檢測(cè)效果有所提升,如使用RF方法進(jìn)行Android惡意軟件檢測(cè),其精確率從93.2%提升至94.9%,其他方法的準(zhǔn)確率、精確率等評(píng)價(jià)指標(biāo)在進(jìn)行特征選擇后都有不同程度的提升。本文方法能夠拉近同類特征在特征空間中的距離,不易過(guò)擬合,能夠準(zhǔn)確檢測(cè)Android惡意軟件。因此,本文方法能夠提升分類算法的檢測(cè)效果。
在對(duì)比分析實(shí)驗(yàn)中,本文方法優(yōu)于其他對(duì)比方法。結(jié)果顯示,該方法選擇出的特征數(shù)量為294,準(zhǔn)確率為98.2%,召回率即檢測(cè)率為98.4%,精確率為98.1%,F(xiàn)1值為0.983,特征數(shù)量少于4種(共5種)對(duì)比方法,準(zhǔn)確率、精確率、召回率和F1值均優(yōu)于其他5種對(duì)比方法。該方法通過(guò)分離類間存在頻率分布偏差的特征,量化偏差程度和特征出現(xiàn)頻率以剔除低偏差和低頻特征,并結(jié)合分類器實(shí)際分類效果選擇出特征子集,相比于其他利用特征與檢測(cè)結(jié)果相關(guān)關(guān)系的對(duì)比方法(卡方檢驗(yàn)、方差選擇、遞歸特征消除、遺傳算法和關(guān)聯(lián)規(guī)則),具有更好的特征選擇效果。因此,本文方法優(yōu)于其他對(duì)比方法。
本文針對(duì)現(xiàn)有的Android惡意軟件檢測(cè)特征選擇方法忽略特征在類間的頻率分布情況,對(duì)同時(shí)出現(xiàn)在惡意軟件和良性軟件的特征過(guò)度關(guān)注,導(dǎo)致特征冗余性較強(qiáng)的問(wèn)題,提出一種Android惡意軟件檢測(cè)外觀比率間隔特征選擇方法。
1)該方法利用Mann-Whitney檢驗(yàn)方法選擇出在惡意軟件和良性軟件中存在頻率分布偏差的特征,通過(guò)外觀比率間隔算法量化偏差程度和特征出現(xiàn)頻率剔除低偏差和整體軟件中低頻使用的特征,利用粒子群優(yōu)化算法根據(jù)實(shí)際檢測(cè)效果得到最優(yōu)特征子集,降低了Android惡意軟件特征集的冗余性。
2)使用DREBIN公開(kāi)數(shù)據(jù)集和AMD公開(kāi)數(shù)據(jù)集進(jìn)行特征選擇能力評(píng)估實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示,在AMD數(shù)據(jù)集上選擇出了294維特征,進(jìn)行特征選擇后6種分類器的檢測(cè)準(zhǔn)確率提高了1% ~5%,最佳檢測(cè)準(zhǔn)確率為98.2%;在DREBIN數(shù)據(jù)集上選擇出了295維特征,進(jìn)行特征選擇后將隨機(jī)森林分類器的檢測(cè)精確率提高了1.7%。與5種特征選擇方法對(duì)比,具有較少的特征數(shù)量,具有較高的準(zhǔn)確率、精確率、召回率(檢測(cè)率)和F1值。這是因?yàn)楸疚姆椒梢酝ㄟ^(guò)確定閾值保存其他方法丟棄的有用特征,同時(shí)去除其他方法的冗余特征,降低了特征的冗余性,提高了惡意軟件檢測(cè)特征選擇方法的檢測(cè)效果。
研究工作還可以進(jìn)一步增加從Apk文件中提取出的初始特征類型和數(shù)量,從而提升Android惡意軟件檢測(cè)能力,實(shí)現(xiàn)對(duì)Android系統(tǒng)和用戶進(jìn)行全面的安全防護(hù)。