欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Android平臺惡意應(yīng)用檢測方法及裝置與流程

文檔序號:11287150閱讀:450來源:國知局
Android平臺惡意應(yīng)用檢測方法及裝置與流程

本發(fā)明涉及移動安全及機(jī)器學(xué)習(xí)技術(shù)領(lǐng)域,尤其涉及一種android平臺惡意應(yīng)用檢測方法及裝置。



背景技術(shù):

在移動智能終端領(lǐng)域,存在大量惡意軟件,它們往往能夠在用戶沒有察覺的情況下隱蔽獲取用戶存儲在設(shè)備上的隱私數(shù)據(jù),并發(fā)送到攻擊者的郵箱或服務(wù)器中,對用戶的財政安全和隱私安全帶來極大的困擾。隨著安卓android平臺智能終端普及,android智能終端上的隱私竊取攻擊與惡意應(yīng)用檢測技術(shù)也越來越受到人們重視。

目前,現(xiàn)有對android平臺惡意應(yīng)用進(jìn)行檢測的數(shù)據(jù)流分析技術(shù)主要包括:動態(tài)污點(diǎn)追蹤和靜態(tài)數(shù)據(jù)流分析技術(shù)兩種。動態(tài)污點(diǎn)追蹤是通過對敏感數(shù)據(jù)進(jìn)行污點(diǎn)標(biāo)記,并在應(yīng)用運(yùn)行時對污點(diǎn)數(shù)據(jù)進(jìn)行動態(tài)追蹤,判斷是否發(fā)生惡意泄露。靜態(tài)數(shù)據(jù)流分析技術(shù)是通過構(gòu)建應(yīng)用的函數(shù)調(diào)用圖,并對其中可到達(dá)函數(shù)進(jìn)行逐一分析,將敏感的源信息進(jìn)行傳播來監(jiān)控其在整個系統(tǒng)中的信息流流向。

但是,動態(tài)污點(diǎn)追蹤面臨如何覆蓋程序中所有代碼路徑的挑戰(zhàn);而且,部分惡意應(yīng)用能夠判斷動態(tài)監(jiān)控器的存在,并隱藏其惡意行為,導(dǎo)致檢測結(jié)果存在一定的假陰性。靜態(tài)數(shù)據(jù)流分析技術(shù)需要對應(yīng)用運(yùn)行流程進(jìn)行準(zhǔn)確的建模;而且,android應(yīng)用程序運(yùn)用了大量的組件間通信,一個組件能夠發(fā)送intent調(diào)用另一個組件,intent中可能被放入數(shù)據(jù)。如何準(zhǔn)確地獲取組件間通信的目標(biāo)組件也是靜態(tài)數(shù)據(jù)流分析技術(shù)的一個難點(diǎn)。

另外,由于近年來機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘技術(shù)的廣泛應(yīng)用,目前還利用基于傳統(tǒng)機(jī)器學(xué)習(xí)算法對android平臺惡意應(yīng)用進(jìn)行檢測。該類方法首先使用靜態(tài)方法提取應(yīng)用的權(quán)限、api調(diào)用、函數(shù)調(diào)用等特征,或使用動態(tài)方法提取應(yīng)用的行為、系統(tǒng)參數(shù)變化、系統(tǒng)調(diào)用等特征;然后,選取機(jī)器學(xué)習(xí)算法,如:決策樹、樸素貝葉斯、支持向量機(jī)等,對這些特征數(shù)據(jù)進(jìn)行訓(xùn)練,構(gòu)建惡意應(yīng)用檢測模型;并最終利用該模型判斷應(yīng)用的安全性。

但是,針對同一類型的應(yīng)用行為特征,不同的機(jī)器學(xué)習(xí)算法有著不同的檢測結(jié)果。選取合適的機(jī)器學(xué)習(xí)算法處理合適類型的應(yīng)用行為特征,對最終的檢測結(jié)果至關(guān)重要。同時,傳統(tǒng)的機(jī)器學(xué)習(xí)算法具有淺層的模型結(jié)構(gòu),對于最終的檢測結(jié)果有一定的影響。

