謝麗霞 趙彬彬
(中國民航大學計算機科學與技術(shù)學院 天津 300300)
?
基于日志分析的Android系統(tǒng)惡意行為檢測
謝麗霞趙彬彬
(中國民航大學計算機科學與技術(shù)學院天津 300300)
摘要針對Android平臺惡意軟件泛濫的問題,提出一種基于日志分析的Android系統(tǒng)的惡意行為檢測模型。模型采用進程守護和廣播監(jiān)聽的方式收集日志信息并通過Boyer-Moore算法匹配、識別惡意行為。以Android 4.0平臺為測試環(huán)境進行軟件行為檢測,實驗結(jié)果表明,該檢測模型能夠檢測出90.0%的惡意行為,證明模型對Android系統(tǒng)惡意行為檢測的有效性和可行性。
關(guān)鍵詞進程守護惡意行為日志信息
0引言
Android是2007年11月份谷歌公司發(fā)布的一款基于Linux的開源的手機操作系統(tǒng)[1]。由于其開放性的特色使得Android的市場占有率持續(xù)增長。截止2014年1月份Android的市場占有率已達到78.9%,最新數(shù)據(jù)顯示Android的網(wǎng)絡(luò)流量首超IOS。中國智能手機的發(fā)展更是極大地推動了Android市場占有率的增長,當然也伴隨著一系列的安全問題。
2012年第四季度的Android惡意軟件的數(shù)量和變種類型大幅度增多。F-Secure的最新報告顯示,最近一個季度Android平臺下的惡意軟件的威脅已從去年的79%增至91.3%[2]。Android平臺下的惡意行為主要分為如下幾種方式:加值服務(wù)濫用、插播廣告、竊取用戶資料和信息、非法下載軟件和詐騙等[3],其最終目的是為了獲取高額的利潤。其中76.5%的惡意軟件是借助網(wǎng)絡(luò)、短信、電話等方式傳遞私密或扣費信息詐騙用戶錢財,而非破壞手機系統(tǒng)[2]。
本文主要從Android系統(tǒng)的日志入手,采用進程守護機制常駐系統(tǒng)內(nèi)存記錄系統(tǒng)的日志信息,采用Boyer-Moore[4]算法匹配日志信息,分析識別軟件的惡意行為。
1背景及相關(guān)工作
目前,Android平臺下基于行為的惡意軟件的檢測方案主要是:靜態(tài)行為檢測、動態(tài)行為檢測和混合檢測的方式[5,6]。靜態(tài)行為檢測是在軟件未安裝以前分析軟件源代碼等方式來識別軟件的惡意行為。動態(tài)行為檢測是在軟件運行時動態(tài)的攔截,識別軟件的惡意行為?;旌蠙z測則是靜態(tài)行為檢測與動態(tài)行為檢測相結(jié)合的方式。
靜態(tài)行為檢測需要利用工具識別軟件的行為(如:通過反編譯的方式分析軟件源代碼)[7],執(zhí)行復雜且精度不高。動態(tài)行為檢測通過監(jiān)控軟件的行為,進行特征行為的匹配,需要大量的樣本數(shù)據(jù)?;旌蠙z測則過于繁瑣,實現(xiàn)復雜。
2檢測模型的設(shè)計
2.1模型設(shè)計
Android系統(tǒng)的主要惡意行為包括:非法撥打電話、發(fā)送扣費短信、訪問遠程服務(wù)器、安裝、卸載、運行未知軟件、刪除、修改文件等。
惡意行為的通用判斷標準如下:
1) 當運行有Android系統(tǒng)的手機(或平板等)處于鎖屏狀態(tài)時,此時一切軟件的撥打電話、發(fā)送短信、訪問遠程服務(wù)器、訪問隱私數(shù)據(jù)、操作未知軟件等行為均被視為惡意行為。
2) 當手機(或平板等)處于解鎖狀態(tài)(用戶前臺正常使用)時,若此時執(zhí)行撥打電話、發(fā)送短信、訪問服務(wù)器等行為的應(yīng)用程序不是前臺應(yīng)用程序,則認為該行為是惡意行為,將該行為上報用戶。若前臺應(yīng)用程序執(zhí)行該行為,則識別該程序是否是可信軟件,若不是可信軟件或可信性未知,則判定該行為是惡意行為。
檢測模型由三個部分組成:日志信息收集部分、應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫部分以及行為特征匹配部分。日志信息收集部分通過廣播監(jiān)聽的方式和進程守護機制長久地收集日志信息。廣播監(jiān)聽是通過監(jiān)聽系統(tǒng)開機的廣播開始收集系統(tǒng)的日志信息。進程守護機制是指有兩條功能相同的記錄系統(tǒng)日志的進程,同一時刻只有一條進程在運行,任何一條進程在被銷毀的同時開啟另一條進程繼續(xù)記錄系統(tǒng)的日志信息。應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫為Android系統(tǒng)產(chǎn)生的日志信息的惡意行為匹配提供數(shù)據(jù)。行為特征匹配部分的作用是通過Boyer-Moore算法匹配日志信息,識別惡意行為。
檢測模型的檢測思路是:日志信息收集部分收集系統(tǒng)產(chǎn)生的日志信息。行為特征匹配部分查詢應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫,運用Boyer-Moore算法匹配日志信息進行行為特征的匹配,根據(jù)本文定義的惡意行為的判斷標準識別惡意行為并上報用戶。惡意行為檢測模型架構(gòu)如圖1所示。
圖1 惡意行為檢測模型架構(gòu)
2.2行為特征匹配算法
Boyer-Moore算法是一種高效、構(gòu)思巧妙、應(yīng)用廣泛的字符匹配算法。該算法已在目前的文字處理軟件中廣泛使用。
基于Boyer-Moore算法,本文設(shè)計的Android軟件行為特征匹配處理方法如下:
1) 設(shè)定一個目標串和查找串。以系統(tǒng)產(chǎn)生的日志信息作為目標串,以日志信息索引庫中的行為特征字符串作為查找串進行操作類型的特征匹配,確定系統(tǒng)執(zhí)行的操作類型。
2) 以日志信息作為目標串,以應(yīng)用程序的包名作為查找串進行包名匹配,定位執(zhí)行操作的應(yīng)用程序的包名。通過應(yīng)用程序數(shù)據(jù)庫中的信息確定對應(yīng)的應(yīng)用程序的名稱,至此識別出系統(tǒng)執(zhí)行的行為信息。
3) 匹配日志信息的最近的記錄以同樣的方式定位出執(zhí)行該行為的軟件或從系統(tǒng)的任務(wù)棧中獲取。根據(jù)本文定義的惡意行為的判斷標準最終確定該行為是否是惡意行為。
Boyer-Moore算法的匹配流程如圖2所示。
圖2 Boyer-Moore算法匹配流程圖
3檢測模型的實現(xiàn)
3.1檢測模型處理流程
檢測模型的具體實現(xiàn)是由三個模塊組成:日志信息記錄模塊、應(yīng)用程序信息及日志信息索引模塊和日志信息分析模塊。
日志信息記錄模塊采用廣播監(jiān)聽和進程守護的方式常駐在系統(tǒng)的內(nèi)存,記錄系統(tǒng)產(chǎn)生的日志信息,并根據(jù)系統(tǒng)日志信息的數(shù)據(jù)量周期性地清理記錄日志信息的文件。
應(yīng)用程序信息及日志信息索引模塊的作用是將Android系統(tǒng)下已安裝的系統(tǒng)應(yīng)用程序和用戶應(yīng)用程序的相關(guān)信息存儲到應(yīng)用程序數(shù)據(jù)庫中。同時將系統(tǒng)的行為所對應(yīng)的日志信息字符串存儲到日志信息索引庫中為日志信息分析模塊分析系統(tǒng)日志提供數(shù)據(jù)。
最后由日志信息分析模塊查詢應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫借助Boyer-Moore算法匹配日志信息,識別軟件的行為,并根據(jù)模型定義的判斷標準將識別出的惡意行為上報用戶。
本文提出的基于日志的Android系統(tǒng)的惡意行為的檢測模型的整體流程如圖3所示。
圖3 檢測模型整體處理流程
3.2日志信息記錄模塊
日志信息記錄模塊是該檢測模型的重要模塊。當日志信息記錄模塊監(jiān)聽到系統(tǒng)的開機廣播時開啟記錄日志信息的服務(wù)A,在服務(wù)A中開啟一條線程循環(huán)執(zhí)行l(wèi)ogcat -d指令,獲取Android系統(tǒng)下產(chǎn)生的日志信息并以JSON的形式存儲在txt文件中。重寫服務(wù)A的onDestroy()方法,在服務(wù)A銷毀的同時開啟服務(wù)B,服務(wù)B執(zhí)行與服務(wù)A相同的記錄日志信息的操作,服務(wù)B銷毀的同時開啟服務(wù)A。通過這種廣播監(jiān)聽和進程守護的方式避免了人為或惡意軟件銷毀進程結(jié)束記錄日志的服務(wù),使該服務(wù)可以常駐系統(tǒng)的內(nèi)存。
Android系統(tǒng)下每執(zhí)行一次操作會產(chǎn)生相應(yīng)的日志信息。為了節(jié)約對系統(tǒng)資源的使用,記錄日志信息的文件中只保留了前500條記錄,獲取到的日志信息將由日志信息分析模塊進行處理。日志信息記錄模塊的處理流程如圖4所示。
圖4 日志信息記錄模塊處理流程圖
3.3應(yīng)用程序信息及日志信息索引模塊
Android系統(tǒng)下已安裝的應(yīng)用程序,會以文件夾的形式存儲在“/data/data/”目錄下,遍歷這些文件夾即可獲取已安裝的應(yīng)用程序的包名等信息。但若系統(tǒng)未root[8],則無法訪問這些與系統(tǒng)相關(guān)的文件。通過Android系統(tǒng)提供的PackageManager類獲取系統(tǒng)應(yīng)用程序的相關(guān)信息(包括:應(yīng)用程序的包名、應(yīng)用程序的名稱和是否是系統(tǒng)應(yīng)用等)。借助Android系統(tǒng)的SQLite引擎將應(yīng)用程序的相關(guān)信息以及與軟件安裝、運行、卸載等類的信息存儲到數(shù)據(jù)庫文件中構(gòu)成應(yīng)用程序數(shù)據(jù)庫。該數(shù)據(jù)庫中的軟件信息同時會根據(jù)用戶的操作和服務(wù)器端的數(shù)據(jù)進行更新。
Android系統(tǒng)下每執(zhí)行一步操作會生成相應(yīng)的日志信息。每條日志信息均由五部分組成:Time、Type、Pid、Tag、Message[9]。
(1) Time:記錄了日志產(chǎn)生的時間。
(2) Type:指示了該日志信息的類型。分為五種:V(所有信息);D(調(diào)試信息);I(一般信息);W(警告信息);E(錯誤信息)。
(3) Pid:Android系統(tǒng)為每個應(yīng)用程序分配了一個進程ID。
(4) Tag:啟動的應(yīng)用程序的Activity的名稱或類名。
(5) Message:Android系統(tǒng)下程序運行的相關(guān)的詳細信息。
以Android系統(tǒng)下?lián)艽螂娫挼娜罩拘畔槔?,部分日志信息如?
START{act=android.intent.action.MAIN flg=0x10840000 cmp=com.android.phone/.InCallScreen}
由日志信息的內(nèi)容可以分析出日志信息中包含兩個敏感的字符串:START和com.android.phone。START對應(yīng)的是執(zhí)行的操作即運行;com.android.phone是被運行的應(yīng)用程序的包名。其他的操作對應(yīng)的字符串還包括DELETE、Display、Clear等,將這些敏感字符串、信息的類型、時間、標簽等信息存到數(shù)據(jù)庫中構(gòu)成日志信息索引庫。
當該模塊首次啟動時創(chuàng)建應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫并修改配置文件中相關(guān)的參數(shù),防止模塊啟動時重復執(zhí)行。
應(yīng)用程序信息及日志信息索引模塊的創(chuàng)建流程如圖5所示。
圖5 應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫創(chuàng)建流程
3.4日志信息分析模塊
日志信息分析模塊是檢測模型的核心模塊。在該模塊中,惡意行為識別流程如圖6所示。
圖6 惡意行為識別流程
日志信息分析模塊的主要處理流程為:
1) 接收移動設(shè)備的鎖屏、解鎖廣播,并將移動設(shè)備當前屏幕狀態(tài)存儲到配置文件中。
2) 查詢應(yīng)用程序數(shù)據(jù)庫和日志信息索引庫,采用Boyer-Moore算法對日志信息進行匹配,確定軟件行為。
3) 根據(jù)配置文件,識別當前手機的鎖屏狀態(tài)。
4) 根據(jù)當前的手機鎖屏狀態(tài),按照惡意行為判斷標準,識別當前行為是否是惡意行為。
4測試與分析
基于本文提出的檢測模型,采用J2SE技術(shù),設(shè)計并實現(xiàn)了檢測軟件。以Android 4.0平臺為測試環(huán)境進行軟件行為檢測。
測試軟件樣本來自主流的Android應(yīng)用軟件交流平臺。軟件樣本的類型涉及生活休閑、新聞閱讀、影音視聽、通訊社交、休閑游戲等,樣本軟件構(gòu)成如下:
良性軟件100個,含有惡意行為的軟件400個。應(yīng)用程序數(shù)據(jù)庫中的部分數(shù)據(jù)如圖7所示。
圖7 應(yīng)用程序數(shù)據(jù)庫中的樣本數(shù)據(jù)
當Android系統(tǒng)執(zhí)行惡意行為軟件時,檢測到的惡意行為軟件的平均時間延遲及系統(tǒng)內(nèi)存使用情況如表1所示。
表1 檢測延遲及內(nèi)存消耗
表1的數(shù)據(jù)表明,本文提出的檢測方法可以在用戶容許的時間內(nèi)檢測到惡意行為,但對系統(tǒng)的內(nèi)存消耗較大。
軟件訪問遠程服務(wù)器的惡意行為的檢測結(jié)果界面如圖8所示。
圖8 發(fā)現(xiàn)訪問遠程服務(wù)器的惡意行為
通過檢測軟件對收集的500個樣本軟件進行檢驗測試,發(fā)現(xiàn)360個樣本軟件中含有如下惡意行為:運行未知軟件、訪問遠程服務(wù)器、發(fā)送短信等。檢測實驗結(jié)果如表2所示。
表2 檢測結(jié)果
表2的測試數(shù)據(jù)和測試結(jié)果證明了本文提出的檢測模型能夠有效發(fā)現(xiàn)Android系統(tǒng)的惡意行為,驗證了該檢測模型對惡意行為檢測的有效性與可行性。
5結(jié)語
基于日志的Android系統(tǒng)惡意行為檢測模型采用進程守護和廣播監(jiān)聽的方式保證記錄日志的服務(wù)常駐系統(tǒng)內(nèi)存,以Android系統(tǒng)的日志信息作為軟件行為的分析依據(jù),借助Boyer-Moore算法匹配日志信息中的敏感字符串識別軟件的惡意行為。該模型能夠有效識別出軟件的惡意行為,但仍有不足之處:如對系統(tǒng)的資源消耗較大,構(gòu)建日志信息索引庫困難,惡意行為的識別精度不高等。
未來基于日志的Android系統(tǒng)的惡意行為的檢測模型將以日志信息為主,綜合評估各方面的數(shù)據(jù)。提高監(jiān)控的準確度和效率并降低對系統(tǒng)資源的消耗。
參考文獻
[1] Foutse Khomh,Hao Yuan,Ying Zou.Adapting Linux for Mobile Platforms:An Empirical Study of Android[C]//The 28th IEEE International Conference on Software Maintenance (ICSM),2012:629-632.
[2] F-Secure Labs Mobile Threat Report Q1 2014[EB/OL].[2014-7-16].http://www.f-secure.com/en/web/labs_global/whitepaper/reports.
[3] Suleiman Y Yerima,Sakir Sezer,Gavin McWilliams.Analysis of Bayesian classification based approaches for Android malware detection[J].2014,8(1):25-36.
[4] Miloslav Besta,Frank Stomp.Mechanization of a Proof of String-Preprocessing in Boyer-Moore’s Pattern matching algorithm[C] //Proceedings of the Eightth IEEE international Conference on Engineering of Complex Computer Systems (ICECCS),2002:68-77.
[5] Zarni Aung,Win Zaw.Permission-Based Android Malware Detection[J].Internation Journal of Scientific & Technology,2013,2(3):228.
[6] Michael Spreitzenbarth,Thomas Schreck,Florian Echtler,et al.Mobile-Sandbox:combining static and dynamic analysis with machine-learning techniques[J].International Joarnal of Information Sacurity,2015,14(2):141-153.
[7] 陳丹偉,唐平,周書桃.基于沙盒技術(shù)的惡意程序檢測模型[J].計算機科學,2012,39(6):12-13.
[8] 邢曉燕,金洪穎,田敏.Android系統(tǒng)root權(quán)限獲取與檢測[J].軟件,2013,34(12):208-210.
[9] Android命令行工具logcat詳細用法[EB/OL].[2012-2-25].http://www.miui.com/article-272-1.html.
LOG ANALYSIS-BASED MALICIOUS BEHAVIOUR DETECTION FOR ANDROID SYSTEM
Xie LixiaZhao Binbin
(SchoolofComputerScienceandTechnology,CivilAviationUniversityofChina,Tianjin300300,China)
AbstractThis paper proposes a log analysis-based malicious behaviour detection model for Android system targeted at the rampant Android platform malware problem. The model uses the way of process guardianship and broadcast interception to collect log information, and matches and identifies malicious behaviours with Boyer-Moore algorithm. Android 4.0 platform is used as the testing environment for software behaviours detection, experimental results shows that this detection model is able to detect 90.0% malicious behaviours, and this proves the effectiveness and feasibility of the model on detecting malicious behaviours in Android system.
KeywordsGuardianship of the processMalicious behaviourLog information
收稿日期:2014-11-17。國家自然科學基金項目(60776807,6117 9045);國家科技重大專項(2012ZX03002002);天津市科技計劃重點項目(09JCZDJC16800)。謝麗霞,副教授,主研領(lǐng)域:網(wǎng)絡(luò)與信息安全。趙彬彬,碩士生。
中圖分類號TP393.08
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.05.072