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

基于API依賴關(guān)系圖的安卓惡意代碼檢測方法與流程

文檔序號:12720928閱讀:790來源:國知局
基于API依賴關(guān)系圖的安卓惡意代碼檢測方法與流程

本發(fā)明涉及移動安全的研究領(lǐng)域,特別涉及安卓惡意代碼檢測方法,利用語義認知的加權(quán)API依賴關(guān)系圖對安卓惡意代碼進行安全檢測。



背景技術(shù):

蘋果、谷歌移動應(yīng)用市場的App數(shù)量超過250萬,下載量遠超過800億次。正是移動應(yīng)用市場發(fā)展太迅速,暴露出諸多安全問題??ò退够鶎嶒炇?Kaspersky)表示,98.05%的惡意軟件將目標瞄準了Android。這樣需要我們投入越來越多的成本去對新型惡意軟件進行人工分析。因此研發(fā)自動分析惡意代碼的方法具有非常巨大的吸引力。

現(xiàn)有惡意代碼自動檢測和分類方法分為兩大類:基于簽名和基于機器學(xué)習(xí)。基于簽名的方法要在字節(jié)碼和API調(diào)用中找到特定模式,這樣很容易被字節(jié)碼級別的轉(zhuǎn)換攻擊所逃避?;跈C器學(xué)習(xí)的方法從應(yīng)用程序行為(例如許可請求和關(guān)鍵API調(diào)用)中提取特性和使用標準機器學(xué)習(xí)算法去執(zhí)行二進制分類。因為所提取的特性是基于程序語法而不是程序語義,所以這種檢測也容易被逃避。

為了解決惡意代碼逃避自動檢測問題,目前技術(shù)是將程序語義提煉成圖形來表示,例如控制流圖、數(shù)據(jù)依賴圖和權(quán)限事件圖。根據(jù)人工制作的規(guī)格說明去檢查軟件的相應(yīng)圖形,從而實現(xiàn)惡意代碼檢測。然而這些檢測軟件趨向于根據(jù)給定的規(guī)格說明去尋找精確的匹配代碼,因此可能被惡意代碼的多態(tài)性所逃避。

因此本領(lǐng)域致力開發(fā)一種能有效對抗字節(jié)碼轉(zhuǎn)換攻擊和零日攻擊的惡意代碼檢測方法,并應(yīng)用在安卓應(yīng)用市場上。



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

本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于API依賴關(guān)系圖的安卓惡意代碼檢測方法。

根據(jù)本發(fā)明的一個方面,提供了一種基于API依賴關(guān)系并具有權(quán)值的圖形作為程序語義的方法。首先我們發(fā)現(xiàn)函數(shù)API的入口點,然后安全相關(guān)的調(diào)用參數(shù)進行分析,通過程序流程圖發(fā)現(xiàn)API之間的關(guān)系,構(gòu)建API依賴關(guān)系并具有權(quán)值的圖形。

根據(jù)本發(fā)明的一個方面,我們這些圖形儲存在數(shù)據(jù)庫中,每個圖形代表著程序語義。然后在給定某個軟件的情況下,利用基于聚合的索引,在這數(shù)據(jù)庫中找到與該軟件相應(yīng)關(guān)系圖最相似的方法。

建立正常代碼和惡意代碼的圖形數(shù)據(jù)庫(分別為NormalDB和MalwareDB),異常檢測采用和正常應(yīng)用的圖形數(shù)據(jù)庫NormalDB的圖形相比較,如果該數(shù)據(jù)庫有API圖形是跟給定軟件的關(guān)系圖的相似度分數(shù)wgmaxdw(G,G',α)大于設(shè)定的閾值ξ,即可判斷該軟件是惡意代碼。然后再將給定軟件的API關(guān)系圖與惡意代碼的圖形數(shù)據(jù)庫MalwareDB中圖形相比較,在比較中建立相似度的特性矢量,如果在特性矢量中存在相似度分數(shù)wgmaxdw(G,G',α)大于ξ的元素,即可判斷與數(shù)據(jù)庫中這個元素相應(yīng)的惡意代碼是同類病毒家庭。

為了達到上述目的,本發(fā)明采用以下技術(shù)方案:

本發(fā)明一種基于API依賴關(guān)系圖的安卓惡意代碼檢測方法,用于審核軟件開發(fā)者提交的安卓應(yīng)用軟件,檢測軟件是否帶有惡意行為,該方法包括下述步驟:

S1、對應(yīng)用軟件的語義進行分析,生成API依賴關(guān)系圖;

