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

?

基于指令序列嵌入的安卓惡意應(yīng)用檢測框架

2022-08-08 01:35孫才俊王偉忠何能強(qiáng)王之宇孫天寧張奕鵬
信息安全研究 2022年8期
關(guān)鍵詞:安卓指令代碼

孫才俊 白 冰 王偉忠 何能強(qiáng) 王之宇 孫天寧 張奕鵬

1(之江實(shí)驗(yàn)室智能網(wǎng)絡(luò)研究院 杭州 311121) 2(中國工業(yè)互聯(lián)網(wǎng)研究院 北京 100102) 3(國家互聯(lián)網(wǎng)應(yīng)急中心浙江分中心 杭州 310052)

安卓是一款開源的操作系統(tǒng),目前全球安卓活躍用戶數(shù)已達(dá)20億[1],它吸引大量使用者的同時(shí)也吸引了大量的惡意軟件開發(fā)者.根據(jù)McAfee在2019年發(fā)布的移動(dòng)安全報(bào)告[2],與2017年相比,2018年與安卓銀行相關(guān)的惡意應(yīng)用增加了77%.根據(jù)奇虎360在2020年2月發(fā)布的惡意軟件報(bào)告[3],在2019年全年,360安全大腦攔截了9.5億次惡意軟件攻擊.因此,學(xué)術(shù)界提出了一系列檢測安卓惡意軟件的方法[4-5],基本思路是從應(yīng)用程序中提取1組描述其行為的特征,并利用提取的特征,采用適當(dāng)?shù)臋C(jī)器學(xué)習(xí)算法來識別惡意軟件.

基于機(jī)器學(xué)習(xí)方法的安卓惡意軟件檢測通常依賴于訓(xùn)練樣本數(shù)據(jù)集.在訓(xùn)練過程中,檢測系統(tǒng)需要大量的樣本特征才能在預(yù)測中達(dá)到良好的效果.但由于惡意軟件及其變種數(shù)量眾多,為減少研究人員的工作量,必須使用可擴(kuò)展和自動(dòng)化的特征提取方法[6],實(shí)現(xiàn)大規(guī)模的惡意樣本識別.當(dāng)前,普遍采用的特征提取方法有靜態(tài)分析與動(dòng)態(tài)分析2種,對應(yīng)提取到的特征分別為靜態(tài)特征與動(dòng)態(tài)特征.靜態(tài)特征如應(yīng)用程序接口(API)調(diào)用、操作代碼(opcode)序列、權(quán)限請求、控制流或數(shù)據(jù)流,通過應(yīng)用靜態(tài)特征發(fā)現(xiàn)應(yīng)用可疑行為;動(dòng)態(tài)特征通過在模擬器或物理機(jī)上運(yùn)行指定的安卓樣本進(jìn)行提取,主要包含日志文件、網(wǎng)絡(luò)流量、文件系統(tǒng)訪問、安卓系統(tǒng)交互等運(yùn)行時(shí)產(chǎn)生的行為特征[7-8].

通常,靜態(tài)分析由于其高速處理能力,適合處理大規(guī)模樣本.然而,當(dāng)遇到使用復(fù)雜混淆技術(shù)(如加密、加殼)的應(yīng)用程序時(shí),靜態(tài)分析方法可能會(huì)失去其有效性,因?yàn)檫@些樣本的源代碼是加密和隱藏的.因此,研究人員通常采用動(dòng)態(tài)分析方法處理這些樣本.動(dòng)態(tài)分析方法可以繞過源代碼分析,直接在運(yùn)行時(shí)分析測試樣本的行為.然而,動(dòng)態(tài)分析的執(zhí)行通?;诠潭ǖ淖詣?dòng)化測試腳本,其測試覆蓋范圍不如靜態(tài)分析方法全面.此外,在某些情況下,測試工具可能無法觸發(fā)惡意行為,例如,缺少必要的系統(tǒng)事件或交互操作.此外,動(dòng)態(tài)分析需要運(yùn)行測試樣本來執(zhí)行特征提取,這一過程非常耗時(shí),需要大規(guī)模硬件設(shè)備作為支撐[9].

