謝麗霞 趙彬彬
(中國民航大學計算機科學與技術學院 天津 300300)
?
基于日志分析的Android系統惡意行為檢測
謝麗霞趙彬彬
(中國民航大學計算機科學與技術學院天津 300300)
摘要針對Android平臺惡意軟件泛濫的問題,提出一種基于日志分析的Android系統的惡意行為檢測模型。模型采用進程守護和廣播監聽的方式收集日志信息并通過Boyer-Moore算法匹配、識別惡意行為。以Android 4.0平臺為測試環境進行軟件行為檢測,實驗結果表明,該檢測模型能夠檢測出90.0%的惡意行為,證明模型對Android系統惡意行為檢測的有效性和可行性。
關鍵詞進程守護惡意行為日志信息
0引言
Android是2007年11月份谷歌公司發布的一款基于Linux的開源的手機操作系統[1]。由于其開放性的特色使得Android的市場占有率持續增長。截止2014年1月份Android的市場占有率已達到78.9%,最新數據顯示Android的網絡流量首超IOS。中國智能手機的發展更是極大地推動了Android市場占有率的增長,當然也伴隨著一系列的安全問題。
2012年第四季度的Android惡意軟件的數量和變種類型大幅度增多。F-Secure的最新報告顯示,最近一個季度Android平臺下的惡意軟件的威脅已從去年的79%增至91.3%[2]。Android平臺下的惡意行為主要分為如下幾種方式:加值服務濫用、插播廣告、竊取用戶資料和信息、非法下載軟件和詐騙等[3],其最終目的是為了獲取高額的利潤。其中76.5%的惡意軟件是借助網絡、短信、電話等方式傳遞私密或扣費信息詐騙用戶錢財,而非破壞手機系統[2]。
本文主要從Android系統的日志入手,采用進程守護機制常駐系統內存記錄系統的日志信息,采用Boyer-Moore[4]算法匹配日志信息,分析識別軟件的惡意行為。
1背景及相關工作
目前,Android平臺下基于行為的惡意軟件的檢測方案主要是:靜態行為檢測、動態行為檢測和混合檢測的方式[5,6]。靜態行為檢測是在軟件未安裝以前分析軟件源代碼等方式來識別軟件的惡意行為。動態行為檢測是在軟件運行時動態的攔截,識別軟件的惡意行為。混合檢測則是靜態行為檢測與動態行為檢測相結合的方式。
靜態行為檢測需要利用工具識別軟件的行為(如:通過反編譯的方式分析軟件源代碼)[7],執行復雜且精度不高。動態行為檢測通過監控軟件的行為,進行特征行為的匹配,需要大量的樣本數據?;旌蠙z測則過于繁瑣,實現復雜。
2檢測模型的設計
2.1模型設計
Android系統的主要惡意行為包括:非法撥打電話、發送扣費短信、訪問遠程服務器、安裝、卸載、運行未知軟件、刪除、修改文件等。
惡意行為的通用判斷標準如下:
1) 當運行有Android系統的手機(或平板等)處于鎖屏狀態時,此時一切軟件的撥打電話、發送短信、訪問遠程服務器、訪問隱私數據、操作未知軟件等行為均被視為惡意行為。
2) 當手機(或平板等)處于解鎖狀態(用戶前臺正常使用)時,若此時執行撥打電話、發送短信、訪問服務器等行為的應用程序不是前臺應用程序,則認為該行為是惡意行為,將該行為上報用戶。若前臺應用程序執行該行為,則識別該程序是否是可信軟件,若不是可信軟件或可信性未知,則判定該行為是惡意行為。
檢測模型由三個部分組成:日志信息收集部分、應用程序數據庫和日志信息索引庫部分以及行為特征匹配部分。日志信息收集部分通過廣播監聽的方式和進程守護機制長久地收集日志信息。廣播監聽是通過監聽系統開機的廣播開始收集系統的日志信息。進程守護機制是指有兩條功能相同的記錄系統日志的進程,同一時刻只有一條進程在運行,任何一條進程在被銷毀的同時開啟另一條進程繼續記錄系統的日志信息。應用程序數據庫和日志信息索引庫為Android系統產生的日志信息的惡意行為匹配提供數據。行為特征匹配部分的作用是通過Boyer-Moore算法匹配日志信息,識別惡意行為。
檢測模型的檢測思路是:日志信息收集部分收集系統產生的日志信息。行為特征匹配部分查詢應用程序數據庫和日志信息索引庫,運用Boyer-Moore算法匹配日志信息進行行為特征的匹配,根據本文定義的惡意行為的判斷標準識別惡意行為并上報用戶。惡意行為檢測模型架構如圖1所示。

