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

?

Android惡意應(yīng)用智能化分析方法研究綜述

2023-10-31 11:40:12湯俊偉何儒漢
軟件導(dǎo)刊 2023年10期
關(guān)鍵詞:應(yīng)用程序機(jī)器深度

張 馳,湯俊偉,何儒漢,徐 微,黃 晉

(1.紡織服裝智能化湖北省工程研究中心;2.湖北省服裝信息化工程技術(shù)研究中心;3.武漢紡織大學(xué) 計算機(jī)與人工智能學(xué)院,湖北 武漢 430200)

0 引言

智能手機(jī)在日常生活的參與度越來越高,使用率迅速增加,大多數(shù)用戶使用社交、游戲、銀行、教育等手機(jī)應(yīng)用程序,包含許多敏感、有價值的數(shù)據(jù),例如聯(lián)系人信息、照片、銀行信息、密碼等。根據(jù)Statcounter 全球統(tǒng)計數(shù)據(jù)顯示,2022 年10 月全球移動操作系統(tǒng)市場份額Android 占有率為71.6%。目前,Android 成為了受惡意軟件影響最大的移動平臺,托管第三方應(yīng)用程序的開放架構(gòu)和應(yīng)用程序編程接口(API)[1],更是導(dǎo)致各種Android 惡意軟件產(chǎn)品的爆炸性增長[2]。這些惡意軟件執(zhí)行惡意活動,給用戶帶來了包括資費(fèi)消耗、隱私竊取、遠(yuǎn)程控制等巨大危害。

為此,本文將工作分為以下5 點:①總結(jié)Android 惡意應(yīng)用檢測使用靜態(tài)、動態(tài)分析方法提取的惡意應(yīng)用特征類型;②基于機(jī)器學(xué)習(xí)技術(shù)分析Android 惡意應(yīng)用研究;③分析、概述Android 惡意應(yīng)用分析模型的攻擊方法,從對抗攻擊、防護(hù)層面歸納與Android 惡意應(yīng)用檢測攻防相關(guān)的工作;④在共同數(shù)據(jù)集上,比較分析Android 惡意應(yīng)用的傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法,并歸納對抗分析的研究現(xiàn)狀;⑤討論Android 惡意應(yīng)用智能化分析方法領(lǐng)域的發(fā)展趨勢,從特征、數(shù)據(jù)集、分析模型方面對未來研究方向和挑戰(zhàn)進(jìn)行總結(jié)。

1 Android惡意應(yīng)用分析方法特征類型

1.1 靜態(tài)分析特征

靜態(tài)分析不涉及代碼執(zhí)行,是對應(yīng)用程序包進(jìn)行分析的過程,如圖1所示。

Fig.1 Process of static analysis圖1 靜態(tài)分析過程

靜態(tài)分析過程主要關(guān)注Android 應(yīng)用程序包(APK)中的清單文件和源代碼文件(class.dex)。清單文件包含有關(guān)權(quán)限、硬件組件的信息及有關(guān)包的其他詳細(xì)信息。源代碼文件包含所有編程代碼,例如API 信息、Intent、系統(tǒng)事件等,還可從應(yīng)用商店中提取元數(shù)據(jù)信息進(jìn)行靜態(tài)分析,以下示例為靜態(tài)分析特征及相關(guān)描述。

1.1.1 權(quán)限

應(yīng)用程序需請求各自的特定權(quán)限來執(zhí)行代碼,使得應(yīng)用程序在未經(jīng)用戶同意和批準(zhǔn)情況下,將無法執(zhí)行或運(yùn)行任何后臺活動[3-5]。

1.1.2 Intents

該數(shù)據(jù)用于組件活動、services 等之間進(jìn)行通信的消息對象,執(zhí)行需要系統(tǒng)干預(yù)或在其他操作開始時使用,通常用于分析應(yīng)用程序的惡意行為[3]。

1.1.3 硬件組件

例如,GPS、麥克風(fēng)、等可能會被惡意軟件應(yīng)用程序使用,研究和分析這些活動有助于識別惡意軟件應(yīng)用程序[3,6]。

1.1.4 API calls

將apk 文件中dex 文件轉(zhuǎn)換成Java 文件,從中提取API調(diào)用數(shù)據(jù)進(jìn)行靜態(tài)分析[3,5-8]。

1.1.5 數(shù)據(jù)流與函數(shù)調(diào)用圖

