










摘 要 惡意軟件旨在破壞、禁用或控制計算機系統. Android惡意軟件專門針對Android操作系統,以泄露機密信息和破壞系統為目的. 文獻顯示相關領域已進行了多次嘗試來檢測Android惡意軟件. 然而,這些工作無法自動檢測惡意軟件,而且大多數都是基于簽名的,無法檢測惡意軟件的新變種. 本研究中,探索了不同的算法,以獲得惡意軟件預測的最佳算法,并獲得有助于本研究有效預測惡意軟件的最佳特征集. 從本研究的分析中,已經看到,在預測惡意軟件方面,集成方法比傳統的機器學習算法要好. 本研究使用LGBM創新算法將特征數量從215個減少到100個,精準率達到99.50%. 此外,本研究使用只有55個特征的隨機森林獲得了99.17%的精準度.
關鍵詞 Android;惡意軟件;機器學習;特征選擇;合奏學習;Drebin數據集
中圖分類號 TP309.5" 文獻標識碼 A
0 引 言
Android系統是一種基于Linux的移動操作系統,是目前全球最流行的移動操作系統之一,根據Counterpoint的數據,Android系統市場份額占據78%[1]. 由于其受歡迎程度非常廣,Android系統也成為惡意軟件攻擊的目標. 惡意軟件的目的是為黑客利用程序代碼中斷系統進程操作或竊取存儲在系統中的任意數據.
根據文獻顯示現有許多的解決方案可以預測Android惡意軟件. 但是這些解決方案是基于簽名的,簽名實際上是代碼下的數字足跡. 從應用程序的APK中提取簽名,然后與存儲在相應數據庫中的惡意簽名進行比較. 缺點是,這種類型的解決方案無法檢測到數據庫中不存在的或未知的惡意軟件. 據卡巴斯基2023年Q1移動設備攻擊報告顯示,2023年雖然針對移動設備的惡意軟件、廣告軟件和惡意軟件攻擊同比略有下降,但攻擊數據量仍然在490萬次左右[2]. 由于惡意軟件數據量巨大,因此有必要提出一種新的解決方案,該解決方案能夠以最少的時間和資源準確檢測出所有類型的惡意軟件. 本研究的目的是提供一種解決方案,該解決方案能夠以最少的時間和資源有效且準確地檢測出不同種類的惡意軟件. 現有的預測方法往往基于單一的機器學習模型,這些模型可能受到數據不平衡、特征選擇不當或模型過擬合等問題的影響,導致預測性能不穩定. 此外,隨著惡意軟件的演變,單一模型的預測能力可能迅速下降,無法及時適應新的威脅.
文獻中有幾篇關于Android惡意軟件檢測的作品. 如Khariwal等使用信息增益來獲得最佳權限和意圖集,以更準確地檢測Android惡意軟件. 使用隨機森林實現了94.73%的準確度. 但是,他們的解決方案無法檢測到權限和意圖很少的惡意軟件[3]. 王季等使用多個深度神經網絡并將其預測與集成相結合,在Android惡意軟件檢測中實現98.30%的準確率和98.13%的惡意軟件召回率[4]. Mahindru等提出了一種基于網絡的解決方案,其中采用21種算法用于惡意軟件檢測,6種特征排名方法和4種特征子集選擇方法來選擇最佳特征. 準確率達到98.82%的[5]. 但是,建議的解決方案沒有說明檢測惡意軟件所需的可能權限和API調用的數量.
通過文獻研究得知,基于Android惡意軟件的檢測已經有很多嘗試. 主要是基于簽名的傳統方法通過將APK文件簽名與惡意軟件數據庫中的惡意應用程序簽名進行比較來檢測惡意軟件,因此無法檢測到數據庫中不存在的惡意軟件. 鑒于此,本研究旨在通過集成機器學習算法來提高Android惡意軟件的預測能力. 集成學習通過組合多個學習器來完成學習任務,通常能夠獲得比單一學習器更好的泛化性能. 本研究將探索不同的集成策略,并結合多種特征提取方法,以構建一個高效、準確的惡意軟件預測模型. 本研究主要從以下幾方面展開:
(1) 自動化惡意軟件檢測并識別惡意軟件中最重要和最常見的特征;
(2) 以最少的誤報數量實現更高的準確性;
(3) 在各種標準下確定最適合的算法來預測惡意軟件.
1 研究方法分析
在本研究提出的方法中,使用了集成學習算法,其中結合了幾種機器學習技術共同形成一個預測模型. 在研究中使用了包裝器方法,例如用遞歸特征消除(RFE)來進行特征選擇. 還使用帶有交叉驗證的遞歸特征消除(RFECV)進行特征選擇,其中算法自動選擇對Android惡意軟件進行分類所需的特征數量,從而實現更高的準確性[6]. 數據收集后,主要操作過程如下:
本研究提出的方法包括四個階段,包括數據預處理,特征選擇,、模型選擇和測試,參數調優和模型測試. 如圖1是使用機器學習描述Android惡意軟件預測的總體流程圖所示.
1.1 數據預處理
數據預處理是本研究處理原始數據集以使其適合機器學習模型的階段. 由于本研究的數據集已經處于良好狀態,沒有必要在這里做太多的預處理. 數據輸入是以0或1的形式,其中1表示實體存在的特定屬性,0表示不存在. 分兩步進行:
識別和處理缺失數據:具有0或1以外值的行和列被識別為丟失的數據. 必須處理這些丟失的數據,以免出現運行時錯誤或錯誤預測.
平衡不平衡類:不平衡類是一種數據排列,其中大多數示例屬于這一類,很少有示例屬于其他類. 這會導致其它少數類的預測率很低,而在大多數情況下,這種少數類的正確預測更重要,就像本研究的案例一樣. 這也是為什么要進行類平衡以確保兩個類具有相同數量的示例. 在本研究的案例中,多數類是良性Android樣本,少數類是惡意軟件樣本. 為了使兩個類都能被我們的模型同等地識別,兩個類需要具有相同的比率. 為了平衡不平衡類,本研究對少數類進行了獨立上采樣. 上采樣是隨機復制少數類別的觀察結果以增強其信號的過程.
本研究可以從表1中看到,平衡數據集使本研究的模型能夠有效地對惡意軟件和良性類進行分類.
1.2 特征選擇
特征選擇是指為數據集選擇最相關特征(列)子集的技術. 使用更少的功能可以讓機器學習算法更高效地運行(更少的時間或空間復雜度),并更有效. 一些機器學習算法可能會被不相關的輸入特征誤導,從而導致較差的預測性能. 本研究使用了以下兩種特征選擇方法:遞歸特征消除和使用交叉驗證的遞歸特征消除.
1.2.1 遞歸特征消除法
惡意軟件檢測模型的結果依賴于作為輸入來設計模型的特征. 在本研究的Drebin數據集中,總共有215個特征. 本研究使用RFE提取來選擇最適合研究數據集的特征. 使用RFE時有兩個重要的配置:
選擇的特征數量:選擇的特征數量在100到15之間變化. 本研究選取了8類特征,其中特征數量為100、75、65、55、45、35、25和15.
特征算法的選擇:本研究為每個類別的特征運行了8種不同的算法,總共運行8*8=64個不同的模型.
1.2.2 使用交叉驗證的遞歸特征消除法
在特征選擇中可以自動選擇RFE選擇的特征數量,而RFECV恰好會實現自動選擇. 其可以通過對不同數量的特征進行交叉驗證評估來實現,就像本研究在上一部分中所做的那樣,自動選擇產生最佳平均分數的特征數量. 并為隨機森林和決策樹算法運行RFECV. 在RFECV中,特征按模型的系數或特征重要性屬性排序,并通過遞歸消除每個循環的少量特征. 不使用樹結構的算法中不使用RFECV.
1.3 模型選擇和測試
模型選擇是一種在根據所需標準評估各個模型之后選擇最佳模型的技術. 以前,許多有監測和無監測學習算法被用于檢測惡意軟件. 在本研究中,應用了檢測學習算法. 根據本領域早期的研究和可用資源,得出的結論是使用以下8種最適合本研究模型的算法. 為了得到更準確的數據,本研究將8種算法全部使用進行模型測試. 在這8個候選模型中,我們選擇了一個來預測惡意軟件的模型. 并將這8種算法分為兩類,傳統機器學習算法和集成機器學習算法,見表2.
1.4 參數調優和模型測試
在創建本研究的機器學習模型時,將面臨著如何定義模型架構的不同選擇. 通常,不知道給定模型的最佳架構應該是什么,因此需要探索一系列可能性,即參數調整. 表3列出了部分經過調整的算法和類型參數. 模型測試是指在看不見測試的數據上評估完全訓練的模型的性能的過程. 本研究主要采用了兩種方法進行模型測試,訓練測試拆分和交叉驗證.
訓練測試拆分,本研究的數據集分為兩部分,第一部分是訓練集,其是研究中能看到的一部分數據,第二部分是測試集,其是本研究模型看不見的. 測試集用于評估模型在看不見的示例上的性能.
交叉驗證,在交叉驗證中,數據集被多次劃分為訓練集和測試集,模型訓練和測試也在這多個集上進行. 在這里,使用了k次交叉驗證技術. 在這種情況下,數據集被分為k個子集,并且發生k次迭代. 在每次迭代中,k-1次用于訓練模型,1次用于測試模型. 一旦完成所有迭代,就可以計算每個模型的平均預測率,本研究取k=5或K=10的值測試.
2 結果分析
2.1 訓練測試拆分
根據文獻得知目前比較流行的7類學習算法和本研究的LGBM算法見表2,分別對其進行訓練測試拆分,首先在特征選擇完成之前統計了8類不同算法在測試惡意軟件中的測試準確率,見圖2. 從圖2中可以看到本研究LGBM的準確率最高為99.29%,而高斯樸素貝葉斯最低(GNB). 從研究結果還可以看到除了GNB之外的所有模型的準確性都非常接近. 在特征數量為100、75、65、55、45、35、25和15中根據8中算法比較其測試惡意軟件準確率的變化情況. 如圖3選取了4個特征比較明顯的集成機器學習算法的準確率趨勢做了比較. 從圖3可以看到,本研究雖然LGBM的準確度最高,但隨著特征數量的減少,準確度也會降低. 在隨機森林的情況下,隨著特征數量的減少,準確度會略有下降. 從本研究還可以看到,在特征數增加到超過55后,圖3的準確率并沒有太大變化. 所以說55是本研究模型的最佳特征數.
2.2 交叉驗證
對于交叉驗證,首先在完成任何特征選擇之前計算不同算法的準確性. 在圖4中,本研究的LGBM的準確度最高為99.50%,而高斯樸素貝葉斯(GNB)最低,準確度為75.90%. 在本研究的數據集中,所有數據都是1或0的形式,這也是大多數模型具有高精度的原因. 圖5列出了4種隨著特征數量的變化而準確率變化較為明顯的算法,從圖5可以看出,本研究LGBM的準確率也隨著特征的減少而降低. 而與LGBM相比,RF更具有穩定性. 在這里可以看到,在60個特征之后,除了GBDT之外,所有的線都變得接近直線. 因此,可以得出這樣的結論:經過特征選擇后,特征的最佳數量是55.
2.3 性能指標
為了評估本研究的模型,必須使用表4中列出的各種性能指標.
2.4 實驗結果
本研究評估了這些模型在訓練集和測試集上的性能,并在它們之間進行了比較. 表5列出了將算法應用于訓練和測試數據集的每個結果.
在所有算法中,本研究決定選擇LGBM作為最精確的算法. 它基于本研究為系統標記的訓練數據. LGBM依賴于決策樹,它以最佳擬合對樹進行葉子劃分,而其他提升算法則以樹級劃分. 因此,當在LGBM中的類似葉子上開發時,葉子智能算法可以比水平智能算法減少更多的失敗,從而帶來更好的準確性,這偶爾可以通過任何優化算法來實現. 此外,它的速度非常快. 在表5中,對于集成方法,精度更高,非常接近100%(在LGBM中為99.37%),但在傳統機器學習模型中,準確率各不相同,高斯樸素貝葉斯表現最差,因為高斯樸素貝葉斯模型對異常值敏感. 通常,當數據中存在異常值時,結果可能會出現偏差. 此外,測試準確度低于訓練準確度,因為任何模型在已知數據上的表現都比未知數據好. 所以在本研究已經看到,在預測惡意軟件方面,集成方法可能是比傳統機器學習模型更好的解決方案. 因為它結合了來自兩個或多個模型的預測. 從使用特征提取可以看出,本研究使用隨機森林分類器將特征從215個減少到55個. 在對8種不同的機器學習算法使用相同的訓練數據集后,考慮到不同的準確性和其他評估標準,它們會產生不同的結果. LGBM為本研究提供了99.5%的最佳準確率(使用交叉驗證方法). 在表6中給出了與現有工作的比較.
3 結論
集成方法的性能優于傳統的機器學習算法. LGBM是最新的輕量級算法之一. 在本文中,探索了幾種機器學習算法,找出了檢測Android惡意軟件的最佳預測模型,并使用特征選擇方法來減少特征數量,從而優化時間和空間資源. 研究結果表明,LGBM在其他集成方法中實現了最高的準確度(99.5%). LGBM的最佳特征為100,準確率為99.37%,但在隨機森林中,最佳特征數為55,準確率為99.17%. 現在,如果關注更高的準確度,LGBM可能是更好的解決方案,但如果關注效率或更少的特征,那么隨機森林可以提供一致且更好的準確度.
在以后的研究中,將專注于包括用于預測惡意軟件的動態分析方法,在真實的應用程序上測試本研究的分析,并在檢測到惡意軟件時采取相應的自動化行動.
參考文獻
[1]" 199IT. Counterpoint:華為HarmonyOS系統在中國的市場份額已經達到8%[EB/OL]. [2024-4-10]. http://www.199it.com/archives/1604885.html
[2]" 199IT.卡巴斯基:2023年Q1移動設備攻擊報告[EB/OL].[2024-4-12]. http://www.199it.com/archives/1623195.html
[3]" KHARIWAL K,SINGH J,ARORA A. IPDroid:android malware detection using intents and permissions[C]// 2020 Fourth World Conference on Smart Trends in Systems Security and Sustainablity(WorldS4). 2020.
[4]" 王季,景齊,高建波,等. SEdroid:一種使用選擇性集成學習的強大安卓惡意軟件檢測器[J]. IEEE無線通信與網絡會議(WCNC),2020:19-22.
[5]" MAHINDRU A,SANGAL A L. MLDroid-framework for Android malware detection using machinelearning techniques[J]. Neural Computing amp; Applications,2021(10):33.
[6]" 張雪芹,王逸璇,趙敏. 基于深度學習的Android惡意軟件動態檢測[J]. 計算機工程與設計,2024,45(1):10-16.
[7]" WANG W,GAO Z,ZHAO M,et al. DroidEnsemble:detecting android malicious applications withensemble of string and structural static features[J]. IEEE Access,2018,6:31798-31807.
[8]" FAHAD A,KHALED E. Android malware permission-based multi-class classification using extremelyrandomized trees[J]. IEEE Access,2018,6:76217-76227.
[9]" CHANG W L,SUN H M,WU W. An android behavior-based malware detection method using machinelearning[J]. IEEE International Conference on Signal Processing,Communications and Computing (ICSPCC),2016:1-4.
[10]" YUAN Z L,LU Y Q,WANG Z G,et al. Droid-sec:deep learning in android malware detection[J].Computer Communication Review,2014,44(4):371-372.
[11]" KUMARAN M,LI W J. Lightweight malware detection based on machine learning algorithms and theandroid manifest file[C]//IEEE Mit Undergraduate Research Technology Conference. IEEE,2016:1-3.
[12]" SONALI K,PRAVIN K,VILAS T. Static analysis of android permissions and sms using machinelearning algorithms[J]. International Journal of Computer Applications,2018,182(16):22-27.
Research on Android Malicious Software
Innovation Prediction Method Based on
Integrated Machine Learning Algorithms
HE Junzhong, AN Mingming
(Longnan Normal University, Longnan 742500, Gansu, China)
Abstract" Malicious software aims to destroy, disable, or control computer systems. Android malware is specifically targeted at the Android operating system, with the aim of leaking confidential information and damaging the system. The literature shows that multiple attempts have been made in the relevant field to detect Android malware. However, these tasks cannot automatically detect malware, and most of them are signature-based, making it impossible to detect new variants of malware. In this study, different algorithms were explored to obtain the best algorithm for predicting malware and to obtain the best feature set that can help effectively predict malware. The analysis of this study shows that ensemble methods are better than traditional machine learning algorithms in predicting malware. The LGBM innovative algorithm is used in this study to reduce the number of features from 215 to 100, with an accuracy rate of 99.5%. In addition, an accuracy of 99.17% is achieved using a random forest with only 55 features.
Keywords" Android; malware; machine learning; feature selection; ensemble learning; Drebindataset