傳統(tǒng)安卓惡意應(yīng)用檢測方法是從樣本中采集大量原始特征,然后訓(xùn)練分類模型(包括常見的機(jī)器學(xué)習(xí)算法與神經(jīng)網(wǎng)絡(luò)).然而這些方法忽略了惡意應(yīng)用代碼自身所攜帶的語義信息,因此在準(zhǔn)確率方面還有待提高.鑒于此,Christodorescu等人[10]在2005年提出基于語義感知的惡意應(yīng)用檢測方法,用于檢測Windows惡意應(yīng)用.隨著Word2vec,Doc2vec等一系列自然語言分析工具的出現(xiàn),越來越多的研究人員將相關(guān)技術(shù)應(yīng)用到惡意應(yīng)用的檢測中,他們對樣本的原始特征進(jìn)行2次挖掘,采用分布式表征(distributed representation)[11]的方式表征惡意應(yīng)用特征語義,從而對惡意性進(jìn)行分析.Raghav等人[12]從安卓應(yīng)用的manifest文件與dex文件提取語義特征,用于應(yīng)用的惡意性判斷.根據(jù)類似的研究思路,本文從安卓樣本的源代碼提取opcode指令序列,然后從指令序列中提取語義摘要進(jìn)行分析.

本文方法提出的假設(shè)是代碼指令如同自然語言中的詞匯,代碼指令不僅包含豐富的語義,并且嚴(yán)格遵循編程語法.如果將自然語言處理中的嵌入(embedding)方法借鑒過來,就可以計(jì)算出每個(gè)指令的嵌入向量,并且可以在高維空間中比較不同指令之間的相似性.進(jìn)一步,利用段落嵌入(paragraph embedding)算法,得出不同代碼片段的低維特征向量表示方法,比較不同代碼片段之間的空間距離,從而得出代碼行為相似性.基于上述假設(shè),本文提出一種基于指令序列嵌入的算法,用于發(fā)現(xiàn)代碼指令之間存在的隱藏結(jié)構(gòu).本文方法基于靜態(tài)分析手段,無需運(yùn)行應(yīng)用程序提取特征,計(jì)算開銷低.特別地,本文對比多種機(jī)器學(xué)習(xí)算法,分析不同特征維度對惡意應(yīng)用識別系統(tǒng)的影響,并使用超參數(shù)優(yōu)化算法訓(xùn)練出最優(yōu)分類模型,以有效、高效的方式判斷樣本是否具有惡意.

本文的主要貢獻(xiàn)概括如下:

1) 使用指令序列嵌入方法檢測安卓惡意應(yīng)用.指令序列嵌入方法借鑒自然語言處理中的嵌入原理,對代碼指令序列進(jìn)行嵌入,提取代碼中豐富的語義表達(dá).

2) 使用average pooling算法計(jì)算樣本代碼的語義摘要.該摘要以向量形式表征樣本代碼行為,因而可以從數(shù)值角度反映樣本代碼行為語義.

3) 通過大量實(shí)驗(yàn)證明了指令序列嵌入方法的有效性.在檢測惡意樣本過程中,本文方法的F1得分達(dá)到0.952.

1 相關(guān)研究

1.1 基于代碼特征的檢測方法

