999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CNN和LSTM混合的Android惡意應(yīng)用檢測*

2018-09-29 06:43:40邱衛(wèi)東連慧娟
通信技術(shù) 2018年9期
關(guān)鍵詞:指令分類特征

王 聰,邱衛(wèi)東,唐 鵬,連慧娟

(上海交通大學(xué),上海 200240)

0 引 言

2017年度CVE Details報告顯示,Android系統(tǒng)以842個漏洞位居產(chǎn)品漏洞數(shù)量榜首,與2016年523個相比,增長了61.0%。

手機應(yīng)用程序已經(jīng)成為人們?nèi)粘I钪杏脕硎褂酶鞣N各樣服務(wù)的重要手段,包括網(wǎng)上購物、訪問私人郵箱、使用手機銀行等一系列對安全非常敏感的行為。最新的統(tǒng)計數(shù)據(jù)顯示,基于Android平臺的惡意軟件占據(jù)了移動端惡意軟件的97%。例如,IMEI、聯(lián)系人、信息等用戶的私人數(shù)據(jù)和其他應(yīng)用的私有數(shù)據(jù)都是攻擊者的主要目標(biāo)。這是由于Android系統(tǒng)的開放性和應(yīng)用開發(fā)者本身對安全機制的不熟悉造成的。惡意攻擊者常常利用這些疏漏,編寫惡意應(yīng)用程序,威脅移動用戶的隱私安全。

近年來,面對應(yīng)用市場上數(shù)量級越來越大的Android惡意應(yīng)用,單純依靠特征碼匹配、人工審核已經(jīng)很難滿足惡意應(yīng)用的檢測需求。相當(dāng)一部分的研究人員和從業(yè)者開始著力于使用新興的機器學(xué)習(xí)和深度學(xué)習(xí)來替代傳統(tǒng)的惡意應(yīng)用的檢測方法。當(dāng)然,業(yè)界已有許多研究進展和實驗成果。

基于動態(tài)和靜態(tài)的方法檢測收集Android應(yīng)用程序中的人工組合設(shè)計的特征訓(xùn)練的方法,已經(jīng)被廣泛研究和應(yīng)用。Arp等人[1]把從Android的manifest.xml文件中提取應(yīng)用程序請求的權(quán)限、硬件訪問情況、從反編譯后的代碼提取所有API的調(diào)用情況、具體使用的權(quán)限、包含的外部網(wǎng)絡(luò)地址等特征組合,使用SVM機器學(xué)習(xí)模型進行分類,取得了很好的分類效果。Sharma[2]利用類似的特征進行不同組合,采用樸素貝葉斯和k近鄰分類器進行了類似實驗。但是,隨著深度學(xué)習(xí)技術(shù)的興起,研究人員開始嘗試使用深度學(xué)習(xí)的方法來對傳統(tǒng)的機器學(xué)習(xí)方法進行替換。Pascanu等人[3]開始使用多層感知機(Multi-layer Perceptron,簡稱MLP)模型對惡意應(yīng)用進行分類,并且與傳統(tǒng)的機器學(xué)習(xí)相比,得到了良好的提升效果。在廣泛應(yīng)用于圖像處理文本處理的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)模型被提出后,Mclaughlin等人[4]有感于自然語言處理(Natural Language Processing,簡稱NLP)的文本處理方式,把反編譯后的匯編代碼當(dāng)做傳統(tǒng)意義上的文本作為處理,以匯編代碼的操作指令的類型數(shù)量作為一個字典進行訓(xùn)練,提出了一個多層卷機神經(jīng)網(wǎng)絡(luò)的模型。雖然最后的泛化能力有所局限,但是這種跨領(lǐng)域的轉(zhuǎn)換思想非常新穎。

在實際的工程應(yīng)用中,隨著越來越多的良性應(yīng)用程序請求權(quán)限越來越多,惡意應(yīng)用程序也可以通過申請不需要的權(quán)限來偽裝自己,達(dá)成與正常的應(yīng)用程序擁有一樣的權(quán)限。單純基于申請的權(quán)限組合作為特征等方法,很難在實際檢測中獲得良好效果。因此,本文提取了一些新的應(yīng)用程序特征,這些特征基于反編譯后的Smali匯編代碼的操作指令和程序動態(tài)運行時的行為和操作情況,從而可以更加真實可信地檢測惡意應(yīng)用程序。

1 理論基礎(chǔ)