從classes.dex 文件中提取源代碼,創(chuàng)建語句依賴關(guān)系圖,假設(shè)語句為節(jié)點,控制流為節(jié)點路徑,將一種惡意代碼模式轉(zhuǎn)換為圖。創(chuàng)建數(shù)據(jù)流圖和與函數(shù)調(diào)用相關(guān)的圖來設(shè)計惡意應(yīng)用檢測方法[9-10]。

1.1.6 污點分析

污點分析是檢測來自源和接收器中敏感數(shù)據(jù)流的方法[11-12]。

1.1.7 操作碼(opcode)/URL

使用通過反匯編得到的dalvik 字節(jié)碼中的操作碼進(jìn)行分析,例如使用Java 代碼中的特定字符串測試、分析網(wǎng)絡(luò)流量[13-14]。

1.1.8 Java字節(jié)碼/APK-API圖像

將Java 字節(jié)碼轉(zhuǎn)換為圖像用于檢測,將源代碼中的對象和類,根據(jù)清單文件的有關(guān)權(quán)限進(jìn)行分析或?qū)PK 文件的字節(jié)碼轉(zhuǎn)換為圖像[15],使用機(jī)器學(xué)習(xí)對圖像進(jìn)行分類[16]。

1.1.9 系統(tǒng)事件

從API 獲取系統(tǒng)服務(wù)(使應(yīng)用程序與系統(tǒng)交互)事件,作為分析特征[17-18]。

1.1.10 元數(shù)據(jù)信息

Android 應(yīng)用在應(yīng)用商店的信息,例如APK 名稱、開發(fā)者信息、評分、評論等,可能有助于分類應(yīng)用[3,6]。

1.2 動態(tài)分析特征

動態(tài)分析涉及代碼執(zhí)行與觀察,需要一個隔離環(huán)境來運(yùn)行應(yīng)用程序并實時觀察信息[3,19],相較于靜態(tài)分析更復(fù)雜,需要一些資源和技術(shù)組合來觀察并得出結(jié)論[20],主要將應(yīng)用程序安裝到沙箱或虛擬機(jī)中模擬用戶觸發(fā)行為,運(yùn)行應(yīng)用程序,并記錄監(jiān)控模擬運(yùn)行期間行為。以下為用于動態(tài)分析的主要特征及相關(guān)描述,圖2為動態(tài)分析過程。

Fig.2 Process of dynamic analysis圖2 動態(tài)分析過程

1.2.1 系統(tǒng)調(diào)用

通過收集系統(tǒng)調(diào)用日志,使用系統(tǒng)調(diào)用分析檢測惡意活動。

1.2.2 信息流

在污點分析情況下觀察源和目的地。在網(wǎng)絡(luò)流量分析中,分析數(shù)據(jù)包大小、類型、進(jìn)出的頻率等參數(shù)[12]。

1.2.3 函數(shù)調(diào)用

使用API 框架動態(tài)監(jiān)測函數(shù)調(diào)用情況,跟蹤使用參數(shù),重建函數(shù)調(diào)用序列用于分析[3]。

1.2.4 依賴圖

為特定的敏感代碼片斷創(chuàng)建控制流圖,使用該圖對應(yīng)用程序進(jìn)行分析分類[21]。

1.2.5 硬件組件

分析運(yùn)行的硬件組件、系統(tǒng)參數(shù),例如電池數(shù)據(jù)[3]、內(nèi)存的利用率、應(yīng)用程序內(nèi)存等。

1.2.6 API和權(quán)限

應(yīng)用程序執(zhí)行時使用的權(quán)限和調(diào)用的API[22-23]。

1.2.7 通信

短信、電話、URLs、WiFi、GPS 和藍(lán)牙能連接系統(tǒng)與外部實體,可作為單一或多個因素的組合進(jìn)行觀察,以達(dá)到檢測目的[23-24]。

1.2.8 代碼注入

在源代碼中注入特殊代碼,運(yùn)行時執(zhí)行該代碼跟蹤目標(biāo)API,并為分析過程創(chuàng)建日志以檢測惡意行為[25]。

2 基于機(jī)器學(xué)習(xí)的Android惡意應(yīng)用檢測

2.1 傳統(tǒng)機(jī)器學(xué)習(xí)