Arp等人[9]提出一種輕量級的安卓惡意應(yīng)用檢測框架Drebin.Drebin對安卓應(yīng)用進(jìn)行靜態(tài)分析,從dex文件和manifest文件中收集特征,如使用權(quán)限、API調(diào)用以及組件調(diào)用意圖,用于構(gòu)建特征向量,最后采用支持向量機(jī)作為分類模型.李劍等人[13]提出一種基于權(quán)限分析的安卓惡意應(yīng)用檢測方法,該方法從AndroidManifest.xml文件中提取權(quán)限特征,并使用特征選擇算法優(yōu)化特征,最終在多個(gè)機(jī)器學(xué)習(xí)算法上展開實(shí)驗(yàn),取得了良好效果.王柯林等人[14]提出一種可對抗混淆的安卓惡意應(yīng)用檢測方法,該方法選用高危權(quán)限、敏感API、Service、Activity、Intent、短信發(fā)送頻率等作為特征,然后選擇多個(gè)機(jī)器學(xué)習(xí)分類模型對混淆數(shù)據(jù)集進(jìn)行測試,最終證明該方法可有效對抗混淆技術(shù).Li等人[15]使用高風(fēng)險(xiǎn)API和高風(fēng)險(xiǎn)權(quán)限作為特征,通過分析,最終收集了237個(gè)重要特征,并且利用深度學(xué)習(xí)算法取得良好的識別效果.陳澤峰等人[16]提出一種基于多維特征協(xié)作的輕量級安卓惡意應(yīng)用檢測方法,該方法使用多級別的不同分類模型實(shí)現(xiàn)對未知樣本的快速、精確檢測,文中使用的特征包括應(yīng)用申請權(quán)限、運(yùn)行時(shí)權(quán)限,操作碼序列等,用于機(jī)器學(xué)習(xí)模型的訓(xùn)練.

1.2 基于語義特征的檢測方法

Raghav等人[12]提出一種基于文檔向量的安卓惡意應(yīng)用檢測方法.該研究分別從classes.dex和AndroidManifest.xml文件中提取頭部32000個(gè)字節(jié)作為樣本特征,之后使用PV-BoW算法生成這2個(gè)文件的文檔向量,最后使用機(jī)器學(xué)習(xí)與深度學(xué)習(xí)算法對應(yīng)用惡意性進(jìn)行判斷.Kakisim等人[17]提出一種基于連續(xù)操作碼嵌入的Windows惡意應(yīng)用檢測方法.該方法將連續(xù)的opcode以圖的形式進(jìn)行表達(dá),通過隨機(jī)游走算法選擇權(quán)重相對較高的一批opcode序列,將這批opcode序列進(jìn)行嵌入,接著選擇固定個(gè)數(shù)的向量作為樣本特征,最后使用深度學(xué)習(xí)算法對樣本進(jìn)行惡意性判斷.Alam等人[18]提出一種基于自然語言處理的安卓惡意應(yīng)用模式檢測方法,將安卓應(yīng)用程序代碼中的控制流類比于自然語言中的詞匯,多個(gè)控制流組成自然語言中的1個(gè)句子,基于這種思想使用Doc2vec將樣本轉(zhuǎn)成向量形式,最后通過構(gòu)建相似度模型來判斷應(yīng)用惡意性.

2 預(yù)備知識

2.1 Word2vec模型

Word2vec[19]是一種經(jīng)典的詞向量生成模型.詞嵌入(word embedding)是將自然語言中的符號轉(zhuǎn)換成數(shù)值形式的過程.詞向量則是詞嵌入之后輸出的數(shù)值表達(dá),詞向量模型基于自然語言中的1個(gè)概念,即1個(gè)詞的含義可以從其上下文語義環(huán)境推斷得出.Word2vec實(shí)現(xiàn)了詞的分布式表征表示方法,該方法訓(xùn)練出的詞向量維度更低,信息密度更高,相比于傳統(tǒng)的one-hot編碼方式,該方法在語義提煉與信息保留方面都有較大的提升.Word2vec在訓(xùn)練過程中,利用詞的上下文詞匯信息,使得訓(xùn)練出的嵌入模型語義信息更加豐富.Word2vec包含以下2個(gè)重要模型:

2.1.1 CBOW模型

