滕越 王天寶
摘 要:文章對(duì)現(xiàn)有的Android程序的行為特征提取技術(shù)和惡意軟件檢測(cè)算法進(jìn)行研究。由于現(xiàn)有Android惡意軟件靜態(tài)檢測(cè)模型主要是對(duì)Android程序的行為特征即敏感api和敏感權(quán)限的調(diào)用進(jìn)行數(shù)據(jù)挖掘,從而產(chǎn)生能夠?qū)ndroid程序進(jìn)行檢測(cè)分類的分類器。通過(guò)對(duì)Android行為特征提取和數(shù)據(jù)挖掘算法的改進(jìn)和創(chuàng)新是未來(lái)Android惡意軟件靜態(tài)檢測(cè)的方向。
關(guān)鍵詞:Android惡意軟件;靜態(tài)檢測(cè);數(shù)據(jù)挖掘;機(jī)器學(xué)習(xí)
最近幾年,隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,以及智能手機(jī)的生產(chǎn)成本不斷降低,智能手機(jī)在人們的日常生活和工作中扮演的角色越來(lái)越重要,在移動(dòng)互聯(lián)網(wǎng)時(shí)代,智能手機(jī)將成為訪問(wèn)互聯(lián)網(wǎng)的主要設(shè)備。
智能手機(jī)像PC一樣擁有自己獨(dú)立的操作系統(tǒng),而不再是傳統(tǒng)意義上的單純的語(yǔ)音通訊設(shè)備,用戶可以根據(jù)自己的喜好隨意的安裝和卸載各種應(yīng)用程序。瀏覽網(wǎng)頁(yè)、娛樂(lè)辦公、購(gòu)物支付、社交聊天,可以說(shuō)智能手機(jī)已經(jīng)滲入到人們生活的方方面面,同時(shí),也給人們帶來(lái)了實(shí)實(shí)在在的方便。
最新發(fā)布的數(shù)據(jù)顯示,高達(dá)97%的移動(dòng)惡意軟件將Android設(shè)備列為攻擊目標(biāo),這也就意味著其他平臺(tái)遭到惡意軟件攻擊的幾率是相當(dāng)?shù)偷?,所以Android的安全性已經(jīng)到了不得不改善的地步。毫無(wú)疑問(wèn),安全問(wèn)題將會(huì)是Android未來(lái)幾年的發(fā)展中所要面臨的重要問(wèn)題。
一、Android程序行為特征提取
(一)dex文件逆向分析
現(xiàn)有的Android程序行為特征提取大多都是基于dex文件逆向,由于Android采用Dalvik虛擬機(jī)作為平臺(tái)運(yùn)行環(huán)境,dex文件就是Dalvik虛擬機(jī)的可執(zhí)行文件。通過(guò)dex文件可以得到Android程序的內(nèi)部信息,閱讀反匯編形成的Dalvik字節(jié)碼可以通過(guò)IDA PO分析dex文件?;蛘咄ㄟ^(guò)文本編輯器baksmali反編譯生成的smali文件。也可以利用反編譯生成java源碼,可以用dex2jar生成jar文件,然后使用jd-gui閱讀jar文件代碼。
(二)ARM匯編逆向分析
由于現(xiàn)在惡意軟件的不斷進(jìn)化,代碼混淆技術(shù)的不斷發(fā)展,使得應(yīng)用層代碼的分析越來(lái)越疲軟。對(duì)于使用ARM處理器的Andorid手機(jī)來(lái)說(shuō),它終將會(huì)生成對(duì)應(yīng)的ARM elf可執(zhí)行文件。對(duì)于底層的代碼逆向更容易突破各種惡意軟件的逃避檢測(cè)機(jī)制,但是分析ARM elf可執(zhí)行文件的難度較大,要求具有基本的ARM反匯編代碼閱讀能力,所以目前使用較少,但是這種逆向分析機(jī)制可能是Android惡意軟件檢測(cè)的一個(gè)突破口。
(三)行為特征提取
有了大量逆向工具的幫助,由于一個(gè)Android程序反編譯過(guò)后的代碼量會(huì)非常龐大,所以行為特征提取的重點(diǎn)在于獲取我們想要的關(guān)鍵代碼。關(guān)鍵代碼的識(shí)別需要對(duì)Android應(yīng)用層代碼非常熟悉,可通過(guò)程序的反饋信息、特征函數(shù)定位關(guān)鍵代碼,也可以通過(guò)代碼注入觀察程序運(yùn)行到指定位置的狀態(tài)數(shù)據(jù),或是跟蹤棧信息,觀察函數(shù)的調(diào)用關(guān)系。對(duì)于數(shù)據(jù)的抓取,大多需要自己編寫如python腳本的爬蟲程序,獲取關(guān)注的特征信息,為后面的檢測(cè)算法提供支持。
二、Android惡意軟件檢測(cè)算法
對(duì)于Android 的行為特征提取方法固定,而將行為特征數(shù)據(jù)用于數(shù)據(jù)挖掘是Android惡意軟件靜態(tài)檢測(cè)的核心。所以算法的選取是訓(xùn)練產(chǎn)生好的檢測(cè)分類器的關(guān)鍵,下面舉幾種適合用于Android惡意軟件檢測(cè)的算法進(jìn)行簡(jiǎn)單介紹。
(一)關(guān)聯(lián)規(guī)則挖掘
關(guān)聯(lián)規(guī)則挖掘發(fā)現(xiàn)大量數(shù)據(jù)中項(xiàng)集之間的聯(lián)系,可以對(duì)大量樣本(已知其良惡性)Android程序的敏感api和敏感權(quán)限進(jìn)行頻繁集的獲取。每一個(gè) Android 程序均可以映射為一個(gè)包含所有敏感 API 調(diào)用的事務(wù), 每個(gè)API為一個(gè)項(xiàng), API 項(xiàng)的集合為項(xiàng)集,最小支持度為 min _ suppor。最著名的關(guān)聯(lián)規(guī)則發(fā)現(xiàn)方法是R.Agrawal提出的Apriori算法,其核心思想是通過(guò)對(duì)數(shù)據(jù)樣本的多次掃描來(lái)計(jì)算項(xiàng)集的支持度,發(fā)現(xiàn)所有的頻繁項(xiàng)集從而生成關(guān)聯(lián)規(guī)則。
找出頻繁項(xiàng)集的關(guān)鍵是連接和剪枝兩步,安卓的行為特征數(shù)據(jù)適合于使用頻繁集關(guān)聯(lián)的規(guī)則,但缺點(diǎn)也比較明顯,需要多次掃描事物數(shù)據(jù)庫(kù),可能產(chǎn)生龐大的候選集,并且在頻發(fā)項(xiàng)集長(zhǎng)多變大的情況下,運(yùn)算效率降低。
(二)貝葉斯分類算法
貝葉斯分類器諸多算法中樸素貝葉斯分類模型是最早的,也大量利用于Android惡意軟件檢測(cè)當(dāng)中。根據(jù)貝葉斯公式能夠獲取訓(xùn)練樣本的先驗(yàn)概率,通過(guò)選取合適行為特征的Android程序?qū)傩詠?lái)計(jì)算樣本的后驗(yàn)概率。在Android惡意軟件檢測(cè)中使用貝葉斯分類算法的關(guān)鍵在于關(guān)鍵屬性的選取,需盡量保證其獨(dú)立性。
大量研究表明可以通過(guò)各種改進(jìn)方法來(lái)提高樸素貝葉斯分類器的性能,在樸素貝葉斯分類器的基礎(chǔ)上構(gòu)建屬性間的相關(guān)性,如構(gòu)建相關(guān)性量度公式,增加屬性間可能存在的依賴關(guān)系,或是構(gòu)建新的樣本集合,在樣本集合之間存在較好的類條件獨(dú)立關(guān)系。
在滿足以上條件的情況下,貝葉斯算法分類性能較好,貝葉斯分類模型還具有形式簡(jiǎn)單、可擴(kuò)展性很強(qiáng)和可理解性好等優(yōu)點(diǎn),適合作為安卓惡意軟件算法的入門。
(三)支持向量機(jī)(SVM)
在統(tǒng)計(jì)學(xué)習(xí)的理論基礎(chǔ)上,SVM成為了一種專門研究有限樣本預(yù)測(cè)的學(xué)習(xí)方法,與傳統(tǒng)統(tǒng)計(jì)學(xué)相比較,SVM算法沒(méi)有以傳統(tǒng)的經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化原則作為基礎(chǔ),而是建立在結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理的基礎(chǔ)之上,在模型的復(fù)雜性和學(xué)習(xí)能力之間尋求最佳折中,即在所有的超平面中,最大間隔分類器要尋找一個(gè)最優(yōu)超平面。
Android惡意軟件檢測(cè)使用SVM的基礎(chǔ)是提取關(guān)鍵特征值進(jìn)行規(guī)則的線性可分,對(duì)特征屬性進(jìn)行線性回歸,建立回歸分析方程,即回歸分析預(yù)測(cè)。SVM的優(yōu)點(diǎn)在于基本不涉及概率測(cè)度及大數(shù)定律,不同于現(xiàn)有的統(tǒng)計(jì)方法,避開了歸納到演繹的傳統(tǒng)過(guò)程,實(shí)現(xiàn)了高效的從訓(xùn)練樣本到預(yù)報(bào)樣本的轉(zhuǎn)導(dǎo)推理,大大簡(jiǎn)化了通常的分類和回歸等問(wèn)題。
Android惡意軟件檢測(cè)使用SVM能夠具有較高的檢測(cè)準(zhǔn)確率,但是對(duì)大規(guī)模訓(xùn)練樣本難以實(shí)施。對(duì)于惡意軟件檢測(cè)可用于一類惡意家族或一種類型的Android程序的模型建立,對(duì)于SVM的改進(jìn)可以通過(guò)多個(gè)二類SVM的組合或構(gòu)造多個(gè)分類器的組合來(lái)解決SVM的固有缺點(diǎn)。
三、Android惡意軟件檢測(cè)基本模型
對(duì)于現(xiàn)有的Android程序行為特征提取技術(shù)和Android惡意軟件檢測(cè)算法,Android惡意軟件檢測(cè)模型可歸納于圖1所示。
首先需要收集大量的惡意軟件樣本和正常軟件樣本,正常軟件樣本容易收集,惡意軟件樣本可以從VirusShare組織獲取,然后對(duì)樣本提取行為特征屬性,根據(jù)不同的分類算法制定不同的提取方案,將行為特征抽象化為算法的可用數(shù)據(jù)類型,然后通過(guò)數(shù)據(jù)挖掘產(chǎn)生分類器,最終通過(guò)多次的訓(xùn)練達(dá)到能夠檢測(cè)惡意軟件的目的。 四、結(jié)語(yǔ)
本文給出了Android惡意軟件檢測(cè)的基本模型,描述Android行為特征獲取方法,簡(jiǎn)要說(shuō)明了各種檢測(cè)算法如何與Android行為特征相結(jié)合。對(duì)于靜態(tài)Android惡意軟件檢測(cè),基于行為特征提取和機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘算法結(jié)合是目前的主流方案。檢測(cè)方法智能化,能夠?qū)ξ粗獝阂廛浖M(jìn)行檢測(cè)是彌補(bǔ)Android安全機(jī)制最有效的措施,也是Android惡意軟件檢測(cè)以及整個(gè)安全行業(yè)的發(fā)展方向。
參考文獻(xiàn):
[1] 閆友彪,陳無(wú)琰.機(jī)器學(xué)習(xí)的主要策略綜述[J].計(jì)算機(jī)應(yīng)用研究,2004, No. 5:4-13.
[2] M. Zhao,T.Zhang,F(xiàn).Ge,and Z.Yuan, “Robotdroid: A lightweightmalware detection framework on smartphones,”Journal of Networks,vol.7,no.4,pp.715-722,2012.
[3] Dong-Jie Wu,Ching-Hao Mao,Te-En Wei,Hahn-Ming LeeDroidMat: Android Malware Detection throughManifest and API Calls Tracing,2012:13.
[4] 張文,嚴(yán)寒冰,文偉平.一種 Android 惡意程序檢測(cè)工具的實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2013(1):27-32.
[5] 張金鑫,楊曉輝.基于權(quán)限分析的Android應(yīng)用程序檢測(cè)系統(tǒng)[J].信息網(wǎng)絡(luò)安全,2014,7(1):30-34.