圖1 惡意行為檢測模型架構
2.2行為特征匹配算法
Boyer-Moore算法是一種高效、構思巧妙、應用廣泛的字符匹配算法。該算法已在目前的文字處理軟件中廣泛使用。
基于Boyer-Moore算法,本文設計的Android軟件行為特征匹配處理方法如下:
1) 設定一個目標串和查找串。以系統產生的日志信息作為目標串,以日志信息索引庫中的行為特征字符串作為查找串進行操作類型的特征匹配,確定系統執行的操作類型。
2) 以日志信息作為目標串,以應用程序的包名作為查找串進行包名匹配,定位執行操作的應用程序的包名。通過應用程序數據庫中的信息確定對應的應用程序的名稱,至此識別出系統執行的行為信息。
3) 匹配日志信息的最近的記錄以同樣的方式定位出執行該行為的軟件或從系統的任務棧中獲取。根據本文定義的惡意行為的判斷標準最終確定該行為是否是惡意行為。
Boyer-Moore算法的匹配流程如圖2所示。

圖2 Boyer-Moore算法匹配流程圖
3檢測模型的實現
3.1檢測模型處理流程
檢測模型的具體實現是由三個模塊組成:日志信息記錄模塊、應用程序信息及日志信息索引模塊和日志信息分析模塊。
日志信息記錄模塊采用廣播監聽和進程守護的方式常駐在系統的內存,記錄系統產生的日志信息,并根據系統日志信息的數據量周期性地清理記錄日志信息的文件。
應用程序信息及日志信息索引模塊的作用是將Android系統下已安裝的系統應用程序和用戶應用程序的相關信息存儲到應用程序數據庫中。同時將系統的行為所對應的日志信息字符串存儲到日志信息索引庫中為日志信息分析模塊分析系統日志提供數據。
最后由日志信息分析模塊查詢應用程序數據庫和日志信息索引庫借助Boyer-Moore算法匹配日志信息,識別軟件的行為,并根據模型定義的判斷標準將識別出的惡意行為上報用戶。
本文提出的基于日志的Android系統的惡意行為的檢測模型的整體流程如圖3所示。

圖3 檢測模型整體處理流程
3.2日志信息記錄模塊
日志信息記錄模塊是該檢測模型的重要模塊。當日志信息記錄模塊監聽到系統的開機廣播時開啟記錄日志信息的服務A,在服務A中開啟一條線程循環執行logcat -d指令,獲取Android系統下產生的日志信息并以JSON的形式存儲在txt文件中。重寫服務A的onDestroy()方法,在服務A銷毀的同時開啟服務B,服務B執行與服務A相同的記錄日志信息的操作,服務B銷毀的同時開啟服務A。通過這種廣播監聽和進程守護的方式避免了人為或惡意軟件銷毀進程結束記錄日志的服務,使該服務可以常駐系統的內存。
Android系統下每執行一次操作會產生相應的日志信息。為了節約對系統資源的使用,記錄日志信息的文件中只保留了前500條記錄,獲取到的日志信息將由日志信息分析模塊進行處理。日志信息記錄模塊的處理流程如圖4所示。