鑒于此,如何提供一種android平臺惡意應(yīng)用檢測方法及裝置,以避免動態(tài)污點(diǎn)追蹤存在的路徑覆蓋問題,克服靜態(tài)數(shù)據(jù)流分析技術(shù)需要對應(yīng)用運(yùn)行流程進(jìn)行準(zhǔn)確建模以及需要準(zhǔn)確獲取組件間通信的目標(biāo)組件的兩大挑戰(zhàn),實現(xiàn)對android應(yīng)用敏感數(shù)據(jù)流的準(zhǔn)確全面的提取,同時克服傳統(tǒng)淺層機(jī)器學(xué)習(xí)算法在構(gòu)建檢測模型時存在的局限性,實現(xiàn)對android平臺惡意應(yīng)用的準(zhǔn)確檢測成為目前需要解決的技術(shù)問題。



技術(shù)實現(xiàn)要素:

為解決上述的技術(shù)問題,本發(fā)明提供一種android平臺惡意應(yīng)用檢測方法及裝置,能夠避免動態(tài)污點(diǎn)追蹤存在的路徑覆蓋問題,克服靜態(tài)數(shù)據(jù)流分析技術(shù)需要對應(yīng)用運(yùn)行流程進(jìn)行準(zhǔn)確建模以及需要準(zhǔn)確獲取組件間通信的目標(biāo)組件的兩大挑戰(zhàn),實現(xiàn)對android應(yīng)用敏感數(shù)據(jù)流的準(zhǔn)確全面的提取,同時克服傳統(tǒng)淺層機(jī)器學(xué)習(xí)算法在構(gòu)建檢測模型時存在的局限性,實現(xiàn)對android平臺惡意應(yīng)用的準(zhǔn)確檢測。

第一方面,本發(fā)明提供一種android平臺惡意應(yīng)用檢測方法,包括:

調(diào)用flowdroid工具,提取待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征;

利用susi技術(shù),對所述待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成待測android應(yīng)用的數(shù)據(jù)流的特征向量;

將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型,獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果。

可選地,在所述將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型之前,所述方法還包括:

獲取android應(yīng)用樣本,所述android應(yīng)用樣本包括:安全android應(yīng)用樣本和惡意android應(yīng)用樣本;

調(diào)用flowdroid工具,提取所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征;

利用susi技術(shù),對所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成android應(yīng)用樣本的數(shù)據(jù)流的特征向量;

根據(jù)所述android應(yīng)用樣本的數(shù)據(jù)流的特征向量進(jìn)行訓(xùn)練,構(gòu)建深度置信網(wǎng)絡(luò)檢測模型。

可選地,所述根據(jù)所述樣本android應(yīng)用的數(shù)據(jù)流的特征向量進(jìn)行訓(xùn)練,構(gòu)建深度置信網(wǎng)絡(luò)檢測模型,包括:

將未標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量作為最底層受限制玻爾茲曼機(jī)rbm的輸入,采用無監(jiān)督學(xué)習(xí)方法,自下而上逐層預(yù)訓(xùn)練多層rbm,生成深度置信網(wǎng)絡(luò)dbn,直至dbn網(wǎng)絡(luò)處于平衡狀態(tài);

在所述dbn網(wǎng)絡(luò)的最后一個隱含層后增加一個分類層;

將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用有監(jiān)督學(xué)習(xí)方法,自上而下逐層微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

可選地,所述將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用有監(jiān)督學(xué)習(xí)方法,自上而下逐層微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂,包括:

將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用反向傳播bp算法,有監(jiān)督地微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

可選地,在所述獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果之后,所述方法還包括:

若待測android應(yīng)用是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用是惡意應(yīng)用,并向用戶展示待測android應(yīng)用是惡意應(yīng)用的分析報告;

若待測android應(yīng)用不是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用不是惡意應(yīng)用。

第二方面,本發(fā)明提供一種android平臺惡意應(yīng)用檢測裝置,包括:

第二提取模塊,用于調(diào)用flowdroid工具,提取待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征;

