王慶飛 王長波 鮑娟
摘? ?要:在智能移動終端中,Android系統(tǒng)以其平臺的開放性,豐富多彩的軟件內(nèi)容與服務(wù)形式廣受用戶青睞。與此同時,以獲取不正當(dāng)盈利為目的Android惡意軟件也層出不窮,使得Android平臺存在嚴(yán)重的安全性問題,因此需要有效的安全檢測機(jī)制對惡意軟件進(jìn)行檢測。該文基于Android操作系統(tǒng),結(jié)合機(jī)器學(xué)習(xí)分類技術(shù),分別從靜態(tài)分析和動態(tài)分析兩方面對Android惡意軟件進(jìn)行檢測。
關(guān)鍵詞:Android惡意軟件? 機(jī)器學(xué)習(xí)? 靜態(tài)檢測? 動態(tài)檢測
中圖分類號:TP309;TP316? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? ? ? ? ?文章編號:1672-3791(2020)09(c)-0008-03
Abstract: Among various mobile terminals, Android system is widely favored by users because of its open platform, rich software content and services. At the same time, Android malware is also emerging for the purpose of obtaining improper profits, which brings serious security problems to the Android platform. Therefore, effective security mechanism needs to be proposed to detect malicious software. This paper is based on Android system and machine learning technology. It detects Android malware from two aspects of static analysis and dynamic analysis.
Key Words: Android malware; Machine learning; Static analysis; Dynamic analysis
近年來,隨著移動互聯(lián)網(wǎng)的發(fā)展,移動終端已經(jīng)成為人們獲取信息的主要設(shè)備,其中搭載Android系統(tǒng)的智能手機(jī)是目前發(fā)展最快,市場占有率極高的移動設(shè)備。然而,伴隨著Android市場的蓬勃發(fā)展,其帶來的安全問題也日益嚴(yán)重,越來越多的惡意軟件及其變體開始出現(xiàn),各種各樣的惡意攻擊層出不窮。據(jù)國家互聯(lián)網(wǎng)應(yīng)急中心(CNCERT)每月發(fā)布的互聯(lián)網(wǎng)安全威脅報告顯示,每月有近億的用戶感染移動互聯(lián)網(wǎng)惡意應(yīng)用程序,其中Android因其系統(tǒng)的開放性和應(yīng)用程序的不嚴(yán)格審查機(jī)制,已成為惡意軟件的重災(zāi)區(qū)。在360互聯(lián)網(wǎng)安全中心發(fā)布的《2019年Android惡意軟件專題報告》中顯示,2019年Android平臺新增惡意軟件主要是資費(fèi)消耗類,占比高達(dá)46.8%,其次為隱私竊取、遠(yuǎn)程控制、流氓行為和惡意扣費(fèi)。Android系統(tǒng)之所以成為惡意軟件的重點(diǎn)感染對象,一方面由于用戶對手機(jī)的依賴及薄弱的安全意識導(dǎo)致智能手機(jī)中存在很多具有潛在市場價值的信息;另一方面由于Android系統(tǒng)的開放性,軟件開發(fā)者可以任意上傳開發(fā)的軟件到Google Play商店或者第三方市場,而這些應(yīng)用的提交并不需要進(jìn)行非常嚴(yán)格的審查,導(dǎo)致Android平臺上有非常多的惡意軟件。該文從Android系統(tǒng)安全機(jī)制出發(fā),基于機(jī)器學(xué)習(xí)分類技術(shù),分別從靜態(tài)分析和動態(tài)分析兩方面對Android惡意軟件檢測進(jìn)行研究。
1? Android安全機(jī)制
在Android系統(tǒng)方面,與Android安全相關(guān)的機(jī)制主要有系統(tǒng)安全機(jī)制、簽名機(jī)制以及權(quán)限管理。
在應(yīng)用市場方面,Google Play通過引入最新的機(jī)器學(xué)習(xí)模塊和技術(shù),對應(yīng)用商店中的惡意軟件進(jìn)行檢測,能夠有效發(fā)現(xiàn)假冒的軟件以及惡意軟件,顯著提升了Google Play應(yīng)用軟件的安全性。在國內(nèi),據(jù)艾媒咨詢發(fā)布的移動應(yīng)用商店市場監(jiān)測報告顯示,2018—2019年度最具競爭力的應(yīng)用商店分別是360手機(jī)助手、應(yīng)用寶及百度手機(jī)助手,此外,受“以應(yīng)用商店搶占移動市場”的影響,手機(jī)廠商等各種第三方應(yīng)用商店叢生,由于第三方應(yīng)用商店對上傳的應(yīng)用審核機(jī)制不夠健全,安全檢測手段不嚴(yán)格,導(dǎo)致惡意軟件肆意擴(kuò)散,各種安全威脅層出不窮。因此,對惡意軟件進(jìn)行有效的檢測是Android應(yīng)用市場亟待解決的問題。
2? 機(jī)器學(xué)習(xí)分類檢測技術(shù)
2.1 機(jī)器學(xué)習(xí)分類器
機(jī)器學(xué)習(xí)是一門涉及概率論、統(tǒng)計(jì)學(xué)等學(xué)科的多領(lǐng)域交叉學(xué)科。機(jī)器學(xué)習(xí)模型主要是設(shè)計(jì)一些可以讓計(jì)算機(jī)自動“學(xué)習(xí)”的算法,它從數(shù)據(jù)特征中自動分析獲得規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進(jìn)行預(yù)測。按照學(xué)習(xí)方式的不同可以將機(jī)器學(xué)習(xí)分為有監(jiān)督學(xué)習(xí)(輸入數(shù)據(jù)包含類別信息)、無監(jiān)督學(xué)習(xí)(輸入數(shù)據(jù)不包含類別信息)、半監(jiān)督學(xué)習(xí)(輸入數(shù)據(jù)部分包含類別信息)。常見的機(jī)器學(xué)習(xí)分類器包括最近鄰距離(k-Nearest Neignbor)、樸素貝葉斯(Naive Bayes)、邏輯回歸(Logistic Regression)、支持向量機(jī)(Support Vector Machine)、決策樹(Dicision Tree)、隨機(jī)森林(Random Forest)、Adaboost等。常用的分類器評價指標(biāo)有正確率、精確率、召回率、ROC曲線、AUC面積、F1-score等。
利用機(jī)器學(xué)習(xí)技術(shù)對惡意軟件進(jìn)行檢測,其本質(zhì)就是利用機(jī)器學(xué)習(xí)分類算法分類正常軟件和惡意軟件。其檢測步驟主要包括:(1)收集足夠多的正常樣本和惡意樣本,對樣本軟件進(jìn)行解析,提取樣本特征;(2)通過特征選擇的方式對樣本特征進(jìn)行精簡;(3)將樣本集劃分為訓(xùn)練集和測試集,利用多種分類器算法進(jìn)行性能比較,選擇最優(yōu)的分類器;(4)使用最優(yōu)分類器對未知樣本進(jìn)行檢測,判斷是否為惡意軟件。其中根據(jù)特征提取和運(yùn)行方式的不同可以將檢測技術(shù)分為靜態(tài)分析和動態(tài)分析。
2.2 靜態(tài)分析
靜態(tài)分析是在不運(yùn)行程序的情況下,通過逆向工程技術(shù)將應(yīng)用程序反編譯獲得代碼文件,從中提取特征,此特征即為靜態(tài)特征,然后據(jù)此來分析應(yīng)用程序是否為惡意。
Android軟件APK文件通過解壓后可以得到一系列資源文件和代碼文件,通過反編譯工具解碼AndroidManifest.xml文件,可得到應(yīng)用包的基本信息,如包名、版本號、申請的Permission等信息,反編譯Class.dex文件可生成一系列包含源代碼的.smali文件,里面包含應(yīng)用包的源代碼,如Android SDK API、第三方API以及API調(diào)用關(guān)系等,由于正常軟件和惡意軟件對Permission和API的應(yīng)用偏好不同,惡意軟件中往往包含一些Permission和API是正常軟件中沒有或非常少見的,因此,能夠通過提取這些Permission或API,根據(jù)它們的出現(xiàn)情況判斷應(yīng)用是否為惡意。Peirayian N等人[1]以Permission為判斷特征,分析申請的權(quán)限組合,將權(quán)限與API融合起來構(gòu)建特征向量;Shabtai A等人[2]從APK中提取XML、DEX信息,使用機(jī)器學(xué)習(xí)算法區(qū)分應(yīng)用的類別,判斷是否為惡意軟件;Zhou Y等人[3]基于權(quán)限的行為路徑,對應(yīng)用進(jìn)行安全檢測。
2.3 動態(tài)分析
動態(tài)分析方法一般是在虛擬環(huán)境中模擬用戶運(yùn)行程序,采用監(jiān)聽或攔截的方式,根據(jù)程序?qū)嶋H運(yùn)行情況,分析判斷是否為惡意軟件。
動態(tài)提取的特征是在應(yīng)用安裝、運(yùn)行時通過注入、HOOK等技術(shù),提取應(yīng)用程序的行為信息、操作系統(tǒng)的狀態(tài)信息等作為特征,如Shabtai A等人[4]采用系統(tǒng)狀態(tài)監(jiān)控技術(shù),收集Android平臺運(yùn)行時的各種行為特征,包括內(nèi)存、觸摸屏、網(wǎng)絡(luò)、電源、硬件等資源信息;鄭勇鑫等人[5]利用注入技術(shù)和監(jiān)聽技術(shù),獲取應(yīng)用行為信息和系統(tǒng)狀態(tài)信息,包括應(yīng)用進(jìn)程狀態(tài)、文件訪問數(shù)據(jù)、IPC數(shù)據(jù)以及Android終端的設(shè)備信息、地理位置、網(wǎng)絡(luò)狀態(tài)、SD卡個人信息。因此,動態(tài)特征主要分為兩大類:(1)軟件行為狀態(tài)特征,如進(jìn)程狀態(tài)、廣播收發(fā)、頁面切換、組件交互、數(shù)據(jù)交換等;(2)系統(tǒng)資源狀態(tài)特征,如內(nèi)存占用、文件訪問、網(wǎng)絡(luò)連接、電源消耗、傳感器使用等。
采用動態(tài)分析的機(jī)器學(xué)習(xí)檢測技術(shù)流程上類似于靜態(tài)分析技術(shù),同樣包括特征提取、特征選擇、分類器訓(xùn)練及評估,以及新樣本的預(yù)測。兩者對比各有優(yōu)缺點(diǎn),其中靜態(tài)檢測不需要運(yùn)行軟件,風(fēng)險低,分析方式簡單易操作,且效率高,但缺點(diǎn)是無法有效分析使用混淆、加殼方式加固的應(yīng)用軟件。而動態(tài)分析則能對混淆、加殼乃至各種新型惡意軟件進(jìn)行檢測,但其缺點(diǎn)是可能無法觸發(fā)應(yīng)用的所有行為,無法覆蓋所有行為執(zhí)行路徑,而且采集特征數(shù)據(jù)時間較長,效率低,且耗費(fèi)系統(tǒng)資源較多。因此,實(shí)際中可采用兩者結(jié)合的方式對惡意軟件進(jìn)行檢測。
3? 結(jié)語
通過將機(jī)器學(xué)習(xí)技術(shù)應(yīng)用到Android惡意軟件的檢測中,可以有效地對惡意軟件進(jìn)行檢測,將靜態(tài)分析和動態(tài)分析相結(jié)合,能同時提高檢測效率和準(zhǔn)確率。但是由于Android惡意軟件新類型、新變種不斷出現(xiàn),Android系統(tǒng)版本不斷更新,相應(yīng)的檢測技術(shù)也應(yīng)該不斷更新和改進(jìn)。未來,可在以下幾個方面展開進(jìn)一步的研究:靜態(tài)分析中如何對經(jīng)過混淆、加殼的應(yīng)用軟件進(jìn)行檢測;動態(tài)分析如何控制應(yīng)用覆蓋所有執(zhí)行路徑,如何進(jìn)一步提高實(shí)時性和檢測效率;同時,機(jī)器學(xué)習(xí)中的深度學(xué)習(xí)算法在處理高維數(shù)據(jù)和大規(guī)模數(shù)據(jù)集時有很大優(yōu)勢,可進(jìn)一步將深度學(xué)習(xí)算法應(yīng)用于Android惡意軟件的檢測。
參考文獻(xiàn)
[1] Peiravian N, Zhu X. Machine Learning for Android Malware Detection Using Permission and API Calls[C]//Proceedings of the 2013 IEEE 25th International Conference on Tools with Artificial Intelligence.2013:300-305.
[2] Shabtai A, Fledel Y, Elovici Y. Automated Static Code Analysis for Classifying Android Applications Using Machine Learning[C]//2010 International Conference on Computational Intelligence and Security.2010:329-333.
[3] Zhou Y,Wang Z,Zhou W,et al. Hey, you, get off of my market:Detecting malicious apps in official and alternative Android markets[C]//Network and distributed system security symposium,California:NDSS Press,2012:1-13.
[4] Shabtai A,Kanonov U,Elovici Y,et al. Andromaly:a behavioral malware detection framework for android devices[J]. Journal of Intelligent Information Systems,2012,38(1):161-190.
[5] 鄭勇鑫.Android動態(tài)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].東南大學(xué),2014.
[6] 劉曉明.基于KNN算法的Android應(yīng)用異常檢測技術(shù)研究[D].北京交通大學(xué),2016.
[7] 張雨薇,黃迎春.基于機(jī)器學(xué)習(xí)的惡意軟件分類識別研究[J].科技資訊,2018,16(30):15-17.
[8] 吳創(chuàng)南.淺談Android智能手機(jī)系統(tǒng)的安全隱患及防范措施[J].科技資訊,2015(16):33-34.
[9] 劉瑋,李蜀瑜.Android移動應(yīng)用檢測研究[J].計(jì)算機(jī)應(yīng)用與軟件,2019(6):322-326.
[10] 李海賓.基于機(jī)器學(xué)習(xí)的Android惡意軟件靜態(tài)檢測技術(shù)研究[D].天津大學(xué),2017.
[11] 王雪敬.基于機(jī)器學(xué)習(xí)的Android惡意軟件檢測技術(shù)研究[D].廣東工業(yè)大學(xué),2019.