動態(tài)分析的低代碼覆蓋率和低效率,限制了基于動態(tài)特征的惡意應(yīng)用檢測方法的大規(guī)模部署[26]。因此,研究者開始利用靜態(tài)分析和機(jī)器學(xué)習(xí)提出大量的檢測方法[27-29]。機(jī)器學(xué)習(xí)是在惡意應(yīng)用檢測過程中應(yīng)用程序分類技術(shù),包括訓(xùn)練和測試[30]兩個主要模塊。其中,在訓(xùn)練模塊從特征集中學(xué)習(xí)良性和惡意應(yīng)用程序的行為;在測試模塊中對新的應(yīng)用程序進(jìn)行相應(yīng)分類[31],測試算法準(zhǔn)確性。

現(xiàn)有方法已探索了豐富的靜態(tài)特征[21,32-33],根據(jù)這些特征可構(gòu)建基于各種機(jī)器學(xué)習(xí)算法的檢測模型,如表1所示。

Table 1 Investigation results of traditional machine learning for Android malicious application detection表1 傳統(tǒng)機(jī)器學(xué)習(xí)進(jìn)行Android惡意應(yīng)用檢測的調(diào)查結(jié)果

Rana 等[28]比較各種機(jī)器學(xué)習(xí)算法在惡意應(yīng)用檢測領(lǐng)域情況下的性能發(fā)現(xiàn),支持向量機(jī)(Support Vector Machine,SVM)、隨機(jī)森林(Random Forest,RF)和K 最鄰近(K-NearestNeighbo,KNN)相較于其他算法表現(xiàn)良好,準(zhǔn)確率超過90%。Kumar 等[34]使用機(jī)器學(xué)習(xí)比較各種算法的提取結(jié)果,發(fā)現(xiàn)SVM 表現(xiàn)更好,準(zhǔn)確率超過95%。

針對特征間的相關(guān)性及特征權(quán)重的計算,Cai 等[4]采用靜態(tài)分析方法,從APK 文件中提取8 個類別的原始特征,使用信息增益(Information Gain,IG)選擇一定數(shù)量的最重要特征,通過機(jī)器學(xué)習(xí)模型計算每個選定特征的初始權(quán)重并使用權(quán)重映射函數(shù)將初始權(quán)重映射到最終權(quán)重,最后使用差分進(jìn)化(Different Evolution,DE)算法聯(lián)合優(yōu)化權(quán)重,映射函數(shù)和分類器的參數(shù),在Drebin[28]、AMD[35]上均取得96%以上的精確率。

此外,Chawla 等[36]提出一種基于信號處理和機(jī)器學(xué)習(xí)的方法,利用嵌入式設(shè)備的電磁發(fā)射來遠(yuǎn)程檢測設(shè)備上運(yùn)行的惡意應(yīng)用程序,開發(fā)了基于快速傅里葉變換的特征提取方法,使用SVM、RF 模型檢測惡意應(yīng)用。Taheri 等[37]使用漢明距離尋找惡意樣本間的相似性,提出第一最近鄰、所有最近鄰、加權(quán)所有最近鄰和基于K-medoid 的最近鄰4種惡意應(yīng)用檢測方法,在Drebin 等3 個數(shù)據(jù)集上選取API、Intent 和Permission 特征進(jìn)行實驗,結(jié)果表明算法的準(zhǔn)確率均超過90%。

2.2 基于深度學(xué)習(xí)

深度學(xué)習(xí)在圖像分析、神經(jīng)機(jī)器翻譯及其他領(lǐng)域的突出貢獻(xiàn),為許多最先進(jìn)、基于人工智能的應(yīng)用奠定了基礎(chǔ)[38]。目前,各種深度學(xué)習(xí)結(jié)構(gòu)已應(yīng)用于Android 惡意應(yīng)用的檢測或分類,并取得了良好的效果,惡意應(yīng)用檢測深度學(xué)習(xí)體系結(jié)構(gòu)如圖3所示。

Fig.3 Malicious application detection based on deep learning architecture圖3 基于深度學(xué)習(xí)體系結(jié)構(gòu)的惡意應(yīng)用檢測

