自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

移動終端側(cè)的惡意軟件檢測

移動開發(fā) Android
傳統(tǒng)的Android惡意軟件檢測通?;谀J狡ヅ浠蛑讣y匹配的方法,需要采集惡意應(yīng)用并抽取相關(guān)特征,構(gòu)建惡意應(yīng)用特征庫,然后將待測應(yīng)用與特征庫進(jìn)行匹配,完成正常/異常應(yīng)用的二分類。其關(guān)鍵點在于如何選擇特征,并基于目標(biāo)特征進(jìn)行相似度計算。

?一、Android惡意軟件檢測方法

按照檢測算法的類型,可以將Android惡意軟件檢測方法分為傳統(tǒng)方法和基于人工智能算法的方法:

1. 傳統(tǒng)的Android惡意軟件檢測方法

傳統(tǒng)的Android惡意軟件檢測通?;谀J狡ヅ浠蛑讣y匹配的方法,需要采集惡意應(yīng)用并抽取相關(guān)特征,構(gòu)建惡意應(yīng)用特征庫,然后將待測應(yīng)用與特征庫進(jìn)行匹配,完成正常/異常應(yīng)用的二分類。其關(guān)鍵點在于如何選擇特征,并基于目標(biāo)特征進(jìn)行相似度計算。

Yajin等人[1]提出基于權(quán)限的行為足跡和啟發(fā)式過濾,檢測惡意軟件及惡意軟件家族;Peng等人[2]基于一些粗粒度的特征,如AndroidManifest.xml中申請的權(quán)限信息,引入風(fēng)險評分和風(fēng)險排名的概念,采用多種概率生成模型完成惡意軟件檢測;Chen等人[3] 提出了Pegasus模型,結(jié)合權(quán)限、API的上下文和順序,以及應(yīng)用程序和Android系統(tǒng)之間的交互信息,建立權(quán)限事件圖,自動檢測已知的惡意行為。這些方法都沒有關(guān)注Android惡意軟件的內(nèi)部程序邏輯。因此,Aafer等人[4]提出DroidAPIMiner模型,采用靜態(tài)分析的方法,基于字節(jié)碼內(nèi)的API級別信息,從惡意軟件庫中自動挖掘惡意軟件程序內(nèi)在的邏輯信息,并將其抽象為惡意模式,最終采用模式匹配的方法識別惡意軟件。Grace等人[5]提出RiskRanker模型, 將潛在風(fēng)險分為三級——高風(fēng)險、中風(fēng)險和低風(fēng)險,高風(fēng)險應(yīng)用利用Android平臺漏洞,采用指紋識別的方法進(jìn)行標(biāo)識;中風(fēng)險應(yīng)用不利用系統(tǒng)漏洞,但會造成用戶財務(wù)損失或敏感信息泄露,采用控制流圖識別應(yīng)用程序未提醒的敏感操作,進(jìn)行標(biāo)識;低風(fēng)險應(yīng)用與中風(fēng)險相似,但收集的信息通常是設(shè)備特定或通用、一般可用的個人信息。該模型更加細(xì)粒度地識別了惡意軟件,同時在發(fā)現(xiàn)0-day惡意軟件方面有一定的效果。

傳統(tǒng)檢測方法廣泛應(yīng)用于Android惡意軟件爆發(fā)初期,但存在一定的局限性:需要構(gòu)建并維護(hù)惡意應(yīng)用特征庫,隨著新的惡意應(yīng)用的出現(xiàn)而不斷更新,最終特征庫的數(shù)據(jù)也會逐漸龐大;由于規(guī)則和模式庫通常由專家人工選擇制定,特征較為淺層,無法有效應(yīng)對0-day惡意軟件,甚至無法抵抗代碼等對抗攻擊方法。

2. 基于人工智能算法的惡意軟件檢測方法

隨著人工智能技術(shù)的快速發(fā)展,深度學(xué)習(xí)算法廣泛應(yīng)用于各個領(lǐng)域并有著出色的表現(xiàn),越來越多的研究者開始探索基于人工智能算法的惡意軟件檢測方法。相較于傳統(tǒng)算法,人工智能方法通??梢宰詣荧@取復(fù)雜度更高的特征,更好地表征惡意軟件,從而實現(xiàn)更好地檢測效果。同時,通過人工智能算法可以挖掘更加深層次的隱含特征,更好地獲得惡意軟件家族的共有特征,從而在0-day惡意軟件檢測方面具有更好的性能表現(xiàn)。根據(jù)選擇的特征類型,又可以將其劃分為{0, 1}型特征、序列型特征和端到端模式[6]。

