• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種Android惡意軟件的動態(tài)檢測方案

      2016-02-24 08:34:46劉培鶴黃思藝閆翔宇
      關(guān)鍵詞:模擬器調(diào)用應(yīng)用程序

      劉培鶴 黃思藝 閆翔宇

      一種Android惡意軟件的動態(tài)檢測方案

      劉培鶴 黃思藝 閆翔宇

      北京電子科技學(xué)院,通信工程 100070

      Android是當(dāng)下最熱門的移動終端平臺,但其平臺開源性特征使得惡意軟件的數(shù)量出現(xiàn)爆炸式增長,因此,本文提出了一套惡意軟件檢測方案。首先利用“反探測方案”來防止惡意軟件對模擬環(huán)境進(jìn)行檢測,然后在模擬器中運(yùn)行待測應(yīng)用,檢測該應(yīng)用是否有“流氓行為”,最后利用“基于動態(tài)軟件系統(tǒng)API標(biāo)記對比的檢測方案”來進(jìn)行惡意軟件APK重打包檢測。該方法適用于Android平臺下移動終端設(shè)備安全防護(hù)的需要。

      Android;惡意軟件;移動終端安全;動態(tài)檢測;行為監(jiān)控;API調(diào)用攔截技術(shù)

      引言

      近年來,由于智能手機(jī)小巧便攜,相對于厚重的筆記本電腦,它的性價比也在不斷提高,優(yōu)勢也越來越突出,智能手機(jī)目前顯然已經(jīng)成為人們學(xué)習(xí)、工作和生活中不可或缺的部分。Android操作系統(tǒng)因開源性的特征,受到了廣大用戶的特別青睞。與iOS平臺以及 Windows Phone平臺不同的是,Android是一款完全免費(fèi)系統(tǒng),并且是基于Linux內(nèi)核的開源操作系統(tǒng),其開源的特性使得手機(jī)的開發(fā)成本降低,與此同時也使得攻擊者擁有了更加便利的條件去開發(fā)Android惡意軟件進(jìn)而從中獲取利益。隨著系統(tǒng)的升級,Android平臺也在不斷地添加新的安全機(jī)制,但是現(xiàn)階段Android的安全問題仍十分嚴(yán)峻。AV-Comparatives是一個被奧地利政府承認(rèn)的非盈利性的組織,也是一個國際性的獨立測試機(jī)構(gòu)。無論是在對計算機(jī)病毒查殺能力的測試上,還是對其他各類有害程序的檢測上,AV-C始終被殺毒軟件行業(yè)公認(rèn)為信得過的獨立測試機(jī)構(gòu)。AV-C在公布的2015年2月Android系統(tǒng)(手機(jī)及平板電腦)殺毒軟件測試報告中回答了關(guān)于安卓智能手機(jī)感染病毒的風(fēng)險究竟有多大的問題。有許多智能手機(jī)被ROOTED且使用的是非官方商店提供的應(yīng)用程序,從而增加了安裝危險應(yīng)用的幾率。在許多亞洲國家,智能手機(jī)被當(dāng)做PC的替代品使用,且經(jīng)常使用手機(jī)登陸網(wǎng)上銀行。如果您堅持使用官方應(yīng)用商店,并且未經(jīng)過ROOT,那么相對來說風(fēng)險就會較低,但是,“低風(fēng)險”并不意味“無風(fēng)險”。[1]因此文中針對當(dāng)前不斷滋生的危險應(yīng)用,提出了一套Android平臺下惡意軟件檢測方案。

      1 研究現(xiàn)狀

      網(wǎng)絡(luò)環(huán)境是否安全,已經(jīng)成為當(dāng)今人們越來越關(guān)心的問題。移動終端的網(wǎng)絡(luò)安全問題更是得到了越來越多專家學(xué)者的重視和關(guān)注。針對Android平臺上的惡意軟件行為檢測的研究,也有了相當(dāng)一部分成果。

      1.1 手機(jī)端惡意應(yīng)用檢測方法

      目前國內(nèi)外對于手機(jī)端惡意應(yīng)用的檢測方法,大致可分為兩個方面:基于特征碼的靜態(tài)檢測方法和基于行為的檢測方法。[2]其中基于行為的分析方法又可以分為靜態(tài)檢測技術(shù)和動態(tài)檢測技術(shù),在當(dāng)前,基于行為的分析方法已經(jīng)得到了廣泛應(yīng)用。它是在結(jié)合惡意軟件已知行為模式的基礎(chǔ)上,采用靜態(tài)抽取或動態(tài)分析的方式分析軟件行為,從而判斷目標(biāo)程序是否惡意。其中靜態(tài)分析是逆向分析程序的特點,分析惡意程序的函數(shù)調(diào)用序列。在靜態(tài)分析領(lǐng)域,相關(guān)研究人員的常用方式是Android程序匯總調(diào)用系統(tǒng)命令和從Android可執(zhí)行文件中靜態(tài)抽取函數(shù)調(diào)用列表。靜態(tài)分析能夠高效的查找樣本庫中已知的惡意樣本代碼,但是缺點也很明顯,靜態(tài)分析是基于相似性比較的,如果經(jīng)比較發(fā)現(xiàn),待測對象程序月惡意代碼相似度不高,或者待測程序經(jīng)過混淆、加密、重打包,那么已知的惡意樣本程序?qū)㈦y以被識別,進(jìn)而無法識別出惡意軟件本身了。

      針對靜態(tài)檢測技術(shù)存在的局限性,應(yīng)用軟件的動態(tài)檢測技術(shù)成為目前研究的重要方向。動態(tài)檢測是通過將待測應(yīng)用在模擬環(huán)境中運(yùn)行,并且盡可能多地利用自動化手段觸發(fā)應(yīng)用程序的API調(diào)用,從而達(dá)到在運(yùn)行過程中檢測該應(yīng)用程序是否含有惡意行為。動態(tài)檢測的優(yōu)勢在于它不會受到代碼混淆、加密等技術(shù)的影響,使用了APK重打包或者動態(tài)加載技術(shù)的軟件,動態(tài)檢測也可以進(jìn)行檢測。即使惡意軟件進(jìn)行了加殼、加密等反檢測技術(shù),它在運(yùn)行過程中的動態(tài)行為是不會隨之改變的,所以動態(tài)檢測方法對于防止此類隱藏攻擊是十分行之有效的。

      Taint Droid是用于監(jiān)測第三方應(yīng)用程序的一項技術(shù)。Taint Droid以污點跟蹤技術(shù)作為基本原理,將用戶隱私數(shù)據(jù)進(jìn)行“著色”在Android模擬器中,模擬運(yùn)行待監(jiān)測程序,監(jiān)視敏感數(shù)據(jù)流,在程序運(yùn)行的過程中如果對已著色的數(shù)據(jù)進(jìn)行截取、拼裝、加密、傳遞等等操作,系統(tǒng)就會發(fā)出安全警報。Crow Droid則是針對經(jīng)過重打包之后的惡意軟件的檢測,Crow Droid必須得用戶自己運(yùn)行惡意軟件樣本以及對應(yīng)的官方應(yīng)用,用k均值算法把收集的數(shù)據(jù)分為正常和惡意兩組,將此作為應(yīng)用程序的特征庫,這種方法步驟繁瑣而且準(zhǔn)確率不高,因此可行性較差。訪問控制技術(shù)在Android安全防護(hù)中也較多地被引入。角色挖掘是一種分析用戶和資源映射關(guān)系的方法,通過對角色挖掘可以實現(xiàn)對資源的訪問控制。另外,還有一種輕量級安全隔離架構(gòu) Trust Droid,對于不同信任等級的應(yīng)用程序之間沒有授權(quán)的數(shù)據(jù)的訪問情況有一個緩解的作用。Trust Droid分為3個層次:中間件、內(nèi)核層和網(wǎng)絡(luò)層。Trust Droid首次利用強(qiáng)制訪問控制技術(shù)(MAC)結(jié)合TO-MOYO Linux在Android設(shè)備Nexus One中實現(xiàn)。

      1.2 Android惡意軟件的檢測技術(shù)

      與其他平臺下常見的惡意軟件類似,Android平臺惡意軟件為了能夠在系統(tǒng)中持久存活且不被用戶發(fā)現(xiàn),需要隱藏自己的真實面貌和行為目的。在Android 4.0之前的系統(tǒng),惡意應(yīng)用常以后臺服務(wù)的形式存在,即應(yīng)用沒有啟動界面,應(yīng)用安裝在手機(jī)之后,通過監(jiān)聽系統(tǒng)發(fā)出的廣播達(dá)到自啟動,從而在用戶神不知鬼不覺的情況下,后臺聯(lián)網(wǎng)、發(fā)送短信或者電話監(jiān)聽。在Android4.0之后,系統(tǒng)對服務(wù)啟動增加了標(biāo)識,如果服務(wù)第一次沒有被啟動,那么無論接收什么廣播,后臺應(yīng)用都不會被啟動,這種方式某種意義上杜絕了純后臺的惡意應(yīng)用。

      然而,目前的Android惡意軟件也在不斷升級,越來越多的隱藏技術(shù)使我們對其的檢測變得越來越困難。

      1.2.1 模擬環(huán)境檢測技術(shù)

      為了降低檢測成本,不少專家在設(shè)計惡意軟件檢測系統(tǒng)的時候就選擇以將模擬器作為惡意軟件的檢測環(huán)境。似乎攻擊者也意識到了這一點,于是,在編寫惡意程序的時候就會加入“運(yùn)行環(huán)境檢測”的功能,使得當(dāng)前的Android惡意軟件在運(yùn)行初期就可以檢測自身的運(yùn)行環(huán)境,如果發(fā)現(xiàn)其運(yùn)行在模擬器中,則不會表現(xiàn)出任何的惡意行為,從而順利逃避檢測。如果遇到這種惡意應(yīng)用,那么現(xiàn)有的大部分動態(tài)檢測手段都將失效。

      1.2.2 “殺不死”的Service

      Service作為Android四大組件之一,在每一個應(yīng)用程序中都扮演著非常重要的角色。它主要用于在后臺處理一些耗時的邏輯,或者去執(zhí)行某些需要長期運(yùn)行的任務(wù)。必要的時候甚至可以在程序退出的情況下,讓Service在后臺繼續(xù)保持運(yùn)行狀態(tài)。Android平臺下許多流氓軟件即是利用了這個原理,用戶在第一次啟動以后,就算關(guān)閉了后臺也不代表關(guān)閉了服務(wù),在接受到特定的廣播時啟動Service,并且設(shè)置Service根據(jù)時間啟動,也就是說,就算這一秒設(shè)法殺掉Service,下一秒就會重新啟動。那些殺不死的服務(wù)就會做一些例如目前最常見“偷流量”等令人們深惡痛絕的事情。但是這種服務(wù)又是用戶無法用肉眼識別的。因此,可以通過在模擬器上查看Service,初步確定該軟件是否屬于“流氓軟件”的范疇。

      1.2.3 APK重打包技術(shù)

      Android惡意軟件之所以難以被發(fā)現(xiàn),其使用的重要手段之一就是APK重打包技術(shù)。重打包(repackage)事實上就是我們常說的“植入”,它也是是目前Android平臺主要的攻擊方式之一。關(guān)于APK重打包技術(shù)的解釋,現(xiàn)在比較通俗易懂的版本是:軟件修改者將原來的APK安裝包進(jìn)行解包、反編譯,將得到的數(shù)據(jù)進(jìn)行修改,增加一些額外的功能組件所使用的程序與資源,再對其進(jìn)行重新編譯、打包,生成新的APK安裝包。這種使用APK重打包技術(shù)生成的應(yīng)用軟件叫做重打包應(yīng)用軟件[3]。惡意應(yīng)用往往以重打包的形式把惡意代碼嵌入到那些比較熱門的官方軟件里。被嵌入的應(yīng)用被用戶安裝后,可以正常使用該應(yīng)用并且感覺不到任何異常,但附帶的惡意代碼已經(jīng)開始運(yùn)行[4]。

      2 解決方案

      針對Android惡意程序的上述幾種隱藏手段,本文對Android平臺惡意軟件的動態(tài)檢測技術(shù)進(jìn)行了深入的研究,并對現(xiàn)有檢測技術(shù)的不足進(jìn)行了改進(jìn),進(jìn)而總結(jié)出了一套惡意應(yīng)用檢測方案。首先利用“反探測方案”來防止惡意軟件對模擬環(huán)境進(jìn)程檢測,然后在模擬器中運(yùn)行待測應(yīng)用,檢測該應(yīng)用是否有“流氓行為”,然后用“基于動態(tài)軟件系統(tǒng)API標(biāo)記對比的檢測方案”來進(jìn)行惡意軟件APK重打包檢測。

      2.1 反探測系統(tǒng)

      為了降低測試成本,通常情況下對軟件行為的觸發(fā)及監(jiān)控都在模擬器上進(jìn)行。防止部分Android應(yīng)用在運(yùn)行初期通過檢測環(huán)境識別出模擬器從而隱藏其惡意行為不予表現(xiàn),本文特別利用了反探測方案,來對付Android惡意應(yīng)用對模擬器的“事前探測”,即把Android系統(tǒng)源代碼中一些與模擬器屬性值相關(guān)的數(shù)據(jù)修改為與Android真實設(shè)備相同的值,從而達(dá)到反探測的目的,用“善意的謊言”掀開惡意軟件“邪惡的面紗”。

      表1便是Android模擬器與真實的物理設(shè)備特征值的對比[5]。

      反探測系統(tǒng)具體思路如下:

      ①模擬器偽造數(shù)據(jù):將偽造的屬性值寫入/ data/apk scanner/anti-emulator目錄下對應(yīng)的文件中。

      ②被檢測軟件調(diào)用數(shù)據(jù):被檢測軟件照常調(diào)用相關(guān)API并讀取屬性值。

      ③反探測系統(tǒng)返回假數(shù)據(jù):反探測系統(tǒng)讀取文件中的假屬性值,代替模擬器真實的屬性值,返回給待測應(yīng)用。

      ④完成反探測功能。

      表1 模擬器環(huán)境特征

      2.2 查看未能被殺掉的Service

      首先,需要初步鑒定待測軟件是否有“流氓行為”。這個鑒定十分簡單,可以通過將該應(yīng)用在模擬器中運(yùn)行,然后關(guān)閉進(jìn)程,過一段時間查看還有哪些本該隨進(jìn)程一起關(guān)閉的Service是始終存在并未被關(guān)閉的。因為大部分應(yīng)用實際上并不需要長期開啟某些后臺服務(wù),通過對服務(wù)的查看,就能基本確定這是否是一款流氓軟件。

      但是,通過查看未隨后臺應(yīng)用一起關(guān)閉的Service,并不能100%確定待測應(yīng)用就是要找的惡意軟件。例如像微信、360安全衛(wèi)士這類人們常用的軟件也是利用這個原理在后臺默默地監(jiān)聽廣播啟動Service的。所以不能因此就把這類軟件歸到惡意軟件的范疇,但是也不能因此而忽視了一個重要的問題,那就是“APK重打包”。有許多惡意軟件就是將當(dāng)前最熱門、人們最常用的軟件進(jìn)行APK重打包,進(jìn)一步去實施惡意行為的。

      2.3 基于動態(tài)軟件系統(tǒng)API標(biāo)記對比的檢測方法

      經(jīng)過對大量已知的Android惡意軟件的分析,發(fā)現(xiàn)許多代碼雖然已經(jīng)被攻擊者進(jìn)行了混淆處理,例如APK重打包,事實上,為了保證惡意軟件的惡意行為不變,無論程序的“外貌”如何變換,惡意程序終究是惡意程序,其對系統(tǒng)的的API調(diào)用是不變的。因此,本文提出了一種惡意軟件動態(tài)檢測方式,即在待測程序運(yùn)行過程中利用API調(diào)用攔截技術(shù),截取該應(yīng)用的API標(biāo)記,并將其作為該應(yīng)用的特征,與樣本庫中已存的惡意軟件的API調(diào)用特征進(jìn)行對比,進(jìn)一步判斷被檢測軟件是否是攻擊者經(jīng)過APK重打包的惡意軟件。

      2.3.1 API調(diào)用攔截技術(shù)

      API調(diào)用攔截技術(shù),又稱為API Hook,通過對應(yīng)用程序內(nèi)存映像API調(diào)用的重定向,改變應(yīng)用程序流程,從而實現(xiàn)對API函數(shù)調(diào)用的監(jiān)視和控制。

      具體方法是,Zygote在Android操作系統(tǒng)中對應(yīng)的可執(zhí)行文件位于/system/bin目錄,名稱為app_process。通過將app_process文件更改并交替,然后操控Zygote進(jìn)程,這就攔截了Zygote進(jìn)程及其創(chuàng)建的Dalvik虛擬機(jī)實例,從而攔截了運(yùn)行中的應(yīng)用軟件所調(diào)用的系統(tǒng)動態(tài)API。

      正常的API調(diào)用流程如圖1所示。

      使用API調(diào)用攔截技術(shù)后的API調(diào)用流程如圖2所示。

      2.3.2 基于API的軟件標(biāo)記

      在Android應(yīng)用程序運(yùn)行過程中,只有通過調(diào)用相應(yīng)的系統(tǒng)API來完成對應(yīng)的操作,才能實現(xiàn)應(yīng)用中各模塊的功能,那么,基于API的軟件標(biāo)記即可被定義為由軟件運(yùn)行過程中的系統(tǒng)API調(diào)用序列和頻率作為組成元素的動態(tài)軟件標(biāo)記[6]。攻擊者將程序源代碼編譯成目標(biāo)代碼的時候,編譯器對代碼進(jìn)行優(yōu)化、包裝,但無論如何混淆都不會對系統(tǒng)API調(diào)用造成影響。因此,將待檢測軟件運(yùn)行時的API調(diào)用序列與調(diào)用頻率組成的唯一的“標(biāo)記”與樣本庫中已有惡意軟件的該標(biāo)記進(jìn)行對比,標(biāo)記的相似度即代表了軟件的相似度。

      了解了基于API的軟件標(biāo)記,就可以利用前文提到的API調(diào)用攔截技術(shù),監(jiān)控軟件并對系統(tǒng)的API調(diào)用序列進(jìn)行截取了。但是在現(xiàn)實情況中,大多數(shù)系統(tǒng)API是不會發(fā)生惡意行為的,在此需要特別注意那些可能被惡意軟件利用從而進(jìn)行惡意行為的敏感API,如表2所示。

      表2 敏感API

      2.3.3 比較判定方法

      得到被檢測軟件的軟件的上述API特殊標(biāo)記后,即可將其與已知惡意軟件樣本庫中保存的已知惡意軟件的軟件API該標(biāo)記進(jìn)行比較,判斷相似程度,從而確定被檢測軟件是否是由已知惡意軟件經(jīng)過重打包而來的。在進(jìn)行軟件API標(biāo)記對比的過程中,首先要將已知惡意樣本軟件API標(biāo)記的所有片段遍歷一遍,再將其與待測應(yīng)用的API標(biāo)記進(jìn)行比較,把相似度高的片段統(tǒng)計分類,以便計算兩者軟件API標(biāo)記的相似程度。

      3 方案目的及性能說明

      本方案可以從查看服務(wù)和相似性兩方面對待測軟件進(jìn)行分析。對于大多數(shù)隱私竊取類的惡意軟件,能夠通過查看Service人為地判斷出軟件中可能存在的惡意行為,還能夠判斷出已知惡意軟件樣本庫中存在的惡意軟件的變種,并且能有效地防止大多數(shù)惡意程序?qū)δM器的識別和排斥行為。

      比起使用k均值算法把收集的數(shù)據(jù)分為正常和惡意兩組,以此作為應(yīng)用程序的特征庫的方法,這種檢測方案沒有涉及到復(fù)雜的算法,因為目前的API調(diào)用攔截技術(shù)也比較成熟,所以操作起來相對容易,相似性對比的準(zhǔn)確率也會更高。

      4 結(jié)束語

      文中提了一套Android惡意軟件檢測方案,該方案在模擬環(huán)境下對應(yīng)用程序的動態(tài)行為進(jìn)行監(jiān)控。這種檢測方案的優(yōu)點在于不受混淆代碼的干擾,且有較強(qiáng)的屏蔽性,避免惡意軟件進(jìn)行模擬環(huán)境檢測。當(dāng)然也有其弊端,受惡意軟件樣本庫限制,對于新爆發(fā)的惡意軟件,檢測系統(tǒng)的已知惡意軟件樣本庫中沒有對其軟件API標(biāo)記進(jìn)行收錄,故這種對比的檢測方法將無法起作用。目前,本文也只是針對動態(tài)檢測過程中可能會出現(xiàn)的問題,提出了理論上的解決方案,后續(xù)還將對該方法具體模型的設(shè)計進(jìn)行詳細(xì)的研究并進(jìn)行具體的可行性測試。

      [1]AV-Comparatives機(jī)構(gòu).2015年2月安卓系統(tǒng)(手機(jī)及平板電腦)殺毒軟件測試報告.

      [2]王志國,侯銀濤,石榮剛.Android智能手機(jī)系統(tǒng)的文件實時監(jiān)控技術(shù)[J].計算機(jī)安全,2009(12):42-44.

      [3]王浩宇,王仲禹,郭耀,等.基于代碼克隆檢測技術(shù)的Android應(yīng)用重打包檢測[J].中國科學(xué):信息科學(xué),2014,44(1):142-157.

      [4]沈明星.淺談 Android重打包技術(shù)[EB/ OL].http://weibo.com/fattestmonkey.

      [5]Building a Better Emulator[EB/OL].http://blog. thecobraden. com/2012/10/ building-better-emulator-part-1.html.

      [6]Tamada H,Okamoto K,Nakamura M,et al.Dynamic software birthmarks to detect the theft of windows applications[C]// International Symposium on Future Software Technology.2004,20(22).

      [7]金泰延.Android框架揭秘[M].北京:人民郵電出版社,2012.

      A Dynamic Detection Method for Android Malware Based on API Mark

      Liu Peihe Huang SiyiYan Xiangyu
      Department of Communication Engineering,Beijing Electronic Science and Technology Institute,Beijing 100070,China

      Android system is the most popular platform for mobile terminals and because of its character of openness,the number of malware is gradually increasing.Therefore,this paper presents a set of malware detection programs.By using“anti-detection scheme”to prevent malware detection simulation environment and running the software in the simulator,we detect whether the application has hooliganism.Finally,the“software-based dynamic system API marked contrast detection scheme”to detect malware APK repackaged which proved to be suitable for security protection of android mobile terminal.

      Android;Malicious software;Mobile terminal security;Dynamic detection;Behavior monitor;API Hook

      TP309.5

      A

      1672-464X(2016)2-73-06

      (責(zé)任編輯:張卷美)

      北京市公建項目·專用計算機(jī)安全管理系統(tǒng)的研究、設(shè)計與實現(xiàn)(2011)

      ** 作者簡介:劉培鶴(1972-),男,實驗師,本科,主要研究方向為網(wǎng)絡(luò)安全。黃思藝(1993-),女,本科,專業(yè)為通信工程。

      猜你喜歡
      模擬器調(diào)用應(yīng)用程序
      了不起的安檢模擬器
      盲盒模擬器
      劃船模擬器
      核電項目物項調(diào)用管理的應(yīng)用研究
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      動態(tài)飛行模擬器及其發(fā)展概述
      利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      五莲县| 双辽市| 永州市| 邵东县| 建始县| 兴国县| 文登市| 临泽县| 邛崃市| 开封市| 博爱县| 勐海县| 拜城县| 隆昌县| 宝鸡市| 宁德市| 宣化县| 扬中市| 巴塘县| 申扎县| 抚顺市| 内乡县| 拜泉县| 宝丰县| 临湘市| 内丘县| 井研县| 桐城市| 安义县| 龙里县| 苏州市| 历史| 墨脱县| 安福县| 莱阳市| 星子县| 攀枝花市| 亚东县| 行唐县| 科技| 拜城县|