CBOW模型使用中心詞匯前后的詞匯來預(yù)測中心詞,即模型的輸入為中心詞匯上下文對應(yīng)的詞向量,輸出則是中心詞匯的詞向量.CBOW模型設(shè)置1個(gè)滑動(dòng)窗口,每次滑動(dòng)時(shí)選擇中心詞匯作為輸出,滑動(dòng)窗口內(nèi)其他詞匯則是該中心詞匯的上下文,用作模型訓(xùn)練時(shí)的輸入.經(jīng)過多次迭代訓(xùn)練之后,模型中的隱含層就成了單詞的詞向量.

2.1.2 Skip-gram模型

Skip-gram與CBOW恰好相反,它是利用中心詞來預(yù)測上下文詞匯.Skip-gram同CBOW模型一樣,也有滑動(dòng)窗口概念,不同的是不是每次都預(yù)測1個(gè)單詞,而是使用其中1個(gè)單詞來預(yù)測滑動(dòng)窗口內(nèi)的其他單詞.在效率上,Skip-gram相較CBOW要低,但是對于出現(xiàn)頻率不高的單詞,其輸出更為準(zhǔn)確.

圖1 ISEDroid工作流程

2.2 Doc2vec模型

Doc2vec[20]是Mikolov等人[21]基于Word2vec模型提出的一種擴(kuò)展模型,用于訓(xùn)練段落向量(paragraph vector).該模型用于訓(xùn)練一個(gè)能夠使用向量來表示不同文檔的嵌入模型,解決了Word2vec模型在生成句向量時(shí)語序丟失的問題[21].和Word2vec類似,Doc2vec也包含2種訓(xùn)練方式,分別為分布記憶段落向量和分布詞袋版本段落向量.

2.2.1 分布記憶段落向量模型

分布記憶段落向量模型(distributed memory model of paragraph vector, PV-DM)訓(xùn)練句向量的方法和Word2vec的CBOW詞向量訓(xùn)練方法類似.在CBOW的基礎(chǔ)上,PV-DM加入段落向量的概念,每個(gè)段落向量對應(yīng)訓(xùn)練集的1段文本,段落向量可以認(rèn)為是1個(gè)詞向量,可以看作是句子的主題.每次訓(xùn)練時(shí)句子的主題都作為輸入的一部分來訓(xùn)練.如此,可以同時(shí)訓(xùn)練詞向量與句向量.

2.2.2 分布詞袋版本段落向量模型

分布詞袋版本段落向量模型(distributed bag of words version model of paragraph vector, PV-DBOW)和Word2vec的Skip-gram訓(xùn)練方法類似.Skip-gram使用滑動(dòng)窗口內(nèi)的中間詞來預(yù)測上下文詞匯,PV-DBOW則是用段落向量來預(yù)測文本中任意詞匯的向量,其訓(xùn)練過程為:設(shè)置1個(gè)滑動(dòng)窗口,從段落中采樣該窗口的1段文字,再從這個(gè)窗口中隨機(jī)選擇1個(gè)詞匯作為輸出,輸入則是段落向量,然后不斷迭代訓(xùn)練模型.

3 系統(tǒng)設(shè)計(jì)

3.1 系統(tǒng)總覽

本節(jié)詳細(xì)給出基于指令序列嵌入的安卓惡意應(yīng)用檢測方法的實(shí)現(xiàn)過程,將實(shí)現(xiàn)后的框架命名為ISEDroid(ISE, instruction sequence embedding).圖1為ISEDroid的工作流程圖,ISEdroid主要通過靜態(tài)代碼分析方法對惡意應(yīng)用進(jìn)行識別.對每個(gè)樣本通過apktool獲得dex文件后,ISEDroid使用baksmali反編譯dex文件獲得Smali代碼;從Smali代碼中提取出所有Java方法的Dalvik操作碼序列;接著將提取到的操作碼序列轉(zhuǎn)換成句向量;然后通過average pooling的方式從每個(gè)樣本的句向量獲得樣本的代碼行為摘要;最后將代碼行為摘要用于機(jī)器學(xué)習(xí)模型的訓(xùn)練和預(yù)測.

