一種基于對(duì)象引用圖的Android手機(jī)惡意軟件檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及Amlroid手機(jī)惡意軟件檢測(cè)技術(shù),特別設(shè)及一種基于對(duì)象引用圖的An化0id手機(jī)惡意軟件檢測(cè)方法。
【背景技術(shù)】
[0002] 現(xiàn)有技術(shù)包括采用內(nèi)核級(jí)別的監(jiān)控方式,對(duì)An化oid程序的系統(tǒng)調(diào)用和信息進(jìn)行 記錄?;诋惓P袨闄z測(cè)的化0W化oid系統(tǒng),該系統(tǒng)是基于異常行為檢測(cè)的分類器,采用的 是輕量級(jí)的C/S架構(gòu)。沙箱技術(shù),該是分析Amlroid惡意代碼新的發(fā)展方向,有很大的研究 空間。G.MylesandC.Col化erg首先提出動(dòng)態(tài)胎記,他們利用程序在運(yùn)行過(guò)程中完整的控制 流來(lái)識(shí)別軟件。Tamadaetal提出了兩種基于API函數(shù)調(diào)用建立動(dòng)態(tài)胎記的方法。Wangetal. 提出了基于系統(tǒng)調(diào)用依賴關(guān)系建立動(dòng)態(tài)胎記的方法。通過(guò)程序運(yùn)行時(shí)系統(tǒng)調(diào)用之間的依賴 關(guān)系建立一張系統(tǒng)調(diào)用依賴關(guān)系(SCDG)。在SCDG中,每一個(gè)系統(tǒng)調(diào)用作為節(jié)點(diǎn),系統(tǒng)調(diào)用 之間的依賴關(guān)系(即存在數(shù)據(jù)交流)作為邊。SCDG胎記作為整個(gè)SCDG的一個(gè)子圖來(lái)識(shí)別 程序。通過(guò)實(shí)驗(yàn)測(cè)試,該方法對(duì)于不同的編譯選項(xiàng),不同編譯器W及代碼混淆的攻擊都具有 很好的健壯性。
[0003] 通過(guò)內(nèi)核級(jí)別監(jiān)控識(shí)別惡意程序的方法實(shí)現(xiàn)難度較大,設(shè)及系統(tǒng)底層內(nèi)核的改 動(dòng),并且需要較大的系統(tǒng)檢測(cè)花銷(xiāo)。而沙箱技術(shù)還不成熟,沙箱模擬操作系統(tǒng)為程序提供服 務(wù),但是沙箱能夠提供的服務(wù)是有限的,惡意程序可W通過(guò)調(diào)用沙箱未提供的服務(wù)等方式 使沙箱崩潰。
[0004] 在應(yīng)對(duì)保留程序語(yǔ)義的攻擊時(shí),控制流方法比靜態(tài)胎記技術(shù)更加有效。但如果程 序受到代碼混淆攻擊,該技術(shù)就會(huì)失效。而且由于程序控制流龐大,對(duì)于較大的程序很難實(shí) 現(xiàn)。基于API函數(shù)調(diào)用建立動(dòng)態(tài)胎記的方法最大的問(wèn)題是需要足夠多的API調(diào)用,所W當(dāng) 程序的API數(shù)量不足時(shí),該方法就無(wú)法建立有效的動(dòng)態(tài)胎記,因此有較大的局限性。
[0005] 《基于對(duì)象引用關(guān)系圖的Amlroid惡意代碼檢測(cè)的研究》沒(méi)有說(shuō)明0RGB的提取過(guò) 程,其僅僅指出"0RGB的建立需要一個(gè)惡意代碼類的列表來(lái)過(guò)濾所得到的類。"而0RGB在系 統(tǒng)進(jìn)行檢測(cè)時(shí)具有關(guān)鍵作用,0RGB提取效果的好壞對(duì)系統(tǒng)最終的檢測(cè)漏報(bào)率,誤報(bào)率有決 定性的影響。
[0006] 《基于對(duì)象引用關(guān)系圖的Amlroid惡意代碼檢測(cè)的研究》中在檢測(cè)過(guò)程中所使用的 V巧算法無(wú)法在真實(shí)環(huán)境中應(yīng)用,因?yàn)閂巧算法的運(yùn)行時(shí)間隨著0RGB圖中節(jié)點(diǎn)的數(shù)量成指 數(shù)級(jí)增長(zhǎng),對(duì)于常見(jiàn)的圖的一次匹配可能就需要10小時(shí)的時(shí)間。而該下實(shí)際應(yīng)用環(huán)境中 是無(wú)法接受的。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的是為了解決核級(jí)別監(jiān)控識(shí)別惡意程序的方法設(shè)及系統(tǒng)底層內(nèi)核的 改動(dòng),需要較大的系統(tǒng)檢測(cè)花銷(xiāo)、沙箱提供服務(wù)、控制流方法程序受到代碼混淆攻擊、0RGB 圖中節(jié)點(diǎn)的數(shù)量成指數(shù)級(jí)增長(zhǎng)沒(méi)有說(shuō)明0RGB的提取過(guò)程W及基于API函數(shù)調(diào)用建立動(dòng)態(tài) 胎記的方法需要足夠多的API調(diào)用具有較大的局限性的問(wèn)題而提出的一種基于對(duì)象引用 圖的An化0id手機(jī)惡意軟件檢測(cè)方法。
[0008] 上述的發(fā)明目的是通過(guò)W下技術(shù)方案實(shí)現(xiàn)的:
[0009] 步驟一、將Amlroid平臺(tái)下已分類的惡意程序分別運(yùn)行,從惡意程序堆內(nèi)存中提 取對(duì)象之間對(duì)應(yīng)的引用關(guān)系圖0RG;其中,0RG為對(duì)象引用圖是一個(gè)二元組0RG= (N,E),N 是圖中節(jié)點(diǎn)的集合;EGNXN,是對(duì)象之間引用關(guān)系的集合;對(duì)象為0RG圖中的節(jié)點(diǎn),邊代 表對(duì)象之間存在引用關(guān)系;0RG包括用戶類、系統(tǒng)類W及用戶類和系統(tǒng)類的引用關(guān)系;
[0010] 步驟二、利用改進(jìn)的V巧算法將同一類惡意程序的所有引用關(guān)系圖0RG進(jìn)行子圖 同構(gòu),得到該類惡意程序中所有的0RG的最大公共部分即惡意程序的0RGB;其中,0RGB為引 用關(guān)系胎記圖;
[0011] 步驟S、根據(jù)步驟一的方法提取未知程序的0RG,根據(jù)未知程序請(qǐng)求的應(yīng)用權(quán)限和 系統(tǒng)類,利用類別判斷方法對(duì)未知程序類別進(jìn)行篩選,篩選出未知程序的可能類別;
[0012] 步驟四、選擇未知程序的可能類別所對(duì)應(yīng)的0RGB,利用改進(jìn)的V巧算法依次將所 對(duì)應(yīng)的0RGB與未知程序的0RG進(jìn)行子圖同構(gòu)檢測(cè),若某個(gè)0RGB與待檢測(cè)0RG是子圖同構(gòu)關(guān) 系,則表明未知程序?yàn)槟愁惼ヅ涞膼阂獬绦?;即完成了一種基于對(duì)象引用圖的Amlroid手 機(jī)惡意軟件檢測(cè)方法。
[001引發(fā)明效果
[0014] 本發(fā)明提出基于對(duì)象引用圖的惡意軟件檢測(cè)方法。通過(guò)提取程序運(yùn)行過(guò)程中內(nèi)存 中對(duì)象的引用關(guān)系,將其作為程序的胎記。通過(guò)比對(duì)程序的胎記與惡意程序庫(kù)中惡意程序 胎記,判斷程序是否為惡意程序。該種方法相對(duì)基于API調(diào)用通用性更好。
[0015] An化oid系統(tǒng)是當(dāng)前最流行的移動(dòng)設(shè)備操作系統(tǒng)之一。An化oid系統(tǒng)的開(kāi)放性一 方面為其快速的發(fā)展提供了強(qiáng)大的助力,另一方面也間接的有利于惡意軟件的開(kāi)發(fā)。根據(jù) 谷歌最新發(fā)布的2014年An化oid安全報(bào)告,2014年被惡意軟件感染的An化oid智能設(shè)備近 1%。針對(duì)Amlroid手機(jī)惡意軟件的檢測(cè)方法有靜態(tài)檢測(cè)與動(dòng)態(tài)檢測(cè)兩種。靜態(tài)檢測(cè)方法 準(zhǔn)確率高,檢測(cè)速度快,但無(wú)法應(yīng)對(duì)代碼混淆及加殼等攻擊手段。動(dòng)態(tài)檢測(cè)方法能夠應(yīng)對(duì)代 碼混淆及加殼等攻擊手段,但現(xiàn)有的動(dòng)態(tài)檢測(cè)方法仍存在一些問(wèn)題。所W我們提出了基于 對(duì)象引用圖的動(dòng)態(tài)檢測(cè)方法。
[0016] 圖3是使用上述方法對(duì)26類726個(gè)程序進(jìn)行分類的結(jié)果。圖3看出,上述方法的 在我們把范圍擴(kuò)展到前五位時(shí)準(zhǔn)確率已經(jīng)達(dá)到了 95%。圖4展示的是不同類別各自的分類 準(zhǔn)確率,可W看到多數(shù)類別的準(zhǔn)確率都很高,在考慮前五位的情況下接近100%。
[0017] 本發(fā)明方法不設(shè)及系統(tǒng)底層的改動(dòng),系統(tǒng)開(kāi)銷(xiāo)??;本發(fā)明方法使用的是對(duì)象引用 圖0RG能夠避免代碼混淆的攻擊;本方法使用的是程序運(yùn)行過(guò)程中在堆內(nèi)存中存放的對(duì)象 信息,所W相比API調(diào)用具有更廣泛的適用性。
[0018] 本發(fā)明找到了能夠在所有版本的An化oid系統(tǒng)提取0RG的方法;具體方法在權(quán)利 要求說(shuō)明書(shū)中的第S部分0RG提取方法中做出了介紹。通過(guò)我們的方法,能夠在目前所有 版本的Amlroid系統(tǒng)中提取0RG。
[0019] 本發(fā)明提取了使用改進(jìn)的V巧算法提取0RGB的方法,具體方法在權(quán)利要求說(shuō)明書(shū) 中第五部分0RGB的提取有具體介紹。對(duì)于根據(jù)上述方法得到的0RGB的正確性,一方面通 過(guò)實(shí)驗(yàn)比對(duì)驗(yàn)證確認(rèn),另一方面,系統(tǒng)最終的檢測(cè)結(jié)果也能夠?qū)ζ溥M(jìn)行證明。
[0020] 本發(fā)明首先提取基于應(yīng)用權(quán)限與系統(tǒng)類的類別判斷方法快速的鎖定待檢測(cè)程序 可能的類別,排除無(wú)關(guān)類別的干擾,減少需要匹配的次數(shù),該方法的具體介紹在權(quán)利要求說(shuō) 明書(shū)的第走部分,說(shuō)明書(shū)附圖中的圖3是使用上述方法對(duì)26類726個(gè)程序進(jìn)行分類的結(jié) 果。從表中可W看出,上述方法的在我們把范圍擴(kuò)展到前五位時(shí)準(zhǔn)確率已經(jīng)達(dá)到了 95%。 說(shuō)明書(shū)附圖中的圖4展示的是不同類別各自的分類準(zhǔn)確率,可W看到多數(shù)類別的準(zhǔn)確率 都很高,在考慮前五位的情況下接近100%。而有少數(shù)幾類的準(zhǔn)確率較低,例如,Asroot, BaseBridge,通過(guò)分析發(fā)現(xiàn)其程序所需權(quán)限較少,有的程序僅包含一個(gè)權(quán)限,并且不同程序 間的權(quán)限缺乏共性;然后,我們提出適用于惡意程序檢測(cè)系統(tǒng)的改進(jìn)的V巧算法,該算法能 夠極大的減少算法的運(yùn)行時(shí)間,使系統(tǒng)能夠?qū)嶋H的應(yīng)用目前系統(tǒng)在檢測(cè)時(shí)的平均檢測(cè)時(shí)間 為10s,最大檢測(cè)時(shí)間<30s,最小檢測(cè)時(shí)間<ls。
【附圖說(shuō)明】
[0021] 圖1為【具體實(shí)施方式】S提出的0RG文件提取流程圖;
[002引 圖2為【具體實(shí)施方式】五提出的0RGB提取示意圖,其中,Com.A.ai、Com.A.Cl、Com.A.di、Com.A.f、Com.B. 3i、Com.B.bi、Com.B.Cl、Com.B.di、Com.B.f、a、c、d和f均為對(duì)象名 稱;
[0023] 圖3為【具體實(shí)施方式】一提出的使用權(quán)限進(jìn)行分類的結(jié)果示意圖;
[0024] 圖4為【具體實(shí)施方式】走提出的不同類別前五位的分類準(zhǔn)確率示意圖;
[00巧]圖5為【具體實(shí)施方式】四提出的修改前捜索樹(shù)的一部分;其中,A.b.C、b.C.tInt、long、java,class和com.a.b均為對(duì)象名稱;
[0026] 圖6為【具體實(shí)施方式】四提出的修改后捜索樹(shù)的一部分;其中,A.b.c、b.c.tInt、 long、java,class和com.a.b均為對(duì)象名稱;
[0027] 圖7為【具體實(shí)施方式】四提出的ORGB圖,其中,Bingder、X、A、BW及C指代對(duì)象名 稱;
[002引圖8為【具體實(shí)施方式】四提出的待匹配0RG圖,其中,Linker、Activity、X、A、B、C、D和E指代對(duì)象名稱;
[0029] 圖9為【具體實(shí)施方式】一提出的一種基于對(duì)象引用圖的An化oid手機(jī)惡意軟件檢測(cè) 方法流程圖;
[0030] 圖10為【具體實(shí)施