国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

采用函數(shù)調(diào)用關(guān)系的注入型Android惡意應(yīng)用檢測(cè)

2015-03-07 05:40:49王歡來歡李國棟田達(dá)梁博
關(guān)鍵詞:函數(shù)調(diào)用子圖調(diào)用

王歡,來歡,李國棟,田達(dá),梁博

(1.西安工程大學(xué)服裝與設(shè)計(jì)藝術(shù)學(xué)院, 710048, 西安; 2.西安閻良國家航空高技術(shù)產(chǎn)業(yè)基地管理委員會(huì), 710089, 西安; 3.西安交通大學(xué)網(wǎng)絡(luò)中心, 710049, 西安)

?

采用函數(shù)調(diào)用關(guān)系的注入型Android惡意應(yīng)用檢測(cè)

王歡1,來歡2,李國棟3,田達(dá)2,梁博2

(1.西安工程大學(xué)服裝與設(shè)計(jì)藝術(shù)學(xué)院, 710048, 西安; 2.西安閻良國家航空高技術(shù)產(chǎn)業(yè)基地管理委員會(huì), 710089, 西安; 3.西安交通大學(xué)網(wǎng)絡(luò)中心, 710049, 西安)

針對(duì)注入型Android惡意應(yīng)用日益泛濫、傳統(tǒng)檢測(cè)方法依賴大量已知特征的問題,提出了采用函數(shù)調(diào)用關(guān)系的注入型Android惡意應(yīng)用檢測(cè)方法。該方法無須依賴大量已知特征,僅通過分析注入型Android惡意應(yīng)用的自身結(jié)構(gòu)特征即可實(shí)現(xiàn)對(duì)該類惡意應(yīng)用的有效檢測(cè),并能夠?qū)崿F(xiàn)對(duì)未知惡意代碼家族的識(shí)別。所提方法在smali代碼的基礎(chǔ)上構(gòu)建函數(shù)調(diào)用關(guān)系圖,并進(jìn)一步進(jìn)行子圖劃分,通過判定各子圖威脅度確定是否存在惡意行為。檢測(cè)過程無需動(dòng)態(tài)行為分析輔助,因此分析檢測(cè)時(shí)間短、效率高。該方法不僅可以檢測(cè)出Android應(yīng)用是否存在惡意行為,還可根據(jù)子圖威脅度確定包含惡意行為的具體代碼。經(jīng)過對(duì)1 260個(gè)Android惡意應(yīng)用和1 000個(gè)正常應(yīng)用的實(shí)驗(yàn)分析發(fā)現(xiàn):所提方法能夠很好地檢測(cè)注入型Android惡意應(yīng)用,當(dāng)誤報(bào)率為8.90%的時(shí)候,檢測(cè)率達(dá)到95.94%,相對(duì)于主流Android惡意應(yīng)用檢測(cè)系統(tǒng)Androguard,檢測(cè)效果有顯著提升。

Android;惡意代碼;靜態(tài)分析;函數(shù)調(diào)用關(guān)系

隨著智能手機(jī)的快速發(fā)展,Android操作系統(tǒng)成為當(dāng)前最流行的移動(dòng)終端平臺(tái)。IDC的統(tǒng)計(jì)數(shù)據(jù)顯示,2014年第4季度Android市場占有率達(dá)到76.6%[1]。Android系統(tǒng)的快速發(fā)展也伴隨著Android惡意應(yīng)用的出現(xiàn),攻擊者為了更好地傳播Android惡意應(yīng)用,會(huì)采用注入技術(shù)將惡意代碼重打包到當(dāng)下流行的Android應(yīng)用程序中,并通過第三方電子市場、Android應(yīng)用程序分享論壇等途徑進(jìn)行傳播。Zhou的研究結(jié)果表明,第三方電子市場上5%至13%的應(yīng)用程序?qū)儆谧⑷胄虯ndroid惡意應(yīng)用[2]。

Android惡意代碼靜態(tài)檢測(cè)研究方面,文獻(xiàn)[3]基于API信息構(gòu)建Android惡意應(yīng)用的檢測(cè)模型,取得了較好的檢測(cè)效果。Wu等提取Android應(yīng)用程序中的權(quán)限、組件以及Intent等信息構(gòu)建特征向量,并利用k-均值算法建立惡意代碼檢測(cè)模型[4]。