由圖3 可見,該方法相較于傳統(tǒng)機(jī)器學(xué)習(xí)方法,在Android 惡意應(yīng)用分析領(lǐng)域的應(yīng)用中具有以下優(yōu)點:①深度學(xué)習(xí)擅長學(xué)習(xí)應(yīng)用程序中更復(fù)雜模式的高級抽象表示[38];②深度學(xué)習(xí)能自動學(xué)習(xí)潛在表示,具有更強(qiáng)的泛化能力,極大減輕了研究者描述Android 應(yīng)用程序特征時繁瑣、主觀、易出錯的特征工程任務(wù)[15,39-40];③深度學(xué)習(xí)提供了針對不同任務(wù)定制特定結(jié)構(gòu)的靈活性。例如,可使用帶有詞嵌入包的長短期記憶(Long Short-Term Memory,LSTM)層,將Android 權(quán)限序列編碼成特征,然后將提取的特征通過非線性激活函數(shù)送入激活層全連接層進(jìn)行分類[17]。

Android 應(yīng)用的原始特征可直接輸入深度學(xué)習(xí)模型中,學(xué)習(xí)高級語義特征表示。一方面可通過反編譯從Android 應(yīng)用中提取操作碼序列,采用深度學(xué)習(xí)序列數(shù)據(jù)分類技術(shù)處理原始操作碼序列,從而實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)自動學(xué)習(xí)高級語義特征表示[40];另一方面通過反編譯應(yīng)用程序提取其中的classes.dex 字節(jié)碼,受自然語言處理(Natural Language Processing,NLP)或圖像分類技術(shù)的啟發(fā),使用編碼技術(shù)將classes.dex 字節(jié)碼編碼后的圖像送入深度神經(jīng)模型自動提取特征和學(xué)習(xí)[15]。

表2 為使用深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行Android 惡意應(yīng)用檢測或分類的調(diào)查研究,展示了每項研究的關(guān)鍵點和差異。

Table 2 Investigation results of Android malicious application detection or classification based on deep neural network model表2 基于深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行Android惡意應(yīng)用檢測或分類的調(diào)查結(jié)果

2.2.1 特征表示方法

向量化表示是Android 惡意應(yīng)用檢測或分類中最廣泛使用的表示方法。對于提取的語義字符串特征,矢量化表示可使用one-hot 編碼技術(shù)、詞頻—逆文檔頻率(TF-IDF)技術(shù)[41-42]或word2vec[17]等嵌入技術(shù)進(jìn)行構(gòu)造。

(1)基于圖像特征的表示。Iadarola 等[15]通過圖像表示移動應(yīng)用程序,利用梯度加權(quán)類激活映射(Grad-CAM)算法,定位圖像中對模型有用的顯著部分,還引入累積熱圖(Cumulative Heatmap)為分類器決策提供可解釋性支持。Vasan 等[16]將原始惡意軟件二進(jìn)制文件轉(zhuǎn)換為彩色圖像,結(jié)合數(shù)據(jù)增強(qiáng)方法微調(diào)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),檢測和識別惡意軟件家族,在不平衡IoT-android 移動應(yīng)用數(shù)據(jù)集上的準(zhǔn)確率超過97.35%。李默等[43]將DEX、XML 與JAR文件進(jìn)行灰度圖像化處理,使用Bilinear 插值算法放縮圖片尺寸,將3 張灰度圖合成一張三維RGB 圖像,通過結(jié)合SplitAttention 的ResNeSt 的算法進(jìn)行訓(xùn)練分類,在Drebin 數(shù)據(jù)集上的平均分類準(zhǔn)確率達(dá)到98.97%。

(2)基于函數(shù)調(diào)用序列的表示。Imtiaz 等[8]提出使用深度人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)檢測真實世界惡意應(yīng)用的方法DeepAMD,并在CICAndMal2019 數(shù)據(jù)集的實驗表明,該算法在靜態(tài)特征集上惡意應(yīng)用分類、惡意應(yīng)用類別分類、惡意應(yīng)用家族分類的最高準(zhǔn)確率分別為93.4%、92.5%和90%。此外,為惡意應(yīng)用程序分配家族標(biāo)簽,是將具有相同行為的惡意應(yīng)用歸為一類的常見做法。Mirzaei 等[44]提出從不同家族的聚合調(diào)用圖中提取敏感的API,調(diào)用集合的Android 惡意應(yīng)用家族表征系統(tǒng),指出移動勒索軟件和短信木馬類型惡意應(yīng)用的惡意操作不一定是同時使用多個敏感的API調(diào)用所執(zhí)行。

