一種基于方法調(diào)用圖的Android惡意軟件檢測(cè)方法
【專利摘要】本發(fā)明提出一種Android惡意軟件檢測(cè)方法。采用構(gòu)建Andorid應(yīng)用Apk軟件的異構(gòu)方法調(diào)用圖,標(biāo)定敏感函數(shù),利用圖的連通性對(duì)惡意代碼進(jìn)行定位和家族分類。具體流程包括:對(duì)異構(gòu)方法調(diào)用圖進(jìn)行圖的連通性掃描,得到各個(gè)子圖,對(duì)各個(gè)子圖進(jìn)行敏感函數(shù)打分,超過(guò)閾值的子圖即為惡意代碼模塊,不同的Android軟件中相似的惡意代碼子圖結(jié)構(gòu)即為惡意代碼家族。本發(fā)明可以啟發(fā)式地發(fā)現(xiàn)未知惡意軟件,并對(duì)其進(jìn)行家族標(biāo)定,為廣大Android第三方市場(chǎng)和個(gè)人用戶提供安全掃描和保護(hù)。
【專利說(shuō)明】—種基于方法調(diào)用圖的Android惡意軟件檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,主要涉及一種檢測(cè)Android系統(tǒng)上的惡意代碼的方法。
【背景技術(shù)】
[0002]隨著智能手機(jī)的高速發(fā)展,Android平臺(tái)逐漸成為了世界上第一大的移動(dòng)終端平臺(tái),產(chǎn)品覆蓋了機(jī)頂盒,手機(jī),平板,以及各種智能終端,從各個(gè)角度影響著人們的生活。而且這些智能終端的功能越發(fā)的強(qiáng)大,包括了語(yǔ)音通話,數(shù)據(jù)業(yè)務(wù),NFC近場(chǎng)通訊等。Android智能終端已經(jīng)深入的進(jìn)入到了我們每個(gè)人的生活中,支付類服務(wù),生活類服務(wù),地圖類服務(wù),娛樂(lè)類服務(wù),個(gè)人信息類服務(wù)。在這樣的情況下,Android平臺(tái)上的安全問(wèn)題逐漸成為了 一個(gè)不得不被關(guān)注的問(wèn)題。
[0003]據(jù)安全公司TrustGo最新數(shù)據(jù)表明,Android上惡意應(yīng)用數(shù)量自2011年9月到2012年9月增長(zhǎng)了 580%。全球Android惡意軟件數(shù)量已從2年前的百余款到了今天的過(guò)百萬(wàn),從簡(jiǎn)單的竊取用戶通信記錄發(fā)展到了全面監(jiān)控用戶手機(jī),竊取包括個(gè)人記錄,銀行記錄,第三方軟件保存信息,后臺(tái)發(fā)送吸費(fèi)短信,后臺(tái)靜默點(diǎn)擊廣告等多個(gè)方面。
[0004]現(xiàn)有Android平臺(tái)惡意代碼檢測(cè)技術(shù)大多采用特征庫(kù)方式,對(duì)新的未知惡意軟件幾乎沒(méi)有查殺能力。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種Android惡意代碼檢測(cè)方法,通過(guò)啟發(fā)式靜態(tài)分析,提高對(duì)惡意代碼的識(shí)別和查殺能力。
[0006]本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:
[0007]一種Android惡意代碼檢測(cè)方法,包括以下步驟:
[0008]第一步,采集Android軟件的惡意樣本,進(jìn)行手動(dòng)分析,提取其中的敏感函數(shù);
[0009]第二步,提取所述惡意樣本中經(jīng)常使用的敏感接收器;
[0010]第三步,對(duì)第一步和第二步提取的敏感函數(shù)和接收器進(jìn)行打分,打分原則為高危操作或者敏感信息竊取方向的分值最高,危害程度越低,分值越低;
[0011]第四步,對(duì)待測(cè)的apk文件,通過(guò)反編譯apk源文件,得到內(nèi)部方法調(diào)用序列,然后再提取apk文件對(duì)外部的敏感函數(shù)和敏感接收器進(jìn)行的調(diào)用,把這兩部分調(diào)用添加到內(nèi)部方法調(diào)用序列中,形成全局的異構(gòu)方法調(diào)用序列;
[0012]第五步,根據(jù)第四步生成的異構(gòu)方法調(diào)用序列,生成異構(gòu)方法調(diào)用圖,圖中包含外部調(diào)用敏感函數(shù)、敏感接收器、Main函數(shù)和具體權(quán)限。
[0013]第六步,對(duì)第五步生成的圖進(jìn)行連通性掃描,利用圖的深度遍歷算法,劃分出獨(dú)立子圖;
[0014]第七步,對(duì)上一步處理過(guò)的子圖,利用第三步中的分值結(jié)構(gòu)進(jìn)行敏感性打分,并計(jì)算每個(gè)獨(dú)立子圖的評(píng)分;[0015]第八步,上一步中評(píng)分超過(guò)第一閾值的即為惡意代碼子圖模塊,進(jìn)行標(biāo)定與記錄;
[0016]第九步,每檢測(cè)出一個(gè)惡意代碼子圖后,計(jì)算該惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列。
[0017]第十步,將該惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列與已知惡意代碼家族調(diào)用路徑長(zhǎng)度序列進(jìn)行對(duì)比,并計(jì)算編輯距離,所述編輯距離是指兩個(gè)調(diào)用路徑長(zhǎng)度序列之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù)。
[0018]第H^一步,記錄每一個(gè)敏感函數(shù)的惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列與已知惡意代碼家族調(diào)用路徑長(zhǎng)度序列的編輯距離,并將該編輯距離與已知惡意代碼家族調(diào)用路徑長(zhǎng)度序列中對(duì)應(yīng)的敏感函數(shù)調(diào)用路徑長(zhǎng)度總和進(jìn)行比值,若比值均小于第二閾值,則判定該惡意代碼與所述已知惡意代碼家族屬于同一個(gè)家族。
[0019]本發(fā)明的有益效果為:啟發(fā)式地發(fā)現(xiàn)未知惡意軟件,可以對(duì)其進(jìn)行家族標(biāo)定,提高識(shí)別和查殺能力,為廣大Android第三方市場(chǎng)和個(gè)人用戶提供安全掃描和保護(hù)。
【專利附圖】
【附圖說(shuō)明】
[0020]圖1是本發(fā)明提出的Android惡意代碼檢測(cè)方法的流程示意圖;
[0021]圖2是計(jì)算惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列的算法示意圖。
【具體實(shí)施方式】
[0022]以下結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
[0023]如圖1所示,本發(fā)明 采用構(gòu)建Apk軟件異構(gòu)方法調(diào)用圖,標(biāo)定敏感函數(shù),繼而實(shí)現(xiàn)以圖的相關(guān)性方式對(duì)Android惡意代碼進(jìn)行定位和家族分類。在一個(gè)特定實(shí)施例中,檢測(cè)方法具體包括以下步驟:
[0024]第一步,采集Android軟件的惡意樣本,進(jìn)行手動(dòng)分析,提取其中的敏感函數(shù)。
[0025]所述敏感函數(shù)包括網(wǎng)絡(luò)類,短信類,電話類,文件操作類,設(shè)備操作類,代碼執(zhí)行類,地理位置類等七大類。在一個(gè)實(shí)施例中,敏感函數(shù)共計(jì)31個(gè)敏感api函數(shù)接口,如表1所示。
[0026]表1敏感函數(shù)和敏感接收器示例
[0027]
【權(quán)利要求】
1.一種Android惡意代碼檢測(cè)方法,包括以下步驟: 第一步,采集Android軟件的惡意樣本,進(jìn)行手動(dòng)分析,提取其中的敏感函數(shù); 第二步,提取所述惡意樣本中經(jīng)常使用的敏感接收器; 第三步,對(duì)第一步和第二步提取的敏感函數(shù)和接收器進(jìn)行打分,打分原則為高危操作或者敏感信息竊取方向的分值最高,危害程度越低,分值越低; 第四步,對(duì)待測(cè)的apk文件,通過(guò)反編譯apk源文件,得到內(nèi)部方法調(diào)用序列,然后再提取apk文件對(duì)外部的敏感函數(shù)和敏感接收器進(jìn)行的調(diào)用,把這兩部分調(diào)用添加到內(nèi)部方法調(diào)用序列中,形成全局的異構(gòu)方法調(diào)用序列; 第五步,根據(jù)第四步生成的異構(gòu)方法調(diào)用序列,生成異構(gòu)方法調(diào)用圖,圖中包含外部調(diào)用敏感函數(shù)、敏感接收器、Main函數(shù)和具體權(quán)限。 第六步,對(duì)第五步生成的圖進(jìn)行連通性掃描,利用圖的深度遍歷算法,劃分出獨(dú)立子圖; 第七步,對(duì)上一步處理過(guò)的子圖,利用第三步中的分值結(jié)構(gòu)進(jìn)行敏感性打分,并計(jì)算每個(gè)獨(dú)立子圖的評(píng)分; 第八步,上一步中評(píng)分超過(guò)第一閾值的即為惡意代碼子圖模塊,進(jìn)行標(biāo)定與記錄; 第九步,每檢測(cè)出一個(gè)惡意代碼子圖后,計(jì)算該惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列; 第十步,將該惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列與已知惡意代碼家族調(diào)用路徑長(zhǎng)度序列進(jìn)行對(duì)比,并計(jì)算編輯距離,所述編輯距離是指兩個(gè)調(diào)用路徑長(zhǎng)度序列之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù); 第十一步,記錄每一個(gè)敏感函數(shù)的惡意代碼子圖的調(diào)用路徑長(zhǎng)度序列與已知惡意代碼家族調(diào)用路徑長(zhǎng)度序列的編輯距離,并將該編輯距離與已知惡意代碼家族調(diào)用路徑長(zhǎng)度序列中對(duì)應(yīng)的敏感函數(shù)調(diào)用路徑長(zhǎng)度總和進(jìn)行比值,若比值均小于第二閾值,則判定該惡意代碼與所述已知惡意代碼家族屬于同一個(gè)家族。
2.如權(quán)利要求1所述的Android惡意代碼檢測(cè)步驟,其特征在于,第一步中提取的敏感函數(shù)包括網(wǎng)絡(luò)類、短信類、電話類、文件操作類、設(shè)備操作類、代碼執(zhí)行類和地理位置類七大類。
3.如權(quán)利要求1所述的Android惡意代碼檢測(cè)步驟,其特征在于,第二步中,所述經(jīng)常使用的敏感接收器包括接受短信接收器、接通電話接收器、掛斷電話接收器、接受來(lái)電接收器和開(kāi)機(jī)啟動(dòng)接收器。
4.如權(quán)利要求1所述的Android惡意代碼檢測(cè)方法,其特征在于,第三步中的打分采用以下分值結(jié)構(gòu):分值分為六檔,以5分為最低檔,30分為最高檔,步長(zhǎng)為5。
5.如權(quán)利要求4所述的Android惡意代碼檢測(cè)方法,其特征在于,優(yōu)選的,所述第一閾值為0.8。
6.如權(quán)利要求1所述的Android惡意代碼檢測(cè)方法,其特征在于,第九步中,所述調(diào)用路徑長(zhǎng)度是指:對(duì)于每一個(gè)外部敏感函數(shù)方法,在子圖中存在多個(gè)調(diào)用序列,每一個(gè)調(diào)用序列中的節(jié)點(diǎn)集合即為函數(shù)調(diào)用路徑,而節(jié)點(diǎn)集合的節(jié)點(diǎn)數(shù)目之和即為函數(shù)調(diào)用路徑長(zhǎng)度。
7.如權(quán)利要求1所述的Android惡意代碼檢測(cè)方法,其特征在于,第十步中,所述編輯操作包括將一個(gè)元素替換成另一個(gè)元素、插入一個(gè)元素和刪除一個(gè)元素。
8.如權(quán)利要求1所述的Android惡意代碼檢測(cè)方法,其特征在于,第十一步中,所述第二閾值為10%。
【文檔編號(hào)】G06F21/56GK103473507SQ201310443173
【公開(kāi)日】2013年12月25日 申請(qǐng)日期:2013年9月25日 優(yōu)先權(quán)日:2013年9月25日
【發(fā)明者】陶敬, 周文瑜, 胡文君, 趙雙, 馬小博 申請(qǐng)人:西安交通大學(xué)