国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度森林的安卓惡意軟件行為分析與檢測(cè)

2019-12-06 08:48石興華曹金璇蘆天亮
軟件 2019年10期

石興華 曹金璇 蘆天亮

摘? 要: 隨著移動(dòng)互聯(lián)網(wǎng)漸漸滲入人們的日常生活,面向安卓的惡意軟件也對(duì)用戶產(chǎn)生著愈發(fā)巨大的負(fù)面影響。本文針對(duì)傳統(tǒng)安卓惡意軟件靜態(tài)檢測(cè)技術(shù)在檢測(cè)多分類惡意行為時(shí)準(zhǔn)確性及靈活性的不足,提出了一種基于深度森林(Gcforest)的惡意軟件行為檢測(cè)機(jī)制,最后經(jīng)過(guò)實(shí)驗(yàn)測(cè)試與對(duì)比,證明此機(jī)制在惡意軟件行為檢測(cè)效果、參數(shù)調(diào)節(jié)難易度上具有明顯優(yōu)勢(shì)。

關(guān)鍵詞: 安卓惡意軟件;靜態(tài)檢測(cè)技術(shù);深度森林;多分類行為檢測(cè)

中圖分類號(hào): TP311.56? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.10.001

本文著錄格式:石興華,曹金璇,蘆天亮. 基于深度森林的安卓惡意軟件行為分析與檢測(cè)[J]. 軟件,2019,40(10):01-05+72

Analysis and Detection of Android Malware Based on Gcforest

SHI Xing-hua, CAO Jin-xuan*, LU Tian-liang

