張雪濤,孫蒙,王金雙
基于操作碼的安卓惡意代碼多粒度快速檢測方法
張雪濤,孫蒙,王金雙
(陸軍工程大學指揮控制工程學院,江蘇 南京 210001)
基于操作碼的檢測方式被廣泛用于安卓惡意軟件檢測中,但存在特征提取方法復(fù)雜、效率低等問題。針對此類問題,提出一種基于操作碼的安卓惡意軟件多粒度快速檢測方法,其中多粒度指以詞袋模型為基礎(chǔ)、函數(shù)為基本單位提取特征,通過逐級聚合特征獲得APK多層級信息,通過對數(shù)長度表征函數(shù)規(guī)模;并基于Dalvik指令集中操作碼語義上的相似性對其進行壓縮映射以提升效率,構(gòu)建相應(yīng)分類模型。測試表明所提方法在性能和效率上均有明顯優(yōu)勢。
操作碼;壓縮映射;多粒度;快速檢測;卷積神經(jīng)網(wǎng)絡(luò)
近年來,安卓平臺惡意軟件數(shù)量呈大幅增長的態(tài)勢。相關(guān)報告顯示[1],2018年全年安卓平臺可檢測的惡意軟件增加了283.1萬個。安卓平臺惡意軟件種類繁多,來源多樣,如挖礦木馬、勒索軟件等惡意軟件多為單獨開發(fā),隱私竊取、惡意扣費等軟件則多是通過對良性軟件進行惡意代碼插入獲得[2-3]。
機器學習方法已被應(yīng)用于安卓惡意軟件檢測,?;诿舾袡?quán)限、敏感API調(diào)用、控制流圖(CFG,control flow graph)、APK的操作碼(opcode)等特征進行識別。但對于由普通安卓軟件改造而來的惡意軟件,由于插入代碼量少,其惡意特征可能被其他無關(guān)代碼混淆掩蓋,影響檢測速度與效果。同時傳統(tǒng)的檢測方法嚴重依賴于專家經(jīng)驗以及人為制定的規(guī)則,導致其檢測效率低。而安卓惡意軟件的數(shù)量不斷增加,加快了對惡意軟件的查殺速度、提高了檢測效率,成為惡意軟件檢測系統(tǒng)發(fā)展的重要方向。相關(guān)檢測方法對重打包等類型惡意軟件檢測效果較差、受其他無關(guān)變量影響較大,以及模型訓練耗時長,且現(xiàn)有的檢測方法常將單個安卓軟件作為整體進行檢測,導致無關(guān)因素影響了惡意代碼特征的顯著性。為解決這一問題,本文提出了一種以opcode為特征、基于機器學習技術(shù)的安卓惡意軟件分段多層級快速檢測方法[4]。
本文提出將反匯編得到的APK文件以類中的函數(shù)為基本單位,以詞袋模型為基礎(chǔ)進行基礎(chǔ)特征向量的提取,隨后將提取出的多個向量進行組合再提取,經(jīng)過多次特征組合與提取獲得APK文件由細粒度到粗粒度的特征信息,并將其作為最終APK的特征值送入分類模型進行訓練與檢測。同時為彌補詞袋模型對函數(shù)規(guī)模信息的缺失,在特征中加入了loglength以補充函數(shù)規(guī)模信息,用以提升檢測準確性。
傳統(tǒng)的基于opcode的相關(guān)工作常使用Dalvik虛擬機指令集中的全部opcode作為詞典進行特征提取,但由于傳統(tǒng)匯編指令種類繁多,導致特征空間維度過高,特征數(shù)據(jù)量過大,最終導致嚴重的運算負荷,限制了安卓惡意軟件的分類速度。為降低特征數(shù)據(jù)量,加快模型訓練與檢測效率,本文基于匯編指令語義上的相似對其進行多對一的壓縮映射,從而減少特征空間的維度,提高安卓軟件的檢測效率。同時針對本文提取的特征數(shù)據(jù)的特點,重新設(shè)計了基于CNN的檢測模型,通過多深度卷積核匹配更多粒度上的opcode信息,增強了模型的泛化能力、提升了檢測精度。
本文的主要創(chuàng)新如下。
1) 提出了一種基于opcode的安卓惡意軟件多粒度特征提取方法,同時兼顧程序的局部特征以及總體特征,有較強的程序表征能力。
2) 為提升系統(tǒng)的檢測效率,在特征提取過程中使用opcode壓縮詞典,通過語義相似性對訓練數(shù)據(jù)進行壓縮精簡,降低了特征空間維度,顯著提高了模型的訓練與檢測效率。
3) 為補足傳統(tǒng)特征提取方法中僅包含opcode比例、丟失程序規(guī)模信息的缺陷,本文提出loglegnth參數(shù),用于對函數(shù)規(guī)模進行評定,有效補全了特征中的缺失信息,提高了檢測準確率。
4) 基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計了輕量化的檢測模型,通過不同深度的卷積核對數(shù)據(jù)進行挖掘,在保證檢測精度的同時降低了訓練耗時。模型分類F-score達到0.98,分類精度達到0.99,在本文實驗環(huán)境下達到了每秒540個安卓軟件的檢測效率,相較其他相近工作擁有更優(yōu)的分類性能。
安卓惡意軟件檢測主要可以分為靜態(tài)檢測與動態(tài)檢測兩大類,使用的特征分別為程序靜態(tài)特征或程序運行時產(chǎn)生的動態(tài)特征。靜態(tài)分析主要包括對AndroidManifest.xml等配置文件進行解析,或?qū)Τ绦蜻M行反匯編,獲取APK的函數(shù)、API調(diào)用、程序流程圖、二進制信息等靜態(tài)特征。例如,Shabtai等[5]使用反匯編得到的類作為識別特征。動態(tài)分析則常包括沙箱模擬安卓運行APK,提取程序執(zhí)行的動作特征。例如,Lindorfer等[6]使用APK在運行過程中的系統(tǒng)調(diào)用作為特征進行了惡意軟件與良性軟件的分類工作。動態(tài)分析可以較好地表征惡意程序的行為特征,并在一定程度上克服程序混淆對檢測帶來的困難;但相較于靜態(tài)分析,其資源開銷更大,難以對大量惡意軟件進行快速分析。故安全研究人員對基于靜態(tài)特征的安卓惡意軟件檢測開展了廣泛的研究,例如,Yerima等[7]使用了API調(diào)用、權(quán)限等多種靜態(tài)信息進行檢測。基于權(quán)限、敏感API等靜態(tài)特征的分析方法常依賴于人為定義的規(guī)則,而基于反匯編的二進制特征則無須人為設(shè)定條件,Jerome等[8]以操作碼作為特征,將其向量化后送入分類器進行檢測,并獲得了良好的檢測效果。該種檢測方法的優(yōu)點是檢測速度快、人為因素少,但同時容易受到無關(guān)程序片段或混淆程序片段的影響。
傳統(tǒng)的基于opcode的安卓惡意代碼檢測方法多使用N-Gram模型對opcode序列進行處理,如Kang等[9]使用該模型對程序進行處理,并將N-Gram片段作為基本單位進行統(tǒng)計,獲得了良好的檢測效果;Yewale等[10]對opcode進行統(tǒng)計挖掘,在相應(yīng)數(shù)據(jù)集上獲得了0.98的準確率。但由于Dalvik指令集數(shù)量繁多,組成序列后特征空間維度呈指數(shù)增長,導致特征數(shù)據(jù)量過大,影響檢測效率,故同樣存在一定程度的局限性。本文針對上述問題,提出使用程序分段的方法提升目標惡意代碼在檢測域中所占的相對比例,并通過對語義相似的匯編指令進行壓縮以提高檢測效率。
圖1 檢測方法整體流程
本文提出的檢測方法整體流程如圖1所示。首先由APKtool對APK文件進行解包反編譯,并結(jié)合基于語義相似性的壓縮映射詞典以及詞袋模型對smali文件進行特征提??;在得到每個函數(shù)的特征信息后,再對特征進行多輪整合再提??;最終將特征向量送入分類模型進行判定。
造成基于opcode的檢測系統(tǒng)數(shù)據(jù)量龐大的根本原因在于指令集詞典空間較大,Dalvik架構(gòu)對應(yīng)的指令集包含200余個匯編指令,復(fù)雜多樣的opcode可組成更加復(fù)雜的opcode序列。過大的特征空間會導致數(shù)據(jù)量的膨脹,進而導致處理效率低。為應(yīng)對此類問題,Chen等[11]提出了輕量化安卓惡意軟件檢測系統(tǒng)TinyDroid,在該檢測系統(tǒng)中基于語義對opcode進行了類別合并,從而降低特征空間維度并提高處理效率;Bakhshinejad等[12]在其提出的安卓惡意軟件檢測系統(tǒng)中基于PPM壓縮算法對opcode序列進行壓縮,從而提升了檢測效率;Dong等[13]在其工作中指出為提升基于操作碼的檢測系統(tǒng)的檢測效率,首先需要對數(shù)據(jù)進行壓縮處理。為降低特征數(shù)據(jù)量,去除冗余信息,本文基于opcode指令之間的相似性對其進行了多對一的壓縮編碼,以實現(xiàn)對操作碼特征空間的壓縮進而提高處理效率,壓縮原理如圖2所示。
基于操作碼的語義相似性,將所有opcode分為44組,并為每組指定編號,形成多對一的映射關(guān)系。如move、move-wide、move-wide/from16等針對不同數(shù)據(jù)類型的move指令被合并為同一類。經(jīng)過壓縮編碼,opcode子序列被壓縮為由低維數(shù)詞典構(gòu)成的向量,同構(gòu)降低特征空間的維度,達到控制數(shù)據(jù)量的效果。為去除包含垃圾指令的子序列,本系統(tǒng)設(shè)計了對應(yīng)的篩選機制,以過濾干擾項。由于篇幅限制,表1中僅列出了部分按照語義進行劃分的opcode及映射關(guān)系。
基于語義相似性的映射關(guān)系,將原始opcode特征空間的維度由原始的267下降至44,有效縮減特征的數(shù)據(jù)量,提高檢測速度。
圖2 opcode壓縮編碼
表1 opcode壓縮編碼對應(yīng)關(guān)系
圖3 多粒度特征提取
為提取基于opcode的APK文件特征,本文方法首先對APK文件進行反匯編,通過正則表達式從smali文件中對opcode進行匹配獲取。以函數(shù)為基本單元,按照上述壓縮詞典中的映射關(guān)系對APK中的opcode進行記錄。為保留惡意軟件的局部特征,避免過多無關(guān)代碼對惡意代碼檢測產(chǎn)生影響,本文設(shè)計了以函數(shù)為基本單位進行多粒度特征提取的方法。
APK中包含的所有函數(shù)被分為若干組進行基礎(chǔ)特征向量的提取,每組中包含函數(shù)的數(shù)量決定了特征提取過程中的起始粒度大小。為保證基本單位特征,以兩兩聚合的方式進行多次合并,并在最后一次聚合后獲得表征整個APK的最終特征向量,需要保證基本特征數(shù)目可被2進行次整除,即需要將原始程序中所有函數(shù)分為2組以進行特征提取。如圖3所示,假設(shè)原始APK中含有24個函數(shù),當=3時,需要提取出的基礎(chǔ)特征數(shù)量為23=8個,故將原始APK中的函數(shù)按照每3個一組的形式進行共44類的opcode數(shù)目統(tǒng)計。當APK中的函數(shù)數(shù)量不能被指定的分組數(shù)量整除時,最后一組的函數(shù)數(shù)量可少于平均數(shù)量,直接進行統(tǒng)計。統(tǒng)計出的數(shù)目在最后進行歸一化,以反映opcode在指定區(qū)域內(nèi)的分布信息。
隨后對基礎(chǔ)特征向量進行兩兩聚合,聚合方式如圖4所示。
圖4 基礎(chǔ)向量聚合
以圖3為例,通過對8個基礎(chǔ)特征進行逐層聚合,分別獲得4、2、1個高層向量,隨后將前4層共15(8+4+2+1)個不同粒度的特征向量進行合并,最終得到維度為15×44的特征矩陣,該矩陣包含APK文件不同區(qū)域的opcode分布信息,以及由分組到整體的不同粒度的特征信息。函數(shù)分組數(shù)目越大,則基礎(chǔ)特征對于APK的表征粒度越細致,但同時會帶來更大的數(shù)據(jù)量,造成模型訓練與判定時間增長,為取得檢測效率與準確率之間的平衡點,測試中會對不同分組數(shù)目進行測試,以尋求最優(yōu)的基礎(chǔ)特征數(shù)量。
為平衡不同粒度下獲得的特征向量,在特征提取過程中對其進行了歸一化。但歸一化后的特征向量僅能表示在指定的程序范圍內(nèi)opcode分布的相對比例信息,丟失了函數(shù)規(guī)模信息(即原有函數(shù)中包含的opcode數(shù)量信息)。為增強特征的表征能力,保留函數(shù)相對應(yīng)的規(guī)模信息,在原有基礎(chǔ)特征后加入loglength,用于表示函數(shù)規(guī)模,其計算方法如式1所示:
式(1)中的func_size為基礎(chǔ)單位向量中含有opcode的數(shù)目,首先通過對數(shù)函數(shù)將數(shù)值較大的func_size映射到較小的空間中,若計算結(jié)果小于1,則取1;若函數(shù)值超過8,則函數(shù)尺寸取8,計算得出的數(shù)值向下取整并減1,最終獲得區(qū)間在0~7之間的整數(shù),數(shù)值越大,代表函數(shù)規(guī)模越大。其中,對數(shù)函數(shù)以8為底,同時將函數(shù)規(guī)模分為8個級別為實驗測得的最佳結(jié)果,可對函數(shù)規(guī)模進行較為均衡的評估。對于粗粒度的特征向量,計算loglength時使用的是平均func_size,即總opcode數(shù)量除以包含的函數(shù)數(shù)目。
在文本分類等領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)(CNN)發(fā)揮了良好的分類性能,Yoon Kim等[14]在其工作中提出了使用CNN進行文本分類,獲得了良好的檢測效果。如圖5所示,與分類任務(wù)相類似,本文方法使用一維卷積作為分類網(wǎng)絡(luò)的基本單元。
如圖5所示,APK的特征數(shù)據(jù)輸入后,首先使用3個擁有不同尺寸卷積核的卷積層對矩陣進行卷積操作。模型使用一維卷積,卷積核寬度與輸入數(shù)據(jù)寬度一致,每個卷積層包含128個卷積核,卷積核深度分別為6,8,12。通過卷積核深度差異覆蓋不同范圍的基礎(chǔ)向量,從而進一步挖掘隱藏信息。隨后將得到的特征圖進行連接合并,基于最大值池化將特征整合為381維的向量,最后通過全連接輸出到一個二維向量,即模型判定樣本分別屬于正類以及負類的概率。為防止模型產(chǎn)生過擬合現(xiàn)象,模型中加入了DropOut層用于防止模型過擬合。近期Sepp Hochreiter提出的selu激活函數(shù)[15]在模型訓練以及梯度回傳方面表現(xiàn)優(yōu)異,本模型中采用selu作為激活函數(shù)實現(xiàn)二分類問題。
檢測系統(tǒng)通過反匯編及opcode靜態(tài)特征提取,以分組再提取的方式增強了特征對于APK的描述能力,通過壓縮編碼的方式對數(shù)據(jù)量進行壓縮并提升檢測效率,無須針對應(yīng)用程序動態(tài)執(zhí)行且檢測精度高,有利于應(yīng)用于大規(guī)模應(yīng)用檢測系統(tǒng)的部署。
模型訓練流程如下。
1) APK應(yīng)用反編譯,使用APKTools對應(yīng)用程序進行反編譯,并使用正則表達式從中進行opcode的提取,并將每個APK對應(yīng)的提取結(jié)果以單個文件的形式保存。
2) 特征提取,基于Dalvik字節(jié)碼語義相似性的壓縮編碼詞典,以詞袋模型為基礎(chǔ)進行字節(jié)碼分布統(tǒng)計,并加入loglength表征函數(shù)規(guī)模信息,最終單個樣本對應(yīng)規(guī)模為31×45的特征矩陣。
3) 模型訓練與測試,使用上文所述的基于CNN分類模型進行訓練,使用Tensorflow以及Tflearn實現(xiàn)分類模型中的相關(guān)結(jié)構(gòu),并將網(wǎng)絡(luò)輸出的二維向量作為分類結(jié)果。
圖5 分類模型結(jié)構(gòu)
通過實驗,評估本文所提算法在以下3個方面的有效性。
1) APK文件使用的單位特征向量數(shù)目與分類效果的關(guān)系,找到在滿足精度條件下需要的最少特征向量數(shù)目,以提高分類效率。在實驗過程中分別使用前1~6層基礎(chǔ)向量,并分別記錄對應(yīng)情景下模型的分類精度以及召回率,用以對模型分類的準確性進行驗證評估。
2) 使用原始opcode映射關(guān)系進行檢測,對比使用壓縮詞典后的訓練耗時以及分類精度之間的關(guān)系,以驗證本文使用的基于語義相似性的映射詞典的有效性。
3) 與其他相關(guān)工作進行對比,證明本文所提方法在檢測效率以及檢測精度上的優(yōu)勢。
本文實驗環(huán)境為CPU Intel(R) E5,16 GB內(nèi)存,GPU為GTX1080,硬盤為120 GB SSD,使用Ubuntu16.04操作系統(tǒng)。實驗數(shù)據(jù)集中惡意APK應(yīng)用來自VirusShare病毒數(shù)據(jù)庫,良性樣本來源于Drebin安卓惡意軟件檢測數(shù)據(jù)集[16],以及小米應(yīng)用商城爬取,其中良性樣本共計5 031個、惡意樣本共計5 003個,樣本總量為10 034,并將其按照9:1的比例隨機劃分為訓練集以及測試集。
模型的分類性能主要使用準確率(Precision)、召回率(Recall)、F-score以及漏報率(FNR)這4個參數(shù)進行衡量,參數(shù)的計算方法如下。
其中,TP為真陽率,F(xiàn)P為假陽率,TN為真陰率,F(xiàn)N為假陰率。而在上式計算的參數(shù)中,漏報率越接近0說明檢測效果越好,反之,Recall越接近1,則說明模型分類性能越強。
首先為獲得最小特征數(shù)據(jù)量與最優(yōu)檢測效果的平衡點:在測試中分別使用前1~6層基礎(chǔ)特征,即值分別為0、1、2、3、4、5時,對模型的分類精度、召回率、FNR以及F-score這4項參數(shù)進行測試;測試分為包含loglength函數(shù)規(guī)模信息、不包含函數(shù)規(guī)模信息兩組分別進行,以驗證loglength的有效性。測試結(jié)果如表2及表3所示。
表2 包含loglength特征向量下模型測試結(jié)果
其次以不包含loglength的特征值為基礎(chǔ),對模型進行上述4項參數(shù)的測試,相應(yīng)結(jié)果如表3所示。
表3 未包含loglength特征向量下模型測試結(jié)果
由于模型為二分類模型,使用F-score可以較為全面地對模型的分類性能進行衡量,綜合表2以及表3中的數(shù)據(jù),將基于兩種特征的F-score測試結(jié)果進行繪制,結(jié)果如圖6所示。
由圖6中數(shù)據(jù)進行分析可知,由于loglength包含函數(shù)規(guī)模信息,相較于不使用該項特征的分類模型,F(xiàn)-score值有一定程度的提升,說明模型擁有更低的漏報率與更好的分類性能。對圖中數(shù)據(jù)走勢進行分析可以得到:隨著使用的基礎(chǔ)特征數(shù)量增加,模型的分類性能在不斷上升,但隨著數(shù)量不斷增長,基礎(chǔ)特征數(shù)量為16、=4時分類模型獲得最好效果,隨后隨著基礎(chǔ)特征數(shù)量不斷增長,模型分類性能的提升并不明顯,并有可能出現(xiàn)分類效果不穩(wěn)定的現(xiàn)象。出現(xiàn)該現(xiàn)象的主要原因是無關(guān)函數(shù)數(shù)量過多對分類結(jié)果帶來了影響。綜上所述,在初始階段將APK中所有函數(shù)分為16組,基于每組提取1個基礎(chǔ)特征向量。在獲得16個基礎(chǔ)特征向量后,按照上文所述聚合方式進行逐層聚合處理,最終特征總維度為31×45時,可以獲得最優(yōu)的檢測效果以及在不犧牲精度前提下的最高效率,即=4時可以獲得檢測效果與檢測效率之間的均衡。
圖6 基于兩種特征的F-score對比
圖7 基于兩種特征的準確率對比
圖8 基于兩種特征的召回率對比
對使用兩種特征的召回率以及精度進行繪制,如圖7及圖8所示??梢缘贸?,loglength有效提升了判定精度,并在APK誤判方面有更優(yōu)表現(xiàn)。本文方法最優(yōu)判定精度可達到0.99。
McLaughlin等[17]提出了一種新型基于Dalvik操作碼的惡意APK檢測方法。該方法針對傳統(tǒng)基于N-Gram及opcode檢測方法流程復(fù)雜的問題,提出了一種直接使用opcode進行分類的惡意APK檢測方法,提高了對于軟件的檢測效率。該方法中同樣使用opcode進行惡意軟件的檢測,與本文方法不同的是,該方法將APK作為一個整體提取所有的opcode信息,并使用一對一映射,即每個opcode均對應(yīng)唯一的標識符,故特征空間較大,并使用卷積對提取出的opcode序列進行學習訓練,最終獲得分類結(jié)果。
基于相同的數(shù)據(jù)集,本文與該方法進行了對比測試,將該方法最優(yōu)成績與本文方法最優(yōu)成績進行對比,測試結(jié)果如表4所示。
表4 對比測試結(jié)果
從表4中的數(shù)據(jù)分析對比可以得到,本文提出方法相較于文獻[11]方法擁有更好的分類性能以及誤判率,各項參數(shù)指標均優(yōu)于該方法。同時對本方法的測試效率進行統(tǒng)計,本方法對單個樣本進行判別需要耗費0.001 85 s,即每秒可判定樣本540個,故使用了壓縮映射的opcode詞典,本方法有較高惡意軟件檢測效率。
為驗證本檢測系統(tǒng)相較于同類工作在訓練以及判定方面的時間優(yōu)勢,本文從訓練集中隨機抽取了2 000個樣本用于模型訓練耗時測試:分別對Arp D等[16]提出的安卓惡意軟件檢測框架Drebin,Mclaughlin等[17]提出的基于opcode的檢測方法進行訓練,模型訓練耗時以及檢測精度記錄如表5所示。
表5 模型訓練耗時及檢測精度
同類型的基于opcode的檢測工作常以N-Gram模型為基礎(chǔ)進行特征組織,這導致數(shù)據(jù)量較大,進而導致模型在訓練與判定過程中的開銷增大。故Deep Android Malware Detection檢測系統(tǒng)在訓練過程中耗時較高。而本文提出方法由于多粒度的組織方法,增強其表達能力,同時基于壓縮詞典對數(shù)據(jù)規(guī)模進行縮減,在同等檢測精度的條件下,相較于同類模型訓練效率顯著提高。
本文針對傳統(tǒng)的基于opcode的安卓惡意軟件檢測系統(tǒng)特征維度過高、檢測效率較低且無法表征APK局部信息等缺點,提出了一種新型基于opcode的多粒度特征提取方式:通過將APK分段提取opcode特征,并將特征進行組合提升模型與檢測效率,并加入loglength對函數(shù)規(guī)模進行表示,補全了詞袋模型對于函數(shù)長度信息表征方面的缺失。同時為提高系統(tǒng)的分類與檢測效率,本文采用了壓縮映射編碼的方法對原始Dalvik指令集進行了壓縮映射,通過降低特征空間維度有效減少了特征數(shù)據(jù)量,降低訓練時間并提高了檢測效率;針對基于opcode的特征特點,基于CNN對分類模型進行了設(shè)計。
通過對模型進行多項參數(shù)測試,驗證了本文提出算法的有效性,證明了本檢測框架相較于同類型工作在檢測精度、檢測效率等方面的優(yōu)勢。但本檢測框架在未來仍有提高效率的空間,可通過信息增益等方式對opcode進行進一步篩選,從而進一步壓縮特征空間的維度以提高檢測效率;并在未來工作中對分類器模型進一步完善,提升檢測性能并增強模型的泛化能力。
[1] 360互聯(lián)網(wǎng)安全中心. 2018中國手機安全生態(tài)報告[R]. 2018.
360 Internet Security Center. 2018 China mobile phone security ecological Report [R]. 2018.
[2] ZHOU W, ZHOU Y J, JIANG X X, et al. Detecting repackaged smartphone applications in third-party Android marketplaces[C]// The Second ACM Conference on Data and Application Security and Privacy. 2012: 317-326.
[3] 汪潤, 唐奔宵, 王麗娜. DeepRD: 基于Siamese LSTM網(wǎng)絡(luò)的Android重打包應(yīng)用檢測方法[J].通信學報, 2018, 39(8): 69-82.
WANG R, TANG B X, WANG L N. Deeprd: Android repackaging application detection method based on Siamese LSTM network [J]. Journal on Communications, 2018, 39(8): 69-82.
[4] TIAN K, YAO D D, RYDER B G, et al. Detection of repackaged android malware with code-heterogeneity features[J]. IEEE Transactions on Dependable and Secure Computing, 2017:1-1.
[5] SHABTAI A, MOSKOVITCH R, FEHER C,et al. Detecting unknown malicious code by applying classification techniques on opcode patterns[J]. Security Informatics,2012,1(1):1-22
[6] LINDORFER M, NEUGSCHWANDTNER M, PLATZER C. MARVIN: efficient and comprehensive mobile app classification through static and dynamic analysis[C]// IEEE Computer Software & Applications Conference. IEEE Computer Society. 2015.
[7] YERIMA S Y, SEZER S, MUTTIK I. High accuracy android malware detection using ensemble learning[J]. Iet Information Security, 2016, 9(6): 313-320.
[8] JEROME Q, ALLIX K, STATE R, et al. Using opcode-sequences to detect malicious Android applications[C]//2014 IEEE International Conference on Communications (ICC). 2014: 914-919.
[9] KANG B J, YERIMA S Y , MCLAUGHLIN K , et al. N-opcode analysis for android malware classification and categorization[C]// 2016 International Conference on Cyber Security and Protection of Digital Services (Cyber Security). 2016: 1-7.
[10] YEWALE A, SINGH M. Malware detection based on opcode frequency[C]//IEEE International Conference on Advanced Communication Control & Computing Technologies. 2017.
[11] CHEN T, MAO Q, YANG Y, et al. TinyDroid: a lightweight and efficient model for android malware detection and classification[J]. Mobile Information Systems, 2018: 1-9.
[12] BAKHSHINEJAD N, HAMZEH A. A new compression based method for android malware detection using opcodes[C]//IEEE Artificial Intelligence and Signal Processing Conference. 2018: 256-261.
[13] DONG H, HE N Q, HU G, et al. Malware detection method of android application based on simplification instructions[J]. The Journal of China Universities of Posts and Telecommunications, 2014, 21: 94-100.
[14] KIM Y. Convolutional neural networks for sentence classification[C]//The 2014 Conference on Empirical Methods in Natural Language Processing. 2014.
[15] KLAMBAUER G, UNTERTHINER T, MAYR A, et al. Self-normalizing neural networks[C]//Advances in Neural Information Processing Systems 30 (NIPS 2017)2017: 971-980.
[16] ARP D, SPREITZENBARTH M, HUBNER M, et al. Drebin: effective and explainable detection of android malware in your pocket[C]//NDSS. 2014: 23-26.
[17] MCLAUGHLIN N, RINCON J M D, KANG B J, et al. Deep android malware detection[C]//ACM on Conference on Data & Application Security & Privacy. 2017.
Multi-granularity Android malware fast detection based on opcode
ZHANG Xuetao, SUN Meng,WANG Jinshuang
Institute of Command Control Engineering, Army Engineering University, Nanjing 210001, China
The detection method based on opcode is widely used in Android malware detection, but it still contains some problems such as complex feature extraction method and low efficiency. In order to solve these problems, a multi-granularity fast detection method based on opcode for Android malware was proposed. Multi-granularity refers to the feature based on the bag of words model, and with the function as basic unit to extract features. By step-by-level aggregation feature, the APK multi-level information is obtained. The log length characterizes the scale of the function. And feature can be compressed and mapped to improve the efficiency and construct the corresponding classification model based on the semantic similarity of the Dalvik instruction set. Tests show that the proposed method has obvious advantages in performance and efficiency.
opcode, compression map, multi-granularity, rapid detection, convolutional neural networks
TP393
A
10.11959/j.issn.2096?109x.2019064
張雪濤(1995? ),男,河北保定人,碩士,主要研究方向為網(wǎng)絡(luò)安全以及惡意軟件檢測。
孫蒙(1984? ),男,山東齊河人,博士,陸軍工程大學副教授,主要研究方向為人工智能和網(wǎng)絡(luò)安全。
王金雙(1978? ),男,黑龍江佳木斯人,博士,陸軍工程大學副教授,主要研究方向為系統(tǒng)安全,機器定理證明。
論文引用格式:張雪濤, 孫蒙, 王金雙. 基于操作碼的安卓惡意代碼多粒度快速檢測方法[J]. 網(wǎng)絡(luò)與信息安全學報, 2019, 5(6): 85-94.
ZHANG X T, SUN M, WANG J S. Multi-granularity Android malware fast detection based on opcode[J]. Chinese Journal of Network and Information Security, 2019, 5(6): 85-94.
2019?03?11;
2019?06?14
王金雙,siyezhishuang@163.com