亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向安卓惡意軟件檢測的對抗攻擊技術綜述

        2021-08-25 03:38:36李佳琳王雅哲羅呂根
        信息安全學報 2021年4期
        關鍵詞:樣本特征算法

        李佳琳,王雅哲,羅呂根,王 瑜

        1中國科學院信息工程研究所 北京 中國 100093

        2中國科學院大學 網絡空間安全學院 北京 中國 100049

        1 引言

        Android是Google推出的一款面向智能手機的開源操作系統(tǒng)。根據(jù)知名市場分析咨詢公司國際數(shù)據(jù)(IDC)的數(shù)據(jù)顯示,截至2018年,Android占據(jù)了全球智能手機市場份額的85%,5年的復合年增長率達到了2.4%,高于IOS的2.1%[1]。并且隨著萬物互聯(lián)時代的到來,Android系統(tǒng)的可擴展性和開放性為物聯(lián)網領域設備的生產提供了便利,因此目前Android已逐漸滲透到其他制造業(yè)領域,如車載系統(tǒng)、可穿戴設備、智能家電[2]等。

        Android設備的廣泛應用在帶來便利的同時也面臨著安全風險,其中最常見的就是Android惡意軟件。由于國內無法使用Google Play,Android用戶需要從第三方應用市場下載應用,而市面上許多應用市場存在審核不嚴的問題,這就使得惡意軟件有了可乘之機。不僅僅是國內的第三方應用市場存在大量惡意軟件,使用了嚴格審查機制以及系統(tǒng)內置惡意軟件檢測工具的Google Play上仍然被曝光出包含惡意軟件[2]。根據(jù)Google官方顯示,Google Play和其他應用市場中潛在有害應用(PHA)的比例為0.06%。目前來看,Android平臺上主要存在的惡意軟件有資費消耗、流氓行為、隱私竊取、惡意扣費、遠程控制等幾種類型。2018年上半年 360檢測到了 238.3萬個活躍的盜版app,全年共截獲新增惡意軟件樣本約434.2萬個,平均每天新增約1.2萬個; 累計監(jiān)測Android惡意軟件感染量約為1.1億人次,平均每日惡意軟件感染量約為29.2萬人次[3]。

        每年誕生的 Android惡意軟件數(shù)以百萬計,因此現(xiàn)在的安全公司或一些安全產品采用態(tài)勢感知的方式發(fā)現(xiàn)并定位Android惡意軟件。傳統(tǒng)的檢測方法一般通過提取apk配置文件以及源碼或程序控制流[4],使用確定的規(guī)則定位漏洞或惡意代碼。這種方法大多數(shù)需要安全專家預先制定的規(guī)則,建立龐大的數(shù)據(jù)庫進行指紋匹配。而惡意軟件開發(fā)者僅僅通過簡單的混淆就可以繞過上述自動化檢測方法[5-6]。隨著人工智能的高速發(fā)展,使用人工智能算法檢測惡意軟件具有較高的精確度和準確性,越來越多的安全產品嘗試使用人工智能算法來檢測惡意軟件。人工智能算法通過樣本庫的訓練能夠從靜態(tài)、動態(tài)多角度挖掘惡意軟件的抽象特征,能夠無視一些混淆操作精確定位到惡意代碼。并且使用人工智能算法的檢測模型具有良好的可擴展性,一部分算法在添加特征后甚至不需要再重新學習模型[7],流行的機器學習模型堆疊方法能夠將多數(shù)據(jù)集多模型結合為精度更高的模型。因此,當前人工智能算法在Android惡意軟件檢測方面具備很多傳統(tǒng)分析方法不具備的優(yōu)勢,越來越多的安全產品會采用人工智能算法。

        值得注意的是,最早在圖像識別領域由Goodfellow提出的對抗樣本的概念目前也被應用在了Android惡意軟件檢測當中。即通過添加一些不影響 Android軟件正常運行的擾動,使得算法模型無法識別出該軟件為惡意的。擾動在惡意軟件檢測算法的輸入層添加,對于輸入為權限特征的算法,擾動即應用申請的權限的修改; 對于輸入為控制流圖的算法,擾動為控制流的修改。盡管有一些關于防御對抗攻擊提高模型安全性的研究[8],但根據(jù)對抗樣本的生成原理,只要使用梯度的模型,無論是深度學習還是使用梯度更新的機器學習都會存在對抗樣本,同時對抗樣本的生成是由梯度確定擾動的方向,因此只要能夠根據(jù)模型的結構或模型的更新方式確定擾動方向的人工智能算法模型都面臨著對抗攻擊的風險。因此,增強基于人工智能算法的Android惡意軟件檢測模型的防對抗能力也是亟待研究的。

        本文主要有如下三部分的工作和貢獻:

        (1) 總結了Android惡意軟件檢測算法的發(fā)展變化,主要概述基于人工智能算法的Android惡意軟件檢測方法。

        (2) 針對目前新興的Android惡意軟件對抗攻擊進行了分析和概述,并總結了目前存在的Android惡意軟件領域的防對抗攻擊算法研究。

        (3) 討論了Android惡意軟件檢測與對抗攻擊領域的發(fā)展趨勢,指出對抗攻擊對目前Android惡意軟件檢測發(fā)展的影響。

        本文的組織結構如下: 第 2節(jié)描述相關背景知識,包括Android應用與傳統(tǒng)Android惡意軟件檢測方法; 第 3節(jié)指出目前利用人工智能算法進行Android惡意軟件檢測的相關研究; 第4節(jié)詳細綜述Android惡意軟件的對抗攻擊方法; 第5節(jié)從特征和算法兩方面總結針對 Android惡意軟件對抗攻擊的安全防護方法; 第6節(jié)思考和討論Android惡意軟件檢測以及對抗攻擊的發(fā)展趨勢,并指出對抗攻擊對目前Android惡意軟件檢測發(fā)展的影響; 第7節(jié)總結全文。

        2 背景知識

        2.1 Android平臺應用程序簡介

        Android應用通常由Java語言編寫,由Android SDK編譯,由虛擬機加載并解釋執(zhí)行。Android平臺上用于安裝Android應用程序的文件是一個后綴名為.apk的壓縮文件,其內包含 Android應用所有的數(shù)據(jù)和資源文件。通過解壓.apk文件可以得到以下結構:

        - assets: 用于存放需要打包到apk中的靜態(tài)文件

        - lib: 存放應用程序依賴的native庫文件,一般是用C/C++語言編寫

        - res: 存放資源文件。如存放Android應用布局xml文件

        - META-INF: 保存應用的簽名信息,簽名信息可以驗證APK文件的完整性

        - AndroidManifest.xml: Android應用的配置文件。聲明應用所申請的權限信息、硬件信息、SDK版本、包信息等; 描述應用的各個組件(activity、service、broadcast receiver和 content provider),向Android 系統(tǒng)告知有關組件以及可以啟動這些組件的條件的信息

        - classes.dex: Android應用程序的可執(zhí)行文件。java代碼首先會被編譯成.class文件,得到的類文件被翻譯成 Dalvik字節(jié)碼,最終合并為一個或多個可執(zhí)行dex文件

        - resources.arsc: 記錄資源文件和資源ID之間的映射關系,用來根據(jù)資源ID尋找資源

        由于AndroidManifest.xml含有Android應用程序的配置信息,classes.dex文件是Android應用程序的可執(zhí)行文件,均與應用行為特征關系及惡意程度緊密相關。因此Android的惡意軟件檢測模型通常以上述兩個文件為重點進行特征的分析和選擇。需要注意的是,由apk文件直接解壓縮得到的classes.dex文件和AndroidManifest.xml文件都是二進制的形式,分析人員往往需要進一步進行反編譯得到可讀的smali代碼和配置文件。

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

        傳統(tǒng)的 Android惡意軟件檢測一般使用模式匹配或指紋匹配等方法,在Android惡意軟件爆發(fā)初期被廣泛使用。

        文獻[9]依賴于手工選擇的特征進行匹配和啟發(fā)式過濾,從而發(fā)現(xiàn)惡意軟件以及惡意軟件家族; 文獻[10]利用權限和API的上下文和順序區(qū)分Android良惡性軟件,建立權限事件圖,自動化發(fā)現(xiàn)以前通過手動分析發(fā)現(xiàn)的惡意行為; 文獻[11]利用一些粗粒度的特征如AndroidManifest.xml中申請的權限信息進行 Android惡意軟件的檢測; 另外一些研究[12]通過計算API調用頻率來進行建模。

        但這些方法都沒有利用 Android惡意軟件的內部程序邏輯,因此 Yang等人[13]提出了 DroidMiner,系統(tǒng)使用靜態(tài)分析的方法,從已知的Android惡意軟件中自動挖掘惡意軟件程序邏輯,將此邏輯抽象為一系列威脅模式,然后在其他軟件中尋找這些威脅模態(tài)模式以此進行而惡意軟件判別。

        Grace等人[14]提出的 RiskRanker是一個給Android應用惡意程度評級的系統(tǒng)。對于利用Android平臺漏洞的惡意軟件,RiskRanker會根據(jù)漏洞指紋進行識別并將其標記為高危; 對于惡意扣費等惡意行為系統(tǒng)會對代碼進行靜態(tài)分析和模式匹配,根據(jù)其控制流圖判斷是否存在不提示用戶就執(zhí)行的敏感操作,并將其標記為中危。另外,系統(tǒng)會檢查代碼中是否含有加密方法、是否有Runtime.exec()方法等特征,若可疑惡意特征同時存在且共有同樣的入口點,那么系統(tǒng)也將這個Android應用標記為高危。中危和高危都會被標記為可疑惡意軟件。RiskRanker相對于其他傳統(tǒng)Android惡意軟件檢測系統(tǒng)來說,在發(fā)現(xiàn) 0-day惡意軟件方面具有一定的優(yōu)勢。

        除了靜態(tài)分析外,也存在一些傳統(tǒng)檢測方案使用了動態(tài)分析。DroidScope[15]使用了污點分析的方法,監(jiān)視軟件在API層的行為,提取并分析內部組件之間的行為特征以及系統(tǒng)調用特征以檢測惡意軟件。

        總的來說,傳統(tǒng)的Android惡意軟件檢測方法都需要專家建立相應的規(guī)則和模式庫或指紋庫,需要手動構造和更新檢測模式。并且隨著時間的推移和惡意軟件的不斷豐富,數(shù)據(jù)庫的數(shù)據(jù)量也會逐漸龐大。但攻擊者卻可以輕而易舉地通過代碼混淆等方法繞過檢測模型的檢測[5-6]。隨著惡意軟件的不斷變種和進化以及人工智能算法的發(fā)展,研究者們開始探究新的檢測方法。

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

        隨著人工智能的興起,機器學習和深度學習算法不斷提高自身的精確度,在大量領域超過了傳統(tǒng)算法。由于傳統(tǒng)Android惡意軟件檢測算法存在諸多不足,這就驅使許多研究者開始探究使用人工智能算法來檢測Android惡意軟件。從Android惡意軟件檢測算法中利用的特征類型進行劃分,可以分為{0,1}型特征、序列型特征和端到端模式。

        - {0,1}型特征: {0,1}型特征即每一個特征使用一個標志位,每一個標志位非1即0。1代表應用存在該特征,0代表不存在。檢測算法通常會從AndroidManifest.xml文件中提取應用申請的權限信息、硬件信息,intent-filter組件等; 從反編譯后的dex文件得到的smali代碼中提取API特征、url等信息。將得到的特征集表示為{0,1}矩陣形式,進而使用機器學習或深度學習算法進行訓練。

        - 序列型特征: 序列型特征主要基于代碼中的API序列關系或字節(jié)碼序列關系。一般通過反編譯dex文件提取API調用順序,構建控制流圖,或直接提取應用的字節(jié)碼。進而將控制流圖或字節(jié)碼序列使用能夠直接處理多序列的算法或將序列轉化為其他易于計算的特征向量形式,輸入到算法模型中進行下一步訓練。

        - 端到端模式: {0,1}型特征和序列型特征通常要在解壓縮及反編譯原 apk文件得到可讀的AndroidManifest.xml代碼和smali代碼后,通過進一步分析,對原始數(shù)據(jù)進行構造得到復雜的標準化的特征,才能進行下一步的操作。而端到端模式不需要構造復雜的特征,直接使用原始apk的二進制碼,或只是進行簡單的字節(jié)碼截取或映射。此時一般會利用圖像領域的相關處理方法,將應用程序表示為圖像,利用卷積神經網絡(Convolutional Neural Network,CNN)等深度學習算法進行訓練。

        本小節(jié)從 Android惡意軟件檢測算法中利用的特征類型出發(fā),分別闡述基于{0,1}型特征、序列型特征和端到端模式進行惡意軟件檢測的方法。

        3.1 0,1型特征

        文獻[16]提出了DreBin,這是一種基于靜態(tài)分析的 Android惡意軟件檢測方法。文章首先獲取APP的 dex文件反編譯后得到的代碼和AndroidManifest.xml配置文件,進而利用靜態(tài)分析提取應用需要的硬件、申請的權限、APP組件、特殊 API以及網絡地址等信息作為特征嵌入矩陣,使用SVM(Support Vector Machine)算法進行訓練,最終得到線性模型以及每個特征所對應的權重。這項研究可以很好地解釋模型的判別結果,并且可以達到94%的精確度。

        但是由于{0,1}型特征自身的局限性,在特征過多的情況下樣本矩陣變得過于稀疏。而SVM算法不能很好地處理稀疏矩陣的情況。除此之外,不同特征之間的相關性也是揭露惡意軟件很重要的一點,而Drebin模型并沒有將特征間的相關性考慮進去。基于上述問題,Li等人[17]提出了利用FM(Factorization Machine)算法來進行模型的構建。文章在DreBin的基礎上,對特征進行了精簡,從dex文件反編譯得到的代碼和AndroidManifest.xml配置文件中提取出了更加有效和簡單的特征,利用 FM 算法,彌補了SVM 算法在稀疏矩陣處理上的缺陷,并且還可以表述出特征間的相關性。最終模型在多數(shù)據(jù)集的驗證下精確度均達到了99%以上。

        上述兩種方法都是僅僅使用了靜態(tài)分析,可能無法檢測出來一些動態(tài)加載的惡意代碼。文獻[4]提出了利用靜態(tài)分析和動態(tài)分析相結合的方式來檢測Android惡意軟件。文章利用靜態(tài)分析提取出APP申請的權限和敏感 API調用; 利用 DroidBox進行動態(tài)分析并且實時監(jiān)控APP行為,得到13個APP行為特征。如action_sendnet,即把數(shù)據(jù)通過網絡發(fā)送出去; action_phonecalls,即撥打電話。文章將靜態(tài)分析與動態(tài)分析得到的特征組合起來,最終得到192個特征進行最后的訓練。在模型的選擇上,考慮到機器學習算法結構層次較淺,只有少于3層的計算單元,因此選擇了深度置信網絡(Deep Belief Networks,DBN)。文章最后進行了靜態(tài)分析、動態(tài)分析以及多種算法模型如 C4.5、SVM、樸素貝葉斯、logistic回歸和多層感知機、深度置信網絡的組合對比,最終發(fā)現(xiàn)利用靜態(tài)分析和動態(tài)分析相結合并且采用深度置信網絡所得到的分類結果精確度最高。

        基于大量 Android惡意軟件研究成果的發(fā)布,Zhu等人[18]提出了一種從文獻中挖掘Android惡意軟件特征的方法。文章從以往的相關科學文獻中挖掘和提取與惡意軟件有關的惡意行為,并將惡意行為映射到具體的特征上,這些特征包含 132個權限、189個intent和11373個API調用。進而建立語義網絡,計算每個特征的權重。最后選擇出權重最高的一些特征作為進行訓練的特征。文章選用了隨機森林(Random Forest,RF)算法來訓練模型并測試結果。此項研究從以往文獻中挖掘出了 Android惡意軟件的一些較為關鍵的特征,另外還發(fā)現(xiàn)了一些在手工提取的過程中容易被忽視的特征。

        Xu等人[19]提出的DeepRefiner采用了{0,1}型特征與序列型特征相結合的兩輪處理方式。第一輪處理僅使用了{0,1}特征。文章認為APP里的XML文件中的值在良性和惡意軟件中表現(xiàn)會有所不同,所以首先對AndroidManifest.xml和/res/路徑下XML文件進行預處理,建立XML值的數(shù)據(jù)庫,將每個APP的XML信息值以one-hot矩陣的形式表示出來作為特征,輸入多層感知機(Multilayer Perceptron),最后采用Softmax激活函數(shù)輸出預測的此APP的良性概率和惡意概率。需要指出的是,當良性概率和惡意概率差值很大的時候,判別器可以確定這個輸入 APP的性質; 但當概率差值不大的時候,判別器無法確定這個 APP是良性的還是惡意的,因此會進入第二輪計算。第二輪采用了序列型特征,會在下一小節(jié)具體討論。

        3.2 序列型特征

        DeepRefiner[19]的第二輪處理采用了序列型特征。文章首先對dex文件反編譯得到的字節(jié)碼進行簡化,然后將字節(jié)碼與上下文進行組合得到語義序列,利用自然語言處理領域 Word2Vec的思想,進行Skip-Gram建模,把組合后的特征映射到新的空間。為了避免普通循環(huán)神經網絡(Recurrent Neural Network,RNN)梯度消失問題,文章選擇了長短期記憶網絡(Long Short Term Memory,LSTM)為最終的訓練模型。

        除了基于字節(jié)碼序列,早前就有研究者們提出了基于API序列來檢測Android惡意軟件的方法。以API序列構造的特征模式可以發(fā)現(xiàn)惡意軟件家族共有的重要行為特征,容忍小部分不同的代碼實現(xiàn)。惡意軟件家族中即使不同的軟件代碼實現(xiàn)不同,但其行為邏輯類似,反映在API序列上也是基本相同的。因此使用 API序列構造特征在檢測變種惡意軟件上具有一定的優(yōu)勢,近年來廣泛地被研究者們所使用。文獻[20]通過建立基于上下文的帶權 API依賴圖(weighted contexual API dependency Graph,WC-ADG),分別建立良性軟件與惡意軟件WC-ADG的數(shù)據(jù)庫。訓練時,首先從APP中提取出WC-ADG,并將此WC-ADG與數(shù)據(jù)庫中的WC-ADGs進行相似度計算,得到的相似度向量作為特征值,利用樸素貝葉斯算法進行訓練。

        除此之外,文獻[21]提出了MaMaDroid,一種基于構造馬爾可夫鏈,以 API調用序列轉化概率作為特征訓練機器學習模型的 Android惡意軟件檢測方法。文章首先通過提取 APP的控制流圖,構建 API調用序列。由于直接處理原 API調用序列需要消耗大量資源,因此對原序列進行了簡化處理,例如java.lang.Throwable:getMessage使用 Package名java.lang或family名java來替代。之后以API調用之間的轉化關系建立馬爾可夫鏈,以轉化概率作為特征向量,輸入到多種機器學習算法模型如SVM、隨機森林、1近鄰、3近鄰中訓練,最終得到判別模型。

        Hou等人[7]為了挖掘不同實體之間更加復雜關系、得到更高層次的語義信息,提出利用異構信息網絡 (Heterogeneous Information Network,HIN)來展現(xiàn)其中的復雜關系的方法HinDroid。HinDroid利用 Feature Extractor模塊提取完整的 Android API調用列表,并進一步分析提取的API調用之間的關系,主要關注于API調用是否屬于同一個包、同一個代碼段以及是否含有同樣的invoke方法等。文章基于先前提取的關系特征利用異構信息網絡構造模塊構造 HIN,形成代表不同元路徑的可交換矩陣。最后使用標準多核學習(Multiple Kernel Learning,MKL),優(yōu)化不同元路徑的權重,組合不同的可交換矩陣以形成用于Android惡意軟件檢測的更強大的核函數(shù)。對于每個新收集的未知的Android應用程序,經過一系列預處理得到其 API調用及相互關系后,使用構建的分類模型,判斷該應用程序為良性或惡意。

        有研究者考慮到靜態(tài)分析無法檢測到一些動態(tài)執(zhí)行的惡意代碼,嘗試利用動態(tài)分析的方式進行惡意軟件檢測。Hou等人[22]提出的Deep4MalDroid 通過分析linux系統(tǒng)調用識別Android惡意軟件。文章通過提取Android組件列表,動態(tài)執(zhí)行組件并記錄下系統(tǒng)調用,將系統(tǒng)調用圖用加權有向圖表示出來。訓練時先利用SAEs(Stacked AutoEncoders)預訓練權重,再利用多種模型如SVM、樸素貝葉斯、決策樹、ANN及深度學習等算法進行分類。

        隨著物聯(lián)網產業(yè)的發(fā)展,近年來越來越多使用Android系統(tǒng)的IoT設備出現(xiàn)在市場上,一些研究者就提出了不僅可以運行在服務器上同時也可以運行在手機端和IoT設備端的Android惡意軟件檢測方法MalDozer[23]。MalDozer使用API方法調用的原始序列集合作為輸入,在訓練過程中自動進行特征提取,利用然語言處理領域 Word2Vec的思想,生成易于計算的稠密矩陣。由于特征提取過程與訓練過程相互獨立,因此提高了方法的運行效率。同時由于方法的低開銷,在手機端甚至 IoT設備上也能很好地運行。

        3.3 端到端模式

        卷積神經網絡(Convolutional Neural Network,CNN)是深度學習領域中比較有代表性的一種方法,主要被使用于圖像識別問題上。CNN能夠自動提取感受野內的重要特征,這意味著在Android惡意軟件檢測方面CNN也可能自動提取局部區(qū)域操作碼之間的特征,避免人工分析和提取特征的諸多問題。于是McLaughlin等人[24]開始利用CNN進行Android惡意軟件檢測。該方法受到基于n-gram的惡意軟件檢測的啟發(fā)。先通過反編譯APP的dex文件獲取字節(jié)碼的操作符,將每個操作符映射成一個操作數(shù)。n個操作數(shù)作為CNN的輸入,CNN會自動地識別惡意軟件的特征。這種方法克服了傳統(tǒng)的n-gram方法中n不能過大的限制。

        以往的研究方法一般都需要比較大量的計算,因此就有研究者提出一種基于 CNN的輕量級Android惡意軟件檢測方法[25]。文章僅截取了 APK文件的開頭或結尾N個字節(jié)(實驗中N分別取512、1024、2048或4096),采用1D卷積的CNN來進行訓練。最后模型在不同的數(shù)據(jù)集上取得了95%~96%的準確度。

        Huang等人[26]提出了 R2-D2,一種利用圖像識別領域思想檢測Android惡意軟件的方法。文章通過反編譯APP的dex文件獲取字節(jié)碼,將字節(jié)碼通過一定的映射規(guī)則表示成對應的RGB圖片格式。最后將APP表示成的RGB圖片輸入到CNN中進行訓練。模型在不同的數(shù)據(jù)集上取得了92%~98%的準確度。

        4 Android惡意軟件檢測對抗攻擊

        隨著越來越多的針對Android惡意軟件檢測的人工智能算法模型的使用,攻擊者們開始考慮如何精巧地繞過這些檢測算法。根據(jù)攻擊者掌握機器學習模型信息的多少,繞過 Android惡意軟件檢測模型的攻擊場景可以分為黑盒攻擊和白盒攻擊兩種:

        表1 Android惡意軟件檢測算法重要因素對比Table 1 A comparison of the important factors in Android malware detection algorithm

        續(xù)表

        - 白盒攻擊: 攻擊者能夠獲知檢測模型所使用的算法,以及算法所使用的參數(shù)。攻擊者在產生對抗性攻擊數(shù)據(jù)的過程中能夠與檢測系統(tǒng)有所交互。此時攻擊者可以直接對原有模型進行對抗攻擊并生成對抗樣本,對抗樣本可以直接用原有模型進行驗證。

        - 黑盒攻擊: 攻擊者不知道檢測模型所使用的算法和參數(shù),但攻擊者仍能與檢測系統(tǒng)有所交互。如,可以通過傳入任意輸入觀察輸出,判斷輸出。此時攻擊者通常需要構造原有模型的替代模型,然后使用對抗學習的方法使得替代模型的功能與原有模型近似。在替代模型上產生的對抗樣本往往對原有模型有效。

        本小節(jié)從繞過 Android惡意軟件檢測模型的攻擊場景出發(fā),分別闡述針對不同檢測模型的白盒攻擊方法和黑盒攻擊方法。

        4.1 白盒攻擊

        4.1.1 0,1型特征

        對于 Drebin[16]這種早期的 Android惡意軟件檢測模型,通過一些簡單的混淆操作就可以繞過。文獻[27]指出了一系列投毒攻擊,譬如在 AndroidManifest.xml文件中添加許多與軟件運行過程無關的且多在良性軟件中出現(xiàn)的權限信息,或者將代碼中的一些敏感API藏在png圖片中,以及在代碼中嵌入一些良性代碼段或將代碼通過 java反射動態(tài)加載等。但隨著檢測模型特征所涵蓋的信息逐漸復雜和算法魯棒性的增強,檢測精度不斷提高,簡單混淆逐漸難以繞過一些復雜模型的檢測。一些研究者開始探討將在圖像領域“對抗樣本”的概念和方法遷移到Android惡意軟件檢測領域中來。

        基于雅各比顯著性圖的攻擊(Jacobian-based Saliency Map Attack,JSMA)是最初應用于圖像領域的一種對抗攻擊方法[28]。該方法通過限制 l0范數(shù)進行對抗攻擊,使得生成的對抗樣本和原圖像只在幾個像素上有所差別。攻擊過程通過監(jiān)控輸出的梯度計算一個顯著性圖,修改顯著性最強即最重要的像素,直至達到最大允許修改的像素數(shù)量或欺騙模型成功。但是圖像領域存在這些較為成熟的對抗攻擊方法往往針對連續(xù)型特征值,惡意軟件檢測領域很多方法都是利用了離散型的{0,1}特征。因此就有研究者在繼承圖像領域對抗攻擊思想的基礎上改進算法使之更適應惡意軟件檢測領域的對抗攻擊。

        Grosse等人[29]提出的產生Android惡意軟件對抗樣本的思想與 JSMA類似,文章關注離散型的{0,1}特征。由于惡意軟件的特征代表自身的配置信息或功能,單純地修改惡意軟件的特征可能會導致軟件崩潰或原有功能的丟失,因此文章在修改特征時僅僅會添加特征。文章通過如下公式計算雅各比矩陣,得到模型F對于樣本X的梯度來獲得擾動的方向,

        算法會添加分類結果顯著性最高的特征,然后繼續(xù)迭代直至達到最大允許添加的特征數(shù)量或成功欺騙模型。

        有研究者提出了專門針對{0,1}型特征的對抗攻擊方法[30]。文章提出了一種基于梯度生成對抗樣本的方式——BCAk(multi-step Bit Coordinate Ascent)。該方法需要多輪迭代,每輪從未擁有的特征中添加梯度分量最大的。具體原理如圖1。

        圖1 BCAk算法三維向量空間示意圖Figure 1 BCAk algorithm in the 3-dimensional vector space

        圖1表示樣本的特征空間,每個點表示一個樣本。圖1(a)中,箭頭方向表示允許添加的擾動方向。由于擾動不能使樣本軟件崩潰或丟失原有的功能,因此特征只能添加不能刪除。以[1,0,0]點的惡意軟件為例,其可以修改為的樣本集合為: S([1,0,0]) ={[1,0,0],[1,1,0],[1,0,1],[1,1,1]}; [0,1,1]點的惡意軟件可以修改為的樣本集合為: S([0,1,1]) = {[0,1,1],[1,1,1]}。圖1(b)為BCAk算法的流程,實線箭頭表示梯度方向,虛線為擾動的方向。根據(jù) BCAk算法,樣本x0處最大的梯度分量指向X1方向,因此將X0的第三個特征位修改為 1到達 X1,同樣地,再通過將 X1的第二個特征位修改為 1到達 X2,最終將樣本軟件的損失沿梯度上升至目標值。

        4.1.2 序列型特征

        文獻[27]除了指出對Drebin的攻擊,也指出了對序列型檢測模型MaMaDroid[21]的攻擊。文章將那些頻繁在良性軟件中出現(xiàn)的 API序列添加到惡意軟件中,從而達到混淆特征序列的目的,因此可以繞過模型的檢測。但該種方法較為傳統(tǒng),無法應對復雜的檢測模型,且沒有通過自動化的方式生成大量對抗樣本。

        與上一小節(jié)Grosse等人類似,利用JSMA思想進行對抗攻擊的還有文獻[31]。Chen等人提出的AndroidHIV中也利用JSMA的思想產生對抗樣本。與Grosse等人不同的是,AndroidHIV除了{0,1}型特征也關注了序列型特征。通過計算模型輸出和輸入特征 X之間的雅各比矩陣來進一步計算顯著性圖。以攻擊MaMaDroid的模型為例,通過計算API調用數(shù)目A和替代模型F輸出之間的雅各比矩陣得到顯著性圖,根據(jù)顯著性圖,修改顯著性最高的一個API調用。此過程不斷迭代,直至達到最大允許修改的API調用數(shù)量或欺騙模型成功。

        同樣是在圖像識別領域,Carlini和Wagner提出了三種針對圖像識別模型的對抗攻擊算法[32]。該算法通過限制l2、l∞、l0范數(shù)限制對圖像中的擾動,進而使擾動無法被人眼識別,圖像識別模型卻能將圖像錯分。AndroidHIV[31]攻擊中的另一種方法就是利用的這種思想。文章在C&W基礎上進行了一些修改,對于特征添加一定的擾動。通過以下限制優(yōu)化下列函數(shù):

        其中,δ表示要被優(yōu)化的添加到樣本中的擾動,c是平衡兩項的置信度常數(shù)。第一項 m inδ‖代表通過l2范數(shù)的限制來最小化需要修改的特征,第二項f(X +δ)表示損失函數(shù)。損失函數(shù)定義如下:

        其中,t是當前樣本X的正確的標注,Z(X)是替代模型的pre-softmax輸出,κ是可以調節(jié)置信度的超參數(shù)。損失函數(shù) f的作用是計算目前模型產生的誤分類結果和正確結果間的差異。在攻擊不同的檢測模型時,將擾動對應到不同的特征類型的修改上,如對MaMaDroid模型添加擾動就是指對API調用數(shù)量進行修改進而擾亂原來的 API調用轉化概率矩陣。最后通過梯度下降法找到最小擾動并生成攻擊樣本。

        4.1.3 端到端模式

        對于其他平臺的惡意軟件(如,windows平臺下的 PE類型文件),已有研究者提出了各種對抗檢測模型的方法。針對惡意軟件的對抗攻擊其中一個難點在于在修改樣本的過程中如何保留原樣本軟件的功能。所以除了小心地增加或移除 API調用或其他特征,文獻[33]提出了一種白盒攻擊方法,這種方法不同于其他直接對特征進行修改的方式,而是采用了只在可執(zhí)行文件的文件尾進行填充少量字節(jié)來躲避檢測的方法。由于填充字節(jié)并不破壞原軟件的代碼和數(shù)據(jù),因此可以很好地避免軟件原有功能遭到破壞。文章攻擊的對象 MalConv[34]模型輸出的是某一樣本為惡意軟件的概率,因此文章計算添加填充位后的樣本為惡意的概率,最小化這個輸出值,同時限制添加的字節(jié)數(shù)不能過大,利用梯度下降法找到合適的對抗樣本。

        由于Android軟件中的dex文件與windows平臺下的PE文件類似,都屬于某一平臺下的可執(zhí)行文件,也都存在為了對齊字節(jié)產生的填充位,修改此類填充位對可執(zhí)行文件本身無影響。因為此類在文件末尾添加填充位來逃避檢測的方法也適用于 Android惡意軟件檢測模型對抗樣本的生成。

        4.2 黑盒攻擊

        4.2.1 0,1型特征

        在黑盒條件下,有些高效的Android惡意軟件檢測模型的性能也很容易受到干擾。文獻[35]針對關注{0,1}型特征的 Drebin模型指出了一些潛在的攻擊場景,其中包括工具混淆攻擊、模仿攻擊、替代模型攻擊等。文章針對工具混淆攻擊做了較為詳細的闡述。工具混淆攻擊利用了 DexGuard,這是一個Android APP代碼混淆和加密工具,其中包含了字符串加密、反射、類加密、混合混淆等混淆加密手段。文章發(fā)現(xiàn),僅僅使用DexGuard就能對Drebin產生一定干擾。

        Yang等人[36]提出了兩種針對Android惡意軟件檢測模型黑盒攻擊方案: 進化攻擊和特征模糊攻擊。進化攻擊模仿了惡意軟件自身迭代和變種的過程,并使其自動化。文章選擇了四種重要類型特征(資源、觸發(fā)時間、觸發(fā)位置、依賴)和上下文特征,通過建立進化樹,理解惡意軟件家族的迭代過程。最后根據(jù)不同類型特征的可行度和統(tǒng)計學頻率計算評分函數(shù),用評分最高的一些特征進行更新迭代。每次迭代后進行測試驗證,將沒有成功逃避檢測的樣本繼續(xù)迭代,直至生成成功逃過檢測的樣本或樣本程序無法執(zhí)行。

        特征模糊攻擊是把一些特征轉化為良性軟件和惡意軟件中都有的模糊特征,從而逃避檢測。文章從上述提到的四種重要特征和上下文特征中找出良性軟件和惡意軟件共有的部分,通過良性軟件的計數(shù)來計算不同特征的權重。生成對抗樣本時,根據(jù)輸入軟件每個特征找到模糊特征集中最接近的模糊特征,將此特征修改為對應模糊特征或修改其對應的上下文特征,從而達到混淆檢測模型的目的。但需要指出的是,由于混淆攻擊修改的特征會很多,導致很多軟件在被修改后不能運行。最后Yang等人提出的對抗樣本生成模型利用以上兩種攻擊方法,結構如圖2所示。文章最后將修改后的攻擊樣本輸入到多種Android惡意軟件檢測工具如VirusTotal、AppContext和Drebin中,均取得了不同程度的成功。

        圖2 對抗樣本生成模型示意圖Figure 2 Illustration of adversarial examples generation model

        4.2.2 序列型特征

        近年來很多研究者利用基于序列型 API特征的人工智能算法來檢測惡意軟件,因此有研究者思考黑盒場景下通過對 API序列進行修改來繞過模型檢測。Chen等人[37]通過分析Comodo云安全中心提供的10000個帶標注的軟件樣本,計算出不同API在良性軟件與惡意軟件中的相關性得分,通過添加與良性軟件相關性高的 API以及刪除與惡意軟件相關性高的API來逃避模型檢測。

        在惡意軟件檢測領域,存在許多以RNN為代表的序列型人工智能算法檢測模型[19]。Hu等人[38]就提出了一種針對RNN模型的黑盒攻擊方式。文章訓練了一個用于近似原黑盒RNN模型的替代模型,另外提出了一個生成RNN模型用來根據(jù)原始輸入的惡意軟件樣本生成對抗樣本。其模型結構如圖2所示。訓練過程旨在使得替代模型學習原模型更多的信息,讓生成RNN模型生成的對抗樣本特征更不容易被原模型檢測出來。

        4.2.3 通用方法

        目前已經出現(xiàn)一些 Android惡意軟件采用抗逆向分析技術,如代碼加殼等手段來逃避惡意軟件檢測模型的檢測[39]。此類方法主要針對一些靜態(tài)分析模型,使得模型無法正常反編譯 apk得到代碼邏輯,難以提取出樣本的靜態(tài)特征,從而無法正確判定樣本惡意與否。

        Hu等人[40]提出了MalGAN,一種利用生成對抗網絡(Generative Adversarial Networks,GAN)的思想生成對抗樣本的方法。MalGAN使用一個替代鑒別器來匹配原有的黑盒檢測模型,生成器用來生成惡意樣本。訓練過程中,替代鑒別器通過最小化如下?lián)p失函數(shù)來使自身更接近原黑盒檢測模型:

        其中Smalware表示真實的惡意軟件集合。

        整體過程如圖3表示。

        圖3 針對基于RNN算法的對抗攻擊模型Figure 3 Adversarial attack model in the RNN-based algorithm

        利用MalGAN生成的對抗樣本取得了非常好的效果,甚至能夠使某些模型對這些對抗樣本的檢出率降低到幾乎為0。

        5 Android惡意軟件對抗攻擊的防護手段

        隨著惡意軟件對抗樣本的發(fā)展,研究者們也開始考慮如何提高 Android惡意軟件檢測模型的安全性。本小節(jié)從針對特征的防護和針對算法的防護兩方面出發(fā),概述當前防止對抗攻擊和增強Android惡意軟件檢測模型安全性的方法。

        5.1 針對特征的防護

        文獻[35]在提出針對 Drebin攻擊之后又提出了針對這類問題的一些增強安全性的手段。Drebin的可解釋性暴露了特征的權重,使得攻擊者可以通過修改權重最大的少量特征來繞過模型的檢測,因此文章指出,可以在模型訓練過程中添加框式約束(box constraint)將權重限制在一定范圍之內,從而使特征權重分布更平均,進而提高對抗攻擊的難度。

        Chen等人[41]提出了SecureDroid方法,用來提高Android惡意軟件檢測模型面臨對抗攻擊時的魯棒性。以往Android惡意軟件檢測模型都是基于不同的特征具有不同權重的思想(例如,Drebin); 攻擊者在生成對抗樣本時對每個特征進行修改所花費的代價是不同的,比如修改配置文件容易而修改dex文件更困難,因此文章在增強模型魯棒性和安全性方面時考慮到了這兩方面。文章提出了一種新的特征選擇方法 SecCLS,這種方法提取特征時綜合考慮了特征權重和修改代價。文章選取了權限、Filtered Intents、API調用和New-Instance 4種類型的特征,首先使用機器學習方法獲得每個特征的權重,并且計算出針對{0,1}型特征進行特征修改所花費的代價。最后選擇那些權重低且修改代價大的特征進行訓練。文章在訓練過程提出了SecENS方法。SecENS集成了多種不同分類器,并且盡最大可能覆蓋整個特征空間,使最后生成的模型魯棒性得到了增強。SecureDroid的模型架構如圖5所示。

        圖4 MalGAN模型架構圖Figure 4 MalGAN model architecture diagram

        圖5 SecureDroid模型架構圖Figure 5 SecureDroid model architecture diagram

        表2 惡意軟件對抗攻擊重要因素對比Table 2 A comparison of the important factors in malware adversarial attack

        5.2 針對算法的防護

        文獻[27]針對投毒攻擊提出了識別Android惡意軟件檢測模型輸出結果中假陰性軟件的方法。文章首先通過手工篩選,篩選出最良性的和最惡意的兩類Android應用,基于語法和語義特征,通過計算訓練集中的 Android應用和手工篩選出來的兩類應用的Jaccard相似度和余弦相似度,利用相似度來判斷某個Android應用更像良性軟件還是惡意軟件,從而識別出那些偽裝過的惡意軟件。Grosse等人在文獻[21]中提出利用JSMA思想對離散型{0,1}特征進行對抗攻擊的方法后,指出了兩種可行的增強模型安全性的防護方案。

        第一種是蒸餾法。蒸餾法引入了一個和原神經網絡F相同的神經網絡F′,通過訓練F′使模型達到更好的分類效果。與原網絡F的訓練過程不同的是,F′的訓練集標簽不是簡單的0或1,而是原網絡F輸出的概率分布(如,使用 softmax作為輸出層得到的概率分布結果)。比起利用簡單的{0,1}標簽,概率分布標簽包含了訓練集中每個成員對應每個類別的更多信息。文章對神經網絡輸出層softmax函數(shù)進行了修改,使用下列函數(shù):

        T是蒸餾參數(shù)。T越大,輸出的概率分布越統(tǒng)一。在訓練原網絡F和新網絡F′的過程中都使用了相同的較高的參數(shù)T。最終實驗發(fā)現(xiàn)新網絡F′確實可以不同程度地提升在對抗樣本干擾情況下檢測的準確度,但是提升的效果比較輕微。

        第二種是再訓練法。再訓練法在訓練神經網絡的同時會使用前文對抗攻擊的方法產生對抗樣本,并將對抗樣本不斷地加入到訓練過程中,以此提高最終模型的魯棒性。經實驗發(fā)現(xiàn)在訓練過程中添加一定數(shù)量的對抗樣本可以提高模型的抗對抗攻擊能力,但如果訓練中添加的對抗樣本大于一定數(shù)量則會導致模型誤分率明顯提高,使得模型的準確度和抗對抗攻擊能力降低。因此使用此類方法增強模型安全性的時候需要謹慎地選擇添加到訓練過程中的的對抗樣本的數(shù)量,否則可能對模型產生相反的效果。再訓練法可以與其他增強安全性方法相結合[37]。如可以通過在原模型的損失函數(shù)上增加一個安全規(guī)范化項來加強模型安全性。攻擊代價表示攻擊者針對此模型進行對抗攻擊時對原惡意樣本進行修改的產生修改代價,安全規(guī)范化項取代價的倒數(shù),因此訓練過程在最小化損失函數(shù)的同時可以最大化攻擊者產生對抗樣本的攻擊代價,從而提高模型安全性。

        雖然在訓練過程中加入對抗樣本的方式能夠取得比較明顯的效果,但是利用一些已有方法如FGSM[42],可以有效地快速生成大量對抗樣本,而若想抵御這些對抗樣本就需要在每發(fā)現(xiàn)一個對抗樣本后就將對抗樣本加入訓練集重復訓練過程。這就造成了增強后的模型不能很好地應對對抗樣本的變化,導致安全性無法得到徹底的提升。文獻[45]提出了一種針對深度神經網絡(Deep Neural Networks,DNN)模型提高對抗樣本生成難度的方法。文章通過在輸入層與第一個隱藏層之間增加一個中間層,這個中間層的作用是隨機地隱藏一些特征。正是這些隨機被隱藏的特征,會給攻擊者在計算梯度的時候帶來困難,因此可以防止攻擊者通過簡單地計算梯度生成對抗樣本。最后作者在大量真實存在的惡意軟件和良性軟件中做測試,結果證實了方法的有效性。

        6 思考與討論

        6.1 Android惡意軟件檢測模型發(fā)展趨勢

        目前大部分 Android惡意軟件檢測系統(tǒng)都是基于靜態(tài)分析的方法,很多惡意軟件為了躲避檢測,嘗試利用各種方式隱藏自己的惡意特征。許多惡意軟件能夠通過動態(tài)加載的方式逃避這些模型的檢測,包括惡意代碼動態(tài)加載、隱藏進圖片或其他資源文件中等。另外還存在一些惡意軟件采用了抗逆向分析技術,如apk加殼等手段。因此需要在檢測模型中引入動態(tài)分析方法,采用動靜結合的分析方式來全面地發(fā)現(xiàn)惡意軟件。

        傳統(tǒng)的 Android惡意軟件檢測方法通常從應用的配置文件、代碼文件中提取特征作為檢測模型的訓練樣本,然而提取特征的過程中,通過人工的篩選抽象,最終得到的特征損失了原有應用的大量信息,這限制了模型的準確率,因此Android惡意軟件檢測模型會考慮更多更加復雜的特征,例如使用圖神經網絡生成控制流圖各個節(jié)點的嵌入,在應用與API等構成的異構圖中提取表征應用內部信息的嵌入等。為增加檢測模型的準確率與魯棒性,通常將多種惡意軟件檢測模型融合為堆疊模型。在堆疊模型中集合了多種分類器,這些分類器并行計算后得到各自預測的概率,然后將這些概率作為特征輸入,經過堆疊分類器得到更準確的結果。模型架構如圖6所示。

        圖6 Android惡意軟件堆疊檢測模型Figure 6 Android malware stacked detection model

        隨著 IoT產業(yè)的發(fā)展,許多智能設備采用了Android系統(tǒng)。但絕大多數(shù)基于Android的智能設備如智能音箱、智能網聯(lián)車的車機系統(tǒng)等,都沒有采用較新版本的Android系統(tǒng)。使用舊版本的Android系統(tǒng)導致智能設備無法享受到新 Android版本的安全特性和安全補丁,從而導致智能設備暴露在低版本Android系統(tǒng)漏洞的風險中。在這種情況下,Android惡意軟件可發(fā)揮的空間更大,甚至可以進一步提權獲取root權限。另外,由于智能設備本身資源受限的情況,普通的高開銷、高計算方法并不適用于智能設備上的Android惡意軟件檢測。因此隨著市場上出現(xiàn)越來越多的基于Android系統(tǒng)的智能設備,針對智能設備的輕量級 Android惡意軟件檢測方案在未來會得到很大的發(fā)展。

        Android惡意軟件檢測技術不僅需要在移動設備中實時運行,還需要在安全廠商進行安全審計、態(tài)勢感知時發(fā)揮功效,這些場景下對模型的運行速度、準確性的要求不同,因此需要不同的Android惡意軟件檢測方法,例如在智能設備上使用更加輕量級的模型,安全廠商為平衡計算資源在云端使用多層檢測模型,越深層的模型使用越復雜的特征和模型以獲得更準確的結果。模型架構如圖7所示。

        圖7 Android惡意軟件分層檢測模型Figure 7 Android malware layered detection model

        6.2 Android對抗樣本發(fā)展趨勢

        目前針對圖像領域的對抗攻擊方法較為成熟,以上提到的基于 FGSM[42]、C&W[32]、JSMA[28]等算法的 Android對抗樣本生成方法都是利用了圖像領域對抗攻擊的思路。對圖像像素的修改可以對應到對Android惡意軟件某一特征(API調用、權限等)的修改,需要研究者考慮的主要就是如何對原算法進行一定的改進,使得在修改過程中不破壞原軟件的功能。因此在未來越來越多圖像領域的對抗樣本生成方法會遷移到 Android惡意軟件對抗樣本的生成上。如對FGSM方法改進的擾動更小的DeepFool方法[46],通過迭代計算的方法生成最小規(guī)范對抗擾動,將位于分類邊界內的圖像逐步推到邊界外,直到出現(xiàn)錯誤分類。相對于已有的基于 FGSM 算法生成Android對抗樣本的方法,DeepFool可以在迭代過程進行優(yōu)化,解決FGSM中擾動系數(shù)的選擇問題,并且可以通過多次線性逼近實現(xiàn)對一般非線性決策函數(shù)的攻擊。

        但白盒攻擊應用場景受限,實際的場景中更容易使用黑盒攻擊。目前最廣泛使用的黑盒攻擊方法為使用替代模型學習黑盒模型足夠多的信息,對替代模型利用白盒攻擊方法生成的對抗樣本在原模型中有效。同時也可以基于混淆的思想,使用遺傳算法或強化學習算法通過不斷試錯確定生成對抗樣本時應該添加的擾動方向。

        6.3 對抗攻擊對 Android惡意軟件檢測的影響

        由于對抗攻擊對人工智能算法的威脅性直接關系到使用人工智能算法的 Android惡意軟件檢測算法的可用性,因此目前的Android惡意軟件檢測算法必須考慮針對對抗攻擊的防御,在設計模型時需要使其對于輸入有較大的魯棒性,并且惡意軟件檢測在不同的應用場景下,需要有不同的防御方法。

        根據(jù)用戶對模型的訪問場景,可以將其分為能夠不限次數(shù)訪問模型的情況以及在一定時間內對模型的訪問次數(shù)有一定限制的情況,前者對于防御的需求較高,后者可以考慮較弱的防御方式。在獲取Android惡意軟件檢測模型的特征提取、模型訓練等各個流程中,都能夠使用防御對抗攻擊的方法,不同的方法可能對模型結構、模型準確率有一定的影響。在用戶能夠大量訪問的場景下,防御者可以使用組合模型、增加模型輸入的復雜度等對原有檢測模型修改較大的方法,或者利用一些典型防御對抗的手段,如對網絡進行修改,包括添加更多層或子網絡、修改損失函數(shù)或激活函數(shù)等; 使用外部模型作為附加網絡以及在學習過程中修改訓練過程或樣本等。對于安全性要求較低的場景,例如用戶無法大量訪問的模型的情況,攻擊者進行黑盒攻擊時很難通過替代模型在短時間內學習原有模型足夠的信息,攻擊難度較大,因此只需要采用在訓練時修改損失函數(shù)或將對抗樣本加入訓練集等基本的防御方法。對于擁有多層惡意軟件檢測模型的系統(tǒng),深層的模型通常使用了較為復雜的特征,并且可能使用了多種分類器混合,對抗攻擊的難度較大,同時攻擊者無法得知是否訪問了該深層的模型,因此該層的模型并不需要考慮對抗攻擊,只需要確保檢測的準確率。

        7 總結

        目前越來越多的 Android惡意軟件檢測引擎使用了人工智能算法,因此就有攻擊者開始嘗試對Android惡意軟件進行一定的修改,使得Android惡意軟件可以在保留本身的功能的前提下繞過這些基于人工智能算法的檢測模型。這就是Android惡意軟件檢測領域的對抗攻擊。

        本文梳理了目前存在的基于人工智能算法的Android惡意軟件檢測模型,概述了針對Android惡意軟件檢測模型的對抗攻擊方法,并從特征和算法兩方面總結了相應的增強模型安全性的防護手段。最后提出了 Android惡意軟件檢測模型和對抗攻擊的發(fā)展趨勢,并分析了對抗攻擊對Android惡意軟件檢測的影響。

        猜你喜歡
        樣本特征算法
        用樣本估計總體復習點撥
        如何表達“特征”
        基于MapReduce的改進Eclat算法
        Travellng thg World Full—time for Rree
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        進位加法的兩種算法
        推動醫(yī)改的“直銷樣本”
        抓住特征巧觀察
        隨機微分方程的樣本Lyapunov二次型估計
        一種改進的整周模糊度去相關算法
        人妻系列无码专区久久五月天| 一本色道久在线综合色| 久久精品夜色噜噜亚洲a∨| 国产国拍精品av在线观看按摩| 热久久网站| 亚洲国产av中文字幕| 97人妻精品一区二区三区男同| 4hu四虎永久在线观看| 欧美午夜精品久久久久久浪潮| 青青草最新在线视频观看| 久久精品中文字幕女同免费| 国产午夜福利片| 国产精品久久久久尤物| 日韩精品一区二区三区免费观影| 国产欧美综合一区二区三区 | 日本一区三区三区在线观看| 欧美乱妇高清无乱码在线观看| 久久国产精品不只是精品 | 老师露出两个奶球让我吃奶头| 久久AV老司机精品网站导航 | 国产毛片精品av一区二区| 日韩一区二区三区无码影院| 国模无码视频一区| 亚洲欧美成人久久综合中文网| 在教室轮流澡到高潮h免费视 | 在线免费观看一区二区| 丰满多毛的大隂户视频| 国产va在线播放| 国产成人精品cao在线| 久久伊人精品色婷婷国产| 被三个男人绑着躁我好爽视频| 高清国产日韩欧美| 蜜桃人妻午夜精品一区二区三区| 久久婷婷五月综合97色直播| 日日碰狠狠躁久久躁96avv| 538在线视频| 国产色视频一区二区三区不卡 | 男女边摸边吃奶边做视频韩国| 亚洲av永久无码天堂网毛片| 国产午夜亚洲精品一级在线| 极品美女调教喷水网站|