熊雄
摘要:隨著Android操作系統(tǒng)的不斷進(jìn)化發(fā)展,Android智能終端已經(jīng)成為新型智能終端最為重要的操作系統(tǒng)之一。2016年第三季度,國(guó)內(nèi)新型智能終端市場(chǎng)搭載Android操作系統(tǒng)的設(shè)備出貨量占比已經(jīng)達(dá)到88%。但是伴隨著Android智能終端市場(chǎng)占有率的提高,Android智能終端受到惡意軟件攻擊、被“種植”木馬的情況也越來越嚴(yán)重。該文提出一種以Android開源項(xiàng)目AOSP為基礎(chǔ),通過改造Android系統(tǒng)源代碼構(gòu)造基于行為特征的惡意軟件識(shí)別分析系統(tǒng)。
關(guān)鍵詞:AOSP;Android惡意軟件;行為特征識(shí)別;行為特征庫(kù);Android虛擬機(jī)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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)的不斷進(jìn)化發(fā)展,Android智能終端已經(jīng)成為新型智能終端最為重要的操作系統(tǒng)之一。2016年第三季度,國(guó)內(nèi)新型智能終端市場(chǎng)搭載Android操作系統(tǒng)的設(shè)備出貨量占比已經(jīng)達(dá)到88%。但是伴隨著Android智能終端市場(chǎng)占有率的提高,Android智能終端受到惡意軟件攻擊、被“種植”木馬的情況也越來越嚴(yán)重。
在涉及Android惡意軟件取證分析的案件中,主要采取的技術(shù)手段是通過逆向等技術(shù)對(duì)涉案APK進(jìn)行反編譯,對(duì)反編譯的java或者smali代碼進(jìn)行分析,從代碼中找到惡意軟件攔截短信、發(fā)送數(shù)據(jù)等行為的源代碼證據(jù)。但是隨著APK的源代碼混淆技術(shù)、加密技術(shù)的增強(qiáng),對(duì)惡意軟件的反匯編將會(huì)越來越困難[1]。
AOSP是Android 開放源代碼項(xiàng)目"Android Open-Source Project"的縮寫,Android是一個(gè)開源的,用于移動(dòng)設(shè)備的系統(tǒng)。 Android開放源代碼項(xiàng)目(AOSP),由谷歌發(fā)起,致力于Android的維護(hù)和更進(jìn)一步的發(fā)展。
本文提出一種新的Android惡意軟件識(shí)別分析方案,本方案基于Android開源項(xiàng)目AOSP,通過對(duì)AOSP的源代碼進(jìn)行改造,在項(xiàng)目中新增日志層。之后基于改造的AOSP源代碼生成鏡像,構(gòu)造Android虛擬運(yùn)行環(huán)境。將涉案APK安裝到虛擬運(yùn)行環(huán)境進(jìn)行執(zhí)行。最終對(duì)執(zhí)行過程中產(chǎn)生的日志數(shù)據(jù)進(jìn)行分析,即可從中找到APK惡意行為的證據(jù)信息。
1 系統(tǒng)設(shè)計(jì)目的
本系統(tǒng)的設(shè)計(jì)目的是基于AOSP項(xiàng)目,定制化開發(fā)一套Android虛擬運(yùn)行環(huán)境。在此運(yùn)行環(huán)境中,可以安裝Apk程序,并且能夠?qū)Π惭b在此環(huán)境中的Apk動(dòng)態(tài)運(yùn)行時(shí)的所作所為做出詳細(xì)記錄并執(zhí)行自動(dòng)化分析。分析時(shí)可以與外部的知識(shí)庫(kù)相結(jié)合以便做出更準(zhǔn)確的定性、定量分析。最終能夠自動(dòng)化地給出Apk的動(dòng)態(tài)運(yùn)行時(shí)分析報(bào)告,指明此Apk是否具備惡意行為。
2 設(shè)計(jì)方案
總體上,Android惡意軟件行為分析系統(tǒng)包括Android虛擬運(yùn)行環(huán)境、統(tǒng)計(jì)分析子系統(tǒng)、行為分析子系統(tǒng)以及知識(shí)庫(kù)等四個(gè)部分。系統(tǒng)的模塊之間關(guān)聯(lián)關(guān)系如圖1所示:
系統(tǒng)模塊中手動(dòng)測(cè)試是指取證分析人員在安裝好Apk之后,手動(dòng)啟動(dòng)Apk并按照預(yù)先設(shè)計(jì)的運(yùn)行腳本模擬用戶真實(shí)操作行為,觸發(fā)惡意Apk運(yùn)行。
自動(dòng)化測(cè)試是指依據(jù)預(yù)先寫好的自動(dòng)化測(cè)試腳本(例如基于Android操作系統(tǒng)自帶的Monkey)調(diào)度惡意Apk運(yùn)行。自動(dòng)化測(cè)試腳本在編寫時(shí)候需要考慮到涉及Android操作系統(tǒng)Broadcast、跨進(jìn)程通信等手工測(cè)試時(shí)難以覆蓋到的功能,以及需要大量重復(fù)運(yùn)行并驗(yàn)證取證分析思路的場(chǎng)景。
Android虛擬運(yùn)行環(huán)境是本系統(tǒng)的核心功能模塊,主要提供了APK的仿真運(yùn)行環(huán)境。Android虛擬運(yùn)行環(huán)境基于AOSP進(jìn)行了大量的改造,將重要的API接口均添加上了日志記錄功能。
日志統(tǒng)計(jì):Android虛擬運(yùn)行環(huán)境的所有運(yùn)行日志輸出均通過統(tǒng)一的輸出接口輸出到統(tǒng)計(jì)分析模塊中。統(tǒng)計(jì)分析模塊采用時(shí)間線排序的方法,將各種類型的日志進(jìn)行重排,并支持對(duì)任意時(shí)間段內(nèi)的日志進(jìn)行查詢,支持按照日志類型進(jìn)行數(shù)據(jù)查詢,支持基于關(guān)鍵詞的日志查詢。
行為分析:行為分析是Android惡意軟件行為分析系統(tǒng)的核心模塊。主要基于統(tǒng)計(jì)日志的輸出,采用序列匹配、關(guān)鍵API調(diào)度以及其他知識(shí)庫(kù)中記錄的敏感知識(shí)進(jìn)行統(tǒng)計(jì)分析。行為分析依據(jù)頻率、特征等多種算法進(jìn)行分析,并支持?jǐn)U展。行為分析的輸出可以驅(qū)動(dòng)自動(dòng)化測(cè)試模塊進(jìn)行分析結(jié)果驗(yàn)證,并支持分析報(bào)告生成功能。
知識(shí)庫(kù):知識(shí)庫(kù)記錄了大量的惡意行為識(shí)別方案。數(shù)據(jù)主要從調(diào)度序列、敏感API調(diào)用、特殊路徑數(shù)據(jù)讀寫、特殊數(shù)據(jù)內(nèi)容寫入讀取等幾個(gè)方面進(jìn)行記載。便于行為分析模塊進(jìn)行查詢匹配。
報(bào)告生成:行為分析模塊的分析結(jié)果傳輸?shù)綀?bào)告生成模塊之后,由報(bào)告生成模塊生成html、doc等各種格式的報(bào)告。
2.1 Android虛擬運(yùn)行環(huán)境架構(gòu)
Android虛擬運(yùn)行環(huán)境是系統(tǒng)中最重要的模塊?;贏OSP項(xiàng)目,在Android系統(tǒng)層、Linux內(nèi)核層的重要模塊均加上調(diào)用控制代碼??刂拼a主要提供日志記錄、堆棧信息以及調(diào)用結(jié)果控制。
Android虛擬運(yùn)行環(huán)境架構(gòu)如圖2所示:
應(yīng)用層是Android操作系統(tǒng)支撐APK運(yùn)行的層,在本系統(tǒng)的開發(fā)過程中并不需要進(jìn)行改造。為了防止待分析的APK識(shí)別到時(shí)在特定的模擬環(huán)境中運(yùn)行,需要保證這一層的接口與AOSP項(xiàng)目完全一致。
Android框架層是本系統(tǒng)最主要的修改層。APK在運(yùn)行時(shí),一部分代碼是通過Dalvik虛擬機(jī)運(yùn)行,另外一部分則通過ART直接調(diào)用底層的so庫(kù)來執(zhí)行。但是,絕大部分的代碼均通過Dalvik虛擬機(jī)調(diào)度Android框架層的API進(jìn)行。Android框架層主要修改的模塊涉及Apk安裝、授權(quán)管理、短信/電話類API、webview調(diào)用、系統(tǒng)服務(wù)注冊(cè)、Broadcast Receiver調(diào)用、Content Provider調(diào)用、intent調(diào)用、文件讀寫以及涉及sqlite讀寫的API等核心系統(tǒng)功能。此外,還針對(duì)http請(qǐng)求的創(chuàng)建等API增加了監(jiān)控日志[2-3]。
Linux內(nèi)核層是Android操作系統(tǒng)的最底層,由于這一層是系統(tǒng)的最底層,大量的系統(tǒng)調(diào)度最終都會(huì)匯聚到這里。因此本層主要關(guān)注的數(shù)據(jù)包括進(jìn)程通信類API、網(wǎng)絡(luò)系統(tǒng)類API、文件系統(tǒng)類API以及權(quán)限管理類API。
對(duì)AOSP項(xiàng)目源代碼的改造過程中,需要對(duì)修改過的接口API增加日志記錄功能。日志記錄功能記錄了API調(diào)用時(shí)候的關(guān)鍵信息,主要包括“調(diào)度時(shí)間”、“調(diào)用堆?!?、“調(diào)用參數(shù)”以及“調(diào)用結(jié)果”等數(shù)據(jù)。并且,基于APK實(shí)際分析的需求,可以通過外部配置代碼對(duì)API的調(diào)用返回結(jié)果進(jìn)行控制。
接口API的調(diào)用記錄日志按照json格式進(jìn)行記錄保存,并實(shí)時(shí)寫入到虛擬運(yùn)行環(huán)境的特定文件中,例如 /var/analysis/log.dat。
2.2 行為分析子系統(tǒng)
行為分析子系統(tǒng)是本系統(tǒng)的另外一個(gè)核心功能模塊,主要提供了自動(dòng)化的日志數(shù)據(jù)分析功能。數(shù)據(jù)分析的方法主要有如下幾種形式:
1)基于敏感API調(diào)用的識(shí)別分析:例如識(shí)別到未提供Root權(quán)限的情況下,App通過ART方式獲取到了Root權(quán)限并調(diào)用了需要Root權(quán)限才能夠調(diào)用的API。
2)基于敏感路徑下文件讀寫的識(shí)別分析:例如識(shí)別到App嘗試對(duì)/system或者/data/data目錄下其他app的數(shù)據(jù)進(jìn)行讀寫。
3)基于特定關(guān)鍵詞的數(shù)據(jù)匹配分析:例如識(shí)別到調(diào)用參數(shù)中包含預(yù)先內(nèi)置的關(guān)鍵詞,如“驗(yàn)證碼”、“銀行”等。在短信劫持類App的分析中,基于關(guān)鍵詞識(shí)別將十分有效。
4)基于特定網(wǎng)絡(luò)通信地址的識(shí)別分析:依據(jù)日志分析App與外部某些ip地址或者特定端口進(jìn)行了數(shù)據(jù)通信,如果ip地址和端口是知識(shí)庫(kù)中記錄的敏感地址,則可以十分準(zhǔn)確的識(shí)別[4]。
5)基于API調(diào)度序列的識(shí)別分析:對(duì)API的調(diào)度序列進(jìn)行識(shí)別,可以發(fā)現(xiàn)App運(yùn)行的潛在規(guī)律。例如每10分鐘會(huì)讀取一次短信的收件箱。
6)基于頻率的API調(diào)用識(shí)別分析
通過對(duì)日志數(shù)據(jù)的統(tǒng)計(jì)分析,可以對(duì)APK的運(yùn)行做出較為準(zhǔn)確的判斷和分析。對(duì)于難以通過逆向等方式進(jìn)行APK惡意行為分析的場(chǎng)景下,將會(huì)發(fā)揮較大的作用。
3 結(jié)束語
本文提出了一種基于運(yùn)行時(shí)日志統(tǒng)計(jì)分析的方式對(duì)惡意APK進(jìn)行行為特征分析的思路,并提出基于AOSP項(xiàng)目進(jìn)行惡意行為分析系統(tǒng)的改造及建設(shè)方案設(shè)計(jì)。本文所提出的系統(tǒng)能夠?qū)﹄y以通過逆向方式進(jìn)行分析的APK發(fā)揮較大的作用,并且能夠極大地縮短分析惡意APK所需的時(shí)間,提升取證分析效率。
參考文獻(xiàn):
[1] 童振飛. Android惡意軟件靜態(tài)檢測(cè)方案的研究[D]. 南京: 南京郵電大學(xué), 2012.
[2] 趙洋, 胡龍, 熊虎, 等. 基于沙盒的Android惡意軟件動(dòng)態(tài)分析方案[J]. 信息網(wǎng)絡(luò)安全, 2014(12): 21-26.
[3] 陳丹偉, 唐平, 周書桃. 基于沙盒技術(shù)的惡意程序檢測(cè)模型[J].計(jì)算機(jī)科學(xué), 2012, 39(B06): 12-14.
[4] 王偉, 彭勤科. 主機(jī)日志分析及其在入侵檢測(cè)中的應(yīng)用[J]. 計(jì)算機(jī)工程與應(yīng)用, 2002, 38(13): 35-37