(3)基于圖結(jié)構(gòu)特征的表示。目前,各種圖結(jié)構(gòu)已被提出描述Android 應(yīng)用程序,例如API 調(diào)用圖、控制流圖(CFG)等,這些圖可直接提供給深度學(xué)習(xí)模型,相較于某些Android 惡意應(yīng)用中的規(guī)避技術(shù)具有更高的魯棒性。

Huang 等[9]通過選擇與惡意軟件相關(guān)的API 特征,并結(jié)合API 間的結(jié)構(gòu)關(guān)系,將它們映射到一個矩陣作為卷積神經(jīng)網(wǎng)絡(luò)分類器。具體為,基于API 的輸入特征圖選擇API 特征選擇,使用調(diào)和平均函數(shù)考慮惡意軟件的出現(xiàn)頻率及惡意與良性軟件間的出現(xiàn)頻率差異。Feng 等[45]通過輕量級靜態(tài)分析提取近似調(diào)用圖和函數(shù)內(nèi)語義信息來表示Android 應(yīng)用程序,并通過Word2Vec 進(jìn)一步提取所需權(quán)限、安全級別和Smali 指令的語義信息等函數(shù)內(nèi)屬性,以形成圖結(jié)構(gòu)的節(jié)點屬性,使用圖神經(jīng)網(wǎng)絡(luò)生成應(yīng)用程序的向量表示,然后在該表示空間上檢測惡意軟件。Pekta? 等[10]通過對Android 應(yīng)用程序進(jìn)行偽動態(tài)分析,為每個執(zhí)行路徑構(gòu)建API 調(diào)用圖,提取執(zhí)行路徑信息,并將圖嵌入用于訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)的低維特征向量,利用卷積層從圖嵌入矩陣中檢測、提取隱藏的結(jié)構(gòu)相似性,并依據(jù)組合卷積層發(fā)現(xiàn)的所有復(fù)雜局部特征來確定該應(yīng)用的屬性。Pei 等[5]提出一種基于聯(lián)合特征向量的新型深度學(xué)習(xí)框架AMalNet,在提取的所有權(quán)限、組件和API 靜態(tài)特征文本數(shù)據(jù)中,通過word2vec 嵌入技術(shù)將文本數(shù)據(jù)的詞、字符和詞匯特征作為圖的節(jié)點,并映射到向量中,集成圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolutional Networks,GCNs)與獨立循環(huán)神經(jīng)網(wǎng)絡(luò)(Independent Recurrent Neural Network,RNN,IndRNN)形成檢測模型。

2.2.2 數(shù)據(jù)集處理

訓(xùn)練數(shù)據(jù)可能包含噪聲標(biāo)簽,是基于機(jī)器學(xué)習(xí)的Android 惡意應(yīng)用檢測的一個常見問題。Xu 等[46]提出差分訓(xùn)練(Differential Training)作為通用框架,用于檢測、減少訓(xùn)練數(shù)據(jù)中的標(biāo)簽噪聲。差分訓(xùn)練在整個噪聲檢測訓(xùn)練過程中使用輸入樣本的中間狀態(tài),使用下采樣集來最大化錯誤標(biāo)記樣本與正確標(biāo)記樣本間的差異,并且異常值檢測算法不依賴一小組正確標(biāo)記的訓(xùn)練樣本。同時,使用SDAC[47]、Drebin 和DeepRefiner[39]這3 種不同的Android 惡意應(yīng)用檢測方法評估差異訓(xùn)練的有效性。在3 個不同的數(shù)據(jù)集的實驗結(jié)果表明,差分訓(xùn)練可將錯誤標(biāo)記的樣本大小分別減少到原始大小的12.6%、17.4%和35.3%,在對噪聲水平約為10%的訓(xùn)練數(shù)據(jù)集進(jìn)行降噪后,差異訓(xùn)練顯著提升了每種惡意應(yīng)用檢測方法的性能。

然而,缺乏惡意軟件源代碼是惡意應(yīng)用安全研究的一大阻礙。Rokon 等[48]提出有效識別惡意軟件源代碼存儲庫的監(jiān)督學(xué)習(xí)方法——SourceFinder,識別惡意軟件存儲庫的準(zhǔn)確率為89%,創(chuàng)建了擁有7 504 個存儲庫的非商業(yè)惡意軟件源代碼檔案庫,研究了惡意軟件存儲庫及其作者的基本屬性和趨勢。

3 Android惡意應(yīng)用檢測對抗攻擊與防護(hù)

3.1 對抗攻擊