(1){0, 1}型特征

   每一個特征使用一個標(biāo)志位表示,非1即0, 1表示該特征存在,0表示不存在。特征的獲取主要通過Android應(yīng)用程序的配置文件AndroidManifest.xml和可執(zhí)行文件classes.dex,可以從xml文件中提取應(yīng)用申請的權(quán)限信息、硬件信息等,從反編譯的dex文件中獲取API特征、URL等。但{0, 1}型特征方法具有一定的局限性:一方面由于特征種類數(shù)量通常較多,因此{(lán)0,1}表示的樣本矩陣存在稀疏問題;另一方面,這種特征表示方法忽略了不同特征之間存在的相關(guān)性,影響最終模型的檢測性能。

(2)序列型特征

序列型特征關(guān)注應(yīng)用程序中的API序列或字節(jié)碼序列信息,從反編譯的dex文件中獲取API調(diào)用序列,構(gòu)建控制流圖;或是直接提取字節(jié)碼序列,將其映射為特征向量作為神經(jīng)網(wǎng)絡(luò)模型的輸入。對于序列型特征,可以采用自然語言處理領(lǐng)域的思想,從中獲取語義信息。比如Xu等人[7]提出DeepRefiner模型,在第二輪處理時先對字節(jié)碼序列進(jìn)行簡化,然后基于Word2Vec的思想進(jìn)行Skip-gram建模,將簡化后的字節(jié)碼轉(zhuǎn)換成向量表示,得到向量表示的序列,對應(yīng)于帶有語義信息的特征向量,最終采用LSTM模型完成訓(xùn)練和分類。Mariconti等人[8]則是基于API調(diào)用序列提出MaMaDroid模型,將API調(diào)用序列轉(zhuǎn)化概率作為特征,構(gòu)造馬爾科夫鏈,訓(xùn)練機(jī)器學(xué)習(xí)模型完成檢測。API調(diào)用序列特征對于0-day軟件的檢測起著重要的作用。因為在惡意軟件家族中,即使代碼實現(xiàn)有所差異,但其內(nèi)在的行為邏輯是相同的,API調(diào)用序列可以表達(dá)這種共有的重要行為特征,因此在檢測變種惡意軟件方面具有較好的性能。

(3)端到端模式

  端到端模式不需要復(fù)雜的特征預(yù)處理,直接使用原始apk二進(jìn)制碼,或是簡單截取/映射后的字節(jié)碼。在端到端模式中,通常可以采用CNN等圖像處理領(lǐng)域的經(jīng)典算法完成惡意軟件檢測。文獻(xiàn) [9][10]分別利用CNN模型提取局部區(qū)域內(nèi)的字節(jié)碼間特征和二進(jìn)制碼間特征,最終都取得了不錯的檢測準(zhǔn)確率。

二、Android惡意軟件檢測對抗攻擊

1.“道高一尺,魔高一丈”

隨著惡意軟件檢測技術(shù)的快速發(fā)展,攻擊者們開始研究如何繞過檢測模型,根據(jù)所采用的攻擊技術(shù)類型,可以分為混淆操作、梯度下降、基于生成對抗網(wǎng)絡(luò)訓(xùn)練和抗逆向技術(shù)等。

2. 混淆操作

通過在惡意軟件中添加許多良性軟件多存在的特征信息,或是與良性軟件特征相似度較高的特征,從而欺騙檢測模型。Chen等人[11]指出了一系列投毒操作,如AndroidManifest.xml文件中添加許多與軟件運行過程無關(guān)但多在良性軟件中出現(xiàn)的權(quán)限信息,或是在代碼中嵌入一些良性代碼段等,但隨著人工智能算法的應(yīng)用,這種簡單混淆操作逐漸難以繞過復(fù)雜模型的檢測。

Yang等人[12]提出特征模糊攻擊和進(jìn)化攻擊方法,其中特征模糊攻擊就是將惡意軟件中的一些特征轉(zhuǎn)化為良性軟件與惡意軟件共有的模糊特征,從而繞過檢測模型。文章選擇了四種重要類型特征(資源、觸發(fā)時間、觸發(fā)位置、依賴)和上下文特征,從中找出良性軟件與惡意軟件的共有部分,然后根據(jù)良性軟件的技術(shù)來計算不同特征的權(quán)重,在生成對抗樣本時,根據(jù)輸入軟件每個特征找到模糊特征集中最接近的模糊特征,將此特征修改為對應(yīng)模糊特征或修改其對應(yīng)的上下文特征, 從而達(dá)到混淆檢測模型的目的[6]。

3. 梯度下降