(School of Information Technology and Network Security, People's Public Security University of China, Beijing 100038, China)

【Abstract】: As the mobile Internet gradually infiltrates into People's Daily life, android malware also has an increasingly large negative impact on users. Based on the traditional static testing technology in android malware detection has more classification accuracy when the malicious behavior and the lack of flexibility, this paper proposes a detection method based on Gcforest malware behavior. Finally, through experimental test and comparison, it is proved that this method has obvious advantages in the detection effect of malware behavior and the difficulty of parameter adjustment.

【Key words】: Android malware; Static detection technology; Gcforest; Multi-classification behavior detection

0? 引言

近幾年,隨著安卓市場(chǎng)的不斷擴(kuò)大,安卓惡意軟件也越發(fā)猖獗。2018年全年,360互聯(lián)網(wǎng)安全中心共截獲移動(dòng)端新增惡意軟件樣本約434.2萬(wàn)個(gè),平均每天新增約1.2萬(wàn)個(gè)[1],對(duì)安卓系統(tǒng)的生態(tài)環(huán)境造成了極大的安全威脅。

安卓惡意軟件對(duì)用戶或系統(tǒng)安全的破壞主要體現(xiàn)為以下幾種行為:第一類是通過(guò)對(duì)系統(tǒng)設(shè)置進(jìn)行惡意更改,使系統(tǒng)無(wú)法正常運(yùn)行甚至宕機(jī);第二類是對(duì)用戶數(shù)據(jù)的監(jiān)聽(tīng)與竊取,對(duì)用戶的隱私安全造成損害;第三類是誘使用戶點(diǎn)擊某個(gè)假按鈕、假鏈接跳轉(zhuǎn)到病毒網(wǎng)站或直接發(fā)送付費(fèi)短信到虛擬號(hào)碼,對(duì)用戶造成不同程度的財(cái)產(chǎn)損失。

本文根據(jù)對(duì)安卓惡意軟件及現(xiàn)有檢測(cè)方法進(jìn)行深入研究后,借鑒深度森林算法[2]在應(yīng)用軟件缺陷預(yù)測(cè)[3]、漏洞挖掘[4]等領(lǐng)域取得成功的經(jīng)驗(yàn),提出了一種基于深度森林的惡意軟件行為檢測(cè)機(jī)制。本文除了對(duì)機(jī)制中具體特征提取、數(shù)據(jù)處理、模型訓(xùn)練等模塊做詳細(xì)說(shuō)明外,還與惡意軟件行為檢測(cè)常用的隨機(jī)森林、深度學(xué)習(xí)方法進(jìn)行了測(cè)試與對(duì)比,實(shí)驗(yàn)證明本文所用機(jī)制在惡意軟件行為檢測(cè)效率及參數(shù)調(diào)節(jié)上具有明顯優(yōu)勢(shì)。

1? 相關(guān)研究

1.1? 惡意軟件檢測(cè)技術(shù)

對(duì)安卓惡意軟件的安全檢測(cè)方法可以分為動(dòng)態(tài)和靜態(tài)檢測(cè)技術(shù)。動(dòng)態(tài)檢測(cè)技術(shù)是將待檢測(cè)軟件置于虛擬機(jī)或沙箱等真實(shí)環(huán)中運(yùn)行,通過(guò)收集其網(wǎng)絡(luò)流量數(shù)據(jù)并對(duì)比惡意軟件樣本庫(kù)來(lái)確定是否為惡意軟件[5-6]。

相對(duì)于動(dòng)態(tài)檢測(cè),運(yùn)用特征進(jìn)行學(xué)習(xí)的靜態(tài)檢測(cè)技術(shù)[7]能夠更加準(zhǔn)確地對(duì)惡意軟件的特征進(jìn)行刻畫,且只需要在模型的一次訓(xùn)練上投入時(shí)間成本。在特征選取方面,一般會(huì)選取metadata(元數(shù)據(jù))和申請(qǐng)權(quán)限[8]API Calls(API調(diào)用)[9];機(jī)器學(xué)習(xí)算法方面,常用的有Bayesian(貝葉斯)算法[10]、深度學(xué)習(xí)等[11]。目前國(guó)內(nèi)外對(duì)安卓惡意行為檢測(cè)研究在準(zhǔn)確度方面取得了很好的效果,但對(duì)參數(shù)調(diào)節(jié)的準(zhǔn)確度要求太高,且局限于將應(yīng)用軟件進(jìn)行二分類預(yù)測(cè),即為惡意還是良性,卻沒(méi)有對(duì)安卓惡意軟件具體行為進(jìn)行更加細(xì)粒度的劃分。

1.2? 深度森林算法

深度森林,又叫多粒度級(jí)聯(lián)森林(multi-Grained Cascade forest,Gcforest)[2]是南京大學(xué)周志華教授所提出的一種通過(guò)對(duì)集成決策樹(shù)所構(gòu)建的級(jí)聯(lián)結(jié)構(gòu)進(jìn)行學(xué)習(xí)的分類算法。Gcforest主要包含級(jí)聯(lián)森林結(jié)構(gòu)和多粒度掃描結(jié)構(gòu)兩部分。

級(jí)聯(lián)森林中每一層都由多個(gè)隨機(jī)森林組成。為了增強(qiáng)模型表征的泛化能力,每層的隨機(jī)森林都會(huì)包含完全隨機(jī)森林(completely-random tree forests)和一般隨機(jī)森林(random forests)的隨機(jī)組合。

多粒度掃描過(guò)程中,受神經(jīng)網(wǎng)絡(luò)在處理特征關(guān)系方面的啟發(fā),Gcforest也使用滑動(dòng)窗口來(lái)掃描原始特征。在處理如惡意軟件特征的序列數(shù)據(jù)時(shí),得到特征向量個(gè)數(shù)的計(jì)算公式:

(1)

其中,表示原始特征維度;表示滑動(dòng)窗口大小,滑動(dòng)過(guò)程從數(shù)據(jù)“頭”到“尾”。假設(shè)有200-dim的惡意軟件特征數(shù)據(jù),需要對(duì)其進(jìn)行三分類:首先采用100-dim的滑動(dòng)窗口進(jìn)行處理,則會(huì)得到101個(gè)100-dim的特征向量。將得到的特征向量放入到級(jí)聯(lián)森林第一層中進(jìn)行訓(xùn)練,會(huì)根據(jù)樹(shù)的大小和分類情況得到類分布向量,然后把類分布向量與滑動(dòng)窗口處理得到的101-dim特征向量進(jìn)行拼接,并作為第二層級(jí)聯(lián)森林的輸入數(shù)據(jù),重復(fù)此過(guò)程,直到驗(yàn)證收斂。Gcforest中對(duì)特征向量進(jìn)行一次轉(zhuǎn)換及處理的整體工作流程如圖1所示。

2? 基于Gcforest的惡意軟件行為檢測(cè)機(jī)制

為了對(duì)安卓惡意軟件進(jìn)行有效的評(píng)估與識(shí)別,本文提出了基于Gcforest的惡意軟件行為檢測(cè)機(jī)制,如圖2所示。本檢測(cè)機(jī)制運(yùn)用反編譯工具、Python編程,整個(gè)流程可分為特征提取、機(jī)器學(xué)習(xí)檢測(cè)模型訓(xùn)練、未知惡意軟件行為識(shí)別三部分。

其中,特征提取模塊用于提取惡意及良性軟件中的敏感權(quán)限、服務(wù)及API調(diào)用特征并對(duì)惡意軟件行為進(jìn)行分類,然后將這兩部分結(jié)果合并規(guī)范化為獨(dú)熱編碼(One-HotEncoding)的特征向量;模型訓(xùn)練模塊是將規(guī)范化的特征向量放入Gcforest算法模型中進(jìn)行多分類訓(xùn)練;行為識(shí)別模塊用于選取樣本測(cè)試集并將其放入多分類模型中進(jìn)行惡意軟件行為分類測(cè)試,并因此來(lái)評(píng)價(jià)模型效果。

3? 數(shù)據(jù)預(yù)處理

3.1? 樣本收集

本文從實(shí)驗(yàn)室及研究機(jī)構(gòu)共獲取惡意安卓軟件30608個(gè);利用爬蟲(chóng)從安卓官方應(yīng)用市場(chǎng)Google Play爬取安卓社交類、購(gòu)物類等軟件共13004個(gè)。因?yàn)镚oogle Play本身就有嚴(yán)格的惡意軟件安全檢測(cè)機(jī)制,所以默認(rèn)所爬取的應(yīng)用軟件都不具備惡意行為;為了進(jìn)一步研究惡意軟件行為,將惡意安卓應(yīng)用軟件放入VirusTotal網(wǎng)站中進(jìn)行標(biāo)注并保存其惡意軟件家族屬性,一共得到71種不同的惡意軟件家族,按照出現(xiàn)次數(shù)進(jìn)行排序后的前10種惡意軟件家族情況如表1所示。

