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