亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于程序分析的Android應(yīng)用惡意行為檢測﹡

        2013-10-31 06:49:18吳俊昌程紹銀
        通信技術(shù) 2013年7期
        關(guān)鍵詞:指令程序污染

        吳俊昌,蔣 凡,程紹銀

        (①中國科學(xué)技術(shù)大學(xué)信息安全測評中心,安徽 合肥 230027;②中國科學(xué)技術(shù)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230027;③安徽省計算與通訊軟件重點實驗室,安徽 合肥 230027)

        0 引言

        目前,智能手機(jī)用戶日益增多,根據(jù)分析機(jī)構(gòu)Strategy Analytics給出的最新統(tǒng)計數(shù)據(jù)表明,2012年第三季度的全球的在用智能手機(jī)數(shù)已經(jīng)突破 10億大關(guān),達(dá)10.38億[1],已經(jīng)超過個人電腦的數(shù)量。

        Google的Android智能操作系統(tǒng)得到廣大應(yīng)用程序開發(fā)者的追捧,成為目前主流的智能手機(jī)系統(tǒng)。然而 Android市場上的應(yīng)用程序管理混亂,這導(dǎo)致了 Android系統(tǒng)上的惡意應(yīng)用程序頻發(fā),使用戶能夠放心安全的使用應(yīng)用程序成為亟待解決的問題。為此,學(xué)者們進(jìn)行了深入的研究,文獻(xiàn)[2]對Android后臺監(jiān)聽實現(xiàn)機(jī)制進(jìn)行了較為深入的研究,便于對Android系統(tǒng)的機(jī)制進(jìn)行了解。文獻(xiàn)[3]對Rootkit攻擊進(jìn)行了深入研究,并給出了解決方法。TaintDroid[4]以在Android系統(tǒng)中添加中間件的方式使用一個輕量級的動態(tài)污點分析引擎來監(jiān)測應(yīng)用程序中的隱私泄漏問題。當(dāng)出現(xiàn)隱私泄漏時,系統(tǒng)會通知用戶問題出現(xiàn)。Enck等[5]實現(xiàn)了Dalvik字節(jié)碼反匯編工具ded,將字節(jié)碼轉(zhuǎn)換為源碼,通過現(xiàn)有的Java源碼分析工具,分析出應(yīng)用程序中存在的安全問題。AppInspector[6]采用動態(tài)分析方法,可以自動生成輸入并在程序執(zhí)行過程中記錄日志,通過分析記錄的日志信息來檢測應(yīng)用程序當(dāng)中是否存在隱私泄露行為。該方法依賴于特定的觸發(fā)條件,對于觸發(fā)邏輯較為復(fù)雜的應(yīng)用程序,存在明顯的不足。

        本文提出一種基于程序分析的方法,對應(yīng)用程序進(jìn)行惡意行為檢測,進(jìn)而分析應(yīng)用程序的安全性。首先,對需要分析的應(yīng)用程序進(jìn)行預(yù)處理,可以快速的識別出不存在惡意行為的應(yīng)用程序;然后,對通過預(yù)處理的應(yīng)用程序構(gòu)建函數(shù)摘要,即針對應(yīng)用程序中函數(shù)本身的特征,構(gòu)建與之相對應(yīng)的函數(shù)摘要;最后,在已構(gòu)建函數(shù)摘要的基礎(chǔ)上,使用污點傳播方法,分析出應(yīng)用程序中存在的惡意行為,并將檢測出的惡意行為輸出。本文對該方法進(jìn)行了詳細(xì)介紹,實驗表明,該方法可以有效檢測出應(yīng)用程序當(dāng)中存在的惡意行為,具有較高的實用價值。

        1 方法概述

        檢測方法總體框架如圖1所示,通過預(yù)處理、反匯編、函數(shù)摘要構(gòu)建以及惡意行為檢測等步驟,最終給出檢測結(jié)果。

        圖1 檢測方法流程

        對 Android應(yīng)用程序惡意行為檢測主要包含以下五個過程:

        1)預(yù)處理模塊通過分析APK文件中的Android Manifest.xml文件中的權(quán)限[7](Permission)列表、注冊的監(jiān)聽器[8](Receiver)列表以及注冊的服務(wù)[9](Server)列表,快速篩除不存在惡意行為的應(yīng)用程序。

        2)反匯編模塊對classes.dex文件進(jìn)行反匯編,收集分析時需要的程序信息,例如,指令結(jié)構(gòu),函數(shù)結(jié)構(gòu)以及函數(shù)中的基本塊結(jié)構(gòu),控制流圖以及函數(shù)調(diào)用圖等構(gòu)建函數(shù)摘要必需的結(jié)構(gòu)。

        3)函數(shù)摘要構(gòu)建模塊是本方法中非常關(guān)鍵模塊,函數(shù)摘要是對應(yīng)用程序中的函數(shù)體的一種抽象解釋[10]。函數(shù)摘要的構(gòu)建是通過對函數(shù)體中指令模擬執(zhí)行進(jìn)行的,每條指令都有固定的操作語義。

        4)惡意行為檢測模塊是在函數(shù)摘要基礎(chǔ)上,使用污點傳播方法,檢測設(shè)置的污點信息(例如,訪問通訊錄返回的數(shù)據(jù)即可認(rèn)為是有污點的)能否傳播危險函數(shù)(例如,發(fā)送短信的函數(shù)、連接網(wǎng)絡(luò)的函數(shù)等)調(diào)用點。

        5)根據(jù)檢測結(jié)果生成惡意行為的詳細(xì)說明,詳細(xì)描述當(dāng)前惡意行為的觸發(fā)流程、關(guān)鍵參數(shù)含有的常量值及帶來的危害等信息。提供圖形化顯示,方便查看。

        2 關(guān)鍵模塊設(shè)計實現(xiàn)

        (1)預(yù)處理

        預(yù)處理是本方法的基礎(chǔ),確定應(yīng)用程序是否需要進(jìn)行進(jìn)一步分析。預(yù)處理的檢查時相當(dāng)嚴(yán)格的,所以還是有相當(dāng)?shù)膽?yīng)用程序需要進(jìn)一步分析。主要步驟如下:

        1)解壓APK文件,從中獲取AndroidManifest.xml文件和classes.dex文件,其中AndroidManifest.xml文件中包含了該應(yīng)用程序中所使用到的權(quán)限,監(jiān)聽器以及服務(wù)等必要的組件。

        2)解析AndroidManifest.xml文件,從中獲取申請的權(quán)限列表、監(jiān)聽器列表以及服務(wù)列表。通過將上述列表與經(jīng)驗庫(通過分析大量的惡意應(yīng)用程序獲得)中的模式進(jìn)行匹配,若匹配成功,則說明應(yīng)用程序中可能存在惡意行為,需要進(jìn)一步分析;若匹配不成功,則說明應(yīng)用程序中不存在危險行為。例如,惡意應(yīng)用程序一般都需要訪問網(wǎng)絡(luò)的權(quán)限,要獲取這個權(quán)限只有兩種方法:一種是通過申請訪問網(wǎng)絡(luò)的權(quán)限(INTERNET),另一種是使用已具有網(wǎng)絡(luò)權(quán)限的服務(wù)。只需匹配上述兩種情況,只有具有網(wǎng)絡(luò)權(quán)限的應(yīng)用程序需要進(jìn)一步分析。

        (2)函數(shù)摘要構(gòu)建

        函數(shù)摘要是基于格程序分析技術(shù)的,是對函數(shù)的一種抽象解釋。抽象解釋只對被分析代碼抽取出感興趣的程序?qū)傩裕@些屬性進(jìn)行解釋分析。對代碼的抽象解釋通過對需檢測的程序?qū)傩詷?gòu)建程序?qū)傩约?,再定義一種偏序關(guān)系,由此構(gòu)成該程序?qū)傩缘囊粋€完全格。格為每條指令指定一種抽象的解釋。在程序模擬執(zhí)行時,遍歷函數(shù)的每條指令,并將其傳遞給格進(jìn)行解釋,隨著程序的模擬執(zhí)行,格將更新分析關(guān)注的程序?qū)傩孕畔?,直至函?shù)執(zhí)行結(jié)束,得到一個最終的程序?qū)傩孕畔ⅰ?/p>

        函數(shù)摘要是在Android字節(jié)碼指令上構(gòu)建的,對函數(shù)體中的指令進(jìn)行模擬執(zhí)行的過程。根據(jù)Dalvik字節(jié)碼的語義,對每條指令進(jìn)行模擬。例如指令new- instance v6, ,是新建一個Sms對象,將該對象放入v6中。在模擬執(zhí)行過程中,則會構(gòu)建一個與Sms相對應(yīng)的對象,保存Sms的信息。

        根據(jù)函數(shù)的運行邏輯,對函數(shù)體內(nèi)每條指令進(jìn)行模擬執(zhí)行,在模擬執(zhí)行過程遇到INVOKE_XXX指令時,則對當(dāng)前所有與被調(diào)函數(shù)相關(guān)的實參信息保存到函數(shù)摘要中,本文中所構(gòu)建的函數(shù)摘要主要是在函數(shù)調(diào)用點所有變量的信息。

        (3)惡意行為檢測

        惡意行為檢測使用污點傳播分析方法,圖2為污點傳播分析對應(yīng)的格結(jié)構(gòu),含有Top、Untainted、Tainted和Bottom這4種狀態(tài),任何2種狀態(tài)都存在偏序關(guān)系。污染格分析關(guān)注程序變量的污染狀態(tài),每個變量關(guān)聯(lián)一個污染狀態(tài),分析時將變量解釋為其污染狀態(tài),指令操作解釋為污染狀態(tài)間的操作,得到一個結(jié)果污染狀態(tài)并更新相關(guān)變量的污染狀態(tài)。通過污染格的抽象解釋方法,可確定代碼中每個位置的每個變量的污染狀態(tài)。

        圖2 污染格

        本文對 Android開發(fā)文檔[11]進(jìn)行收集整理,并結(jié)合一些已經(jīng)的惡意行為模式,構(gòu)建了一個惡意模式庫,庫中包含三個部分:源函數(shù)(引入污染的函數(shù))模式庫、危險函數(shù)模式庫以及惡意行為模式庫。惡意行為檢測根據(jù)潛在危險函數(shù)參數(shù)信息的不同,標(biāo)記為不同類型的危險行為。比如對于發(fā)送短信的庫函數(shù)SmsManager.sendTextMessage(…),第1個參數(shù)為目的號碼,如果目的號碼為一個SP號碼,則可能是一種訂購SP服務(wù)的行為。

        惡意行為檢測模塊包括以下四個步驟:

        1)可疑行為識別。在函數(shù)摘要模擬函數(shù)調(diào)用,匹配函數(shù)調(diào)用路徑上存在的源函數(shù),標(biāo)記相應(yīng)變量為污染,并將標(biāo)記的污染信息通過函數(shù)間的調(diào)用進(jìn)行傳播。在污染信息傳播過程中,若污染信息傳播到與危險函數(shù)模式庫中相同的函數(shù)時,則識別出一條可疑行為。

        2)危險行為匹配。對步驟1)識別出的可疑行為進(jìn)行危險確認(rèn),通過詳細(xì)分析當(dāng)前函數(shù)調(diào)用點處的參數(shù)個數(shù)、類型以及常量值信息,并根據(jù)惡意行為模式庫中的詳細(xì)配置信息進(jìn)行危險行為識別。

        3)危險等級確定。對步驟2)匹配成功的危險行為確定其危險等級。先根據(jù)當(dāng)前惡意行為對應(yīng)的函數(shù)名制定一個初步的危險等級,再根據(jù)關(guān)鍵參數(shù)的值信息對當(dāng)前危險等級進(jìn)一步調(diào)整,以確定最終的危險等級。

        4)檢測結(jié)果保存。保存檢測出的惡意行為的詳細(xì)信息,給后面的結(jié)果顯示提供豐富的輸入。

        3 實驗評估

        根據(jù)上述方法設(shè)計實現(xiàn)了一個原型系統(tǒng),可以惡意扣費、隱私竊取、資費消耗、本地代碼、廣告鏈接等五種類型的惡意行為,惡意行為的分類和描述如表1所示。為了更好的描述不同惡意行為的危害程度,將不同類型的惡意行為分為高中低三個等級。

        表1 惡意行為分類

        為了驗證所述方法的有效性,對文獻(xiàn)[12]中惡意應(yīng)用程序樣本庫中 1260個惡意應(yīng)用程序樣本進(jìn)行檢測。危險等級檢測結(jié)果如圖3所示。由于數(shù)據(jù)庫中樣本的DEX文件存在相同的MD5值,最終檢測了865個應(yīng)用程序,存在不同等級的惡意行為。其中檢測到含有高危險行為的應(yīng)用程序 393個(45.4%),不含高危險而含有中危險行為的應(yīng)用有400個(46.2%),不含高危險和中危險只含有低危險行為的應(yīng)用有46個(5.3%)。 由于只關(guān)心以上五種類型的惡意行為,且沒有對惡意樣本進(jìn)行實際執(zhí)行,分析過程中存在一定程度的檢測誤差,有27個應(yīng)用(3.1%)未檢測到任何惡意行為。

        樣本中惡意行為檢測的結(jié)果如圖4所示,可以發(fā)現(xiàn)惡意應(yīng)用程序中存在大量的廣告鏈接,這與Android手機(jī)收費模式相關(guān),一般應(yīng)用程序開發(fā)者都是通過廣告獲取利潤的,所以講廣告鏈接設(shè)為低危險行為。本地代碼出現(xiàn)的頻率僅次于廣告鏈接,Java程序通過逆向工具較容易提升到源碼,代碼的保護(hù)較難,開發(fā)者越來越傾向于本地庫的使用,故也將其設(shè)置為低危險。惡意程序主要通過惡意扣費、隱私竊取以及資費消耗獲取利潤,他們各占檢測樣本總數(shù)的4.97%、43.35%和37.35%。

        圖3 危險等級分布

        圖4 危險行為分布

        此外,使用原型系統(tǒng)對一些比較常用的應(yīng)用程序進(jìn)行檢測,發(fā)現(xiàn)酷6播放器(v2.5.8)中存在惡意扣費的行為,向1065502180988和10690882兩個SP服務(wù)商發(fā)送短信。通過進(jìn)一步的手工分析確認(rèn)了這個惡意行為,而且該惡意行為也被用戶舉報過。

        4 結(jié)語

        本文提出了一種基于程序分析的Android應(yīng)用程序惡意行為檢測方法,通過預(yù)處理可以快速的剔除不存在惡意行為的應(yīng)用程序,再將可能存在惡意行為的應(yīng)用程序進(jìn)行進(jìn)一步的分析。在應(yīng)用程序的字節(jié)碼上進(jìn)行模擬執(zhí)行構(gòu)建應(yīng)用程序的函數(shù)摘要,對函數(shù)摘要使用污染傳播方法,從而檢測出應(yīng)用程序中存在的惡意行為。通過對公開的惡意樣本庫進(jìn)行檢測,實驗結(jié)果表明本方法可以有效檢測出Android應(yīng)用程序的惡意行為,具有較高的實用性。

        [1]Strategy Analytics.2012年Q3全球智能手機(jī)數(shù)量突破10億 耗時16年[EB/OL].(2012-10-18). [2012-10-18].http://www.199it.com/archives/73840.html.

        [2]蔡羅成. Android后臺監(jiān)聽實現(xiàn)機(jī)制淺析[J].信息安全與通信保密,2010(06):39-41.

        [3]祝為,王軼駿,薛質(zhì).基于VFS的Android Rootkit技術(shù)研究[J].信息安全與通信保密,2012(12):68-69,74.

        [4]ENCK W,GILBERT P,CHUN B G,et al. TaintDroid: an Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones[M].USA:ACM,2010:1-6.

        [5]ENCK W,OCTEAU D,MCDANIEL P,et al. A Study of Android Application Security[M].USA:ACM, 2011:21-21.

        [6]Gilbert P,Chun BG,Cox L P, et al. Vision: Automated Security Validation of Mobile Apps at App Markets[M].USA:ACM,2011.

        [7]Google. Permissions[EB/OL].(2012-04-23)[2012-09-18].http://developer.android.com/guide/topics/securi ty/permissions.html.

        [8]Google. BroadcastReceiver[EB/OL]. (2012-04-23).[2012-09-18].http://developer.android.com/reference/android/content/BroadcastReceiver.html.

        [9]Google. Servers[EB/OL]. (2012-04-23)[2012-09-18].http://developer.android.com/guide/components/se rvices.html.

        [10]COUSOT P. Abstract Interpretation [EB/OL].(2010-03-26)[2012-06-15].http://www.di.ens.fr/~c ousot/AI/.

        [11]Google.Android SDK[EB/OL].(2012-04-23)[2012-09-18].http://developer.android.com/sdk/index.html.

        [12]ZHOU Y, JIANG X. Dissecting Android Malware:Characterization and Evolution[C].USA:IEEE, 2012:95-109.

        [13]馮芳梅,邵長庚,劉丹.基于分層語義認(rèn)知的惡意代碼檢測方法研究[J].通信技術(shù),2012,45(05):53-56.

        [14]胡明,劉嘉勇,劉亮.一種基于代碼特征的網(wǎng)頁木馬改良模型研究[J].通信技術(shù),2010,42(08):155-157.

        猜你喜歡
        指令程序污染
        聽我指令:大催眠術(shù)
        試論我國未決羈押程序的立法完善
        堅決打好污染防治攻堅戰(zhàn)
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        堅決打好污染防治攻堅戰(zhàn)
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        對抗塵污染,遠(yuǎn)離“霾”伏
        都市麗人(2015年5期)2015-03-20 13:33:49
        日韩中文字幕无码av| 区二区三区玖玖玖| 97影院在线午夜| 在线观看精品国产福利片87| 国产不卡av一区二区三区| 午夜天堂av天堂久久久| 亚洲精品无码久久久久久| 亚洲国产成人无码影院| av一区二区三区高清在线看| 青青草狠吊色在线视频| 精品无码人妻一区二区三区不卡| 人妻少妇精品无码专区二 | 亚洲国产丝袜美女在线| 偷拍偷窥女厕一区二区视频| 国产精品无码专区av在线播放| 人妻无码一区二区在线影院| 日本高清一区二区三区在线| 26uuu在线亚洲欧美| 内谢少妇xxxxx8老少交| 亚洲av日韩片在线观看| 久亚洲一线产区二线产区三线麻豆| 高h小月被几个老头调教| 猫咪免费人成网站在线观看| yy111111少妇影院| 丝袜美腿丝袜美腿丝袜美腿丝袜| 国产激情久久久久久熟女老人av| 久久亚洲黄色| 国产精品久久夜伦鲁鲁| 欧美精品无码一区二区三区 | 99国产精品久久久久久久成人热| 又色又爽又黄又硬的视频免费观看 | 超碰97资源站| 亚洲VA中文字幕欧美VA丝袜| av一区二区三区有码| 又大又长粗又爽又黄少妇视频| 夜爽8888视频在线观看| 国产一区二区三区视频免费在线| 国产精品无套一区二区久久 | 伊伊人成亚洲综合人网7777 | 亚洲最大成人网站| 99久久99久久精品国产片果冻|