因?yàn)橛行阂饧易宓臉颖臼占^少,如“Fobus”的數(shù)量?jī)H為4,但為了后續(xù)分類的準(zhǔn)確性,均勻選取71種家族的惡意軟件樣本1060個(gè)加上篩選掉極端大小的良性樣本1050個(gè)作為后續(xù)特征提取及模型訓(xùn)練的惡意及良性軟件樣本。

3.2? 特征提取

對(duì)惡意軟件特征提取選取時(shí),選取API調(diào)用、服務(wù)及敏感權(quán)限。API調(diào)用[12]體現(xiàn)了不同安卓軟件實(shí)現(xiàn)的不同功能;敏感權(quán)限和服務(wù)[13]則體現(xiàn)了軟件對(duì)系統(tǒng)網(wǎng)絡(luò)連接、硬件設(shè)備或系統(tǒng)資源的調(diào)用情況。對(duì)這三種特征的提取既可以細(xì)致地刻畫惡意軟件的行為特征,又可以對(duì)惡意軟件及良性應(yīng)用軟件進(jìn)行更好地區(qū)分。因所收集的安卓軟件樣本是經(jīng)過(guò)編譯后的通用二進(jìn)制文件,即APK(Android Package),需使用工具Apktool進(jìn)行反編譯處理[14],處理后的每個(gè)APK文件結(jié)構(gòu)如圖3所示。

在圖3所示文件結(jié)構(gòu)中,應(yīng)用軟件所聲明的所有權(quán)限及服務(wù)都可直接從AndroidMenifest.xml中提取;API,即方法調(diào)用則通過(guò)掃描smali反匯編文件代碼及PScount提取過(guò)濾。排除掉一些無(wú)法提取特征的無(wú)效APK,最后得到1011個(gè)惡意軟件和1006個(gè)軟件樣本的特征共217種,其中包括敏感權(quán)限111種、服務(wù)39種及API調(diào)用29種。其中出現(xiàn)頻率前10名的API調(diào)用特征分布情況分別如圖4所示。

