一種基于改進(jìn)貝葉斯算法的安卓惡意軟件檢測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明給出了一種基于改進(jìn)貝葉斯算法的安卓惡意軟件檢測方法,主要解決安卓 平臺應(yīng)用軟件中涉及惡意軟件如何檢測的問題,屬于移動應(yīng)用安全領(lǐng)域。
【背景技術(shù)】
[0002] 隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,具有移動操作系統(tǒng)的智能手機(jī)已成為目前移動終端 發(fā)展的主流。智能手機(jī)不再是傳統(tǒng)的通訊工具,像掌上電腦一樣,智能手機(jī)已具有獨立的操 作系統(tǒng),可以由用戶自行安裝或卸載如QQ、百度地圖、手機(jī)安全衛(wèi)士等第三方開發(fā)商提供的 應(yīng)用,不斷地對手機(jī)的功能進(jìn)行擴(kuò)充。其中,基于Linux內(nèi)核的Android移動終端操作系統(tǒng) 發(fā)展最為迅速,2012年第3季度市場占有率達(dá)到75%,各種功能的應(yīng)用程序滿足了用戶多 種多樣的需求。由于其開源性,任何組織或個人編寫的軟件都可以上傳到系統(tǒng)的應(yīng)用商店, 供用戶隨意下載并安裝使用。因此,惡意軟件也把用戶的智能終端作為潛在的攻擊目標(biāo)。目 前,惡意扣費、隱私竊取、系統(tǒng)破壞成為惡意軟件的主要危害。
[0003] 在移動平臺上,軟件的惡意行為往往隱藏在普通軟件中,通過自動連接互聯(lián)網(wǎng)下 載數(shù)據(jù)、自動撥打電話、自動發(fā)送短信注冊相關(guān)SP(服務(wù)提供商)服務(wù)等方式,使用戶在不 知情的情況下被騙去大量費用。另外,某些惡意程序還會偷偷地讀取用戶聯(lián)系人、郵箱信 息、用戶地理位置、手機(jī)MEI標(biāo)識等敏感數(shù)據(jù),甚至通過網(wǎng)絡(luò)或短信的方式,將收集到的數(shù) 據(jù)發(fā)送出去,達(dá)到竊取用戶隱私信息的目的。除此之外,一些惡意程序在運行過程中,會對 用戶數(shù)據(jù)文件進(jìn)行刪除、卸載系統(tǒng)組件、改變系統(tǒng)外觀,對手機(jī)系統(tǒng)造成嚴(yán)重破壞。這些軟 件的惡意行為已經(jīng)嚴(yán)重影響了人們對智能手機(jī)的正常使用。因此,如何對發(fā)布到互聯(lián)網(wǎng)、應(yīng) 用商店中的應(yīng)用程序的安全性進(jìn)行有效評估與度量是軟件管理者面臨的一項重要問題。
[0004] 目前惡意軟件檢測方案主要有誤用檢測和異常檢測。誤用檢測是基于已知惡意 行為特征的方法,它是通過規(guī)則集來檢測惡意軟件。有論文提出了通過收集樣本的資源消 耗的歷史數(shù)據(jù),然后從收集的樣本數(shù)據(jù)提煉出一個強(qiáng)有力的簽名用于惡意軟件的檢測。有 論文提出了根據(jù)應(yīng)用程序開發(fā)者定義的安全策略來保護(hù)通過能夠可用接口調(diào)用其它應(yīng)用 程序的安全。有論文提出ScanAroid的方法,它是提取應(yīng)用程序的安全格式,用數(shù)據(jù)流分 析的方法來檢測惡意軟件,如果有些數(shù)據(jù)流違背了安全格式,那么就認(rèn)定其為惡意軟件。 有論文提出了 Kirin安全服務(wù),它驗證應(yīng)用程序的安全等級,它定義了各種潛在的危險 permission標(biāo)簽組合。有論文運用了算法來結(jié)構(gòu)化規(guī)則,他們提出了基于簽名的方法,結(jié)合 了 Permission屬性。通過收集內(nèi)容構(gòu)造控制流程圖來檢測惡意軟件。
[0005] 異常檢測不同于誤用檢測,它是通過應(yīng)用數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)算法來學(xué)習(xí)已知 惡意軟件的行為,以此來預(yù)測未知的或新穎的惡意軟件,盡管異常檢測能夠檢測未知的惡 意軟件,但它有時候有很高的誤報率。有論文提出了基于行為檢測的框架來代替基于簽名 的解決方法。它是通過觀察應(yīng)用程序的活動邏輯順序來檢測惡意軟件,通過利用數(shù)據(jù)挖 掘中的支持向量機(jī)分離器方法來區(qū)別惡意軟件與正常軟件。有論文從應(yīng)用軟件二進(jìn)制文 件中提取函數(shù)調(diào)用,然后應(yīng)用叫做Centroid聚類算法機(jī)制來檢測惡意軟件。有論文提出 了在移動平臺上基于惡意軟件異常的資源消耗來檢測惡意軟件的異常行為。有論文采用 用戶相關(guān)的API調(diào)用概率的方法來檢測惡意軟件的異常行為,利用馬爾科夫模型來學(xué)習(xí) 應(yīng)用軟件和用戶的行為,最后用于區(qū)別正常軟件與惡意軟件。有論文提出叫做Andromaly 的方法來檢測惡意軟件,它是基于行為分析的,它測試一系列的特征集的方法來找出最 能夠代表惡意軟件特征的特征集,Andromaly運用了幾種機(jī)器學(xué)習(xí)算法,例如Logistic Regression, Bayesian Networks.來訓(xùn)練標(biāo)記好的惡意軟件標(biāo)簽和正常軟件標(biāo)簽用于區(qū)別 惡意軟件和正常軟件。有論文通過使用支持向量機(jī)算法提出基于軟件行為的惡意軟件檢測 框架,叫做AntiMalDroicL有論文提出來的這個框架能夠動態(tài)的擴(kuò)展惡意軟件特征庫,有 提取關(guān)鍵permission屬性,執(zhí)行相應(yīng)的統(tǒng)計概率來鑒定有懷疑的應(yīng)用軟件。
【發(fā)明內(nèi)容】
[0006] 技術(shù)問題:本發(fā)明的目的是提出一種基于改進(jìn)貝葉斯算法的安卓惡意軟件檢測方 法。通過改進(jìn)貝葉斯算法對安卓惡意程序和良性程序的特征屬性進(jìn)行分析和分類,實現(xiàn)一 種基于改進(jìn)貝葉斯算法的惡意軟件檢測方法,從應(yīng)用程序權(quán)限申請的角度出發(fā),判斷分析 是否為惡意軟件。該方法提高了檢測率,降低誤報率。最終目的是給出一個基于改進(jìn)貝葉 斯算法的安卓惡意軟件檢測的方法。
[0007] 技術(shù)方案:本發(fā)明是一種基于改進(jìn)貝葉斯算法的安卓惡意軟件檢測方法,該方法 從惡意軟件和良性軟件中提取權(quán)限請求文件,然后對每兩個權(quán)限請求標(biāo)簽合并為一個特征 屬性進(jìn)行統(tǒng)計,再利用互信息的概念以互信息評價函數(shù)提取相關(guān)特征屬性,特征提取基本 任務(wù)是從眾多特征屬性中找出那些對分類有明顯影響的特征屬性,然后用卡方驗證方法去 除冗余權(quán)限請求標(biāo)簽組合對惡意軟件檢測的影響,最后用樸素貝葉斯算法進(jìn)行數(shù)學(xué)建模, 生成檢測模型,實現(xiàn)一種基于改進(jìn)貝葉斯算法的android惡意軟件檢測方法。
[0008] 其包含的步驟為:
[0009] 步驟1):從惡意軟件網(wǎng)站上下載惡意安卓軟件作為惡意軟件數(shù)據(jù)源,從谷歌官方 安卓市場上下載安卓軟件作為良性軟件;
[0010] 步驟2):下載下來的軟件數(shù)據(jù)源利用APKT00L工具進(jìn)行反匯編提取權(quán)限請求文 件;
[0011] 步驟3):對惡意軟件和良性軟件的權(quán)限請求文件中的權(quán)限請求標(biāo)簽進(jìn)行兩兩組 合合并為一個特征屬性統(tǒng)計;
[0012] 步驟4):利用互信息的概念以互信息評價函數(shù)提取特征屬性,特征提取基本任務(wù) 是從眾多特征屬性中找出那些對分類有明顯影響的特征屬性,選取具有明顯影響的特征作 為分類的特征屬性;
[0013] 步驟5):利用卡方檢驗方法對統(tǒng)計好的權(quán)限請求標(biāo)簽組合進(jìn)行去除冗余數(shù)作為 預(yù)處理好的數(shù)據(jù),使得特征屬性之間的關(guān)聯(lián)性更弱,有利用提高樸素貝葉斯分類器的性能, 提尚惡意軟件的檢測率;
[0014] 步驟6)將預(yù)處理好的數(shù)據(jù)用樸素貝葉斯算法進(jìn)行數(shù)據(jù)建模,生成檢測模型。
[0015] 有益效果:作