第二處理模塊,用于利用susi技術(shù),對所述待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成待測android應(yīng)用的數(shù)據(jù)流的特征向量;

檢測模塊,用于將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型,獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果。

可選地,所述裝置還包括:

獲取模塊,用于獲取android應(yīng)用樣本,所述android應(yīng)用樣本包括:安全android應(yīng)用樣本和惡意android應(yīng)用樣本;

第一提取模塊,用于調(diào)用flowdroid工具,提取所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征;

第一處理模塊,用于利用susi技術(shù),對所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成android應(yīng)用樣本的數(shù)據(jù)流的特征向量;

構(gòu)建模塊,用于根據(jù)所述android應(yīng)用樣本的數(shù)據(jù)流的特征向量進(jìn)行訓(xùn)練,構(gòu)建深度置信網(wǎng)絡(luò)檢測模型。

可選地,所述構(gòu)建模塊,包括:

預(yù)訓(xùn)練單元,用于將未標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量作為最底層受限制玻爾茲曼機(jī)rbm的輸入,采用無監(jiān)督學(xué)習(xí)方法,自下而上逐層預(yù)訓(xùn)練多層rbm,生成深度置信網(wǎng)絡(luò)dbn,直至dbn網(wǎng)絡(luò)處于平衡狀態(tài);

增加單元,用于在所述dbn網(wǎng)絡(luò)的最后一個隱含層后增加一個分類層;

微調(diào)單元,用于將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用有監(jiān)督學(xué)習(xí)方法,自上而下逐層微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

可選地,所述微調(diào)單元,具體用于

將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用反向傳播bp算法,有監(jiān)督地微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

可選地,所述裝置還包括:

第一提示模塊,用于若待測android應(yīng)用是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用是惡意應(yīng)用,并向用戶展示待測android應(yīng)用是惡意應(yīng)用的分析報告;

第二提示模塊,用于若待測android應(yīng)用不是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用不是惡意應(yīng)用。

由上述技術(shù)方案可知,本發(fā)明的android平臺惡意應(yīng)用檢測方法及裝置,通過調(diào)用flowdroid工具,提取待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征,利用susi技術(shù)對所述待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成待測android應(yīng)用的數(shù)據(jù)流的特征向量,將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型,獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果,由此,能夠避免動態(tài)污點(diǎn)追蹤存在的路徑覆蓋問題,克服靜態(tài)數(shù)據(jù)流分析技術(shù)需要對應(yīng)用運(yùn)行流程進(jìn)行準(zhǔn)確建模以及需要準(zhǔn)確獲取組件間通信的目標(biāo)組件的兩大挑戰(zhàn),實現(xiàn)對android應(yīng)用敏感數(shù)據(jù)流的準(zhǔn)確全面的提取,同時克服傳統(tǒng)淺層機(jī)器學(xué)習(xí)算法在構(gòu)建檢測模型時存在的局限性,實現(xiàn)對android平臺惡意應(yīng)用的準(zhǔn)確檢測。

附圖說明

圖1為本發(fā)明一實施例提供的一種android平臺惡意應(yīng)用檢測方法的流程示意圖;

圖2為圖1中的步驟101調(diào)用flowdroid工具提取一舉例應(yīng)用程序中從source到sink的數(shù)據(jù)流的示意圖;

圖3為本發(fā)明一實施例提供的一種android平臺惡意應(yīng)用檢測裝置的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他的實施例,都屬于本發(fā)明保護(hù)的范圍。

圖1示出了本發(fā)明一實施例提供的一種android平臺惡意應(yīng)用檢測方法的流程示意圖,如圖1所示,本實施例的android平臺惡意應(yīng)用檢測方法如下所述。

101、調(diào)用flowdroid工具,提取待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征。