1.1 Android的靜態(tài)反編譯特征

應(yīng)用程序的靜態(tài)反編譯特征提取主要包括對其本身的反編譯和對反編譯后的操作指令的序列進行提取。

首先介紹Android的反編譯過程。Android應(yīng)用程序通常以apk文件進行發(fā)布、下載及安裝。本質(zhì)上,它是一個壓縮文件,文件內(nèi)容主要包括AndroidManifest.xml文件、dex文件以及相關(guān)的資源文件。其中,在Android操作系統(tǒng)上可執(zhí)行代碼放在dex文件中。

本文主要分析借助dex反編譯后的匯編代碼文件來對應(yīng)用程序是否是惡意的來進行判斷。具體操作過程中,首先通過BakSmali程序進行反編譯dex文件來獲得多個Smali文件,其文件格式如圖1所示。然后,合并Smali文件,去除具體的操作數(shù)部分,只留下操作指令序列。

圖1 常見smali代碼

Smali代碼中每一行前面都會有一個操作指令,如空指令、數(shù)據(jù)操作指令、跳轉(zhuǎn)指令等。本文嘗試通過應(yīng)用程序的指令操作模式作為特征訓(xùn)練,從代碼的層面對惡意應(yīng)用程序進行識別分類。

這些操作指令通過統(tǒng)計后共有218種,且以0代表某段指令的開始,255代表某段指令的結(jié)束,建立了一個字典。最終,把這些操作指令序列交給卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。

1.2 Android的動態(tài)運行特征

Android惡意應(yīng)用程序從行為上來說,可以包括釣魚劫持、木馬、惡意廣告、綁定下載等眾多類型。這些程序都是在Android惡意應(yīng)用程序運行后,自發(fā)性地在后臺運行,或者欺騙用戶完成自己的目的。因此,本文希望能夠通過對Android應(yīng)用程序模擬運行后的行為和操作進行記錄,把應(yīng)用程序的行為模式進行分類訓(xùn)練。

在具體實現(xiàn)過程中,在開源軟件Droidbox的基礎(chǔ)上,修改了一部分監(jiān)控目標(biāo)和記錄的內(nèi)容進行實現(xiàn)。Droidbox是基于TaintDroid[5]的Android應(yīng)用沙箱,可以在應(yīng)用程序框架級別借助底層的hook技術(shù)進行動態(tài)的污點分析,同時監(jiān)控應(yīng)用程序本身的行為,如是否進行了網(wǎng)絡(luò)訪問,是否存在信息的泄露,是否進行了文件訪問等。

上述收集的應(yīng)用程序行為和操作是具有時序性的,因此在下文中將用作循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入,具體包括文件的讀寫、網(wǎng)絡(luò)的傳送和加密過程的調(diào)用。

1.3 神經(jīng)網(wǎng)絡(luò)的選擇

近年來,神經(jīng)網(wǎng)絡(luò)特有的非線性適應(yīng)性信息處理能力,克服了傳統(tǒng)人工智能方法對于直覺如模式、語音識別、非結(jié)構(gòu)化信息處理方面的缺陷,得到了飛速發(fā)展。由它為基礎(chǔ)衍生的卷積神經(jīng)網(wǎng)絡(luò),在圖像處理等多個方面取得了良好的效果。循環(huán)神經(jīng)網(wǎng)絡(luò)也在處理具有順序或者時序關(guān)系的特征方面,比起傳統(tǒng)的機器學(xué)習(xí)獲得了明顯提升。

本文提取靜態(tài)反編譯代碼中的操作指令序列特征,與傳統(tǒng)的熱門領(lǐng)域NLP具有相似性。Android的操作指令序列可以看做是一個字典大小為255的語言集的文本。但是,這個文本具有非常強的局部關(guān)聯(lián)性,這是由操作指令堆疊形成的特性。另外,在應(yīng)用程序?qū)嶋H運行過程中的代碼調(diào)用和生成過程中,相關(guān)函數(shù)的局部操作指令序列在這個文本上體現(xiàn)的距離可能相當(dāng)遠(yuǎn),因為邏輯上調(diào)用的函數(shù)在源代碼中的距離并非固定。面對如此遠(yuǎn)距離的關(guān)聯(lián)性,單純使用基于循環(huán)神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)模型很難得到一個很好的訓(xùn)練效果。因此,本文在實驗中采用卷積神經(jīng)網(wǎng)絡(luò),對這種局部的聯(lián)系性進行放大提取后做一個整體池化,然后在后續(xù)的模型中進行整合訓(xùn)練。