3.3? 惡意軟件行為分類

根據(jù)圖4可以看出在三種不同的特征中惡意軟件及良性軟件的區(qū)別非常大。對(duì)于敏感權(quán)限來(lái)說(shuō),除了一些基本的網(wǎng)絡(luò)連接及網(wǎng)絡(luò)狀態(tài)獲取權(quán)限外,惡意軟件會(huì)更頻繁地獲取額外的如地理位置

和開(kāi)啟自啟動(dòng)的權(quán)限;服務(wù)在安卓系統(tǒng)后臺(tái)服運(yùn)行,通常會(huì)被惡意軟件利用來(lái)獲取用戶隱私信息,服務(wù)的命名并不由安卓提供,但可以根據(jù)提取的大量惡意軟件樣本中的權(quán)限命名學(xué)習(xí)到一些規(guī)則,比如“baidu. location.f”一定是用來(lái)后臺(tái)獲取用戶所在地;安卓API調(diào)用如“get DeviceId”、“send Text Message”就會(huì)涉及到讀取用戶終端信息、私自發(fā)送短信等方面。也進(jìn)一步說(shuō)明了使用敏感權(quán)限、服務(wù)、API調(diào)用特征來(lái)判斷安卓惡意軟件行為確實(shí)是可行的。

據(jù)分析提取自41種惡意家族的共2017個(gè)有效樣本的特征,可以將安卓惡意行為總結(jié)為三類:Variety1為私自獲取、收集用戶終端、聯(lián)系人、位置等隱私信息的行為;Variety2為收發(fā)付費(fèi)短信或撥打付費(fèi)電話等危害用戶財(cái)產(chǎn)安全的行為;Variety3為更改系統(tǒng)設(shè)置,如強(qiáng)行自啟動(dòng)、更改系統(tǒng)時(shí)間、安裝子惡意軟件等行為。針對(duì)表1中前10種惡意軟件家族行為的分類情況如表2所示。

3.4? 征向量化及篩選

首先將敏感權(quán)限、服務(wù)、API調(diào)用三種特征按序排列,再將每個(gè)軟件樣本得到的217種特征表示為一個(gè)多維二進(jìn)制布爾型特征向量。如某軟件包含第i個(gè)特征(0≤i≤217),則表示為,否則用表示。則分類后的樣本j的特征向量可以表示為:, ,表示前一章節(jié)劃分的三種惡意行為,表示正常軟件行為。最后形成如下特征矩陣:

(2)

據(jù)以上提取分析得到的特征一共有217個(gè),但

當(dāng)中有很多特征如“INTERNET權(quán)限申請(qǐng)”對(duì)惡意行為分類的結(jié)果貢獻(xiàn)并不大,所以需要對(duì)特征向量進(jìn)行篩選。在二分類的一般問(wèn)題中,一般采用基于信息增益的PCA(Principal Component Analysis,主成分分析)方法進(jìn)行降維;本文涉及到的多分類算法采用ReliefF算法[15][16]進(jìn)行降維。算法主要思想是通過(guò)迭代t次找出與樣本不同類的m個(gè)最近鄰來(lái)更新輸入的d個(gè)特征C的權(quán)值,如公式所示:

(3)

其中表示與樣本同類的m個(gè)最近鄰;表示樣本S、N關(guān)于特征C的距離;表示類目標(biāo)的概率。求出量化的特征值后,權(quán)值越大則該特征對(duì)樣本的區(qū)分能力越好,計(jì)算后按權(quán)值大小排名篩選出前20種軟件行為特征,特征前10名如表3所示。

4? 模型訓(xùn)練

本文選取以上提取的包含20種特征的2017個(gè)惡意軟件(惡意1011、良性1006)作為訓(xùn)練集對(duì)深

度森林算法進(jìn)行訓(xùn)練。實(shí)驗(yàn)系統(tǒng)為Ubantu7.3.0-16;編程語(yǔ)言選擇Python,首先應(yīng)該在本機(jī)中安裝Gcforest庫(kù),然后調(diào)用GCForest模塊。