在對抗攻擊領(lǐng)域,基于梯度修改惡意軟件特征生成對抗樣本是常用的思想,主要針對白盒攻擊方法。Grosse等人[13]參考圖像領(lǐng)域基于雅各比顯著性圖的攻擊方法,計算雅各比矩陣,根據(jù)檢測模型對樣本的梯度獲得最佳擾動方向,從而添加對檢測結(jié)果顯著性最高的特征,迭代至欺騙模型。該方法主要針對{0,1}型特征,為避免修改或刪除特征后對軟件的正常運行造成影響,因此僅向惡意應(yīng)用軟件中添加特征。Chen等人[14]對該方法進(jìn)行了改進(jìn),提出AndroidHIV模型。該模型除了關(guān)注{0,1}特征外,還關(guān)注了API調(diào)用等序列型特征。

4. 基于生成對抗網(wǎng)絡(luò)訓(xùn)練

基于GAN模型的對抗攻擊方法在各領(lǐng)域都有廣泛的應(yīng)用,且有著不錯的性能表現(xiàn)。Hu等人[15]提出MalGAN模型,其結(jié)構(gòu)框架圖如圖所示,使用一個替代鑒別器來對應(yīng)原來的黑盒檢測模型,通過最小化損失函數(shù)盡可能接近原黑盒檢測模型;使用一個生成器生成惡意軟件樣本,降低模型檢測出惡意軟件的概率。通過該模型生成的對抗樣本都具有很好的表現(xiàn),甚至可以使有些檢測模型的檢出率達(dá)到0%。

圖片

圖1

5. 抗逆向技術(shù)

由于多數(shù)惡意軟件檢測技術(shù)都需要對dex可執(zhí)行文件進(jìn)行反編譯,然后從中獲取特征信息,因此一些Android惡意軟件可以采用抗逆向技術(shù)如代碼加殼等,逃避惡意軟件檢測模型。

三、問題與展望

1. Android惡意軟件檢測存在的問題

(1)特征選擇

無論是傳統(tǒng)的惡意軟件檢測方法,還是基于人工智能算法的惡意軟件檢測方法,都需要關(guān)注如何選擇特征已經(jīng)選擇何種特征可以達(dá)到較好的檢測效果。對于傳統(tǒng)方法來說,其關(guān)鍵就在于特征選擇,是選擇靜態(tài)特征、動態(tài)特征、還是結(jié)合二者,如何平衡特征計算復(fù)雜度與檢測準(zhǔn)確率,如何有效應(yīng)對代碼混淆、無用代碼注入等攻擊技術(shù),都值得我們進(jìn)行思考。而對于人工智能算法來說,雖然神經(jīng)網(wǎng)絡(luò)或機(jī)器學(xué)習(xí)方法可以自動獲取復(fù)雜度較高的深層特征,但仍需要選擇合適的特征抽取對象,比如是選擇API調(diào)用序列還是字節(jié)碼序列,最終都將對模型檢測結(jié)果造成影響。

(2)0-day惡意軟件檢測

對于0-day惡意軟件的檢測,是目前Android惡意軟件檢測領(lǐng)域的主要問題之一。傳統(tǒng)算法基于惡意應(yīng)用特征庫,進(jìn)行模式匹配或指紋匹配的方法,顯然無法有效應(yīng)對0-day惡意軟件。通常需要借助人工智能算法,獲取更深層的復(fù)雜特征,比如從API調(diào)用序列中獲取的語義信息等,深入理解惡意軟件家族的內(nèi)在邏輯,對0-day惡意軟件的檢測發(fā)揮著重要的作用。

(3)對抗攻擊

對抗攻擊對惡意軟件檢測模型造成了巨大的威脅,直接影響了模型的可用性。因此目前的Android惡意軟件檢測必須考慮如何防御對抗攻擊,在模型設(shè)計時就應(yīng)當(dāng)提高模型的魯棒性,根據(jù)用戶對模型的訪問場景(不限次數(shù)訪問和有限次數(shù)訪問)進(jìn)行針對性防御。

2. Android惡意軟件檢測的發(fā)展趨勢

(1)動態(tài)特征與靜態(tài)特征相結(jié)合

單一靜態(tài)特征與動態(tài)特征都存在一定的局限性,靜態(tài)特征沒有辦法獲取軟件在運行過程中的行為信息,而動態(tài)特征則無法全面覆蓋完整程序代碼,將動態(tài)特征與靜態(tài)特征相結(jié)合,才能同時獲取更加全面、完整的特征信息,使Android惡意軟件檢測更加高效和準(zhǔn)確。

(2)模型堆疊

單個惡意軟件檢測模型可能在某個方面有所欠缺,那就再堆疊一個在該方面表現(xiàn)良好的模型。堆疊模型集成了多種分類器,這些分類器并行計算獲得各自預(yù)測的概率,將這些概率作為特征輸入,通過堆疊分類器將每個模型的結(jié)果進(jìn)行融合,可以有效提高檢測模型的準(zhǔn)確率和魯棒性。