Android惡意代碼動(dòng)態(tài)檢測(cè)研究方面,文獻(xiàn)[5-6]分別實(shí)現(xiàn)了動(dòng)態(tài)行為監(jiān)控的沙盒系統(tǒng),可在不同層次監(jiān)控應(yīng)用程序的運(yùn)行行為。DroidScope系統(tǒng)則進(jìn)一步重新構(gòu)建了Android系統(tǒng)與Dalvik虛擬機(jī),實(shí)現(xiàn)了Android惡意代碼的動(dòng)態(tài)檢測(cè)[7]。

本文針對(duì)注入型Android惡意應(yīng)用提出了基于函數(shù)調(diào)用關(guān)系的惡意代碼檢測(cè)方法。為了保證應(yīng)用程序功能正常執(zhí)行,大部分注入型Android惡意應(yīng)用通過注入的獨(dú)立組件執(zhí)行惡意行為,例如注入一個(gè)廣播接收器用于監(jiān)聽開機(jī)啟動(dòng)事件,當(dāng)手機(jī)重啟后,該廣播接收器便可被觸發(fā)用于執(zhí)行惡意行為。此種注入型Android惡意應(yīng)用的特征使得惡意代碼部分與正常應(yīng)用代碼之間在函數(shù)調(diào)用關(guān)系上聯(lián)系較弱。

對(duì)于待檢測(cè)的Android應(yīng)用程序,首先進(jìn)行反編譯并在smali代碼級(jí)別構(gòu)建函數(shù)調(diào)用關(guān)系圖,在此基礎(chǔ)上將函數(shù)調(diào)用關(guān)系圖進(jìn)一步劃分為函數(shù)調(diào)用子圖,進(jìn)一步基于子圖中敏感API的調(diào)用次數(shù)計(jì)算子圖威脅度,最后根據(jù)威脅度判定子圖中是否包含惡意代碼。

本文提出了針對(duì)注入型Android惡意應(yīng)用的檢測(cè)方法,所提方法基于靜態(tài)分析,相對(duì)于動(dòng)態(tài)分析系統(tǒng),具有較高的代碼覆蓋率,同時(shí)也更加簡單易行。針對(duì)1 260個(gè)Android惡意應(yīng)用和1 000個(gè)正常應(yīng)用樣本的測(cè)試表明,所提方法針對(duì)注入型Android惡意應(yīng)用具有很好的檢測(cè)效果。

1 Android應(yīng)用程序基本結(jié)構(gòu)

Android應(yīng)用程序以APK文件的形式發(fā)布,結(jié)構(gòu)上主要包括4大組件,分別為:①Activity組件提供與用戶交互的界面,每個(gè)應(yīng)用程序一般都存在一個(gè)主Activity作為應(yīng)用程序啟動(dòng)的入口;②Service與Activity不同的是,Service組件主要運(yùn)行在后臺(tái)。Android惡意應(yīng)用為了防止被用戶察覺,一般會(huì)通過Service在后臺(tái)悄悄執(zhí)行惡意行為;③Broadcast Receiver組件接受來自應(yīng)用程序內(nèi)部其他組件或者其他應(yīng)用程序發(fā)送的廣播消息,因此可以用于監(jiān)聽系統(tǒng)的廣播事件,例如網(wǎng)絡(luò)狀態(tài)變化、電池電量低、短信接收等;④Content Provider組件提供數(shù)據(jù)操作的統(tǒng)一接口,可以通過URI聲明數(shù)據(jù)訪問地址,允許應(yīng)用程序之間的數(shù)據(jù)共享。

2 案例分析

Geinimi是Android平臺(tái)上首個(gè)僵尸網(wǎng)絡(luò)惡意應(yīng)用,采用注入技術(shù)將其自身注入到流行的Android應(yīng)用程序中,供Android用戶下載,實(shí)現(xiàn)廣泛傳播的目的[8]。該惡意應(yīng)用會(huì)收集被感染用戶的隱私信息并可以接受遠(yuǎn)程控制服務(wù)器下發(fā)的命令,可對(duì)廣大用戶的個(gè)人隱私信息造成嚴(yán)重的威脅。以MD5值為08E4A73F0F352C3ACCC03EA9D4E946 7F的惡意樣本為例,從AndroidManifest.xml配置文件中可以發(fā)現(xiàn)該樣本添加了一個(gè)名為com.geinimi.AdServiceReceiver的廣播接收器,用于監(jiān)聽開機(jī)廣播事件,并進(jìn)一步觸發(fā)惡意行為的執(zhí)行。