S2、在數(shù)據(jù)庫中使用基于聚合的索引方法對給定的API依賴關(guān)系圖進行相似度查詢,存在正常代碼和惡意代碼的API依賴關(guān)系圖API-DRG數(shù)據(jù)庫,在API-DRG數(shù)據(jù)庫中查詢與給定的圖最相似的依賴關(guān)系圖,使用基于聚合的索引方法去提高查詢效率和可擴展性,每個聚合由與API-DRG數(shù)據(jù)庫中API相關(guān)聯(lián)的位矢量組成,位矢量表示該API所在的軟件包是否出現(xiàn)在該依賴關(guān)系圖中,將給定軟件的位矢量和聚合里的矢量相比較,找到相應(yīng)的索引,從而查詢到與給定軟件相匹配的依賴關(guān)系圖;

S3、通過數(shù)據(jù)庫NormalDB和MalwareDB分別完成異常檢測和簽名檢測,然后完成惡意代碼檢測與分類,利用異常檢測去探測該軟件是否是惡意軟件;如果該軟件是惡意軟件,使用簽名檢測去確定該惡意軟件的病毒類型。

作為優(yōu)選的技術(shù)方案,步驟S1中,對應(yīng)用軟件的語義進行分析的具體方法為:

結(jié)合JAVA分析工具Soot框架,使用靜態(tài)分析方法,執(zhí)行圖形生成程序,將安卓軟件的字節(jié)碼轉(zhuǎn)換為相應(yīng)的API依賴關(guān)系圖API-DRG,該分析過程包括分析API的調(diào)用,利用上下文感知、數(shù)據(jù)流感知和模塊間的數(shù)據(jù)流的分析方法,獲得API調(diào)用引用參數(shù)和調(diào)用返回值,提取常量參數(shù),確定API調(diào)用之間的數(shù)據(jù)依賴關(guān)系。

作為優(yōu)選的技術(shù)方案,還包括基類的調(diào)用入口發(fā)現(xiàn)步驟,通過遞歸回溯的算法確定基類的調(diào)用入口,具體過程如下:任意選擇一個調(diào)用,遞歸回溯分析它與前一個調(diào)用存在的依賴關(guān)系,直至發(fā)現(xiàn)一個不被其它API調(diào)用的入口,這即是唯一一個該類的入口。

作為優(yōu)選的技術(shù)方案,所述API依賴關(guān)系圖由一些擁有依賴關(guān)系的API組成,在依賴關(guān)系圖中,API作為點、API之間的依賴關(guān)系為邊,而對于邊的標記分為兩類,一種是由API原型、入口點、常量系統(tǒng)組成;第二種是涉及安卓安全級別的權(quán)重。

作為優(yōu)選的技術(shù)方案,步驟S2中,還包括將兩個依賴關(guān)系圖的相似度進行量化,計算圖形相似度,圖形相似度是這個圖形轉(zhuǎn)變另外一個圖形的成本,即為了變成另外一個圖形,刪除舊的點和新建點的成本,而這個成本被稱為帶權(quán)重圖形的編輯距離,以下有兩個公式得出兩張圖之間轉(zhuǎn)變成:

公式一:

公式一中,wgdist(G,G',α)為圖形G轉(zhuǎn)變至圖形G’的最小成本,α是統(tǒng)一計算權(quán)重的函數(shù),V和V’分別是兩個圖形的頂點,VI和VD分別是在圖形G新增的邊和在圖形G刪除的邊;

公式二:

公式二中,wgmaxdw(G,G',α)為圖形G和G’之間轉(zhuǎn)變的最大編輯成本,φ為空圖。

作為優(yōu)選的技術(shù)方案,步驟S2中,還包括API依賴關(guān)系圖中關(guān)鍵API的選擇,因為為每個API分配權(quán)重和進行相似性匹配是不現(xiàn)實的,所以需選擇與系統(tǒng)安全相關(guān)的關(guān)鍵API,為了能發(fā)現(xiàn)這些API,采用概念學(xué)習(xí)方式,通過惡意代碼的正面樣本集合和正常代碼的反面樣本集合出現(xiàn)的頻率來決定關(guān)鍵API標記,所選的API將對惡意代碼更加敏感。

作為優(yōu)選的技術(shù)方案,步驟S2中,還包括API依賴關(guān)系圖中API的權(quán)重分配能自動化,為了最優(yōu)化給API自動分配權(quán)重,將API-DRG中同類型的圖形相似度與不同類型的圖形相似度之間的差值最大化,此時的權(quán)重矢量即是最優(yōu)化的權(quán)重分配,通過以下公式求得最佳權(quán)重矢量:

當(dāng)v是關(guān)鍵API頂點時,1≤α(v)≤δ;否則α(v)=1;

公式中α是權(quán)重函數(shù),δ是最大的權(quán)重值;

結(jié)合上面公式,通過使用局部擇優(yōu)的算法,通過循環(huán)計算該公式,求得最佳的權(quán)重矢量。

作為優(yōu)選的技術(shù)方案,步驟S3中,所述異常檢測具體為:

首先建立正常代碼的API-DRG數(shù)據(jù)庫NormalDB,然后將要檢測的軟件的依賴關(guān)系圖與數(shù)據(jù)庫NormalDB中圖形比較,查詢數(shù)據(jù)庫中是否存在跟它相似的圖形,如果數(shù)據(jù)庫中不存在一個圖形與要檢測軟件的圖形的相似度分數(shù)wgmaxdw(G,G',α)等于或大于設(shè)置的閾值ξ,即判定該軟件異常。

作為優(yōu)選的技術(shù)方案,所述簽名檢測具體為:

從安卓惡意軟件Genome項目中提取里面惡意軟件的API-DRG,建立惡意代碼的API-DRG數(shù)據(jù)庫MalwareDB,然后去除數(shù)據(jù)庫MalwareDB中相似度高的圖形,保證數(shù)據(jù)庫中每個圖形具有自己的獨特性,并分別代表不同類惡意軟件,給定一個惡意軟件樣本,為其生成API-DRG圖形,然后在上面說的惡意代碼數(shù)據(jù)庫MalwareDB中查詢是否存在相似的圖形,將給定的API-DRG圖形與數(shù)據(jù)庫MalwareDB中所有圖形比較,形成相應(yīng)的相似度系數(shù)wgmaxdw(G,G',α),將這些系數(shù)輸入到特性矢量中,已知樣本代碼的特性矢量,對應(yīng)著惡意代碼種類標簽,這樣分類器能將樣本和不同種類惡意代碼相匹配,最后對惡意代碼進行分類。

作為優(yōu)選的技術(shù)方案,采用惡意代碼分類器進行或Bayes算法來對惡意軟件進行分類。

本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:

1、本發(fā)明不再像傳統(tǒng)的檢測方法和工具一樣通過分析代碼的序列特征或者行為特征作檢測,而是基于API依賴關(guān)系圖,通過圖形相似度匹配進行異常檢測和分類檢測,提高了檢測和分類的準確性。

2、本發(fā)明降低了傳統(tǒng)檢測方法中更新特征代碼庫的成本,易于生成變種惡意代碼的依賴關(guān)系圖庫,基于聚合的索引方法能對新型或未知的惡意代碼作出快速檢測報告和分類,有效應(yīng)對惡意代碼的演變、傳播。

附圖說明

圖1是本發(fā)明檢測方法的部署圖。

圖2是圖基于由權(quán)重和API依賴關(guān)系圖對安卓惡意代碼進行檢測和分類的流程圖。

具體實施方式

下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。

實施例

如圖1所示,基于帶權(quán)重的API依賴關(guān)系圖對安卓惡意代碼進行分類的語義認知方法而設(shè)計的軟件,該軟件用于安卓應(yīng)用市場的提交審核上,檢測軟件開發(fā)者提交的軟件是否帶有惡意行為。

當(dāng)開發(fā)者向安卓應(yīng)用市場提交手機應(yīng)用時,安卓市場會將該軟件轉(zhuǎn)交給在線檢測服務(wù)器,在線檢測服務(wù)器檢測結(jié)束后,將相關(guān)安全報告發(fā)給安卓市場,報告會提到該安卓應(yīng)用是否具有惡意行為。如果有惡意行為,則提及該惡意行為屬于哪種類型的惡意行為。而在線檢測服務(wù)器后臺還有具有建造圖形數(shù)據(jù)庫API-DRG和簽名檢測分類器訓(xùn)練功能的服務(wù)器,它向在線檢測服務(wù)器更新API-DRG數(shù)據(jù)庫和簽名檢測分類器。

如圖2所示,基于由權(quán)重和API依賴關(guān)系圖對安卓惡意代碼進行分類的語義認知方法的檢測軟件工作流程分為三部分:

(1)根據(jù)對應(yīng)用軟件的語義分析,生成API依賴關(guān)系圖API-DRG。結(jié)合JAVA分析工具Soot框架,使用靜態(tài)分析方法,執(zhí)行圖形生成程序,將安卓軟件的字節(jié)碼轉(zhuǎn)換為相應(yīng)的API依賴關(guān)系圖API-DRG。該分析方法包括API調(diào)用的入口發(fā)現(xiàn),上下文感知、數(shù)據(jù)流感知和模塊間的數(shù)據(jù)流的分析方法,這些方法定位API調(diào)用引用參數(shù)和調(diào)用返回值,提取常量參數(shù),決定API調(diào)用之間的數(shù)據(jù)依賴關(guān)系。

API調(diào)用的入口發(fā)現(xiàn)要求找出基類的調(diào)用方法。在程序分析的過程中,我們會發(fā)現(xiàn)有很多API調(diào)用入口基類的調(diào)用方法,通過遞歸回溯的算法確定基類的調(diào)用入口,具體過程如下:任意選擇一個調(diào)用,遞歸回溯分析它與前一個調(diào)用存在的依賴關(guān)系,直至發(fā)現(xiàn)一個不被其它API調(diào)用的入口,這即是唯一一個該類的入口。

使用加權(quán)與API依賴關(guān)系圖(API-DRG)由一些擁有數(shù)據(jù)依賴關(guān)系的API調(diào)用操作組成。在依賴關(guān)系圖中,API作為點、API之間的依賴關(guān)系為邊。而對于邊,它具有兩類標簽,一種是由API原型、入口點、常量系統(tǒng)組成;第二種是涉及安卓安全級別的權(quán)重。

(2)使用基于聚合的索引方法對依賴關(guān)系圖進行相似度查詢。

在生成正常代碼和惡意代碼的API依賴關(guān)系圖數(shù)據(jù)庫后,我們在API-DRG數(shù)據(jù)庫中查詢與給定的圖最相似的依賴關(guān)系圖。,我們使用基于聚合的索引方法去提高查詢效率和可擴展性。每個聚合由與API-DRG中API相關(guān)聯(lián)的位矢量組成,位矢量表示該API所在的軟件包是否出現(xiàn)在該依賴關(guān)系圖中。我們將給定軟件的位矢量和聚合的矢量相比較,很快就找到相應(yīng)的索引,從而查詢到與給定軟件匹配的依賴關(guān)系圖。

(3)給定一個軟件,為其生成API-DRG圖形,然后在上面說的數(shù)據(jù)庫中查詢相似的圖形。在與數(shù)據(jù)庫中所有圖形比較中,形成相應(yīng)的相似度系數(shù),將這些系數(shù)輸入到特性矢量中。已知惡意代碼樣本的特性矢量對應(yīng)著惡意代碼種類標簽,這樣讓分類器能理解不同種類惡意代碼的獨特性。

(4)通過正常代碼和惡意代碼的數(shù)據(jù)庫分別完成異常檢測和簽名檢測。利用異常檢測去探測該軟件是否是惡意軟件。如果該軟件是惡意軟件,使用簽名檢測去確定該惡意軟件的病毒類型。

使用異常檢測去檢測安卓軟件是否存在惡意行為。首先建立正常軟件的API-DRG數(shù)據(jù)庫,然后將要檢測的軟件與數(shù)據(jù)庫中圖形比較,判斷是否存在跟它相似的圖形,如果數(shù)據(jù)庫中不存在一個圖形與要檢測軟件的圖形的相似度分數(shù)wgmaxdw(G,G',α)等于或大于設(shè)置的閾值ξ,即該軟件存在異常。

對于簽名檢測,首先我們從安卓惡意軟件Genome項目中提取里面惡意軟件的API-DRG,建立惡意代碼的API-DRG數(shù)據(jù)庫,然后去除數(shù)據(jù)庫中相似度高的圖形,保證數(shù)據(jù)庫中每個圖形具有自己的獨特性和不同惡意軟件家族的代表性。給定一個惡意軟件,通過上面第(3)步所說求出該軟件的特性矢量,最后使用這個特性矢量對該軟件進行分類。

上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
吴旗县| 观塘区| 驻马店市| 体育| 营口市| 儋州市| 福泉市| 深州市| 天全县| 偃师市| 响水县| 汕尾市| 高淳县| 天长市| 金湖县| 泰州市| 钟山县| 凤冈县| 富源县| 光泽县| 丹江口市| 南充市| 巫溪县| 故城县| 云阳县| 宁河县| 阿拉善右旗| 开远市| 富川| 巴林左旗| 金沙县| 巴彦淖尔市| 达尔| 印江| 平塘县| 海安县| 化州市| 南华县| 台前县| 济源市| 南乐县|