Gcforest模型訓(xùn)練的配置分三類情況,分別是采用默認(rèn)的模型;只有級(jí)聯(lián)森林部分;多粒度掃描加級(jí)聯(lián)森林三種。超參數(shù)是指在機(jī)器學(xué)習(xí)上下文中出現(xiàn)的框架參數(shù)。為了增加算法參數(shù)的可調(diào)節(jié)性,本文選用多粒度掃描加級(jí)聯(lián)森林模式,其超參數(shù)包含:

(1)n_mgsRFtree:多粒度掃描期間隨機(jī)森林中樹(shù)的數(shù)量;

(2)max_depth:級(jí)聯(lián)層中決策樹(shù)最大深度;

(3)windows:多粒度掃描期間滑動(dòng)窗口的大小;

(4)n_cascadeRF:級(jí)聯(lián)層中隨機(jī)森林的數(shù)量;

(5)n_cascadeRFtree:級(jí)聯(lián)層中隨機(jī)森林中樹(shù)的數(shù)量;

(6)tolerance:級(jí)聯(lián)森林生長(zhǎng)的精度差,用于控制級(jí)聯(lián)在何種情況下停止。

5? 實(shí)驗(yàn)對(duì)比與分析

本文選取最初收集的43612個(gè)安卓軟件中惡意、良性各1000個(gè)作為測(cè)試集樣本。為了驗(yàn)證本文檢測(cè)機(jī)制的效果,本文還選取了深度學(xué)習(xí)及隨機(jī)森林方法作為對(duì)照。

5.1? 模型評(píng)價(jià)指標(biāo)

多分類預(yù)測(cè)模型的評(píng)價(jià)指標(biāo)一般是使用準(zhǔn)確率(precision)和召回率(recall)。前者表示X類的數(shù)據(jù)中有多少是預(yù)測(cè)正確的;后者表示有多少X類的數(shù)據(jù)被正確預(yù)測(cè)了,本文還使用F_score作為評(píng)價(jià)指標(biāo)。首先使用混淆矩陣(交叉表)表示此次分類的結(jié)果,如表4所示。

則對(duì)于第i個(gè)類別(1≤i≤n)的準(zhǔn)確率和召回率為:

(4)

其中,分別表示矩陣(表4)中的一行與一列。而對(duì)于i分類的為:

(5)

本文選擇,即常見(jiàn)的F1指標(biāo)。從公式中可以看到,F(xiàn)_score綜合了precision和recall的結(jié)果,與實(shí)驗(yàn)方法的有效性成正相關(guān)。F_score_avg為各分類F_score的算術(shù)平均,用來(lái)衡量本次各算法對(duì)本次分類的總體效果,計(jì)算方法如下:

(6)

5.2? 檢測(cè)結(jié)果

將實(shí)驗(yàn)各算法的參數(shù)調(diào)節(jié)完畢后,得出的各分類預(yù)測(cè)結(jié)果如表5所示。

表5中,比較F_score值可以看出三個(gè)算法對(duì)Variety0即正常軟件行為的分類效果最好;據(jù)F_score_avg值可以看出深度學(xué)習(xí)和本文深度森林算法的整分類效果要優(yōu)于隨機(jī)森林算法,而深度森林算法無(wú)論是在precision還是recall都較略優(yōu)于深度學(xué)習(xí)算法,F(xiàn)_score_avg也達(dá)到了87%。實(shí)驗(yàn)過(guò)程中還發(fā)現(xiàn)對(duì)于深度學(xué)習(xí)的參數(shù)調(diào)節(jié)困難較大,在模型準(zhǔn)備階段的耗時(shí)較長(zhǎng),且不像深度森林算法有默認(rèn)配置模型供選擇。綜上所述,深度森林在處理惡意軟件行為多分類問(wèn)題上具有明顯的優(yōu)越性。

6? 結(jié)論

本文提出了基于深度森林算法的惡意軟件行為檢測(cè)機(jī)制。首先通過(guò)反編譯提取了惡意及良性樣本中的敏感權(quán)限、服務(wù)、API調(diào)用特征,然后基于惡意軟件家族及具體特征確定了三種惡意軟件行為,再將加上良性行為的四種行為特征向量化,最后輸入到深度森林(GcForest)算法模型中進(jìn)行訓(xùn)練。通過(guò)將另選取樣本測(cè)試集對(duì)隨機(jī)森林、深度學(xué)習(xí)及本文的深度學(xué)習(xí)算法的分類情況進(jìn)行測(cè)試與比較,證明了本文所提基于深度森林的惡意軟件行為監(jiān)測(cè)機(jī)制無(wú)論是在參數(shù)調(diào)節(jié)難度還是在檢測(cè)效果方面都要明顯優(yōu)于其他檢測(cè)方法。