圖片

圖2

(3)針對不同應(yīng)用場景的惡意軟件檢測

Android惡意軟件檢測模型在實際應(yīng)用中,需要針對不同應(yīng)用場景設(shè)計不同量級的檢測方案。比如對于智能設(shè)備而言,由于其資源算力有限,普通的高開銷、高計算方法并不適用,需要設(shè)計輕量級的Android惡意軟件檢測方案;但對于安全廠商而言,系統(tǒng)安全性和檢測準(zhǔn)確率是更值得關(guān)注的指標(biāo),因此通常采用多層檢測方案,用復(fù)雜的特征和模型獲得更好的檢測性能。

參考文獻(xiàn)

[1]Yajin Z. Get Off of My Market: Detecting Malicious Apps in Official and Alternative Android Markets[C]//Network and Distributed System Security Symposium (NDSS).

[2]Peng H, Gates C, Sarma B, et al. Using probabilistic generative models for ranking risks of android apps[C]//Proceedings of the 2012 ACM conference on Computer and communications security. 2012: 241-252.

[3]Chen K Z, Johnson N M, D'Silva V, et al. Contextual policy enforcement in android applications with permission event graphs[C]//NDSS. 2013, 234.

[4]Aafer Y, Du W, Yin H. Droidapiminer: Mining api-level features for robust malware detection in android[C]//International conference on security and privacy in communication systems. Springer, Cham, 2013: 86-103.

[5]Grace M, Zhou Y, Zhang Q, et al. Riskranker: scalable and accurate zero-day android malware detection[C]//Proceedings of the 10th international conference on Mobile systems, applications, and services. 2012: 281-294.

[6]李佳琳, 王雅哲, 羅呂根, 等. 面向安卓惡意軟件檢測的對抗攻擊技術(shù)綜述[J]. 信息安全學(xué)報, 2021, 6(4): 28-43.

[7]Xu K, Li Y, Deng R H, et al. Deeprefiner: Multi-layer android malware detection system applying deep neural networks[C]//2018 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 2018: 473-487.

[8]Mariconti E, Onwuzurike L, Andriotis P, et al. Mamadroid: Detecting android malware by building markov chains of behavioral models[J]. arXiv preprint arXiv:1612.04433, 2016.

[9]McLaughlin N, Martinez del Rincon J, Kang B J, et al. Deep android malware detection[C]//Proceedings of the seventh ACM on conference on data and application security and privacy. 2017: 301-308.

[10]Hasegawa C, Iyatomi H. One-dimensional convolutional neural networks for Android malware detection[C]//2018 IEEE 14th International Colloquium on Signal Processing & Its Applications (CSPA). IEEE, 2018: 99-102.

[11]Chen S, Xue M, Fan L, et al. Automated poisoning attacks and defenses in malware detection systems: An adversarial machine learning approach[J]. computers & security, 2018, 73: 326-344.

[12]Yang W, Kong D, Xie T, et al. Malware detection in adversarial settings: Exploiting feature evolutions and confusions in android apps[C]//Proceedings of the 33rd Annual Computer Security Applications Conference. 2017: 288-302.

[13]Grosse K, Papernot N, Manoharan P, et al. Adversarial perturbations against deep neural networks for malware classification[J]. arXiv preprint arXiv:1606.04435, 2016.

[14]Chen X, Li C, Wang D, et al. Android HIV: A study of repackaging malware for evading machine-learning detection[J]. IEEE Transactions on Information Forensics and Security, 2019, 15: 987-1001.

[15]Hu W, Tan Y. Generating adversarial malware examples for black-box attacks based on GAN[J]. arXiv preprint arXiv:1702.05983, 2017.?

責(zé)任編輯:武曉燕 來源: 中國保密協(xié)會科學(xué)技術(shù)分會
相關(guān)推薦

2022-10-20 12:07:20

2015-11-06 10:56:03

2012-12-17 09:47:33

2014-03-13 09:28:34

2021-12-24 10:26:10

側(cè)載攻擊惡意軟件網(wǎng)絡(luò)攻擊

2015-07-22 10:33:04

2014-03-07 16:58:57

2012-05-02 10:05:41

2012-11-07 10:27:20

2013-05-31 10:05:30

2013-10-29 15:17:41

2021-11-18 14:01:25

網(wǎng)絡(luò)安全數(shù)據(jù)技術(shù)

2013-04-23 15:38:27

2017-02-28 12:41:03

2013-10-22 10:27:59

2012-11-19 13:25:21

2019-03-26 09:11:32

無文件惡意軟件

2010-12-24 09:14:17

用戶體驗UI設(shè)計檢測要素

2019-03-04 08:46:16

點贊
收藏

51CTO技術(shù)棧公眾號