3.2 Smali特征提取

Smali是安卓Dalvik字節(jié)碼反編譯之后的匯編程序,可以通過baksmali等反編譯工具轉(zhuǎn)換生成.一個(gè)反編譯后的Smali文件代表Java語言中的1個(gè)類,準(zhǔn)確說為1個(gè).class文件.每個(gè)Java類中的方法都由若干行字節(jié)碼指令序列組成,并且字節(jié)碼指令序列由Dalvik操作碼和操作數(shù)構(gòu)成.同類惡意應(yīng)用的運(yùn)行時(shí)行為存在較大相似性,這意味著類似邏輯的指令序列也存在較大的相似性,但由于2次開發(fā)或者重打包等原因,指令行的操作數(shù)存在較大差異.因此,本文在提取Smali指令序列時(shí),只保留opcode.按照詞嵌入模型的做法,可以將每行的opcode作為1個(gè)單詞,1個(gè)Java方法內(nèi)的指令序列組成1段語句,該語句可以通過段落嵌入模型生成1段句向量,用于表示該代碼片段的語義.本文采用Smali解析工具,從每個(gè)樣本的Smali文件提取出所有的opcode序列,作為原始的樣本特征,用于后續(xù)指令嵌入步驟中使用.

3.3 指令序列嵌入

在進(jìn)行指令序列嵌入之前,首先需要構(gòu)建語料庫,即從所有的樣本opcode序列中找出所有非重復(fù)序列.構(gòu)建過程如式(1)所示:

(1)

其中,N為用于生成語料庫的樣本總數(shù),si為第i個(gè)樣本所有的opcode序列.

當(dāng)語料庫Dcorpus構(gòu)建完畢之后,使用Doc2vec模型進(jìn)行段落嵌入模型構(gòu)建.最后,采用average pooling算法處理樣本代碼片段的嵌入向量,實(shí)現(xiàn)過程如式(2)所示:

(2)

其中,Ω為1個(gè)樣本中提取的所有代碼片段向量,vi為該樣本第i個(gè)代碼片段向量,輸出結(jié)果V為樣本代碼行為的語義摘要,作為后續(xù)分類模型的輸入.

3.4 超參數(shù)優(yōu)化

在機(jī)器學(xué)習(xí)模型的應(yīng)用中存在2類參數(shù),分別為模型參數(shù)與模型超參數(shù).模型參數(shù)是模型內(nèi)部的變量,可以通過模型訓(xùn)練達(dá)到最優(yōu);而模型超參數(shù)為模型外部參數(shù),需要人工指定.在模型訓(xùn)練前對超參數(shù)進(jìn)行優(yōu)化極為重要,這是由于合適的超參數(shù)對模型的性能影響較大.模型的超參數(shù)優(yōu)化是機(jī)器學(xué)習(xí)技術(shù)應(yīng)用中的一個(gè)難點(diǎn).模型的超參數(shù)優(yōu)化是通過評估算法從多組候選超參數(shù)中選擇1組最佳超參數(shù)的過程,雖然超參數(shù)的數(shù)量有限,但由于其取值的范圍較大,將產(chǎn)生大量組合,對計(jì)算效率而言將是一大挑戰(zhàn).