可以理解的是,一個android應(yīng)用包含多個組件,如activity、service、contentprovider、broadcastreceiver,其中,activity是分析的主要入口。與傳統(tǒng)的java程序不同,android應(yīng)用(程序)中不存在主函數(shù),因此在分析的過程中,不能簡單的通過主函數(shù)找到程序的入口和出口來構(gòu)建控制流圖。但是,android應(yīng)用的每個組件都有函數(shù)來反映該組件的生命周期,可以根據(jù)這些生命周期構(gòu)建android應(yīng)用的控制流圖。為了生成android應(yīng)用的控制流圖,本實施例調(diào)用arzt,s.等人提出的開源工具flowdroid將activity生命周期和所有回調(diào)函數(shù)之間的控制流調(diào)用關(guān)系用一個虛主函數(shù)來模擬。下面用某個android應(yīng)用中的一段代碼的例子來講解flowdroid的實現(xiàn)原理。

該應(yīng)用程序通過調(diào)用百度地圖提供的api,讀取用戶的位置信息,包括經(jīng)度、維度以及詳細(xì)的地址,然后通過短信將位置信息發(fā)送到手機(jī)號“+111”上。這個簡單的應(yīng)用程序反映了常見的隱私攻擊方式,敏感數(shù)據(jù)流從locationclient(source)流向smsapi(sink),從而導(dǎo)致了隱私泄露。

flowdroid工具的數(shù)據(jù)流分析過程是執(zhí)行順序相關(guān)的,可以分為兩個部分:向前的污點(diǎn)分析用于找出被污染的變量傳遞到了何處,以及向后的請求式別名分析用于查找source之前所有對同一被污染的heap位置的別名。參見圖2,flowdroid采用以下的步驟提取上述應(yīng)用程序中從source到sink的數(shù)據(jù)流:

(1)從source獲取的longitude、latitude和detail作為被污染了的變量,被向前傳遞給函數(shù)loc(detail,latitude,longitude);

(2)當(dāng)函數(shù)loc(detail,latitude,longitude)被調(diào)用時,發(fā)現(xiàn)longitude、latitude和detail是作為參數(shù)傳遞進(jìn)來的。因此執(zhí)行后向分析,發(fā)現(xiàn)調(diào)用函數(shù)的參數(shù)a、b和c即被調(diào)用函數(shù)的參數(shù)longitude、latitude和detail對a、b和c進(jìn)行污染。

(3)繼續(xù)追蹤a,b和c,l被污染;

(4)發(fā)現(xiàn)l是被調(diào)用函數(shù)的返回值,進(jìn)行后向分析,對location進(jìn)行污染;

(5)對location做前向分析,判斷其被傳遞到sink。

可以理解的是,由于flowdroid工具的分析過程是上下文相關(guān)的,因此能夠有效地區(qū)分對函數(shù)loc()基于不同參數(shù)的不同調(diào)用。同時,flowdroid工具采用特殊的手寫總結(jié)方式處理對庫函數(shù)的調(diào)用。除此之外,flowdroid工具采用大量的優(yōu)化手段拓展操作規(guī)模,同時降低噪音,從而能夠準(zhǔn)確全面的提取android應(yīng)用內(nèi)部的敏感數(shù)據(jù)流特征數(shù)據(jù)。

102、利用susi技術(shù),對所述待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成待測android應(yīng)用的數(shù)據(jù)流(規(guī)范化)的特征向量。

可以理解的是,flowdroid工具提取的原始靜態(tài)數(shù)據(jù)流特征的信息中包含完整的source和sink函數(shù)名。然而,在android函數(shù)庫里,存在成千的source和sink函數(shù),這些函數(shù)中只有極少數(shù)會在一個應(yīng)用中被調(diào)用。如果用這些函數(shù)之間的數(shù)據(jù)流作為特征,特征向量是稀疏向量,需要進(jìn)行處理以改進(jìn)訓(xùn)練結(jié)果。因此,本實施例利用rasthofer,s.等人提出的susi技術(shù)對flowdroid工具提取的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成數(shù)據(jù)流(規(guī)范化)的特征向量。susi技術(shù)基于機(jī)器學(xué)習(xí)算法,能夠根據(jù)函數(shù)代碼判斷其屬于source函數(shù)或者sink函數(shù);同時,susi技術(shù)將當(dāng)前存在的source函數(shù)和sink函數(shù)分別劃分為17個source類和19個sink類;其中:

17個source類包括:

(1)unique_identifier;

(2)location_information;

(3)network_information;

(4)account_information;

(5)file_information;

(6)bluetooth_information;

(7)database_information;

(8)email;

(9)synchronization_data;

(10)sms_mms;

(11)contact_information;

(12)calendar_information;

(13)system_setting;

(14)image;

(15)browser_information;

(16)nfc;

(17)no_category。

19個sink類包括:

(1)location_information;

(2)phone_connection;

(3)voip;

(4)phone_state;

(5)email;

(6)bluetooth;

(7)account_setting;

(8)audio;

(9)synchronization_data;

(10)network;

(11)file;

(12)log;

(13)sms_mms;

(14)contact_information;

(15)calendar_information;

(16)system_setting;

(17)nfc;

(18)browser_information;

(19)no_category。

通過susi分類可以更清晰地了解某惡意應(yīng)用泄露的信息種類,以及信息泄露的路徑。

本實施例將flowdroid工具和susi兩種技術(shù)結(jié)合起來,從每個android應(yīng)用中可以提取323個數(shù)據(jù)流特征,特征向量可以表示為:

features(app)=(src_category1→sink_category1,src_category1→sink_category2,…,src_category17→src_category18,src_category17→src_category19)

當(dāng)一個source類src_categoryi(i=1,2,…,17)和一個sink類sink_categoryj(j=1,2,…,19)之間存在數(shù)據(jù)流時,在特征向量中對應(yīng)的值src_categoryi→sink_categoryj=1,否則,該值為0。

可以理解的是,步驟102是針對flowdroid提取的數(shù)據(jù)流特征存在的不利于訓(xùn)練的問題,利用開源的敏感api分類工具susi對數(shù)據(jù)流特征進(jìn)行處理,形成的特征向量能更好地反應(yīng)每個應(yīng)用內(nèi)部敏感數(shù)據(jù)的流向。

103、將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型,獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果。

在具體應(yīng)用中,在所述步驟103之前,所述方法還包括圖中未示出的步驟s1-s4:

s1、獲取android應(yīng)用樣本,所述android應(yīng)用樣本包括:安全android應(yīng)用樣本和惡意android應(yīng)用樣本。

具體地,所述步驟s1可以利用爬蟲技術(shù)不斷從網(wǎng)絡(luò)中抓取最新的android惡意應(yīng)用作為所述android應(yīng)用樣本中的惡意android應(yīng)用樣本,以及利用爬蟲技術(shù)不斷從網(wǎng)絡(luò)中抓取最新的android安全應(yīng)用作為所述android應(yīng)用樣本中的安全android應(yīng)用樣本。

在具體應(yīng)用中,所述步驟s1可以將所述android應(yīng)用樣本分為兩部分:一部分為未標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本,另一部分為標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本。

s2、調(diào)用flowdroid工具,提取android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征。

具體地,本步驟flowdroid工具的原理可以參見對上述步驟101的說明,此處不再贅述。

s3、利用susi技術(shù),對所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成android應(yīng)用樣本的數(shù)據(jù)流的特征向量。

具體地,本步驟susi技術(shù)可以參見對上述步驟102的說明,此處不再贅述。

s4、根據(jù)所述android應(yīng)用樣本的數(shù)據(jù)流的特征向量進(jìn)行訓(xùn)練,構(gòu)建深度置信網(wǎng)絡(luò)檢測模型。

可以理解的是,基于深度學(xué)習(xí)的深度置信網(wǎng)絡(luò)檢測模型比傳統(tǒng)的淺層模型具有更深層的結(jié)構(gòu)和更強(qiáng)大的特征描述能力,因此,可以更深層次地挖掘應(yīng)用數(shù)據(jù)流特征反映出來的應(yīng)用安全性,具有更高的檢測準(zhǔn)確率。

具體地,所述步驟s4可以具體包括圖中未示出的步驟s41-s43:

s41、將未標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量作為最底層受限制玻爾茲曼機(jī)rbm的輸入,采用無監(jiān)督學(xué)習(xí)方法,自下而上逐層預(yù)訓(xùn)練多層rbm,生成深度置信網(wǎng)絡(luò)dbn,直至dbn網(wǎng)絡(luò)處于平衡狀態(tài)。

需要說明的是,深度置信網(wǎng)絡(luò)dbn由多個受限制玻爾茲曼機(jī)rbm層組成,每個rbm層包括接收輸入數(shù)據(jù)的可見層和輸出數(shù)據(jù)的隱含層,層間存在連接,但是層內(nèi)的單元間不存在連接。

舉例來說,所述步驟s41可以將未標(biāo)記的安全android應(yīng)用樣本的數(shù)據(jù)流的特征向量作為最底層受限制玻爾茲曼機(jī)rbm的輸入,采用逐層貪心算法,自下而上無監(jiān)督地逐層預(yù)訓(xùn)練多層rbm,生成深度置信網(wǎng)絡(luò)dbn,直至dbn網(wǎng)絡(luò)處于平衡狀態(tài)。

s42、在所述dbn網(wǎng)絡(luò)的最后一個隱含層后增加一個分類層。

s43、將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用有監(jiān)督學(xué)習(xí)方法,自上而下逐層微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

舉例來說,所述步驟s43可以將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用反向傳播(backpropagation,簡稱bp)算法,有監(jiān)督地微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

需要說明的是,因為每一層rbm的訓(xùn)練過程是相互獨(dú)立的,所以對每一層rbm的訓(xùn)練只能得到這一層的隱藏層對可見層最好的表達(dá)。但是,整個dbn網(wǎng)絡(luò)不是對輸入數(shù)據(jù)的最好表達(dá)。因此,在dbn網(wǎng)絡(luò)的最后一個隱含層后增加一個分類層(有監(jiān)督學(xué)習(xí)網(wǎng)絡(luò)),例如bp神經(jīng)網(wǎng)絡(luò)。這樣可以將整個dbn網(wǎng)絡(luò)看作一個多層的bp神經(jīng)網(wǎng)絡(luò),自頂向下地進(jìn)行微調(diào),這個過程可以看作對一個深層bp網(wǎng)絡(luò)權(quán)值參數(shù)的初始化。dbn的這種訓(xùn)練過程可以有效地改善可能存在的局部最優(yōu)和訓(xùn)練時間長的問題。根據(jù)具體應(yīng)用的不同,dbn網(wǎng)絡(luò)最上面的有監(jiān)督學(xué)習(xí)層(即分類層)可以選取不同的分類器。自此,基于深度學(xué)習(xí)算法的檢測android惡意應(yīng)用的深度置信網(wǎng)絡(luò)檢測模型訓(xùn)練完成。

在具體應(yīng)用中,在所述步驟103之后,本實施例所述方法還可以包括:

若待測android應(yīng)用是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用是惡意應(yīng)用,并向用戶展示待測android應(yīng)用是惡意應(yīng)用的詳細(xì)的分析報告;

若待測android應(yīng)用不是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用不是惡意應(yīng)用。

由于實現(xiàn)隱私竊取攻擊的android惡意應(yīng)用在處理應(yīng)用內(nèi)部敏感數(shù)據(jù)的方式上,一方面與android安全應(yīng)用存在很大的不同,另一方面又與其他惡意應(yīng)用存在一定的相同之處。因此,本實施例利用機(jī)器學(xué)習(xí)算法分析這種不同性與相似性,主要關(guān)注于android平臺智能終端的數(shù)據(jù)流分析技術(shù)和基于機(jī)器學(xué)習(xí)算法的惡意應(yīng)用檢測技術(shù)的發(fā)展?fàn)顩r,基于android應(yīng)用內(nèi)部的敏感數(shù)據(jù)流信息進(jìn)行深度分析,探究惡意應(yīng)用和安全應(yīng)用在敏感數(shù)據(jù)處理上的不同性,從而對惡意應(yīng)用進(jìn)行檢測。