對抗樣本攻擊是指故意對輸入樣本添加一些人無法察覺的細(xì)微干擾,導(dǎo)致模型以高置信度給出一個錯誤輸出。由于建立模型的內(nèi)在假設(shè)是訓(xùn)練和測試數(shù)據(jù)來自相同的分布,然而惡意樣本違反了這種假設(shè),在特征向量中激活一定數(shù)量的特征,使其逃避基于人工智能的惡意應(yīng)用檢測而不影響其惡意功能,因此惡意應(yīng)用檢測的機(jī)器學(xué)習(xí)模型可能會受到精心設(shè)計的對抗樣本攻擊。

在白盒攻擊中,假設(shè)對手擁有關(guān)于知識矩陣(知識矩陣由訓(xùn)練數(shù)據(jù)、特征集、ML/DL 算法的目標(biāo)函數(shù)和模型結(jié)構(gòu)等信息組成)的完整信息;而在黑盒攻擊中,假設(shè)對手不知道知識矩陣?;谀繕?biāo)的攻擊者可通過故意注入錯誤標(biāo)記的樣本來執(zhí)行針對訓(xùn)練階段的中毒攻擊,從而降低模型的檢測能力,還可執(zhí)行規(guī)避攻擊修改測試樣本以強(qiáng)制檢測模型錯誤分類。因此,在對抗攻擊時若能在任何實際任務(wù)部署前進(jìn)行驗證,將提升檢測模型的魯棒性。

表3為Android 惡意應(yīng)用檢測對抗攻擊調(diào)查研究結(jié)果,展示了每項研究的關(guān)鍵點及其差異。Hu 等[49]提出基于生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)的算法(MalGAN),生成對抗性的惡意軟件實例能繞過基于黑盒的機(jī)器學(xué)習(xí)檢測模型,通過替代檢測器適應(yīng)黑盒惡意軟件檢測系統(tǒng),能將檢測率降低到接近零,并使基于再訓(xùn)練的對抗性實例的防御方法難以發(fā)揮作用。Chen 等[50]直接在APK 的Dalvik 字節(jié)碼上擾動制作對抗樣本,以逃避從Dalvik 字節(jié)碼中收集特征(句法或語義特征)來捕獲惡意行為的檢測器,該方法成功地欺騙了Drebin、MaMaDroid[51]等基于機(jī)器學(xué)習(xí)的檢測方法。Grosse 等[18]擴(kuò)展了Papernot等[52]提出的方法,既調(diào)整了處理二進(jìn)制文件的功能,又保留了應(yīng)用程序的惡意功能,在Drebin 數(shù)據(jù)集應(yīng)用該攻擊的誤導(dǎo)比率高于63%。Demontis 等[53]針對關(guān)注0,1 型特征(1表示應(yīng)用存在某個特征,0表示不存在)的Drebin 模型指出一些潛在的攻擊場景,主要就混淆攻擊進(jìn)行研究,僅使用Android 應(yīng)用代碼混淆和加密工具DexGuard 對Drebin 產(chǎn)生一定干擾。

Table 3 Android malicious application counterattack investigation results表3 Android惡意應(yīng)用對抗攻擊調(diào)查結(jié)果

Chen 等[54]提出現(xiàn)實世界中的中毒攻擊表現(xiàn)為弱、強(qiáng)和復(fù)雜3 種類型,采用基于Jocobian 矩陣的對抗制作算法[52],在語義上以對抗攻擊的攻擊性為特征,使用語法特征生成偽裝樣本可在很大程度上模擬現(xiàn)實世界的攻擊,能誤導(dǎo)Drebin 和MaMaDroid 使用基于機(jī)器學(xué)習(xí)方法的檢測系統(tǒng)。Rathore 等[55]通過中毒/修改惡意樣本讓安卓惡意應(yīng)用檢測模型錯誤分類,使用經(jīng)典機(jī)器學(xué)習(xí)、集成(bagging &boosting)算法和深度神經(jīng)網(wǎng)絡(luò)構(gòu)建各種檢測模型使用規(guī)避攻擊策略,在12 種不同惡意應(yīng)用檢測模型的平均欺騙率均超過50%,基于決策樹的檢測模型欺騙率最高,達(dá)到68.54%。Severi 等[56]研究基于特征的機(jī)器學(xué)習(xí)惡意應(yīng)用分類器分析后門樣本中毒攻擊的敏感性,為解決攻擊者無法控制樣本標(biāo)記過程的干凈標(biāo)簽攻擊,提出與模型無關(guān)的基于特征使用可解釋機(jī)器學(xué)習(xí)的惡意應(yīng)用分類器來生成后門樣本,在Drebin 數(shù)據(jù)集中將30個特征后門樣本作為訓(xùn)練線性SVM 的原始545 K 維向量,在2%的中毒率下攻擊將后門樣本的模型準(zhǔn)確度平均降低到42.9%。