本文提取的Android應(yīng)用程序運行時的行為和操作,可以將其視為應(yīng)用程序在啟動后進行的具有時序關(guān)系的序列。基于循環(huán)神經(jīng)網(wǎng)絡(luò)的模型對此有非常好的訓(xùn)練效果。長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,簡稱LSTM)是一種時間遞歸神經(jīng)網(wǎng)絡(luò),適用于處理和預(yù)測時間序列中間間隔和延遲相對較長的重要時間序列,對于具有時序性的運行行為和操作很適用。

2 網(wǎng)絡(luò)模型部分

2.1 卷積神經(jīng)網(wǎng)絡(luò)部分

Android應(yīng)用程序的匯編代碼可以看成是操作指令的序列,可以嘗試使用文本分類、情感分析的網(wǎng)絡(luò)模型對其進行處理。在Kim Y[6]提出的TextCNN的網(wǎng)絡(luò)模型和Zhang Y[7]等人提出的CNN做情感分析的網(wǎng)絡(luò)模型基礎(chǔ)上,修改其網(wǎng)絡(luò)模型結(jié)構(gòu),對Android應(yīng)用程序的惡意行為進行分析。

本文中的卷積神經(jīng)網(wǎng)絡(luò)的輸入是靜態(tài)反編譯特征序列,具體的表現(xiàn)形式是0~255的數(shù)字序列,分別代表操作指令的256大小的映射字典D。

首先是對輸入的操作指令序列進行one-hot編碼,然后輸入神經(jīng)網(wǎng)絡(luò),整個模型如圖2所示。

圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

第一層是Embedding層。這個設(shè)計源自NLP的處理方式,將one-hot編碼的操作指令序列從稀疏的高維度進行降維,并訓(xùn)練詞向量之間的空間關(guān)系。實質(zhì)上就是一個權(quán)值矩陣,具體的值隨著訓(xùn)練過程進行更新。具體地,相當(dāng)于將輸入的256維降低到8維。

第二層是卷積層,主要功能和內(nèi)容是對輸入的矩陣進行卷積操作。具體的窗口大小設(shè)定為8×8,步長為1,濾波器的個數(shù)為64個。最終,得到一個長度為64的1維特征。在這一層進行操作,類似于n-gram算法的設(shè)計概念。這個卷積層是將前后8個相鄰的操作指令進行組合提取,因為操作指令局部的前后關(guān)系非常強,這一卷積操作能夠?qū)植康闹噶钐卣鬟M行組合。

第三層是池化層。池化層的功能與圖像處理中池化層的作用不同,這個池化層做的是1-max pooling,記錄64個1維的特征向量的各自唯一最大值,并將結(jié)果連接起來形成一個64維的特征。這里采用的是1-max pooling而不是mean pooling等池化操作,是由進行試驗時的分類效果決定的。

這樣得到了64個維度的特征。這個特征的維度由濾波器的個數(shù)決定,與其他參數(shù)無關(guān)。因此,濾波器的個數(shù)可以看成是一個關(guān)鍵的超級參數(shù),在本文中設(shè)定為64。

如果單獨利用此卷積神經(jīng)網(wǎng)絡(luò)進行分類訓(xùn)練,對64維度的特征后面接入一個全連接層和softmax層,即可進行分類預(yù)測。

2.2 循環(huán)神經(jīng)網(wǎng)絡(luò)部分

本文構(gòu)建的循環(huán)神經(jīng)網(wǎng)絡(luò)包括六個部分:輸入層、embedding層、LSTM隱層、全連接層、softmax層和輸出層。

循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入特征,具體內(nèi)容是收集Android應(yīng)用程序運行前30 s內(nèi)記錄到的應(yīng)用程序的前100個操作序列。如果應(yīng)用程序的操作序列不足100個,進行補0操作。

對這些操作序列同樣做one-hot編碼后,embedding層進行維度變換,交給一個兩層的LSTM神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。每一層神經(jīng)網(wǎng)絡(luò)的神經(jīng)元的數(shù)量是64個,最終取最后一個時序輸出的64維特征。

然后將64維的特征進行常規(guī)全連接層和softmax層處理,隨后對應(yīng)用程序的預(yù)測分類結(jié)果進行輸出。

該部分的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。

