本發(fā)明涉及軟件檢測技術(shù)領(lǐng)域,尤其涉及一種Android惡意軟件檢測系統(tǒng)和方法。
背景技術(shù):
移動惡意軟件是指所有能夠在智能手機(jī)或者平板計(jì)算機(jī)上執(zhí)行惡意操作的應(yīng)用程序,會導(dǎo)致系統(tǒng)崩潰、用戶機(jī)密信息的損失或泄漏。智能終端和云計(jì)算運(yùn)用加速推進(jìn)信息技術(shù)和通信技術(shù)的融合,促進(jìn)了移動互聯(lián)網(wǎng)高速發(fā)展。隨著移動互聯(lián)網(wǎng)的發(fā)展,移動終端用戶群體日益龐大。但是在經(jīng)濟(jì)利益的驅(qū)使下,移動惡意軟件的數(shù)量呈爆炸式增長,各種移動惡意軟件家族更是千變?nèi)f化,嚴(yán)重威脅著移動互聯(lián)網(wǎng)的健康發(fā)展,給用戶和智能終端帶來了不可忽視的危害。Android平臺的安全隱患尤為突出,報(bào)告顯示96%移動惡意軟件針對Android系統(tǒng),當(dāng)前超過50億個被下載的Android應(yīng)用處在黑客攻擊的威脅之下。此外,旨在竊取Android用戶財(cái)務(wù)信息的惡意應(yīng)用數(shù)量也在迅猛增長。
目前研究比較廣泛的Android惡意軟件檢測包括動態(tài)分析和靜態(tài)分析。動態(tài)分析主要是分析程序運(yùn)行時的特征,包括系統(tǒng)調(diào)用序列和數(shù)據(jù)流等。這些方法需要修改安卓系統(tǒng)的內(nèi)核,而且?guī)砹舜罅康膶?shí)時計(jì)算。靜態(tài)檢測方法通過分析應(yīng)用程序的源代碼,并不運(yùn)行應(yīng)用程序。安卓平臺惡意軟件常見的靜態(tài)特征有:API特征和權(quán)限特征。Aafer等人提取了API,package和API參數(shù)特征,使用不同的分類器,包括ID3,C4.5,k-NN和支持向量機(jī)對特征進(jìn)行分類。Cen等人提取了API特征,并使用概率辨別模型進(jìn)行鑒別。他們使用信息增益、卡方檢驗(yàn)對原始特征進(jìn)行賦值,選擇數(shù)值高的特征組成新的特征向量,然后進(jìn)行檢測。
TF-IDF是一種信息處理技術(shù),主要用于特征的選取。IDF的數(shù)值在正常軟件和惡意軟件中,常常相等,因此沒有區(qū)分能力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于,解決傳統(tǒng)Android惡意軟件檢測時間長及檢測精度低等技術(shù)問題。
本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實(shí)現(xiàn)的。
一種Android惡意軟件檢測系統(tǒng),包括:
特征提取模塊,用于提取API特征提取及權(quán)限特征;
特征選擇模塊,用于計(jì)算每個API特征和權(quán)限特征的TF-SFD,并根據(jù)TF-SFD的數(shù)值從大到小排序,選擇前M1個API特征,前M2個權(quán)限特征組成特征矩陣;
分類鑒別模塊:對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
在本發(fā)明一較佳實(shí)施方式中,所述特征提取模塊包括API特征提取模塊及權(quán)限特征提取模塊。
在本發(fā)明一較佳實(shí)施方式中,所述API特征提取模塊基于Dedexer工具,通過命令“java-jar Dedexer.jar-d<directory><dex file>”將classes.dex文件反編譯成smali文件,在smali文件中提取Android應(yīng)用軟件的API特征。
在本發(fā)明一較佳實(shí)施方式中,所述權(quán)限特征提取模塊通過反編譯AndroidManifest.xml文件提取權(quán)限特征,并通過權(quán)限特征向量來表示該軟件,若軟件申請了該權(quán)限,置為1;未申請?jiān)摍?quán)限,則置為0。
在本發(fā)明一較佳實(shí)施方式中,所述特征選擇模塊通過下述算法計(jì)算每個API特征和權(quán)限特征的TF-SFD,
TF-SFDi,j=TFi,j*SFDi
其中:Wi,j是指第i個特征,在第j個類中出現(xiàn)的次數(shù),N是指特征的總數(shù),NiMal是指包含第i個特征的惡意軟件數(shù)量,NMAL是指惡意軟件總數(shù),NiBen是包含第i個特征的正常軟件數(shù)量,NBen是正常軟件總數(shù)。
在本發(fā)明一較佳實(shí)施方式中,所述分類鑒別模塊通過隨機(jī)森林算法對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
在本發(fā)明一較佳實(shí)施方式中,所述類鑒別模塊通過樸素貝葉斯算法或支持向量機(jī)算法或神經(jīng)網(wǎng)絡(luò)算法或決策樹算法對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
此外,本發(fā)明還提供了一種Android惡意軟件檢測方法,包括下述步驟:
提取API特征提取及權(quán)限特征;
計(jì)算每個API特征和權(quán)限特征的TF-SFD,并根據(jù)TF-SFD的數(shù)值從大到小排序,選擇前M1個API特征,前M2個權(quán)限特征組成特征矩陣;
對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
在本發(fā)明一較佳實(shí)施方式中,提取API特征提取具體為:基于Dedexer工具,通過命令“java-jar Dedexer.jar-d<directory><dex file>”將classes.dex文件反編譯成smali文件,在smali文件中提取Android應(yīng)用軟件的API特征;
提取權(quán)限特征具體為:通過反編譯AndroidManifest.xml文件提取權(quán)限特征,并通過權(quán)限特征向量來表示該軟件,若軟件申請了該權(quán)限,置為1;未申請?jiān)摍?quán)限,則置為0。
在本發(fā)明一較佳實(shí)施方式中,通過下述算法計(jì)算每個API特征和權(quán)限特征的TF-SFD,
TF-SFDi,j=TFi,j*SFDi
其中:Wi,j是指第i個特征,在第j個類中出現(xiàn)的次數(shù),N是指特征的總數(shù),NiMal是指包含第i個特征的惡意軟件數(shù)量,NMAL是指惡意軟件總數(shù),NiBen是包含第i個特征的正常軟件數(shù)量,NBen是正常軟件總數(shù)。
本發(fā)明采用上述技術(shù)方案具有下述有益效果:
本發(fā)明提供的Android惡意軟件檢測系統(tǒng)及方法,采用特征提取模塊提取API特征提取及權(quán)限特征,根據(jù)特征選擇模塊計(jì)算每個API特征和權(quán)限特征的TF-SFD,并根據(jù)TF-SFD的數(shù)值從大到小排序,選擇前M1個API特征,前M2個權(quán)限特征組成特征矩陣,再通過類鑒別模塊對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別,上述檢測方法簡單,計(jì)算量小,檢測效果較高。
此外,本發(fā)明提供的Android惡意軟件檢測系統(tǒng)及方法根據(jù)TF-SFD特征選擇技術(shù),可以有效地減少API特征與權(quán)限特征數(shù)量,從而減少訓(xùn)練與識別的時間;同時,可以刪除無效特征,從而提高分類精度。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉較佳實(shí)施例,并配合附圖,詳細(xì)說明如下。
附圖說明
圖1是本發(fā)明實(shí)施例提供的Android惡意軟件檢測系統(tǒng)的功能模塊圖。
圖2是本發(fā)明一較佳實(shí)施例提供的Android惡意軟件檢測系統(tǒng)的原理示意圖。
圖3為本發(fā)明實(shí)施例提供的Android惡意軟件檢測方法的步驟流程圖。
圖4為本發(fā)明提出的TF-SFD與原始的TF-IDF對比示意圖。
圖5為本發(fā)明采用TF-SFD進(jìn)行API特征提取示意圖。
具體實(shí)施方式
為了便于理解本發(fā)明,下面將參照相關(guān)附圖對本發(fā)明進(jìn)行更全面的描述。附圖中給出了本發(fā)明的較佳實(shí)施方式。但是,本發(fā)明可以以許多不同的形式來實(shí)現(xiàn),并不限于本文所描述的實(shí)施方式。相反地,提供這些實(shí)施方式的目的是使對本發(fā)明的公開內(nèi)容理解的更加透徹全面。
除非另有定義,本文所使用的所有的技術(shù)和科學(xué)術(shù)語與屬于本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術(shù)語只是為了描述具體的實(shí)施方式的目的,不是旨在于限制本發(fā)明。本文所使用的術(shù)語“及/或”包括一個或多個相關(guān)的所列項(xiàng)目的任意的和所有的組合。
請參考圖1及圖2,其中,圖1是本發(fā)明實(shí)施例提供的Android惡意軟件檢測系統(tǒng)的功能模塊圖,圖2為本發(fā)明一較佳實(shí)施例提供的Android惡意軟件檢測系統(tǒng)的原理示意圖。本發(fā)明提供的Android惡意軟件檢測系統(tǒng)包括:特征提取模塊110、特征選擇模塊120及分類鑒別模塊130。
其中,特征提取模塊110用于提取API特征提取及權(quán)限特征;
優(yōu)選地,所述特征提取模塊110包括API特征提取模塊及權(quán)限特征提取模塊。
所述API特征提取模塊基于Dedexer工具,通過命令“java-jar Dedexer.jar-d<directory><dex file>”將classes.dex文件反編譯成smali文件,在smali文件中提取Android應(yīng)用軟件的API特征。
所述權(quán)限特征提取模塊通過反編譯AndroidManifest.xml文件提取權(quán)限特征,并通過權(quán)限特征向量來表示該軟件,若軟件申請了該權(quán)限,置為1;未申請?jiān)摍?quán)限,則置為0。
可以理解,特征提取模塊110也可以為一個集成模塊,該集成了所述API特征提取模塊和所述權(quán)限特征提取模塊的功能,從而提供了系統(tǒng)的集成度。
特征選擇模塊120用于計(jì)算每個API特征和權(quán)限特征的TF-SFD,并根據(jù)TF-SFD的數(shù)值從大到小排序,選擇前M1個API特征,前M2個權(quán)限特征組成 特征矩陣。
優(yōu)選地,所述特征選擇模塊120通過下述算法計(jì)算每個API特征和權(quán)限特征的TF-SFD,
TF-SFDi,j=TFi,j*SFDi
其中:Wi,j是指第i個特征,在第j個類中出現(xiàn)的次數(shù),N是指特征的總數(shù),NiMal是指包含第i個特征的惡意軟件數(shù)量,NMAL是指惡意軟件總數(shù),NiBen是包含第i個特征的正常軟件數(shù)量,NBen是正常軟件總數(shù)。
可以理解,本發(fā)明采用TF-SFD特征選擇技術(shù),可以有效地減少API特征與權(quán)限特征數(shù)量,從而減少訓(xùn)練與識別的時間。
此外,本發(fā)明采用TF-SFD特征選擇技術(shù),可以刪除無效特征,從而提高分類精度。
分類鑒別模塊130對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
優(yōu)選地,所述分類鑒別模塊130通過隨機(jī)森林算法對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
可以理解,本發(fā)明采用隨機(jī)森林算法對包括安卓API與權(quán)限的混合特征子集進(jìn)行分類,得到分類模型,并對所述分類模塊進(jìn)行鑒別,從而可以提高移動惡意軟件識別的精度。
優(yōu)選地,所述類鑒別模塊130還可以通過樸素貝葉斯算法或支持向量機(jī)算法或神經(jīng)網(wǎng)絡(luò)算法或決策樹算法對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
請參閱圖3,為本發(fā)明實(shí)施例提供的Android惡意軟件檢測方法的步驟流程圖,包括:
步驟S10:提取API特征提取及權(quán)限特征;
步驟S20:計(jì)算每個API特征和權(quán)限特征的TF-SFD,并根據(jù)TF-SFD的數(shù)值從大到小排序,選擇前M1個API特征,前M2個權(quán)限特征組成特征矩陣;
步驟S30:對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別。
本發(fā)明提供的Android惡意軟件檢測系統(tǒng)及方法,采用特征提取模塊提取API特征提取及權(quán)限特征,根據(jù)特征選擇模塊計(jì)算每個API特征和權(quán)限特征的TF-SFD,并根據(jù)TF-SFD的數(shù)值從大到小排序,選擇前M1個API特征,前M2個權(quán)限特征組成特征矩陣,再通過類鑒別模塊對所述特征矩陣進(jìn)行訓(xùn)練,得到分類模型,并對所述分類模塊進(jìn)行鑒別,上述檢測方法簡單,計(jì)算量小,檢測效果較高。
此外,本發(fā)明提供的Android惡意軟件檢測系統(tǒng)及方法根據(jù)TF-SFD特征選擇技術(shù),可以有效地減少API特征與權(quán)限特征數(shù)量,從而減少訓(xùn)練與識別的時間;同時,可以刪除無效特征,從而提高分類精度。
實(shí)施例
請參閱圖4,為本發(fā)明提出的TF-SFD與原始的TF-IDF對比示意圖,從圖中可以看出,采用TF-SFD選擇的權(quán)限(Permission)特征分類精度高于TF-IDF,當(dāng)選擇前20個權(quán)限特征時,分類精度大于84%,接近使用全部的權(quán)限特征。
請參閱圖5,為本發(fā)明采用TF-SFD進(jìn)行API特征提取,前100個特征的分類精度即可高于采用全部特征。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。