本實施例的android平臺惡意應(yīng)用檢測方法,通過調(diào)用flowdroid工具提取待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征,利用susi技術(shù)對所述待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成待測android應(yīng)用的數(shù)據(jù)流的特征向量,將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型,獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果,由此,能夠?qū)崿F(xiàn)對android平臺惡意應(yīng)用進(jìn)行較高準(zhǔn)確率地檢測,可以避免動態(tài)污點(diǎn)追蹤存在的路徑覆蓋問題,克服靜態(tài)數(shù)據(jù)流分析技術(shù)需要對應(yīng)用運(yùn)行流程進(jìn)行準(zhǔn)確建模以及需要準(zhǔn)確獲取組件間通信的目標(biāo)組件的兩大挑戰(zhàn),實現(xiàn)對android應(yīng)用敏感數(shù)據(jù)流的準(zhǔn)確全面的提取,同時克服傳統(tǒng)淺層機(jī)器學(xué)習(xí)算法在構(gòu)建檢測模型時存在的局限性,能在很大程度上提高對未知惡意應(yīng)用的檢測率。

圖3示出了本發(fā)明一實施例提供的一種android平臺惡意應(yīng)用檢測裝置的結(jié)構(gòu)示意圖,如圖3所示,本實施例的android平臺惡意應(yīng)用檢測裝置,包括:第二提取模塊31、第二處理模塊32和檢測模塊33;其中:

第二提取模塊31,用于調(diào)用flowdroid工具,提取待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征;

第二處理模塊32,用于利用susi技術(shù),對所述待測android應(yīng)用的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成待測android應(yīng)用的數(shù)據(jù)流的特征向量;

檢測模塊33,用于將生成的待測android應(yīng)用的數(shù)據(jù)流的特征向量輸入預(yù)先訓(xùn)練好的深度置信網(wǎng)絡(luò)檢測模型,獲得待測android應(yīng)用是否是惡意應(yīng)用的檢測結(jié)果。

在具體應(yīng)用中,本所述裝置還可以包括圖中未示出的:

獲取模塊,用于獲取android應(yīng)用樣本,所述android應(yīng)用樣本包括:安全android應(yīng)用樣本和惡意android應(yīng)用樣本;

第一提取模塊,用于調(diào)用flowdroid工具,提取所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征;

第一處理模塊,用于利用susi技術(shù),對所述android應(yīng)用樣本的靜態(tài)數(shù)據(jù)流特征進(jìn)行處理,生成android應(yīng)用樣本的數(shù)據(jù)流的特征向量;

構(gòu)建模塊,用于根據(jù)所述android應(yīng)用樣本的數(shù)據(jù)流的特征向量進(jìn)行訓(xùn)練,構(gòu)建深度置信網(wǎng)絡(luò)檢測模型。

在具體應(yīng)用中,所述獲取模塊可以利用爬蟲技術(shù)不斷從網(wǎng)絡(luò)中抓取最新的android惡意應(yīng)用作為所述android應(yīng)用樣本中的惡意android應(yīng)用樣本,以及利用爬蟲技術(shù)不斷從網(wǎng)絡(luò)中抓取最新的android安全應(yīng)用作為所述android應(yīng)用樣本中的安全android應(yīng)用樣本。

在具體應(yīng)用中,所述獲取模塊可以將所述android應(yīng)用樣本分為兩部分:一部分為未標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本,另一部分為標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本。

在具體應(yīng)用中,所述構(gòu)建模塊,可以包括圖中未示出的:

預(yù)訓(xùn)練單元,用于將未標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量作為最底層受限制玻爾茲曼機(jī)rbm的輸入,采用無監(jiān)督學(xué)習(xí)方法,自下而上逐層預(yù)訓(xùn)練多層rbm,生成深度置信網(wǎng)絡(luò)dbn,直至dbn網(wǎng)絡(luò)處于平衡狀態(tài);

增加單元,用于在所述dbn網(wǎng)絡(luò)的最后一個隱含層后增加一個分類層;