圖1為該樣本的函數(shù)調(diào)用關(guān)系圖,圖中每個(gè)節(jié)點(diǎn)代表了一個(gè)方法,節(jié)點(diǎn)之間的邊表示方法之間存在調(diào)用關(guān)系,空心節(jié)點(diǎn)表示調(diào)用的敏感API,其他節(jié)點(diǎn)皆為非敏感API。右上方的節(jié)點(diǎn)來自于應(yīng)用程序中的正常代碼部分,而左下方的節(jié)點(diǎn)則是來自于注入的惡意代碼Geinimi。從函數(shù)調(diào)用關(guān)系圖可以看出,在該應(yīng)用程序的正常代碼部分,基本沒有對(duì)敏感API的調(diào)用,而惡意代碼部分則調(diào)用了大量敏感API用于實(shí)現(xiàn)惡意行為。另一方面,該樣本的函數(shù)調(diào)用關(guān)系圖明顯地分為兩個(gè)部分,同時(shí)兩個(gè)部分之間沒有明顯的聯(lián)系。通過對(duì)該樣本的分析可以發(fā)現(xiàn),函數(shù)調(diào)用關(guān)系在一定程度上反映了Android應(yīng)用程序內(nèi)部各部分之間的關(guān)系,注入型Android惡意應(yīng)用內(nèi)部注入的惡意代碼部分與正常代碼部分之間存在明顯的割裂性。

圖1 Geinimi樣本函數(shù)調(diào)用關(guān)系圖

3 基于函數(shù)調(diào)用關(guān)系的檢測(cè)方法

本文提出的基于函數(shù)調(diào)用關(guān)系的檢測(cè)方法如圖2所示,主要包含兩個(gè)模塊:函數(shù)調(diào)用關(guān)系圖構(gòu)建模塊負(fù)責(zé)構(gòu)建Android應(yīng)用程序的函數(shù)調(diào)用關(guān)系圖;惡意代碼檢測(cè)模塊則負(fù)責(zé)識(shí)別函數(shù)調(diào)用關(guān)系圖中包含惡意代碼的部分。

圖2 注入型Android惡意應(yīng)用檢測(cè)基本算法

3.1 函數(shù)調(diào)用關(guān)系圖的構(gòu)建

在函數(shù)調(diào)用關(guān)系圖的構(gòu)建過程中,主要包括APK反匯編、API調(diào)用序列提取、函數(shù)調(diào)用關(guān)系圖構(gòu)建以及子圖劃分4個(gè)部分。

(1)APK反匯編:在構(gòu)建函數(shù)調(diào)用關(guān)系圖之前,需要獲得APK中調(diào)用的所有方法。為了獲得精確的函數(shù)調(diào)用關(guān)系,首先利用Android應(yīng)用程序逆向分析技術(shù)將待分析的APK文件經(jīng)過反匯編得到細(xì)粒度的smali代碼,并進(jìn)一步基于smali代碼構(gòu)建函數(shù)調(diào)用關(guān)系。

(2)API調(diào)用序列提取:在反匯編生成的smali代碼基礎(chǔ)上,從應(yīng)用程序的每個(gè)入口點(diǎn)處搜索并回溯以構(gòu)建API調(diào)用序列,函數(shù)的返回值以及參數(shù)可作為附加信息進(jìn)行提取,進(jìn)而構(gòu)建信息更為豐富的API調(diào)用序列。

(3)函數(shù)調(diào)用關(guān)系圖構(gòu)建:Android應(yīng)用程序在開發(fā)過程中,主要以類和包的形式進(jìn)行組織,開發(fā)者在開發(fā)過程中將具有一定關(guān)聯(lián)的代碼放入一個(gè)類中,進(jìn)而組織到一個(gè)包下,因此類和包具有特定的語義信息。本文根據(jù)此語義信息,將前述提取的API調(diào)用序列基于類進(jìn)行聚合,從而構(gòu)建出函數(shù)調(diào)用關(guān)系圖。