圖4 日志信息記錄模塊處理流程圖
3.3應用程序信息及日志信息索引模塊
Android系統下已安裝的應用程序,會以文件夾的形式存儲在“/data/data/”目錄下,遍歷這些文件夾即可獲取已安裝的應用程序的包名等信息。但若系統未root[8],則無法訪問這些與系統相關的文件。通過Android系統提供的PackageManager類獲取系統應用程序的相關信息(包括:應用程序的包名、應用程序的名稱和是否是系統應用等)。借助Android系統的SQLite引擎將應用程序的相關信息以及與軟件安裝、運行、卸載等類的信息存儲到數據庫文件中構成應用程序數據庫。該數據庫中的軟件信息同時會根據用戶的操作和服務器端的數據進行更新。
Android系統下每執行一步操作會生成相應的日志信息。每條日志信息均由五部分組成:Time、Type、Pid、Tag、Message[9]。
(1) Time:記錄了日志產生的時間。
(2) Type:指示了該日志信息的類型。分為五種:V(所有信息);D(調試信息);I(一般信息);W(警告信息);E(錯誤信息)。
(3) Pid:Android系統為每個應用程序分配了一個進程ID。
(4) Tag:啟動的應用程序的Activity的名稱或類名。
(5) Message:Android系統下程序運行的相關的詳細信息。
以Android系統下撥打電話的日志信息為例,部分日志信息如下:
START{act=android.intent.action.MAIN flg=0x10840000 cmp=com.android.phone/.InCallScreen}
由日志信息的內容可以分析出日志信息中包含兩個敏感的字符串:START和com.android.phone。START對應的是執行的操作即運行;com.android.phone是被運行的應用程序的包名。其他的操作對應的字符串還包括DELETE、Display、Clear等,將這些敏感字符串、信息的類型、時間、標簽等信息存到數據庫中構成日志信息索引庫。
當該模塊首次啟動時創建應用程序數據庫和日志信息索引庫并修改配置文件中相關的參數,防止模塊啟動時重復執行。
應用程序信息及日志信息索引模塊的創建流程如圖5所示。

圖5 應用程序數據庫和日志信息索引庫創建流程
3.4日志信息分析模塊
日志信息分析模塊是檢測模型的核心模塊。在該模塊中,惡意行為識別流程如圖6所示。

圖6 惡意行為識別流程
日志信息分析模塊的主要處理流程為:
1) 接收移動設備的鎖屏、解鎖廣播,并將移動設備當前屏幕狀態存儲到配置文件中。
2) 查詢應用程序數據庫和日志信息索引庫,采用Boyer-Moore算法對日志信息進行匹配,確定軟件行為。
3) 根據配置文件,識別當前手機的鎖屏狀態。
4) 根據當前的手機鎖屏狀態,按照惡意行為判斷標準,識別當前行為是否是惡意行為。
4測試與分析
基于本文提出的檢測模型,采用J2SE技術,設計并實現了檢測軟件。以Android 4.0平臺為測試環境進行軟件行為檢測。
測試軟件樣本來自主流的Android應用軟件交流平臺。軟件樣本的類型涉及生活休閑、新聞閱讀、影音視聽、通訊社交、休閑游戲等,樣本軟件構成如下:
良性軟件100個,含有惡意行為的軟件400個。應用程序數據庫中的部分數據如圖7所示。

圖7 應用程序數據庫中的樣本數據
當Android系統執行惡意行為軟件時,檢測到的惡意行為軟件的平均時間延遲及系統內存使用情況如表1所示。

表1 檢測延遲及內存消耗
表1的數據表明,本文提出的檢測方法可以在用戶容許的時間內檢測到惡意行為,但對系統的內存消耗較大。
軟件訪問遠程服務器的惡意行為的檢測結果界面如圖8所示。

圖8 發現訪問遠程服務器的惡意行為
通過檢測軟件對收集的500個樣本軟件進行檢驗測試,發現360個樣本軟件中含有如下惡意行為:運行未知軟件、訪問遠程服務器、發送短信等。檢測實驗結果如表2所示。

表2 檢測結果
表2的測試數據和測試結果證明了本文提出的檢測模型能夠有效發現Android系統的惡意行為,驗證了該檢測模型對惡意行為檢測的有效性與可行性。
5結語
基于日志的Android系統惡意行為檢測模型采用進程守護和廣播監聽的方式保證記錄日志的服務常駐系統內存,以Android系統的日志信息作為軟件行為的分析依據,借助Boyer-Moore算法匹配日志信息中的敏感字符串識別軟件的惡意行為。該模型能夠有效識別出軟件的惡意行為,但仍有不足之處:如對系統的資源消耗較大,構建日志信息索引庫困難,惡意行為的識別精度不高等。
未來基于日志的Android系統的惡意行為的檢測模型將以日志信息為主,綜合評估各方面的數據。提高監控的準確度和效率并降低對系統資源的消耗。
參考文獻
[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] 陳丹偉,唐平,周書桃.基于沙盒技術的惡意程序檢測模型[J].計算機科學,2012,39(6):12-13.
[8] 邢曉燕,金洪穎,田敏.Android系統root權限獲取與檢測[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)。謝麗霞,副教授,主研領域:網絡與信息安全。趙彬彬,碩士生。
中圖分類號TP393.08
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.05.072