傳統(tǒng)的調(diào)參方式有Grid search和Random search.Grid search通過全空間掃描的方式進(jìn)行搜索,搜索過程極為耗時(shí),效率低下;而Random search則是從候選集中隨機(jī)抽選進(jìn)行評估,特點(diǎn)是速度快,但容易陷入局部最優(yōu).為了解決上述難題,本文使用啟發(fā)式超參數(shù)搜索框架Hyperopt.Hyperopt使用貝葉斯優(yōu)化算法來調(diào)整參數(shù),可在參數(shù)空間上進(jìn)行串行和并行搜索,該方法迭代次數(shù)少且收斂速度快.表1所示為ISEDroid所采用的機(jī)器學(xué)習(xí)算法的超參數(shù).在超參數(shù)搜索過程中,使用K折交叉驗(yàn)證方法選擇最佳超參數(shù),將K折交叉驗(yàn)證結(jié)果的均值作為模型表現(xiàn)的評估手段,從而對不同模型進(jìn)行對比.使用K折交叉驗(yàn)證方法,在一定程度上能夠消除輸出結(jié)果產(chǎn)生的偶然性.

表1 ISEDroid所采用的機(jī)器學(xué)習(xí)算法的超參數(shù)

續(xù)表1

4 實(shí)驗(yàn)評估

本節(jié)對ISEDroid的性能進(jìn)行系統(tǒng)評估,ISEDroid的實(shí)驗(yàn)工作在服務(wù)器上完成.該服務(wù)器的CPU型號為Intel?Xeon?Gold 6230R,擁有2個(gè)處理器、104個(gè)CPU核心,基準(zhǔn)時(shí)鐘頻率為2.1 GHz,內(nèi)存大小為503 GB,操作系統(tǒng)為Ubuntu 18.04 LST.本實(shí)驗(yàn)使用的Python庫有:hyperopt,版本0.2.7,為超參數(shù)優(yōu)化的模型庫;scikit-learn,版本0.24.2,為多種常見機(jī)器學(xué)習(xí)模型的官方庫;lightgbm,版本3.3.2,為LightGBMClassifier模型的官方庫;xgboost,版本1.4.2,為XGBoostClassifier模型的官方庫;gensim,版本4.1.2,為Doc2vec模型的官方庫.

4.1 數(shù)據(jù)集

本文將從Google Play上獲得的1 462個(gè)有效安卓應(yīng)用程序作為良性應(yīng)用,標(biāo)記為Sg.為了從這些應(yīng)用程序中排除潛在的惡意應(yīng)用,本文將每個(gè)應(yīng)用程序發(fā)送給VirusTotal.VirusTotal囊括了70個(gè)以上的反病毒檢測引擎,當(dāng)且僅當(dāng)所有防病毒掃描程序未檢測到可疑行為時(shí),該應(yīng)用程序才被標(biāo)記為良性.對于惡意應(yīng)用程序,本文采用了Malgenome項(xiàng)目[22]提供的樣本集,該安卓惡意應(yīng)用樣本集由1 259個(gè)有效惡意應(yīng)用程序組成,標(biāo)記為Sm.為了方便后面的實(shí)驗(yàn),本文將上述2 721個(gè)樣本分成Strain和Stest,Strain包含1 314個(gè)良性樣本與1 133個(gè)惡意樣本,占總樣本數(shù)的90%;Stest包含148個(gè)良性樣本與126個(gè)惡意樣本,占總樣本數(shù)的10%.

4.2 分類模型選擇與優(yōu)化

本節(jié)通過實(shí)驗(yàn)的方式詳細(xì)給出了ISEDroid執(zhí)行過程,并且通過特征提取、模型選擇以及超參數(shù)優(yōu)化等一系列方法,訓(xùn)練出1個(gè)最優(yōu)的惡意應(yīng)用分類模型.在本實(shí)驗(yàn)中,分別從樣本集Strain和Stest中提取Smali代碼片段,執(zhí)行提取特征操作.提取后的代碼片段長度分布如圖2所示:

圖2 樣本內(nèi)Smali片段數(shù)以及代碼序列中指令數(shù)分布