(4)子圖劃分:本文主要采用深度優(yōu)先遍歷算法在函數(shù)調(diào)用關(guān)系圖的基礎(chǔ)上進(jìn)行子圖劃分,在對(duì)函數(shù)調(diào)用關(guān)系圖進(jìn)行遍歷后,可以將調(diào)用的方法聚類到不同的子圖中,同一個(gè)子圖中的方法之間具有強(qiáng)相關(guān)性,而不同子圖中的方法具有弱相關(guān)性。為了進(jìn)一步識(shí)別子圖中是否包含惡意代碼,首先需要解決兩個(gè)問題,一個(gè)是Android應(yīng)用程序中存在的代碼碎片問題,另一個(gè)是Android應(yīng)用程序中廣泛存在的廣告模塊問題。本文所指的代碼碎片是指存在于應(yīng)用程序中但沒有實(shí)際功能的代碼片段,其存在對(duì)后續(xù)的惡意代碼識(shí)別具有干擾作用。為排除代碼碎片的影響,本文提出了簡單有效的方法用于識(shí)別Android應(yīng)用程序中的代碼碎片,其基本規(guī)則包括兩方面:當(dāng)子圖中僅有一個(gè)類,且該類沒有敏感API調(diào)用并且類中的方法數(shù)不超過4個(gè)時(shí),該子圖被標(biāo)識(shí)為代碼碎片;當(dāng)子圖中方法的方法體為空時(shí),該子圖被標(biāo)識(shí)為代碼碎片。

Android應(yīng)用程序開發(fā)者通常會(huì)在應(yīng)用程序中添加廣告模塊,通過廣告分成的方式獲取收益。開發(fā)者通??梢栽诓恍薷膽?yīng)用程序整體代碼的情況下利用廣告軟件開發(fā)包方便地集成廣告模塊,廣告模塊的實(shí)現(xiàn)機(jī)制導(dǎo)致廣告模塊在函數(shù)調(diào)用關(guān)系圖上呈現(xiàn)獨(dú)立的子圖。另外,為了實(shí)現(xiàn)精確推送,部分廣告模塊會(huì)通過調(diào)用敏感API來收集用戶的隱私信息,例如地理位置、瀏覽器搜索歷史等。圖3為包含廣告模塊應(yīng)用程序的函數(shù)調(diào)用關(guān)系圖,右上方的部分來自某廣告模塊,由圖可見,該廣告模塊中同樣包含了針對(duì)若干敏感API的調(diào)用。因此,廣告模塊與注入型惡意應(yīng)用在函數(shù)調(diào)用關(guān)系圖上具有相似的部分,在惡意代碼檢測(cè)過程中會(huì)導(dǎo)致誤報(bào)。

為了區(qū)別廣告模塊和注入型Android惡意應(yīng)用,需要對(duì)廣告模塊進(jìn)行識(shí)別。通過分析發(fā)現(xiàn),每個(gè)廣告模塊都有其對(duì)應(yīng)的唯一包名,因此,可以基于廣告模塊的包名建立白名單,并依據(jù)此白名單對(duì)廣告模塊進(jìn)行過濾,從而降低誤報(bào)率。

圖3 包含廣告模塊應(yīng)用程序的方法調(diào)用圖

3.2 惡意代碼檢測(cè)

在完成函數(shù)調(diào)用關(guān)系圖構(gòu)建與子圖劃分處理后,需要進(jìn)一步判定Android應(yīng)用程序中是否存在惡意代碼。惡意代碼的判定主要包括兩個(gè)步驟:子圖威脅度計(jì)算以及子圖惡意代碼判定。

(1)子圖威脅度計(jì)算:Android惡意代碼通過調(diào)用敏感API來實(shí)現(xiàn)惡意行為,例如發(fā)送短信需要調(diào)用sendTextMessage函數(shù),因此可以通過對(duì)敏感API的調(diào)用情況來計(jì)算子圖的威脅度,本文首先通過對(duì)1 000個(gè)樣本的統(tǒng)計(jì)分析得到了Android惡意代碼中使用頻率較高的API列表,表1顯示了使用率最高的前10個(gè)API以及API的調(diào)用次數(shù)。每個(gè)敏感API會(huì)根據(jù)其潛在的威脅以及被惡意代碼調(diào)用的次數(shù)賦予相應(yīng)的威脅度值。對(duì)于每個(gè)子圖,會(huì)進(jìn)一步根據(jù)敏感API調(diào)用的次數(shù)計(jì)算子圖的威脅度值,子圖威脅度值為所有敏感API的威脅度值總和。

表1 使用率最高的前10個(gè)系統(tǒng)API

