李博亞, 薛 質(zhì)
(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
Android系統(tǒng)中惡意代碼的動(dòng)態(tài)檢測(cè)技術(shù)研究
李博亞, 薛 質(zhì)
(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
隨著手機(jī)普及程度的日益提高,人們對(duì)智能手機(jī)的依賴性加重,手機(jī)的安全性問(wèn)題變得愈加突出.根據(jù)Android安裝包(APK)文件的權(quán)限調(diào)用和Android系統(tǒng)的應(yīng)用程序接口(API)函數(shù)調(diào)用情況,設(shè)計(jì)了一種基于API攔截技術(shù)的檢測(cè)惡意代碼的動(dòng)態(tài)檢測(cè)方法.實(shí)驗(yàn)結(jié)果表明,該方法可以有效檢測(cè)并報(bào)告Android系統(tǒng)中的惡意代碼.
Android; 應(yīng)用程序編程接口; 惡意代碼; 動(dòng)態(tài)檢測(cè)
隨著科學(xué)技術(shù)的進(jìn)步與發(fā)展,智能手機(jī)已成為人們身邊不可或缺的設(shè)備,在功能不斷完善發(fā)展的同時(shí),其性能也日新月異.現(xiàn)在,手機(jī)不僅用于通訊,而且可以存儲(chǔ)照片、文件、視頻等隱私敏感信息.由于移動(dòng)支付技術(shù)的不斷發(fā)展,智能手機(jī)現(xiàn)在還充當(dāng)著人們的“錢(qián)包”.然而,隨著智能手機(jī)應(yīng)用性的增加和功能的不斷完善,有關(guān)隱私信息的安全性問(wèn)題也愈加突出.根據(jù)賽門(mén)鐵克2016年度安全報(bào)告(ISTR2016)顯示:2016年,在移動(dòng)平臺(tái)上利用惡意代碼進(jìn)行隱私竊取的相關(guān)攻擊數(shù)目增加了200%,達(dá)到了數(shù)千萬(wàn)起[1].欺詐者利用各種漏洞攻擊和改寫(xiě)APP安裝文件,并向手機(jī)中植入各類(lèi)惡意代碼,對(duì)用戶的手機(jī)進(jìn)行攻擊并獲取各類(lèi)隱私信息.而在各類(lèi)平臺(tái)中,Android系統(tǒng)因?yàn)槠溟_(kāi)源的特性和開(kāi)放度更大的用戶體驗(yàn)獲得了最大的市場(chǎng)占有率.由于Android平臺(tái)高度開(kāi)放,保障系統(tǒng)安全性便成為了難題,在截獲的各類(lèi)惡意代碼和惡意軟件中,擁有75%市場(chǎng)占有率的Android平臺(tái)智能設(shè)備吸引了98.05%惡意軟件的關(guān)注[2].因此,研究解決基于Android系統(tǒng)的智能設(shè)備的信息安全問(wèn)題就顯得愈加急迫,并且受到越來(lái)越多的關(guān)注.本文作者根據(jù)Android安裝包(APK)文件的權(quán)限調(diào)用和Android系統(tǒng)的應(yīng)用程序接口(API)函數(shù)調(diào)用情況,設(shè)計(jì)了一種基于API攔截技術(shù)的檢測(cè)惡意代碼的動(dòng)態(tài)檢測(cè)方法,實(shí)驗(yàn)發(fā)現(xiàn)該方法具有一定可行性.
惡意代碼是指那些對(duì)程序運(yùn)行沒(méi)有幫助,卻對(duì)系統(tǒng)安全產(chǎn)生危害的代碼,包括病毒攻擊、隱私竊取、遠(yuǎn)程控制、流氓行為等類(lèi)型.惡意代碼的分析和檢測(cè)是為最終清除惡意代碼進(jìn)行準(zhǔn)備和提供依據(jù).根據(jù)分析方法不同,目前惡意代碼的檢測(cè)方式大致可以分為兩種,靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)[3].
1.1 靜態(tài)檢測(cè)方法
靜態(tài)檢測(cè)方法,即特征碼匹配檢測(cè)方法,是目前最主流,也是各大殺毒軟件普遍采用的惡意代碼檢測(cè)分析技術(shù).這種方法并不在手機(jī)上實(shí)際運(yùn)行惡意代碼或者安裝惡意軟件,而是通過(guò)反編譯技術(shù),在安全環(huán)境中對(duì)包含可疑代碼的文件進(jìn)行代碼分析,并將特征碼寫(xiě)入經(jīng)過(guò)分類(lèi)的特征數(shù)據(jù)庫(kù)中.在通過(guò)查殺測(cè)試之后,把數(shù)據(jù)庫(kù)上傳到服務(wù)器中,供裝有手機(jī)安全軟件的用戶進(jìn)行下載更新,用戶在使用該安全軟件對(duì)手機(jī)進(jìn)行掃描時(shí),軟件會(huì)以手機(jī)中的文件和程序作為目標(biāo),將在本地設(shè)備上獲得的應(yīng)用程序的特征碼與特征碼庫(kù)進(jìn)行匹配掃描,從而達(dá)到檢測(cè)惡意軟件和代碼的目的.
靜態(tài)檢測(cè)方法具有較高的識(shí)別率和較快的掃描速度,但是也有很多缺點(diǎn),例如,惡意代碼特征碼的提取需要人工識(shí)別,反編譯工程量很大,特征碼匹配檢測(cè)可能存在對(duì)某些軟件代碼誤報(bào)的情況,對(duì)于采用混淆代碼、加殼并且變型等手段進(jìn)行掩飾的惡意代碼很難精準(zhǔn)識(shí)別等.隨著技術(shù)的發(fā)展,惡意代碼的變換型式會(huì)不斷增多,這樣的匹配檢測(cè)方式會(huì)消耗更多的軟、硬件資源.
1.2 動(dòng)態(tài)檢測(cè)技術(shù)
動(dòng)態(tài)檢測(cè)技術(shù),即基于被檢測(cè)軟件的行為進(jìn)行檢測(cè)的技術(shù),該技術(shù)是把目標(biāo)軟件置于特定的封閉安全的環(huán)境下運(yùn)行,并且模擬隨機(jī)邊界條件,對(duì)軟件運(yùn)行行為進(jìn)行監(jiān)控,同時(shí)對(duì)于其運(yùn)行特征和權(quán)限調(diào)用進(jìn)行評(píng)估,以達(dá)到對(duì)于目標(biāo)軟件性質(zhì)做出判斷的目的.
動(dòng)態(tài)檢測(cè)方法沒(méi)有靜態(tài)方法掃描的準(zhǔn)確率高,檢測(cè)結(jié)果只是一種可能性,對(duì)于某些在特定環(huán)境下(例如特定日期、用戶行為)才會(huì)執(zhí)行的惡意代碼并不能完美地進(jìn)行檢測(cè).但是由于動(dòng)態(tài)檢測(cè)分析的是惡意代碼運(yùn)行的特征、行為,所以相對(duì)于靜態(tài)方法,擁有直觀、快速的優(yōu)點(diǎn).另外,當(dāng)檢測(cè)到用戶設(shè)定的某些特定指標(biāo)被觸發(fā),例如調(diào)用某些特定應(yīng)用程序編程接口(API)函數(shù)時(shí),動(dòng)態(tài)檢測(cè)軟件會(huì)通過(guò)某些算法對(duì)這些行為進(jìn)行加權(quán)記錄、評(píng)估,當(dāng)目標(biāo)軟件的行為特征超過(guò)設(shè)定好的閾值時(shí),將該目標(biāo)軟件判定為惡意軟件[4].因此,動(dòng)態(tài)檢測(cè)方法可以不受到各種類(lèi)別的掩飾手段的干擾,對(duì)軟件的惡意行為進(jìn)行準(zhǔn)確的識(shí)別.本文作者所設(shè)計(jì)的方法屬于動(dòng)態(tài)檢測(cè)技術(shù).
目前Android系統(tǒng)采用了一種特殊的安全機(jī)制,這種特殊的權(quán)限獲得方法,可以被稱(chēng)為默認(rèn)拒絕法,它采用了強(qiáng)制性的訪問(wèn)控制,每個(gè)應(yīng)用程序在系統(tǒng)中都有自己獨(dú)立的用戶id和組id,當(dāng)應(yīng)用程序在安裝時(shí),必須對(duì)自己本體在運(yùn)行時(shí)可能會(huì)使用的敏感權(quán)限進(jìn)行聲明,并且需要得到用戶的明文允許,否則它的所有操作,甚至于安裝操作都將被拒絕.因此,應(yīng)用程序必須在開(kāi)發(fā)時(shí)于APK內(nèi)的manifest.xml文件中聲明其在運(yùn)行過(guò)程中所可能調(diào)用到的權(quán)限并在安裝時(shí)對(duì)用戶進(jìn)行展示[5].一旦在安裝過(guò)程中,用戶允許了應(yīng)用程序使用相關(guān)權(quán)限,那么在此后的運(yùn)行過(guò)程中,該程序?qū)⒛J(rèn)永久獲得該權(quán)限,而權(quán)限的確認(rèn)和解析調(diào)用在應(yīng)用程序的啟動(dòng)過(guò)程中就將被完成,所以在設(shè)備的使用過(guò)程中直接動(dòng)態(tài)監(jiān)控應(yīng)用程序的權(quán)限調(diào)用情況是不可行的.本文作者通過(guò)分析Android特色的權(quán)限——API系統(tǒng),設(shè)計(jì)一種在軟件的運(yùn)行過(guò)程中,可以對(duì)相關(guān)調(diào)用函數(shù)的情況進(jìn)行監(jiān)視的方法,進(jìn)而統(tǒng)計(jì)出軟件的行為特征,通過(guò)加權(quán)累計(jì)和閾值判定來(lái)檢測(cè)一個(gè)目標(biāo)應(yīng)用程序是否為惡意程序.
2.1 Android的應(yīng)用程序中權(quán)限信息部分代碼的提取
APK是Android應(yīng)用程序經(jīng)過(guò)編譯器打包而成的安裝程序,實(shí)質(zhì)上是一個(gè)壓縮包文件.一個(gè)最基本的可被運(yùn)行的APK文件中,至少包含4個(gè)子目錄名和3個(gè)子文件名,其中,AndroidManifest.xml文件用于描述該Android應(yīng)用程序的全局?jǐn)?shù)據(jù)、版本號(hào)、運(yùn)行時(shí)所需要獲得的權(quán)限等內(nèi)容.根據(jù)開(kāi)發(fā)公司google的官方說(shuō)明,一個(gè)在Android平臺(tái)上運(yùn)行的程序最多可以獲得包括電話、短信、互聯(lián)網(wǎng)在內(nèi)的145項(xiàng)權(quán)限.想要獲得對(duì)于訪問(wèn)各種系統(tǒng)數(shù)據(jù)的權(quán)限,應(yīng)用程序必須在自身安裝包中的Manifest.xml文件里事先進(jìn)行權(quán)限聲明,由此,想要知曉目標(biāo)程序究竟要獲得哪些權(quán)限,分析APK中的Manifest.xml文件就顯得必不可少[6].
采用APKtool等工具對(duì)APK文件進(jìn)行反編譯后找到相關(guān)文件,使用記事本打開(kāi),可以獲得以下代碼如圖1所示.
圖1 部分涉及權(quán)限的代碼以及注解說(shuō)明
由上述分析可以得知,想要提取并獲得應(yīng)用程序的權(quán)限申請(qǐng)信息,可以采用反編譯的方法,對(duì)相關(guān)的文件進(jìn)行分析,并且提取use-permission字段中有關(guān)android.permission的屬性值,即可得到目標(biāo)應(yīng)用程序所申請(qǐng)調(diào)用的權(quán)限信息.
2.2 Android中應(yīng)用程序調(diào)取API信息的獲得方法
任何應(yīng)用程序想要執(zhí)行操作,都要通過(guò)對(duì)系統(tǒng)發(fā)送對(duì)API函數(shù)進(jìn)行調(diào)用的請(qǐng)求來(lái)實(shí)現(xiàn).通過(guò)APKtool等反編譯工具,對(duì)于APK文件中的classex.dex文件進(jìn)行反編譯就可以得到能在虛擬機(jī)環(huán)境中執(zhí)行的代碼,通過(guò)對(duì)于這部分代碼的分析,可以得到應(yīng)用程序在運(yùn)行過(guò)程中可能會(huì)調(diào)用的API函數(shù)[7].
通過(guò)對(duì)于應(yīng)用程序權(quán)限獲得和API函數(shù)調(diào)用情況的分析,可以獲取應(yīng)用程序的文件特征,可以對(duì)之后總體風(fēng)險(xiǎn)的評(píng)估起到補(bǔ)充和輔助的作用.
上節(jié)提到,在應(yīng)用程序的運(yùn)行過(guò)程中,所有操作都要通過(guò)調(diào)用系統(tǒng)API函數(shù)進(jìn)行,使得監(jiān)控軟件行為成為可能.
3.1 API攔截技術(shù)
具體設(shè)計(jì)中,采用HookAPI的方式進(jìn)行對(duì)調(diào)用行為的日志信息進(jìn)行攔截.Hook意為鉤子,實(shí)質(zhì)上是一段獲得并處理信息的程序,通過(guò)進(jìn)行系統(tǒng)調(diào)用的方式加載進(jìn)系統(tǒng),可以使API調(diào)用的相關(guān)信息在沒(méi)有執(zhí)行之前就被監(jiān)控獲取并記錄.這種技術(shù)可以在不改變應(yīng)用程序運(yùn)行方式的同時(shí),對(duì)于應(yīng)用程序調(diào)用API的行為進(jìn)行監(jiān)控并記錄.
應(yīng)用程序正常調(diào)用流程為:1)API調(diào)用;2)API執(zhí)行;3)調(diào)用情況返回.
使用了HookAPI的方法進(jìn)行處理后,調(diào)用流程為:1)API調(diào)用;2) Hook API;3)API執(zhí)行;4)Hook API數(shù)據(jù)標(biāo)記反饋;5)調(diào)用情況返回.
在操作系統(tǒng)的啟動(dòng)過(guò)程中,所有可執(zhí)行程序包含的進(jìn)程都是由一個(gè)名為Zygote的原初進(jìn)程生成的,在設(shè)備啟動(dòng)過(guò)程中,該進(jìn)程被創(chuàng)建并且同時(shí)生成一個(gè)Dalvik虛擬機(jī)的母本,之后,每當(dāng)有進(jìn)程被啟動(dòng)時(shí),Zygote進(jìn)程會(huì)對(duì)虛擬機(jī)母本進(jìn)行復(fù)制并且分發(fā)給應(yīng)用軟件,這樣,每一個(gè)應(yīng)用程序都將獨(dú)享一個(gè)Dalvik虛擬機(jī)的拷貝[8].
通過(guò)對(duì)于Zygote進(jìn)程的解析,可以得到如下腳本命令:service zygote /system/bin/app_process-Xzygote /system/bin--zygote-start-system-server
由這段代碼可以得知,Zygote進(jìn)程在Android系統(tǒng)中對(duì)應(yīng)的可執(zhí)行程序是/system/bin/app_process,由此可以得出一個(gè)結(jié)論,如果將系統(tǒng)中的這個(gè)程序進(jìn)行修改替換,增加輸出端口,就可以控制Zygote進(jìn)程,進(jìn)而達(dá)到對(duì)其所創(chuàng)建的Dalvik虛擬機(jī)母本進(jìn)行控制的目的.同時(shí),由于所有應(yīng)用程序使用的都是該Dalvik虛擬機(jī)的拷貝副本,所以就可以達(dá)到對(duì)系統(tǒng)中所運(yùn)行的API進(jìn)行Hook API的操作[9].
3.2 Android系統(tǒng)中軟件調(diào)用API行為的標(biāo)記和記錄
相較于靜態(tài)分析方法,動(dòng)態(tài)檢測(cè)方法的最大優(yōu)勢(shì)就是可以及時(shí)地發(fā)現(xiàn)檢測(cè)未被記錄的新型、變型的惡意代碼.為了達(dá)到這個(gè)目的,設(shè)計(jì)了一種數(shù)據(jù)標(biāo)記的方法來(lái)進(jìn)行軟件惡意行為的檢測(cè)和記錄.
該方法是在進(jìn)行Hook API的同時(shí),對(duì)于部分敏感API端口返回的數(shù)據(jù)插入數(shù)據(jù)代碼進(jìn)行標(biāo)記.該段代碼應(yīng)該具有如下特點(diǎn):
1)獨(dú)立性,即插入API返回?cái)?shù)據(jù)同時(shí)不影響該操作行為的判斷和執(zhí)行.
2)隱蔽性,即該段數(shù)據(jù)標(biāo)簽不應(yīng)該被惡意軟件發(fā)覺(jué)從而影響檢測(cè)和記錄.
3)易檢出性,即該標(biāo)簽應(yīng)有獨(dú)特的形式,不會(huì)在記錄時(shí)被漏過(guò)從而導(dǎo)致漏檢.
進(jìn)行數(shù)據(jù)標(biāo)記的過(guò)程如下:
1)定義某些類(lèi)型的API函數(shù)為敏感函數(shù),在敏感的API函數(shù)被調(diào)用時(shí),通過(guò)替換和可操作的Dalvik虛擬機(jī)對(duì)數(shù)據(jù)進(jìn)行標(biāo)記.
相關(guān)的API類(lèi)型舉例如表1所示.
表1 數(shù)據(jù)讀取相關(guān)敏感API類(lèi)型
在這些敏感類(lèi)型的API函數(shù)被進(jìn)行調(diào)用時(shí),進(jìn)行數(shù)據(jù)標(biāo)記.
2)該標(biāo)記跟隨數(shù)據(jù)和變量進(jìn)行傳播和存儲(chǔ).由于對(duì)Zygote進(jìn)程指向的app_process進(jìn)行了替換操作,所有應(yīng)用程序使用的Dalvik虛擬機(jī)全部是替換過(guò)且可操作的,不論該段敏感數(shù)據(jù)如何轉(zhuǎn)移,該數(shù)據(jù)標(biāo)簽總能通過(guò)相應(yīng)的Android跨進(jìn)程通信(Binder)庫(kù)進(jìn)行同步的傳播和跟蹤[10].
3)在特定的敏感位置檢測(cè)到該數(shù)據(jù)標(biāo)簽時(shí),進(jìn)行記錄.
相關(guān)的敏感位置舉例如表2所示.
表2 數(shù)據(jù)發(fā)送存儲(chǔ)相關(guān)敏感API類(lèi)型
該過(guò)程構(gòu)成元素如圖2所示.
圖2 動(dòng)態(tài)檢測(cè)的構(gòu)成元素
3.3 關(guān)于惡意行為的檢測(cè)算法
上文中提到,Android平臺(tái)開(kāi)放給應(yīng)用程序的API函數(shù)共有145種,如果用唯一編號(hào)1到145號(hào)對(duì)其進(jìn)行編號(hào),那么,針對(duì)Android平臺(tái)的惡意行為所能調(diào)用的API函數(shù)數(shù)量是有限且可標(biāo)定的.
可定義正整數(shù)集合N,N={N1,N2,…,N145},其中Ni項(xiàng)表示第i個(gè)API函數(shù)的唯一編號(hào).那么,在Android平臺(tái)上運(yùn)行的應(yīng)用程序的操作行為調(diào)用的API函數(shù)編號(hào)必有集合M={M1,M2,…,Mk},1≤k≤145,其中Mi為應(yīng)用程序操作行為調(diào)用API函數(shù)的唯一編號(hào),且必有一組二進(jìn)制變量a1,a2,…a145,滿足M={a1N1,a2N2,…,a145N145},那么,記錄該組變量中賦值為1的變量數(shù)量并且進(jìn)行累加,則可以得到應(yīng)用軟件的調(diào)用API數(shù)量的特征數(shù)值K,1≤K≤145.
本文作者提出的惡意行為測(cè)試算法是由相互影響的兩個(gè)部分構(gòu)成:對(duì)于程序算法的訓(xùn)練階段和對(duì)于目標(biāo)軟件代碼的檢測(cè)階段.訓(xùn)練階段的目的是確定一個(gè)合適的閾值,定義為T(mén),而檢測(cè)階段就會(huì)提取被檢測(cè)軟件的特征數(shù)值K和閾值T進(jìn)行比較,來(lái)判斷目標(biāo)軟件是否為惡意軟件或是在正常的軟件中存在惡意代碼的嵌入.
在訓(xùn)練階段中,選擇一個(gè)惡意軟件的樣本集合,提取其中一個(gè)惡意軟件的特征數(shù)值K1作為初始值并賦值給閾值變量T1,循環(huán)提取不同的惡意軟件的特征數(shù)值Kn,并與T1進(jìn)行比較,如Kn>T1,則保留變量T1數(shù)值不變,如Kn 再選擇一個(gè)正??尚跑浖y(cè)試集,提取特征數(shù)值并賦值給閾值變量T2,進(jìn)行同樣的循環(huán)賦值,并得到最終的可信閾值變量T2.取T1,T2的均值作為閾值T,在盡可能降低漏報(bào)率的同時(shí),可有效避免誤報(bào)的發(fā)生. 在檢測(cè)分類(lèi)階段中,將待檢測(cè)的應(yīng)用程序的特征數(shù)值提取并與閾值T進(jìn)行比較,大于T,則被測(cè)軟件為惡意軟件,進(jìn)行警報(bào);小于T,則被測(cè)軟件為正常軟件.用戶可以根據(jù)自己的需求手動(dòng)調(diào)節(jié)T的值以達(dá)到減小誤報(bào)率或者減小漏報(bào)率的目的. 3.4 檢測(cè)結(jié)果的顯示和表達(dá) 被測(cè)軟件在經(jīng)過(guò)算法部分的測(cè)試過(guò)后,檢測(cè)程序會(huì)對(duì)數(shù)據(jù)進(jìn)行處理并生成一個(gè)報(bào)告.為了直觀考慮,數(shù)據(jù)收集內(nèi)容主要只表達(dá)惡意行為的事件.報(bào)告格式為XML格式,代碼如圖3所示. 圖3 檢測(cè)報(bào)告代碼圖 代碼中,“{}”內(nèi)的部分為檢測(cè)報(bào)告生成過(guò)程中輸出的惡意行為的具體內(nèi)容.behavior/item表示在檢測(cè)過(guò)程中被檢軟件所進(jìn)行的一個(gè)行為;behavior/item/action表示這條行為的具體動(dòng)作.檢測(cè)結(jié)果報(bào)告給出了敏感數(shù)據(jù)的流向,并且直觀地展示了惡意軟件的指向性. 實(shí)驗(yàn)?zāi)繕?biāo)選自Android惡意代碼工具包. 惡意樣本的分析測(cè)試輸出結(jié)果示例,如圖4所示. 圖4 惡意軟件測(cè)試軟件結(jié)果 結(jié)果表明,該惡意軟件會(huì)收集設(shè)備敏感信息,并將結(jié)果發(fā)送到一個(gè)150開(kāi)頭的手機(jī)號(hào)碼. 測(cè)試結(jié)果表明,應(yīng)用該方法的檢測(cè)軟件可以有效的識(shí)別和分辨被檢軟件在運(yùn)行過(guò)程中產(chǎn)生的惡意行為,并對(duì)用戶發(fā)出警報(bào). 測(cè)試結(jié)果統(tǒng)計(jì)如表3所示. 表3 對(duì)惡意代碼樣本和可信軟件集樣本的測(cè)試結(jié)果統(tǒng)計(jì) 檢測(cè)結(jié)果統(tǒng)計(jì)顯示,對(duì)于惡意軟件樣本的測(cè)試是比較成功的.對(duì)于漏報(bào)的部分樣本,經(jīng)過(guò)手動(dòng)逆向解析,發(fā)現(xiàn)主要原因是因?yàn)?在測(cè)試沙盒中,對(duì)于模擬環(huán)境的設(shè)置存在一定限制,部分惡意代碼需要連接特定服務(wù)器獲取特定指令方能激活,但是在模擬環(huán)境中,由于服務(wù)器被隔絕,無(wú)法獲取指令,導(dǎo)致惡意代碼無(wú)法激活,因此測(cè)試軟件搜集不到惡意行為的數(shù)據(jù),導(dǎo)致了相關(guān)漏報(bào)的發(fā)生.但是在實(shí)際使用中,這類(lèi)代碼的檢測(cè)不會(huì)受到影響. 對(duì)于可信軟件樣本的檢測(cè)中,發(fā)生了誤報(bào)率超過(guò)15%的情況,經(jīng)過(guò)對(duì)于相關(guān)軟件的權(quán)限聲明的分析可知報(bào)警的原因是相關(guān)軟件的確存在相應(yīng)的惡意行為,這里牽涉到Android程序權(quán)限濫用的問(wèn)題,不再多加討論. 本文作者探討了一種Android平臺(tái)上惡意代碼的動(dòng)態(tài)檢測(cè)方法,并用原型工具初步對(duì)這種方法進(jìn)行了驗(yàn)證,取得了一定的成果.但是在測(cè)試過(guò)程中發(fā)現(xiàn),仍然有很多類(lèi)型的惡意代碼無(wú)法檢測(cè),而且由于只有一個(gè)模擬環(huán)境,每次只能檢測(cè)一個(gè)目標(biāo)軟件,工作效率還有待提升.因此,提高檢測(cè)成功率和提升檢測(cè)效率將是未來(lái)又一個(gè)重要研究課題. [1] Symantec Corporation.2016 Internet Security Threat Report [R/OL].(2016-04-13)[2016-10-19].https://www.symantec.com/security-center/threat-report. [2] 騰訊移動(dòng)安全實(shí)驗(yàn)室.潛伏在身邊的危機(jī):智能設(shè)備安全 [R/OL].(2015-09-16)[2016-10-21].https://security.tencent.com/index.php/blog/msg/94. [3] 刑文利.惡意代碼動(dòng)態(tài)分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D].北京:清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,2005. Xing W L.Design and implementation of a malicious code dynamic analyzing [D].Beijing:Department of computer science and technology,Tsinghua University. [4] 劉偉,孫其博.Android平臺(tái)惡意軟件行為模式研究 [J].軟件,2012,33(11):150-151. Liu W,Sun Q B.Android platform malware behavior model research [J].Computer Engineering and Software,2012,33(11):150-151. [5] 鄭煥鑫,葉小平.基于API攔截的主動(dòng)防御系統(tǒng) [J].技術(shù)研究,2012,07:29-31. Zheng H X,Ye X P.The defense system basing on API interception network [J].Netinfo Security,2012,07:29-31. [6] Google.Android API Differences Report[R/OL][2016-10-29].https://developer.android.google.cn/sdk/api_diff/23/changes.html. [7] 馮博,戴航,慕德俊.Android惡意軟件檢測(cè)方法研究 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,02(2):150-153. Feng B,Dai H,Mu D J.Research of malware detection approach for Android [J].Computer Technology and Development,2014,02(2):150-153. [8] 羅升陽(yáng).Android系統(tǒng)源代碼情景分析 [M].北京:電子工業(yè)出版社,2012. [9] Zeng H,Ren Y,Wang Q X.Detecting malware and evaluating risk of app using Android permission-API system [C]//IEEE.2014 11th International Computer Conference on Wavelet Actiev Media Technology and Information Processing(ICCWAMTIP).Chengdu:IEEE,2014. [10] 謝鑫.基于程序?qū)傩缘腏ava靜態(tài)軟件胎記技術(shù)研究 [D].鄭州:解放軍信息工程大學(xué),2011. Xie X.Research on program properties based java static software birthmarking [D].Zhengzhou:PLA information Engineering University,2011. (責(zé)任編輯:包震宇) Dynamic detection technology of malicious code for Android system Li Boya, Xue Zhi (School of Electronic Information and Electrical Engineering,Shanghai Jiao Tong University,Shanghai 200240,China) With the increasing popularization of mobile phones,people′s dependence on them is rising,the security problems become more and more prominent.According to the calling of the APK file permission and the API function in Android system,this paper proposes a dynamic detecting method based on API interception technology to detect the malicious code.The experimental results show that this method can effectively detect the malicious code in Android system. Android; API; malicious code; dynamic detection 10.3969/J.ISSN.1000-5137.2017.01.003 2017-01-20 李博亞(1987-),男,碩士研究生,主要從事Android系統(tǒng)惡意代碼等方面的研究.E-mail:lby3333@163.com 導(dǎo)師簡(jiǎn)介: 薛 質(zhì)(1971-),男,教授,博士生導(dǎo)師,主要從事信息安全,網(wǎng)絡(luò)攻防與測(cè)評(píng)等方面的研究.E-mail:zxue@sjtu.edu.cn(通信聯(lián)系人) TP 309; TP 316 A 1000-5137(2017)01-0016-074 實(shí)驗(yàn)結(jié)果記錄和分析
5 總 結(jié)