圖3 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

2.3 混合模型

最終的混合模型是把卷積神經(jīng)網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)在進入全連接層前輸出結(jié)果,各為64個維度的特征concat后成為128維的特征,然后接入全連接網(wǎng)絡(luò),softmax分類輸出預(yù)測分類結(jié)果。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)最終的架構(gòu)如圖4所示。

圖4 混合網(wǎng)絡(luò)結(jié)構(gòu)

3 實驗

3.1 數(shù)據(jù)集的建立及來源

本文中的數(shù)據(jù)集包含了正負(fù)樣本。其中,正樣本來源于GooglePlay市場,是借助爬蟲抓取下載建立的。樣本集中的負(fù)樣本是公開的收集惡意程序Virusshare網(wǎng)站(https://virusshare.com/)中的Android惡意樣本集。去除一些無法進行反編譯以及在Android模擬器上運行失敗的無效樣本后,用于本次試驗的惡意樣本和正樣本的數(shù)量最終都取為3 600個。

3.2 特征的收集

卷積神經(jīng)網(wǎng)絡(luò)部分的操作指令序列,借助BakSmali程序?qū)?yīng)用程序進行反編譯,遍歷所有的Smali文件,映射成操作指令對應(yīng)的0~255數(shù)字序列進行存儲。需要說明的是,該過程能夠較快完成。

循環(huán)神經(jīng)網(wǎng)絡(luò)部分的應(yīng)用程序動態(tài)調(diào)用特征收集方面,借助python編寫了一個腳本程序。在對每個樣本進行收集前,在建立Android模擬器(emulator)時重新加載一次Android操作系統(tǒng)的system.img,并且添加指令-wipe-data,保證前后樣本不會產(chǎn)生干擾。然后,調(diào)用droidbox收集Android應(yīng)用程序前30 s指定的敏感操作序列并記錄。該過程需要至少30 s的應(yīng)用程序運行時間,用來收集行為和操作。

3.3 模型測試結(jié)果

實驗利用TensorFlow編程實現(xiàn),采用的梯度下降優(yōu)化算法是Adam。在64 GB內(nèi)存的Tesla M40顯卡的服務(wù)器上進行100個epoch的3個部分模型的訓(xùn)練測試,結(jié)果如表1所示。

表1 各個網(wǎng)絡(luò)部分的實驗結(jié)果

從實驗結(jié)果可以看出,使用應(yīng)用程序動態(tài)運行時收集到的特征訓(xùn)練的LSTM神經(jīng)網(wǎng)絡(luò),在惡意軟件識別精度上表現(xiàn)良好,這源自惡意應(yīng)用程序大量調(diào)用敏感文件讀寫和網(wǎng)絡(luò)的操作可能性原因高于正常的應(yīng)用程序。卷積神經(jīng)網(wǎng)絡(luò)部分將應(yīng)用程序的匯編代碼的操作序列當(dāng)成自然語言的文本進行處理分類,其在卷積神經(jīng)網(wǎng)絡(luò)的特征提取后得到了良好的分類效果。

3.4 模型對比及分析

由于Android應(yīng)用程序惡意應(yīng)用程序檢測領(lǐng)域沒有固定的廣為使用的數(shù)據(jù)樣本集,多為各自收集整理的樣本集,因此本文希望通過復(fù)現(xiàn)其他網(wǎng)絡(luò)模型在本樣本集上的分類效果,來對比本模型的有效性。Mclaughlin N等人提出的惡意軟件檢測架構(gòu)DCNN,采用了多層卷積神經(jīng)網(wǎng)絡(luò)對特征序列進行卷積訓(xùn)練。本文的卷積神經(jīng)網(wǎng)絡(luò)部分使用的特征和處理方法與其類似。復(fù)現(xiàn)其模型在本數(shù)據(jù)集上的實驗結(jié)果與原論文中的實驗結(jié)果,如表2所示。

表2 在本數(shù)據(jù)集上的驗證結(jié)果