(2)子圖惡意代碼判定:在對(duì)100個(gè)注入型Android惡意應(yīng)用程序的子圖威脅度進(jìn)行分析后發(fā)現(xiàn),包含惡意代碼的子圖具有較高威脅度的同時(shí)其函數(shù)(所有函數(shù))調(diào)用數(shù)目較少,而正常子圖在具有較低威脅度的同時(shí)函數(shù)調(diào)用數(shù)目較多,因此可以進(jìn)一步將子圖威脅度值除以函數(shù)調(diào)用次數(shù)獲得平均子圖威脅度值。平均子圖威脅度值越高,其包含惡意代碼的可能性越大,為了確定惡意代碼判定的閾值,對(duì)上述100個(gè)注入型惡意應(yīng)用樣本進(jìn)行檢測(cè)實(shí)驗(yàn),結(jié)果如圖4所示。當(dāng)閾值超過0.4以后,惡意代碼子圖識(shí)別出現(xiàn)了漏報(bào),且隨著閾值的提高,漏報(bào)率逐漸上升;而當(dāng)閾值低于0.4時(shí),正常功能代碼子圖部分出現(xiàn)了誤報(bào),且隨著閾值的降低,誤報(bào)率快速上升。因此,本文將閾值設(shè)為0.4,當(dāng)平均子圖威脅度值超過該閾值時(shí),則判定該子圖包含惡意代碼。

圖4 惡意代碼子圖漏報(bào)率和誤報(bào)率隨閾值變化曲線

4 實(shí)驗(yàn)結(jié)果與分析

本節(jié)對(duì)Android Malware Genome Project[9]中包含的1 260個(gè)惡意代碼樣本進(jìn)行實(shí)驗(yàn),測(cè)試本文方法對(duì)真實(shí)Android惡意代碼的檢測(cè)效果,同時(shí)與Androguard[10]進(jìn)行對(duì)比,Androguard主要是基于特征匹配進(jìn)行惡意代碼檢測(cè)。實(shí)驗(yàn)過程中首先對(duì)應(yīng)用程序樣本進(jìn)行反匯編得到smali代碼,其次在smali代碼的基礎(chǔ)上提取API調(diào)用序列并構(gòu)建函數(shù)調(diào)用關(guān)系圖,同時(shí)進(jìn)一步進(jìn)行子圖劃分,最后對(duì)每部分子圖進(jìn)行威脅度計(jì)算,判斷子圖是否包含惡意代碼。表2顯示了對(duì)注入型Android惡意應(yīng)用的最終檢測(cè)結(jié)果,表3則為對(duì)非注入型Android惡意應(yīng)用的檢測(cè)結(jié)果。由實(shí)驗(yàn)結(jié)果可見,本文方法能夠很好地檢測(cè)注入型Android惡意應(yīng)用,平均檢測(cè)率達(dá)到95.94%,遠(yuǎn)高于Androguard 32.63%的平均檢測(cè)率;從對(duì)非注入型惡意應(yīng)用檢測(cè)效果來看,仍然可以檢測(cè)出部分惡意應(yīng)用。與基于特征的靜態(tài)惡意代碼檢測(cè)系統(tǒng)不同的是,本文方法除了需要敏感API信息外不需要任何其他先驗(yàn)特征信息。Android惡意代碼執(zhí)行惡意行為一般需要調(diào)用系統(tǒng)API來實(shí)現(xiàn),而這些API在一定程度上是穩(wěn)定不變的,因此基于函數(shù)調(diào)用關(guān)系圖的方法相比基于特征的惡意代碼檢測(cè)方法具有更好的穩(wěn)定性,同時(shí)可以用于檢測(cè)未知的惡意代碼。

表2 注入型Android惡意應(yīng)用檢測(cè)結(jié)果

表3 非注入型Android惡意應(yīng)用檢測(cè)結(jié)果

對(duì)于檢測(cè)率低的惡意樣本,我們將手動(dòng)分析并解釋本文方法所存在的局限性。

(1)Asroot:該惡意代碼具有獲取root權(quán)限的功能。該家族中的部分樣本并沒有采用注入技術(shù)將惡意代碼注入到正常應(yīng)用中,而是實(shí)現(xiàn)了一個(gè)具有惡意行為的完整Android應(yīng)用程序,因此函數(shù)調(diào)用關(guān)系圖之間沒有明顯的差異,這也導(dǎo)致了低檢測(cè)率情況的發(fā)生。

