熊雄
摘要:隨著Android操作系統(tǒng)的不斷進化發(fā)展,Android智能終端已經(jīng)成為新型智能終端最為重要的操作系統(tǒng)之一。2016年第三季度,國內(nèi)新型智能終端市場搭載Android操作系統(tǒng)的設備出貨量占比已經(jīng)達到88%。但是伴隨著Android智能終端市場占有率的提高,Android智能終端受到惡意軟件攻擊、被“種植”木馬的情況也越來越嚴重。該文提出一種以Android開源項目AOSP為基礎,通過改造Android系統(tǒng)源代碼構造基于行為特征的惡意軟件識別分析系統(tǒng)。
關鍵詞:AOSP;Android惡意軟件;行為特征識別;行為特征庫;Android虛擬機
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)36-0111-02
Design of Android Malware Behavior Analysis System Based on AOSP
XIONG Xiong
(Third Institute of the Ministry of Public Security, Shanghai 201204, China)
Abstract: With the continuous evolution of the Android operating system, Android intelligent terminal has become one of the most important operating system of the new intelligent terminal. In the third quarter of 2016, the domestic new smart terminal market equipped with Android operating system equipment shipments accounted for has reached 88%. But with the increase of Android smart terminal market share, Android intelligent terminal by malicious software attacks, being planted trojan is also becoming more and more serious. This paper proposes a Android based open source project AOSP as the foundation, through the transformation of the Android system source code structure based on behavior characteristics of malicious software identification analysis system.
Key words: AOSP; Android malware; Behavior feature recognition; Behavioral feature database; Android virtual machine
隨著Android操作系統(tǒng)的不斷進化發(fā)展,Android智能終端已經(jīng)成為新型智能終端最為重要的操作系統(tǒng)之一。2016年第三季度,國內(nèi)新型智能終端市場搭載Android操作系統(tǒng)的設備出貨量占比已經(jīng)達到88%。但是伴隨著Android智能終端市場占有率的提高,Android智能終端受到惡意軟件攻擊、被“種植”木馬的情況也越來越嚴重。
在涉及Android惡意軟件取證分析的案件中,主要采取的技術手段是通過逆向等技術對涉案APK進行反編譯,對反編譯的java或者smali代碼進行分析,從代碼中找到惡意軟件攔截短信、發(fā)送數(shù)據(jù)等行為的源代碼證據(jù)。但是隨著APK的源代碼混淆技術、加密技術的增強,對惡意軟件的反匯編將會越來越困難[1]。
AOSP是Android 開放源代碼項目"Android Open-Source Project"的縮寫,Android是一個開源的,用于移動設備的系統(tǒng)。 Android開放源代碼項目(AOSP),由谷歌發(fā)起,致力于Android的維護和更進一步的發(fā)展。
本文提出一種新的Android惡意軟件識別分析方案,本方案基于Android開源項目AOSP,通過對AOSP的源代碼進行改造,在項目中新增日志層。之后基于改造的AOSP源代碼生成鏡像,構造Android虛擬運行環(huán)境。將涉案APK安裝到虛擬運行環(huán)境進行執(zhí)行。最終對執(zhí)行過程中產(chǎn)生的日志數(shù)據(jù)進行分析,即可從中找到APK惡意行為的證據(jù)信息。
1 系統(tǒng)設計目的
本系統(tǒng)的設計目的是基于AOSP項目,定制化開發(fā)一套Android虛擬運行環(huán)境。在此運行環(huán)境中,可以安裝Apk程序,并且能夠對安裝在此環(huán)境中的Apk動態(tài)運行時的所作所為做出詳細記錄并執(zhí)行自動化分析。分析時可以與外部的知識庫相結合以便做出更準確的定性、定量分析。最終能夠自動化地給出Apk的動態(tài)運行時分析報告,指明此Apk是否具備惡意行為。
2 設計方案
總體上,Android惡意軟件行為分析系統(tǒng)包括Android虛擬運行環(huán)境、統(tǒng)計分析子系統(tǒng)、行為分析子系統(tǒng)以及知識庫等四個部分。系統(tǒng)的模塊之間關聯(lián)關系如圖1所示:
系統(tǒng)模塊中手動測試是指取證分析人員在安裝好Apk之后,手動啟動Apk并按照預先設計的運行腳本模擬用戶真實操作行為,觸發(fā)惡意Apk運行。
自動化測試是指依據(jù)預先寫好的自動化測試腳本(例如基于Android操作系統(tǒng)自帶的Monkey)調度惡意Apk運行。自動化測試腳本在編寫時候需要考慮到涉及Android操作系統(tǒng)Broadcast、跨進程通信等手工測試時難以覆蓋到的功能,以及需要大量重復運行并驗證取證分析思路的場景。
Android虛擬運行環(huán)境是本系統(tǒng)的核心功能模塊,主要提供了APK的仿真運行環(huán)境。Android虛擬運行環(huán)境基于AOSP進行了大量的改造,將重要的API接口均添加上了日志記錄功能。
日志統(tǒng)計:Android虛擬運行環(huán)境的所有運行日志輸出均通過統(tǒng)一的輸出接口輸出到統(tǒng)計分析模塊中。統(tǒng)計分析模塊采用時間線排序的方法,將各種類型的日志進行重排,并支持對任意時間段內(nèi)的日志進行查詢,支持按照日志類型進行數(shù)據(jù)查詢,支持基于關鍵詞的日志查詢。
行為分析:行為分析是Android惡意軟件行為分析系統(tǒng)的核心模塊。主要基于統(tǒng)計日志的輸出,采用序列匹配、關鍵API調度以及其他知識庫中記錄的敏感知識進行統(tǒng)計分析。行為分析依據(jù)頻率、特征等多種算法進行分析,并支持擴展。行為分析的輸出可以驅動自動化測試模塊進行分析結果驗證,并支持分析報告生成功能。
知識庫:知識庫記錄了大量的惡意行為識別方案。數(shù)據(jù)主要從調度序列、敏感API調用、特殊路徑數(shù)據(jù)讀寫、特殊數(shù)據(jù)內(nèi)容寫入讀取等幾個方面進行記載。便于行為分析模塊進行查詢匹配。
報告生成:行為分析模塊的分析結果傳輸?shù)綀蟾嫔赡K之后,由報告生成模塊生成html、doc等各種格式的報告。
2.1 Android虛擬運行環(huán)境架構
Android虛擬運行環(huán)境是系統(tǒng)中最重要的模塊。基于AOSP項目,在Android系統(tǒng)層、Linux內(nèi)核層的重要模塊均加上調用控制代碼??刂拼a主要提供日志記錄、堆棧信息以及調用結果控制。
Android虛擬運行環(huán)境架構如圖2所示:
應用層是Android操作系統(tǒng)支撐APK運行的層,在本系統(tǒng)的開發(fā)過程中并不需要進行改造。為了防止待分析的APK識別到時在特定的模擬環(huán)境中運行,需要保證這一層的接口與AOSP項目完全一致。
Android框架層是本系統(tǒng)最主要的修改層。APK在運行時,一部分代碼是通過Dalvik虛擬機運行,另外一部分則通過ART直接調用底層的so庫來執(zhí)行。但是,絕大部分的代碼均通過Dalvik虛擬機調度Android框架層的API進行。Android框架層主要修改的模塊涉及Apk安裝、授權管理、短信/電話類API、webview調用、系統(tǒng)服務注冊、Broadcast Receiver調用、Content Provider調用、intent調用、文件讀寫以及涉及sqlite讀寫的API等核心系統(tǒng)功能。此外,還針對http請求的創(chuàng)建等API增加了監(jiān)控日志[2-3]。
Linux內(nèi)核層是Android操作系統(tǒng)的最底層,由于這一層是系統(tǒng)的最底層,大量的系統(tǒng)調度最終都會匯聚到這里。因此本層主要關注的數(shù)據(jù)包括進程通信類API、網(wǎng)絡系統(tǒng)類API、文件系統(tǒng)類API以及權限管理類API。
對AOSP項目源代碼的改造過程中,需要對修改過的接口API增加日志記錄功能。日志記錄功能記錄了API調用時候的關鍵信息,主要包括“調度時間”、“調用堆棧”、“調用參數(shù)”以及“調用結果”等數(shù)據(jù)。并且,基于APK實際分析的需求,可以通過外部配置代碼對API的調用返回結果進行控制。
接口API的調用記錄日志按照json格式進行記錄保存,并實時寫入到虛擬運行環(huán)境的特定文件中,例如 /var/analysis/log.dat。
2.2 行為分析子系統(tǒng)
行為分析子系統(tǒng)是本系統(tǒng)的另外一個核心功能模塊,主要提供了自動化的日志數(shù)據(jù)分析功能。數(shù)據(jù)分析的方法主要有如下幾種形式:
1)基于敏感API調用的識別分析:例如識別到未提供Root權限的情況下,App通過ART方式獲取到了Root權限并調用了需要Root權限才能夠調用的API。
2)基于敏感路徑下文件讀寫的識別分析:例如識別到App嘗試對/system或者/data/data目錄下其他app的數(shù)據(jù)進行讀寫。
3)基于特定關鍵詞的數(shù)據(jù)匹配分析:例如識別到調用參數(shù)中包含預先內(nèi)置的關鍵詞,如“驗證碼”、“銀行”等。在短信劫持類App的分析中,基于關鍵詞識別將十分有效。
4)基于特定網(wǎng)絡通信地址的識別分析:依據(jù)日志分析App與外部某些ip地址或者特定端口進行了數(shù)據(jù)通信,如果ip地址和端口是知識庫中記錄的敏感地址,則可以十分準確的識別[4]。
5)基于API調度序列的識別分析:對API的調度序列進行識別,可以發(fā)現(xiàn)App運行的潛在規(guī)律。例如每10分鐘會讀取一次短信的收件箱。
6)基于頻率的API調用識別分析
通過對日志數(shù)據(jù)的統(tǒng)計分析,可以對APK的運行做出較為準確的判斷和分析。對于難以通過逆向等方式進行APK惡意行為分析的場景下,將會發(fā)揮較大的作用。
3 結束語
本文提出了一種基于運行時日志統(tǒng)計分析的方式對惡意APK進行行為特征分析的思路,并提出基于AOSP項目進行惡意行為分析系統(tǒng)的改造及建設方案設計。本文所提出的系統(tǒng)能夠對難以通過逆向方式進行分析的APK發(fā)揮較大的作用,并且能夠極大地縮短分析惡意APK所需的時間,提升取證分析效率。
參考文獻:
[1] 童振飛. Android惡意軟件靜態(tài)檢測方案的研究[D]. 南京: 南京郵電大學, 2012.
[2] 趙洋, 胡龍, 熊虎, 等. 基于沙盒的Android惡意軟件動態(tài)分析方案[J]. 信息網(wǎng)絡安全, 2014(12): 21-26.
[3] 陳丹偉, 唐平, 周書桃. 基于沙盒技術的惡意程序檢測模型[J].計算機科學, 2012, 39(B06): 12-14.
[4] 王偉, 彭勤科. 主機日志分析及其在入侵檢測中的應用[J]. 計算機工程與應用, 2002, 38(13): 35-37