苗博 陳子豪 殷旭東
摘 要:Android惡意軟件發展迅速,變種繁多,對Android惡意軟件檢測的研究與分析有著重要的實際意義。文章基于Android惡意軟件的類型特點和檢測技術,對國內外的檢測方法進行介紹和分析。從惡意軟件的發展角度,分析檢測方法的技術選擇;從檢測技術分析檢測方法的優缺點。重點分析總結了基于靜態特征檢測、基于動態特征檢測和基于混合特征檢測的幾種檢測方法。最后展望了Android惡意軟件檢測方法的發展趨勢。
關鍵詞:Android;惡意軟件;檢測方法;特征;機器學習
Android是Google公司的一種基于Linux的自由、開源的操作系統,由于其開放、自由的原則和應用市場的擴大,Android惡意軟件開始泛濫。
2018年Android惡意軟件專題報告[1]中顯示,從2012年到2015年,移動端新增惡意軟件數量情況急劇惡化,2015全年新增惡意軟件數量達到約1 874.0萬個。而從2016年開始,新增惡意軟件數量逐年下降。惡意軟件新增數量減少的原因除了Google每次在升級版本時加強系統安全性,更有力的是惡意軟件檢測方法的發展和升級。
Android惡意軟件的檢測引起廣大研究人員的關注,對不同的檢測方法進行了大量研究。本文介紹了惡意軟件的發展和種類,并對惡意軟件檢測方法進行分析和介紹。
1 Android惡意軟件
由中國互聯網協會提出的惡意軟件官方定義為在未明確提示用戶或未經用戶許可的情況下,在用戶計算機或其他終端上安裝運行,侵犯用戶合法權益的軟件。
1.1 惡意軟件的發展與現狀
自從2010年第一款Android惡意軟件FakePlayer[2]出現開始,到目前為止,針對Android的惡意軟件層出不窮。除了傳統的木馬、病毒、蠕蟲、DDoS、后門等,最近幾年,又出現了針對信息和數據的間諜軟件、恐嚇、勒索軟件以及最普遍、最大眾化的廣告軟件。
隨著技術的發展與進步,惡意軟件的技術也在不斷升級。2018年來,惡意軟件中利用的新興技術主要包括:利用調試接口傳播;Kotlin語言開發的惡意軟件首次發現;劫持路由器設置;篡改剪切板內容等。
1.2 惡意軟件的分類
除了傳統的根據惡意軟件形式的分類方法,也有針對Android惡意軟件的行為特征進行分類的[3]。(1)惡意軟件安裝:重打包、更新攻擊、誘惑下載、其他;(2)惡意軟件運行;(3)惡意載荷:提權攻擊、遠程控制、信息收集;(4)權限使用。
1.3 面臨的挑戰和難題
雖然近年的惡意軟件新增數量在逐年減少,但還存在著大量的惡意軟件威脅。隨著5G的到來,在全新的領域中,移動平臺可能又將迎來大量的新型惡意軟件的威脅。而且,隨著社會的發展,未來極大可能面臨的是通過基于內容的惡意軟件進行的人與人之間的斗爭,電信詐騙等極其損害大眾利益和家庭幸福的手段可能將會利用惡意軟件制造出更加讓人迷惑的騙局。
2 Android惡意軟件檢測
Android惡意軟件檢測其流程主要為樣本獲取和特征選擇,再根據不同的特征選擇不同的檢測方法。基于特征檢測可以分為靜態檢測和動態檢測,近年來還出現了基于靜態特征和動態特征結合的檢測方法,也成為混合特征檢測。
目前,很多的研究人員將機器學習和傳統檢測方法相結合,利用不同的分類算法構成分類器對應用軟件進行檢測和分類,使檢測更加快速和準確。
2.1 靜態檢測
針對Android應用程序,典型的靜態特征就是APK文件。APK文件中包括各種特征,如權限、Java代碼、網絡地址和硬件組件等。
最早出現的基于簽名的惡意軟件檢測方法,就是從APK文件中提取簽名,然后通過簽名進行匹配檢測已知惡意軟件,但是無法對變種的、未知的惡意軟件進行檢測。而后大量研究學者提出改進,2013年,秦中元等[4]提出利用MD5校驗的檢測技術以及對于未檢測過的APK文件,可根據權限來進行檢測和分析。到目前為止,基于權限和API的靜態檢測技術[5]仍然高效可行。
卜義云[6]提出在傳統的靜態檢測方法中,由于研究者大都帶有個人主觀性進行設定,這樣的不確定性很大程度影響了最終檢測結果的準確性。所以基于靜態檢測的原理,引入機器學習的分類算法對個人主觀因素以及對未知惡意軟件的檢測有著很好的改進。
許艷萍等[7]提出對Android應用軟件提取權限為特征,采用IG特征選擇算法[8]優化特征選擇,利用改進樸素貝葉斯算法構建分類器進行檢測,大大提高了檢測的效率。
謝麗霞等[9]提出一種基于Bagging-SVM(支持向量機)算法的檢測模型。該模型首先提取應用軟件的權限信息、組件信息作為特征,采用平衡數據集訓練基于Bagging算法的SVM集成分類器,解決了由于數據不平衡導致的檢測效率低的問題。
陳蘇婷等[10]提出一種針對關聯權限的基于隨機森林的檢測方法。利用機器學習和數據挖掘的方式分析樣本中提取出的關聯權限是否具有二義性,并用隨機森林分類器檢測惡意軟件。該方法突破了傳統方法對特定權限進行檢測的局限性。
2.2 動態檢測
動態檢測即應用程序在運行時對應用程序的動態行為和系統響應進行分析。研究最多的動態特征主要為:系統調用和網絡流量。
在早期3G時代,異常流量現象就普遍存在,李俊[11]提出了基于統計的異常流量進行檢測和判定惡意軟件,而目前基本覆蓋的4G以及即將到來的5G時代,面臨著大量的惡意流量的威脅。因此,許多研究者把網絡流量作為研究對象。王閃閃[12]提出捕獲Android中網絡數據包的流量信息,然后使用該信息訓練SVM分類器,通過SVM分類器進行對惡意軟件的檢測。
除了網絡流量以外,動態行為的監測也常常作為動態特征被廣大研究者研究。張吉[13]提出一個Android自動化測試搭配使用終端監控技術的動態檢測模型。但傳統的方法具有不全面和不實際的缺點。張超欽等[14]提出一種基于馬爾可夫鏈及支持向量機的檢測方法。該方法把應用軟件對功能的調用序列當成離散時間Markov鏈,通過統計相鄰系統調用對的出現頻率來計算狀態轉移概率矩陣。把轉移概率矩陣轉化為特征向量,作為SVM的輸入進行訓練,從而進行檢測,大大提高了準確度。
2.3 混合特征檢測
混合特征即靜態特征和動態特征的結合。靜態特征檢測最為方便,特征提取較為容易,但存在難以解決加殼、代碼混淆等問題。動態特征檢測相比前者更加全面,但是動態特征提取難度相對較大,且需要root設備。由于基于單一特征的檢測方法各有利弊,選用混合特征進行檢測相對兩者較為全面,但增加了檢測難度。
馮擘[15]利用靜態分析和動態分析提取到相應的特征,基于靜態特征和動態特征得到混合特征,再利用改進的AdaBoost-RBFSVM算法對混合特征進行分類,然后進行檢測。
3 結語
本文介紹了Android惡意軟件的發展和分類,以及基于Android應用軟件的靜態特征、動態特征和混合特征,分別分析了相對應的檢測方法。
Android惡意軟件檢測技術已經取得很大的進步,但是目前仍存在大量惡意軟件以及將來還可能會出現的未知惡意軟件。惡意軟件技術在不斷地升級變種,研究者還需持續關注新型技術以及針對新型惡意軟件檢測方法進行開發。
隨著人工智能時代的到來,越來越多的機器學習算法被運用到Android惡意軟件檢測技術領域中,未來人們與惡意軟件的斗爭可能會成為機器之間的斗爭、算法之間的斗爭。
[參考文獻]
[1] 360烽火實驗室.2018年Android惡意軟件專題報告[EB/OL].(2019-02-18)[2019-03-01].http://blogs.360.cn/post/review_android_malware_of_2018.html.
[2]JIANG X X,ZHOU Y J.Dissecting Android malware: characterization and evolution [C].San Francisco:Proceeding of IEEE Symposium on Security and Privacy,2012:95-109.
[3]卿斯漢.Android安全研究進展[J].軟件學報,2016(1):45-71.
[4]秦中元,徐毓青,梁彪,等.一種Android平臺惡意軟件靜態檢測[J].東南大學學報(自然科學版),2013(6):1162-1167.
[5]陳紅閔,胡江村.安卓惡意軟件的靜態檢測方法[J].計算機系統應用,2018(7):26-33.
[6]卜義云.基于機器學習的Android惡意軟件靜態檢測系統的設計與實現[D].成都:電子科技大學,2016.
[7]許艷萍,伍淳華,侯美佳,等.基于改進樸素貝葉斯的Android惡意應用檢測技術[J].北京郵電大學學報,2016(2):43-47.
[8]FEIZOLLAH A,ANUAR N B,SALLEH R,et al.A review on feature selection in mobile malware detection[J].Digital Investigation,2015(13):22-37.
[9]謝麗霞,李爽.基于Bagging-SVM的Android惡意軟件檢測模型[J].計算機應用,2018(3):818-823,878.
[10]陳蘇婷,王軍華,張艷艷.基于隨機森林的Android惡意軟件檢測方法[J].計算機工程與設計,2017(9):2374-2378.
[11]李俊.Android平臺下基于流量監測的安全軟件設計與實現[D].成都:西南交通大學,2014.
[12]王閃閃.基于網絡流量的Android惡意應用識別方法研究[D].濟南:濟南大學,2018.
[13]張吉.Android平臺下惡意軟件動態檢測技術研究[D].天津:天津大學,2012.
[14]張超欽,胡光武,王振龍,等.一種基于支持向量機的安卓惡意軟件新型檢測方法[J].計算機應用與軟件,2018(10):292-298.
[15]馮擘.Android平臺惡意軟件檢測系統的設計與實現[D].北京:北京交通大學,2018.