(2)SndApps:該惡意代碼樣本實(shí)際上沒有嚴(yán)重的安全威脅,其僅僅在正常應(yīng)用中注入了大量廣告模塊并綁定了自己的廣告ID,以此來竊取其他開發(fā)者的廣告分成利益。由于本文方法在子圖劃分過程中過濾了所有廣告模塊,因此對(duì)于SndApps的檢測(cè)率為0。

(3)zHash:該惡意代碼樣本通過添加垃圾代碼實(shí)現(xiàn)變種目的,同時(shí)其自身也實(shí)現(xiàn)了部分對(duì)用戶有用的功能,因此惡意代碼與正常代碼之間具有較強(qiáng)的相關(guān)性,從函數(shù)調(diào)用關(guān)系圖來看,兩個(gè)部分是一個(gè)整體,這也必然導(dǎo)致了基于函數(shù)調(diào)用關(guān)系檢測(cè)方法失效。

進(jìn)一步隨機(jī)選取1 000個(gè)來自Google Play的正常Android應(yīng)用程序作為數(shù)據(jù)集,測(cè)試了本文方法的誤報(bào)率。表4顯示了被檢測(cè)出包含惡意代碼的包名以及樣本數(shù)量,一共有89個(gè)樣本被標(biāo)定為惡意代碼,因此誤報(bào)率為8.90%。但是進(jìn)一步分析發(fā)現(xiàn),大多數(shù)被標(biāo)定為包含惡意代碼的包是來自于廣告模塊或者其他第三方模塊。例如,com.smaato.SMOA來自于名為SMAATO的廣告模塊;com.phonegap來自第三方模塊PhoneGap,該模塊可以為Android應(yīng)用程序提供Web開發(fā)技術(shù)。因此,可以通過擴(kuò)展白名單降低誤報(bào)率。

表4 正常Android應(yīng)用程序檢測(cè)結(jié)果

5 結(jié) 論

本文提出了針對(duì)注入型Android惡意應(yīng)用的檢測(cè)方法,首先從待分析的Android應(yīng)用程序中提取API調(diào)用序列,基于此調(diào)用序列進(jìn)一步構(gòu)造函數(shù)調(diào)用關(guān)系圖。在函數(shù)調(diào)用關(guān)系圖的基礎(chǔ)上進(jìn)行子圖劃分,通過計(jì)算平均子圖威脅度值來判定是否包含惡意代碼。實(shí)驗(yàn)結(jié)果表明,本文方法對(duì)于注入型Android惡意應(yīng)用具有很好的檢測(cè)效果。本文方法不依賴于先驗(yàn)特征,可以用于檢測(cè)已知和未知Android惡意應(yīng)用。實(shí)驗(yàn)部分選取的樣本較老,隨著注入型Android惡意應(yīng)用的技術(shù)發(fā)展,可能會(huì)出現(xiàn)新型的樣本,因此在后續(xù)工作中,會(huì)繼續(xù)對(duì)新發(fā)現(xiàn)的注入型Android惡意應(yīng)用進(jìn)行分析,進(jìn)一步改進(jìn)檢測(cè)方法。

[1] IDC. Smartphone OS market share, Q4 2014 [EB/OL]. (2015-01-20) [2015-03-12]. http:∥www.idc. com/prodserv/smartphone-os-market-share.jsp.

[2] ZHOU Wu, ZHOU Yajin, JIANG Xuxian, et al. Detecting repackaged smartphone applications in third-party Android marketplaces [C]∥Proceedings of the Second ACM Conference on Data and Application Security and Privacy. New York, USA: ACM, 2012: 317-326.

[3] AAFER Y, DU Wenliang, YIN Heng. DroidAPIMiner: mining API-level features for robust malware detection in Android [C]∥Proceedings of the 9th International Conference on Security and Privacy in Communication Networks. Berlin, Germany: Springer, 2013: 86-103.

[4] WU Dongjie, MAO Chinghao, WEI Teen, et al. Droidmat: Android malware detection through manifest and API calls tracing. [C]∥Proceedings of the 7th Asia Joint Conference on Information Security. Piscataway, NJ, USA: IEEE, 2012: 62-69.

[5] GRACE M, ZHOU Yajin, ZHANG Qiang, et al. Riskranker: scalable and accurate zero-day Android malware detection [C]∥Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services. New York, USA: ACM, 2012: 281-294.