本文使用式(1)在訓(xùn)練集Strain上提取數(shù)據(jù)集語料庫,然后使用Doc2vec對語料庫進(jìn)行數(shù)據(jù)集的構(gòu)建,Doc2vec使用的訓(xùn)練模型為gensim默認(rèn)選項(xiàng),即PV-DM.訓(xùn)練出對應(yīng)的句向量生成模型.接著,對每個(gè)樣本代碼片段的句向量使用式(2)求均值,得出該樣本代碼行為的語義摘要.將樣本轉(zhuǎn)化成向量形式,用于構(gòu)建特征矩陣,本文將此特征矩陣命名為數(shù)據(jù)集Dtrain.

圖3 模型超參數(shù)優(yōu)化迭代時(shí)損失函數(shù)收斂過程

當(dāng)獲得優(yōu)化后的超參數(shù)之后,本文將該最優(yōu)模型放到訓(xùn)練集Dtrain上進(jìn)行訓(xùn)練,以獲得最終的分類模型.為對比各個(gè)模型最終表現(xiàn),本文使用測試集Dtest作為驗(yàn)證數(shù)據(jù)集.對Dtest進(jìn)行預(yù)測時(shí)采用F1分?jǐn)?shù)作為評估指標(biāo),結(jié)果如表2所示.表2示出不同機(jī)器學(xué)習(xí)算法在不同語義摘要向量維數(shù)的測試集上的F1分?jǐn)?shù).可以看出,Graident Boosting,LightGBM以及XGBoost均達(dá)到0.952的F1分?jǐn)?shù).鑒于特征維度越高,計(jì)算用時(shí)越長,因此選用XGBoost作為最優(yōu)分類器,數(shù)據(jù)集采用的特征維數(shù)為150.

表2 基于不同特征維數(shù)的Dtest的模型評估結(jié)果

4.3 同類研究對比

為了進(jìn)一步驗(yàn)證ISEDroid的有效性,本文將ISEDroid與Raghav等人[12]、李劍等人[13]的方案進(jìn)行對比.采用數(shù)據(jù)集Dtrain作為訓(xùn)練集,選用AUC(area under curve)作為表現(xiàn)評估指標(biāo),將Dtest作為測試集.本實(shí)驗(yàn)中,ISEDroid選擇模型XGBoost,特征維數(shù)為150;Raghav等人采用的分類模型為常規(guī)CNN網(wǎng)絡(luò),李劍等人采用的分類模型為隨機(jī)森林.實(shí)驗(yàn)結(jié)果如圖4所示,可以看出,ISEDroid的AUC得分明顯優(yōu)于Raghav等人的方案,略優(yōu)于李劍等人的方案.

圖4 本文方案與其他2種方案的對比結(jié)果

5 總 結(jié)

針對現(xiàn)有安卓惡意應(yīng)用日益增多的問題,本文提出一種輕量化的基于指令序列嵌入的安卓惡意應(yīng)用檢測框架ISEDroid.該框架利用自然語言處理中的嵌入模型提取代碼中豐富的語義表達(dá),通過average pooling算法得出樣本代碼行為的語義摘要.通過基于貝葉斯算法的超參數(shù)優(yōu)化框架優(yōu)化不同模型.通過實(shí)驗(yàn),本文選擇XGBoost作為最優(yōu)模型,并取得了0.952的F1分?jǐn)?shù).在與同類研究對比實(shí)驗(yàn)中,ISEDroid也取得了不錯(cuò)的表現(xiàn).ISEDroid為安卓惡意應(yīng)用檢測提供了有價(jià)值的研究方向.

猜你喜歡
安卓指令代碼
iPhone不卡的秘密曝光:安卓也能享受
《單一形狀固定循環(huán)指令G90車外圓仿真》教案設(shè)計(jì)
文物表情包
新機(jī)研制中總裝裝配指令策劃研究
安卓系統(tǒng)或成智能汽車標(biāo)配
關(guān)于ARM+FPGA組建PLC高速指令控制器的研究
神秘的代碼
一周機(jī)構(gòu)凈增(減)倉股前20名
一行代碼玩完19億元衛(wèi)星
近期連續(xù)上漲7天以上的股