微調(diào)單元,用于將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用有監(jiān)督學(xué)習(xí)方法,自上而下逐層微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

具體地,舉例來說,所述微調(diào)單元可以將標(biāo)記的安全android應(yīng)用樣本和惡意android應(yīng)用樣本的數(shù)據(jù)流的特征向量輸入所述分類層,采用反向傳播bp算法,有監(jiān)督地微調(diào)整個網(wǎng)絡(luò)各層的參數(shù),直至收斂。

在具體應(yīng)用中,本實施例所述裝置還可以包括圖中未示出的:

第一提示模塊,用于若待測android應(yīng)用是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用是惡意應(yīng)用,并向用戶展示待測android應(yīng)用是惡意應(yīng)用的分析報告;

第二提示模塊,用于若待測android應(yīng)用不是惡意應(yīng)用,則提示用戶所述待測android應(yīng)用不是惡意應(yīng)用。

由于實現(xiàn)隱私竊取攻擊的android惡意應(yīng)用在處理應(yīng)用內(nèi)部敏感數(shù)據(jù)的方式上,一方面與android安全應(yīng)用存在很大的不同,另一方面又與其他惡意應(yīng)用存在一定的相同之處。因此,本實施例利用機(jī)器學(xué)習(xí)算法分析這種不同性與相似性,主要關(guān)注于android平臺智能終端的數(shù)據(jù)流分析技術(shù)和基于機(jī)器學(xué)習(xí)算法的惡意應(yīng)用檢測技術(shù)的發(fā)展?fàn)顩r,基于android應(yīng)用內(nèi)部的敏感數(shù)據(jù)流信息進(jìn)行深度分析,探究惡意應(yīng)用和安全應(yīng)用在敏感數(shù)據(jù)處理上的不同性,從而對惡意應(yīng)用進(jìn)行檢測。

需要說明的是,對于裝置/系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。

本實施例的android平臺惡意應(yīng)用檢測裝置,能夠?qū)崿F(xiàn)對android平臺惡意應(yīng)用進(jìn)行較高準(zhǔn)確率地檢測,可以避免動態(tài)污點(diǎn)追蹤存在的路徑覆蓋問題,克服靜態(tài)數(shù)據(jù)流分析技術(shù)需要對應(yīng)用運(yùn)行流程進(jìn)行準(zhǔn)確建模以及需要準(zhǔn)確獲取組件間通信的目標(biāo)組件的兩大挑戰(zhàn),實現(xiàn)對android應(yīng)用敏感數(shù)據(jù)流的準(zhǔn)確全面的提取,同時克服傳統(tǒng)淺層機(jī)器學(xué)習(xí)算法在構(gòu)建檢測模型時存在的局限性,能在很大程度上提高對未知惡意應(yīng)用的檢測率。

本實施例的android平臺惡意應(yīng)用檢測裝置,可以用于執(zhí)行前述方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形式。

本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。術(shù)語“上”、“下”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。

本發(fā)明的說明書中,說明了大量具體細(xì)節(jié)。然而能夠理解的是,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本發(fā)明公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋呈反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨(dú)實施例。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。本發(fā)明并不局限于任何單一的方面,也不局限于任何單一的實施例,也不局限于這些方面和/或?qū)嵤├娜我饨M合和/或置換。而且,可以單獨(dú)使用本發(fā)明的每個方面和/或?qū)嵤├蛘吲c一個或更多其他方面和/或其實施例結(jié)合使用。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
通辽市| 思南县| 伊宁市| 丽水市| 永登县| 洛川县| 沭阳县| 包头市| 海宁市| 郎溪县| 佛学| 深泽县| 油尖旺区| 宝坻区| 民乐县| 晋江市| 通河县| 阿巴嘎旗| 舒城县| 旬邑县| 泉州市| 同德县| 太和县| 新兴县| 洮南市| 株洲县| 新河县| 图们市| 定日县| 长垣县| 北京市| 枣强县| 赤城县| 文安县| 班玛县| 高安市| 乌什县| 外汇| 健康| 长春市| 信阳市|