[6] ISOHARA T, TAKEMORI K, KUBOTA A. Kernel-based behavior analysis for Android malware detection [C]∥Proceedings of the 7th International Conference on Computational Intelligence and Security. Piscataway, NJ, USA: IEEE, 2011: 1011-1015.

[7] YAN L K, YIN Heng. DroidScope: seamlessly reconstructing the OS and Dalvik semantic views for dynamic Android malware analysis [C]∥Proceedings of the 21st USENIX Conference on Security Symposium. Berkeley, CA, USA: USENIX, 2012: 29.

[8] PIETERSE H, OLIVIER M S. Android botnets on the rise: trends and characteristics [C]∥Proceedings of the Conference on Information Security for South Africa. Piscataway, NJ, USA: IEEE, 2012: 1-5.

[9] JIANG Xuexian, ZHOU Yajin. Android malware genome project [EB/OL]. (2012-08-11)[2015-03-12]. http:∥www.malgenomeproject.org.

[10]DESNOS A. Androguard: reverse engineering, malware and goodware analysis of Android applications and more [EB/OL]. (2013-11-21) [2015-03-12]. http:∥code.google.com/p/androguard.

(編輯 武紅江)

A Detection Method of Injected Android Malicious Applications Using Function Calling Graphs

WANG Huan1,LAI Huan2,LI Guodong3,TIAN Da2,LIANG Bo2

(1. Apparel and Art Design College, Xi’an Polytechnic University, Xi’an 710048, China;2. Xi’an Yanliang National Aviation Hi-Tech Industrial Base Management Committee, Xi’an 710048, China;3. Network Center, Xi’an Jiaotong University, Xi’an 710049, China)

The number of injected Android malicious applications is increasing, and the traditional detection method heavily relies on lots of extracted characteristics. A static analysis method based on function calling graph is proposed to detect injected Android malicious applications. The method can efficiently detect injected Android malicious applications only by analyzing the application’s structure, and there is no need for known characteristics. The method constructs a function calling graph based on decompiled smali code, and sub-graphs will be further processed to tell whether the Android application is malicious or not. The period of analysis is much shorter than that of any other dynamic detection method. The detection method not only detects whether the Android application is malicious or not, but also has the ability to tell which part of the Android application contains malicious code. The approach is tested on 1 260 Android malicious applications and 1 000 Android normal applications, and the test results show that the approach is effective in detecting injected Android malicious applications. The detection rate of the method for the injected Android malicious applications is 95.94% when the false positive rate is 8.90%. A comparison with the mainstream Android malware detection system Androguard shows that the detection performance of the proposed method has a remarkable promotion.

Android; malware; static analysis; function calling graph

2015-06-13。

王歡(1980—),女,講師。

陜西省科技統(tǒng)籌創(chuàng)新工程計(jì)劃資助項(xiàng)目(2013KTCQ01-51);國家自然科學(xué)基金資助項(xiàng)目(61103241)。

時(shí)間:2015-07-28

10.7652/xjtuxb201510014

TP393

A

0253-987X(2015)10-0084-06

網(wǎng)絡(luò)出版地址:http://www.cnki.net/kcms/detail/61.1069.T.20150728.1755.006.html

猜你喜歡
函數(shù)調(diào)用子圖調(diào)用
基于C語言的數(shù)學(xué)菜單的設(shè)計(jì)與實(shí)現(xiàn)
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
臨界完全圖Ramsey數(shù)
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測(cè)方法*
探討C++編程中避免代碼冗余的技巧
Unity3D項(xiàng)目腳本優(yōu)化分析與研究
中國新通信(2017年1期)2017-03-08 03:12:21
基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
基于頻繁子圖挖掘的數(shù)據(jù)服務(wù)Mashup推薦
不含2K1+K2和C4作為導(dǎo)出子圖的圖的色數(shù)
龙胜| 镇平县| 长子县| 房山区| 郓城县| 龙井市| 贵阳市| 高碑店市| 沂水县| 潮州市| 苍溪县| 鸡泽县| 抚松县| 平利县| 西乌| 大城县| 关岭| 鸡西市| 交城县| 类乌齐县| 田东县| 凌源市| 商城县| 阿拉善右旗| 甘南县| 子长县| 营山县| 阜南县| 萨嘎县| 阳泉市| 炎陵县| 景宁| 博罗县| 焉耆| 广昌县| 吴忠市| 原平市| 灌南县| 柳林县| 塔城市| 邯郸市|