參考文獻(xiàn)

[1] 360烽火實(shí)驗(yàn)室. 2018年Android惡意軟件專題報(bào)告[OL]. [2019-5-21]. https://www.anquanke.com/post/id/171110.

[2]Zhou Z H, Feng J. Deep Forest: Towards An Alternative to Deep Neural Networks[J]. 2017.

[3]薛參觀, 燕雪峰. 基于改進(jìn)深度森林算法的軟件缺陷預(yù)測(cè)[J]. Computer Science, 2018, 45(8): 160-165.

[4]Ghaffarian S M, Shahriari H R. Software Vulnerability Analysis and Discovery Using Machine-Learning and Data- Mining Techniques[J]. ACM Computing Surveys, 2017, 50(4): 1-36.

[5]Onwuzurike L, Almeida M, Mariconti E, et al. A Family of Droids-Android Malware Detection via Behavioral Modeling: Static vs Dynamic Analysis[J]. 2018.

[6]鮑美英. 基于改進(jìn)決策樹(shù)分類的Android惡意軟件檢測(cè)[J]. 軟件, 2017, 38(2): 33-36.

[7]洪奔奔, 管聲啟, 任浪, 高磊. 基于特征提取與匹配的帶鋼缺陷檢測(cè)[J]. 軟件, 2018, 39(9): 31-34.

[8]Martín Ignacio, Hernández José Alberto, Alfonso M, et al. Android Malware Characterization Using Metadata and Machine Learning Techniques[J]. Security and Communication Networks, 2018, 2018: 1-11.

[9]An Android Malware Detection System Based on Feature Fusion[J]. Chinese Journal of Electronics, 2018, 27(6): 100- 107.

[10]Yerima S Y, Sezer S, Mcwilliams G, et al. A New Android Malware Detection Approach Using Bayesian Classification [C]//2013 IEEE 27th International Conference on Advanced Information Networking and Applications (AINA). IEEE, 2013.

[11]Su X, Zhang D, Li W, et al. A Deep Learning Approach to Android Malware Feature Learning and Detection[C]//2016 IEEE Trustcom/BigDataSE/I SPA. IEEE, 2016.

[12]Salehi Z , Sami A , Ghiasi M . Using feature generation from API calls for malware detection[J]. Computer Fraud & Security, 2014, 2014(9): 9-18.

[13]侯蘇, 杜彥輝, 蘆天亮, 等. 基于K-means算法的Android權(quán)限檢測(cè)機(jī)制研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2018, 35(4): 1165-1168.

[14]杜煒, 李劍. 基于半監(jiān)督學(xué)習(xí)的安卓惡意軟件檢測(cè)及其惡意行為分析[J]. 信息安全研究, 2018, 4(3): 242-250.

[15]Lim S C, Jang S J, Lee S P, et al. Music genre/mood classification using a feature-based modulation spectrum[C]// International Conference on Mobile It Convergence. IEEE, 2011.

[16]黃莉莉, 湯進(jìn), 孫登第, 等. 基于多標(biāo)簽ReliefF的特征選擇算法[J]. 計(jì)算機(jī)應(yīng)用, 2012, 32(10): 2888-2890.

栾城县| 澄迈县| 互助| 大名县| 云龙县| 辰溪县| 沙雅县| 南阳市| 浦东新区| 威远县| 天祝| 连山| 大同市| 普兰店市| 筠连县| 枣强县| 响水县| 台州市| 汪清县| 泰安市| 四子王旗| 鞍山市| 银川市| 隆德县| 南宁市| 临泉县| 台南县| 庆城县| 汉川市| 石城县| 大同县| 大新县| 阿巴嘎旗| 潢川县| 浙江省| 通海县| 上高县| 湘潭县| 林周县| 正安县| 崇左市|