3.2 檢測防護(hù)

Sebastián 等[57]在AVclass 等[58]基礎(chǔ)上建立AVclass 2,使其從專門針對惡意應(yīng)用家族的惡意應(yīng)用標(biāo)記工具演變?yōu)閻阂鈶?yīng)用標(biāo)簽提取工具,自動從反病毒(Anti-Virus,AV)引擎的檢測標(biāo)簽中提取標(biāo)簽,并根據(jù)惡意應(yīng)用類別、系列、行為等分類惡意應(yīng)用樣本。

由于構(gòu)建了不封閉標(biāo)簽集的開放分類法,因此既可處理AV 供應(yīng)商隨時間推移引入的新標(biāo)簽,還能通過概括反病毒標(biāo)簽中發(fā)現(xiàn)的關(guān)系擴(kuò)展輸入分類法、標(biāo)記和擴(kuò)展規(guī)則。Demontis 等[53]針對規(guī)避攻擊提出對抗感知機(jī)器學(xué)習(xí)檢測器,通過更均勻分布的特征權(quán)重提升線性分類系統(tǒng)的安全性,甚至能確保在基于DexGuard 的混淆下仍然具有較強(qiáng)的魯棒性,所提出的安全學(xué)習(xí)范式減輕了規(guī)避攻擊的影響,在沒有攻擊的情況下還略微降低了檢測率。

Chen 等[54]提出兩階段迭代的基于對抗的檢測模型(KUAFUDET),引入自動偽裝檢測器過濾可疑的假陰性,并將其反饋到訓(xùn)練階段以解決對抗環(huán)境,增強(qiáng)了惡意軟件檢測系統(tǒng)的魯棒性,實驗表明該模型可顯著減少假陰性并將檢測準(zhǔn)確率提升至少15%。Grosse 等[18]使用DNN 訓(xùn)練的惡意軟件檢測模型的潛在防御機(jī)制,防御蒸餾和對抗再訓(xùn)練,實驗表明該方法降低了對抗樣本的錯誤分類率,但觀察到的改進(jìn)通??珊雎圆挥?。

相比之下,在對抗訓(xùn)練期間引入擾動,僅使用對抗制作的惡意軟件應(yīng)用程序訓(xùn)練模型就能提升算法的魯棒性。Rathore 等[55]針對對抗攻擊使用對抗再訓(xùn)練作為防御機(jī)制,以構(gòu)建穩(wěn)健的惡意應(yīng)用檢測模型。防御機(jī)制在12 種不同的檢測模型下將同一攻擊的平均欺騙率降低到1/3。Han 等[22]開發(fā)了FARM 的檢測器,提出基于標(biāo)志點的特征變換、基于特征值聚類的特征變換和基于關(guān)聯(lián)圖的特征變換3 種特征變換技術(shù),用于生成逆向工程難以得到的特征向量,面對偽造API 調(diào)用、權(quán)限請求和人為減少API 調(diào)用次數(shù)3種攻擊均表現(xiàn)出良好的魯棒性。

4 未來研究方向

4.1 更有效的特征組合方法

靜態(tài)分析對高級別混淆后的應(yīng)用局限性較高,難以保證動態(tài)分析代碼覆蓋率。然而,通過動態(tài)分析和靜態(tài)分析集成的方法可能是增強(qiáng)準(zhǔn)確性,減輕靜態(tài)、動態(tài)惡意應(yīng)用分析缺點的解決方案。因此,后續(xù)應(yīng)研究與Android 惡意應(yīng)用檢測相關(guān)的各種因素,例如通過不同策略進(jìn)行混合分析。

4.2 更完備數(shù)據(jù)集的生成方法