在本數(shù)據(jù)集下,對比DCNN與本文的兩種模型實驗結(jié)果,可以得出以下結(jié)論:DCNN網(wǎng)絡(luò)中的卷積部分選用了兩層卷積層,對第一層卷積神經(jīng)網(wǎng)絡(luò)的輸出再次進行卷積操作,在實驗結(jié)果上與本文的單層卷積網(wǎng)絡(luò)的性能對比,在準(zhǔn)確率上有所提升,但是在查全率上有所降低。本文的CNN部分希望的是保留較高的查全率,提升整體模型的效果。因此,最終只采用了一層卷積神經(jīng)網(wǎng)絡(luò)層。通過與DCNN的對比試驗也可以看出,卷積神經(jīng)網(wǎng)絡(luò)對基于匯編操作指令序列的特征具有良好的查全率表現(xiàn),但是單純通過加深卷積層的層數(shù)并沒有對分類效果產(chǎn)生顯著提升。結(jié)合LSTM神經(jīng)網(wǎng)絡(luò)部分的特征后,會顯著提升整體的分類效果。

4 結(jié) 語

本文提出的基于Android應(yīng)用程序的匯編操作指令序列和動態(tài)運行時的行為和操作序列,搭建了基于卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò)的混合模型,對比獨立的神經(jīng)網(wǎng)絡(luò)模塊的實驗效果,得到明顯提升,能夠從多方面對一個應(yīng)用程序的惡意性進行判別。此外,它在搜集的惡意樣本庫和GooglePlay樣本集上取得了非常好的分類效果,證明了本文提出模型的可行性和有效性。與獨立的處理模塊相比,混合后的模型具有更加全面的特征收集和更好的分類效果,為Android的惡意應(yīng)用程序的檢測和分類提供了一種有效的分類方法,可在日常的Android應(yīng)用程序檢測中加以應(yīng)用。

猜你喜歡
指令分類特征
聽我指令:大催眠術(shù)
分類算一算
如何表達(dá)“特征”
不忠誠的四個特征
分類討論求坐標(biāo)
ARINC661顯控指令快速驗證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
數(shù)據(jù)分析中的分類討論
教你一招:數(shù)的分類
抓住特征巧觀察
主站蜘蛛池模板: www.99在线观看| 91小视频在线| 国产精品污视频| 一本一道波多野结衣av黑人在线| 这里只有精品免费视频| 欧美一级99在线观看国产| 一本久道久综合久久鬼色| 亚洲精品国产日韩无码AV永久免费网 | 激情在线网| 91久久偷偷做嫩草影院免费看| 成人福利在线看| 九一九色国产| 一级黄色欧美| 91精品国产91久无码网站| a级毛片免费播放| 女人av社区男人的天堂| 国产在线自乱拍播放| 亚洲狼网站狼狼鲁亚洲下载| 欧美一区二区三区不卡免费| 欧美中文字幕一区| 日韩在线第三页| 欧美人与牲动交a欧美精品| 99久久精品免费看国产电影| 国产精品99r8在线观看| 波多野结衣一区二区三视频| 免费在线色| 激情国产精品一区| 天天视频在线91频| 久久96热在精品国产高清| 人妻无码一区二区视频| 四虎影视库国产精品一区| 91蜜芽尤物福利在线观看| 国产毛片一区| 国产男人的天堂| 成人一级免费视频| 日韩精品无码不卡无码| 四虎成人免费毛片| 99re热精品视频中文字幕不卡| 亚洲黄色片免费看| 麻豆精品国产自产在线| 欧美亚洲欧美| а∨天堂一区中文字幕| 欧美精品在线免费| 午夜爽爽视频| a毛片在线播放| 欧美日韩动态图| 国产尤物视频网址导航| 亚洲精品爱草草视频在线| 依依成人精品无v国产| a毛片基地免费大全| 国产真实乱了在线播放| 精品国产三级在线观看| 日韩av高清无码一区二区三区| 亚洲欧美精品在线| 国产成人综合久久精品下载| 成人小视频网| 欧美日韩午夜| 毛片卡一卡二| 中文字幕在线日本| 无码精品国产VA在线观看DVD| 国产网站免费观看| 国产精品亚洲一区二区三区在线观看| 国产精品刺激对白在线| 日韩欧美色综合| 国产欧美日韩另类| 激情综合网址| 国产亚洲第一页| 日本手机在线视频| 亚洲成网站| 久久亚洲高清国产| 国产高清又黄又嫩的免费视频网站| 亚洲黄色高清| 在线亚洲精品福利网址导航| 成人免费午间影院在线观看| 日韩成人高清无码| 2048国产精品原创综合在线| 国产精品污视频| 最新日韩AV网址在线观看| 色哟哟国产精品| 国产一二三区视频| 丁香婷婷激情综合激情| 日韩一区二区在线电影|