Android 惡意軟件仍在不斷演變,然而大多數(shù)研究并未公開研究數(shù)據(jù)集,缺乏基準(zhǔn)Android 惡意軟件數(shù)據(jù)集。如果能使用最新應(yīng)用程序創(chuàng)建數(shù)據(jù)集并公開,將對研究者評估所提技術(shù)具有極大幫助。在數(shù)據(jù)集處理方面,檢測并減少數(shù)據(jù)集中的標(biāo)簽噪聲能有效提升惡意應(yīng)用檢測方法的性能。此外,最新提出的Android 惡意應(yīng)用檢測研究在實際應(yīng)用具有重要意義,但當(dāng)前針對此類的研究較少、難度更大,有待深入研究。

4.3 更魯棒的深度學(xué)習(xí)分析模型

Android 惡意應(yīng)用程序使用的規(guī)避技術(shù),在惡意應(yīng)用開發(fā)者和安全研究者間引發(fā)了軍備競賽。目前,大多數(shù)機(jī)器學(xué)習(xí)模型對對抗示例缺乏魯棒性,在訓(xùn)練或測試階段可能發(fā)生對抗攻擊、中毒攻擊、規(guī)避攻擊、模擬攻擊、反轉(zhuǎn)攻擊等,因此深度學(xué)習(xí)算法需提升魯棒性和安全性以抵御上述攻擊。

目前,大多數(shù)對抗樣本只能欺騙依賴句法特征(請求的權(quán)限、API 調(diào)用等)的檢測方法,并且只能簡單地修改應(yīng)用程序清單實現(xiàn)擾動。雖然部分對抗樣本具有欺騙依賴語義特征(控制流圖)的機(jī)器學(xué)習(xí)檢測方法,但需要密切關(guān)注惡意應(yīng)用程序使用的創(chuàng)新規(guī)避技術(shù)、新型威脅、新型攻擊、防御對抗機(jī)器學(xué)習(xí)攻擊、防御對抗攻擊應(yīng)用檢測、抗混淆等方法,以便作好準(zhǔn)備對其采取防御措施。

4.4 可解釋深度學(xué)習(xí)的惡意應(yīng)用檢測

深度學(xué)習(xí)模型包含隱藏層,解釋算法在決策時缺乏透明度。如何提升深度學(xué)習(xí)模型的可解釋性(全局和局部可解釋性)和透明度,使其真正在實際場景中應(yīng)用,是未來的研究方向之一。此外,基于深度學(xué)習(xí)的算法需要持續(xù)再訓(xùn)練、細(xì)致調(diào)整超參數(shù)。同時,與Android 惡意應(yīng)用分類相關(guān)的維度縮減、處理不平衡數(shù)據(jù)等問題尚未被深入研究。

5 結(jié)語

由于移動應(yīng)用程序的指數(shù)級增長,移動惡意應(yīng)用已被認(rèn)為是對企業(yè)、政府和個人的主要網(wǎng)絡(luò)威脅之一。本文歸納了Android 惡意應(yīng)用檢測中靜態(tài)、動態(tài)分析常用的特征,分析了Android 惡意應(yīng)用的不同檢測技術(shù),對使用人工智能技術(shù)檢測Android 惡意應(yīng)用進(jìn)行了回顧,還討論了Android 惡意應(yīng)用阻礙分析、逃避檢測的能力與防護(hù)方法。此外,本文總結(jié)歸納了現(xiàn)有研究的優(yōu)勢與不足之處,強(qiáng)調(diào)從研究中獲得主要見解,并提出未來的研究方向。

猜你喜歡
應(yīng)用程序機(jī)器深度
機(jī)器狗
機(jī)器狗
深度理解一元一次方程
刪除Win10中自帶的應(yīng)用程序
電腦報(2019年12期)2019-09-10 05:08:20
深度觀察
深度觀察
未來機(jī)器城
電影(2018年8期)2018-09-21 08:00:06
深度觀察
無敵機(jī)器蛛
關(guān)閉應(yīng)用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
疏勒县| 县级市| 红桥区| 台东县| 来宾市| 曲阜市| 固阳县| 阳新县| 曲松县| 芮城县| 无锡市| 霍山县| 乐陵市| 永福县| 日土县| 南开区| 井陉县| 临漳县| 昭苏县| 宾川县| 汉寿县| 景德镇市| 武陟县| 宣城市| 虎林市| 化隆| 莆田市| 汽车| 同江市| 宜良县| 西丰县| 错那县| 建昌县| 即墨市| 那坡县| 深水埗区| 霍山县| 嘉鱼县| 仁化县| 云梦县| 民县|