本文介紹基于Android的手機(jī)惡意軟件,是一個(gè)基礎(chǔ)性的介紹,給新入門的人提供一個(gè)分析和工具指引。要分析的木馬是一個(gè)2013年的syssecApp.apk,這個(gè)木馬的分析能對(duì)Android惡意軟件有個(gè)大概了解。
基礎(chǔ):
1 –Android應(yīng)用基礎(chǔ)
Android是google開發(fā)基于Linux內(nèi)核的開源的手機(jī)操作系統(tǒng),應(yīng)用程序使用JAVA語言編寫并轉(zhuǎn)換成了Dalvik虛擬機(jī),而虛擬機(jī)則提供了一個(gè)抽象的真實(shí)硬件,只要和操作系統(tǒng)的API符合程序都可以在其上運(yùn)行。應(yīng)用則需要Linux的用戶和組來執(zhí)行,所以目前所有的惡意軟件都需要獲得權(quán)限。
Android應(yīng)用的格式是APK,是一種包含AndroidManifest.xml的 ZIP文件,媒體類文件實(shí)際代碼是classes.dex和一些其他的可選文件。XML提供Android系統(tǒng)的重要信息,比如用啟動(dòng)應(yīng)用程序時(shí)需要什么權(quán)限,只有這個(gè)文件中列出的權(quán)限才提供給該應(yīng)用,否則返回失敗或空結(jié)果。classes.dex是Android應(yīng)用程序?qū)崿F(xiàn)的邏輯部分,是一個(gè)編譯代碼可由Dalvik虛擬機(jī)執(zhí)行,打包成jar,從而節(jié)約移動(dòng)設(shè)備上的一些空間。
2 –分析工具
2.1Dexter
Dexter可以將Android應(yīng)用上傳做分析,提供了包和應(yīng)用元數(shù)據(jù)的介紹。包的依賴關(guān)系圖顯示了所有包的關(guān)系,可以快速打開列表顯示所有的class和功能。
2.2Anubis
Anubis也是一個(gè)WEB服務(wù),應(yīng)用在沙箱里運(yùn)行,每個(gè)樣品相互獨(dú)立,來分析文件和網(wǎng)絡(luò)的活動(dòng)。同時(shí)也提供一些靜態(tài)分析,包括權(quán)限XML在調(diào)用過程中的變化。
2.3 APKInspector
Apkinspector提供了很多工具,APK加載后可以選擇標(biāo)簽來執(zhí)行其中的功能,帶有一個(gè)Java反編譯器JAD,能夠反編譯大多數(shù)類,但經(jīng)常報(bào)錯(cuò)。
2.4 Dex2Jar
可將dex 文件轉(zhuǎn)成 Java 類文件的工具,即使你是經(jīng)驗(yàn)豐富的逆向工程師,也可以考慮使用。
3 – 實(shí)例分析
3.1 Anubis
Anubis的顯著特點(diǎn)是,給出了應(yīng)用所需權(quán)限的大名單:
截圖上包括了應(yīng)用的部分權(quán)限。INTERNET權(quán)限是常見的游戲所需,用來在線統(tǒng)計(jì)跟蹤,開啟共享功能或者廣告。還有一些WAKE_LOCK、READ_PHONE_STATE用來讀取手機(jī)狀態(tài),防止在游戲中鎖屏。但READ_CONTACTS、 READ_HISTORY_BOOKMARKS則看起來就很奇怪,不像是一個(gè)游戲該干的事情。對(duì)127.0.0.1:53471的連接看起來也很奇怪。分析鏈接:http://anubis.iseclab.org/?action=result&task_id=1a6d8d21d7b0c1a04edb2c7c3422be72f&format=html
3.2 Dexter
包的依賴關(guān)系圖顯示共有四個(gè)。可以忽視de.rub.syssec,它只包含空類的默認(rèn)構(gòu)造函數(shù)。
de.rub.syssec包括了一個(gè)叫做Amazed的游戲,比較特別的是amazedactiviy的onCreate方法,設(shè)置為每隔15秒重復(fù)鬧鐘。
第3個(gè)class包含的事件比較多。onBoot在啟動(dòng)的時(shí)候就會(huì)進(jìn)行鬧鈴,SmsReceiver和alarmReceiver則是真正的木馬,在任何一個(gè)短信到達(dá)的時(shí)候SmsReceiver會(huì)檢查里面是否包含有”bank”,如果是則使用abortBroadcast丟棄短信。
這意味著短信在手機(jī)上是看不到的。de.rub.syssec.neu有6個(gè)CLASS,最重要的一條是“Runner”,是實(shí)際的惡意代碼。“work”調(diào)用alarmReceiver來檢查設(shè)備是否連接互聯(lián)網(wǎng)。
如果在線,則調(diào)用“steal()”收集信息,添加到XML幫助的一個(gè)偽變量里。
根據(jù)API的調(diào)用列表,會(huì)收集信息:IMSI、SIM卡序列號(hào)、姓名、設(shè)備ID、用戶字典(自動(dòng)補(bǔ)全)、聯(lián)系人、通話記錄、日歷、瀏覽器搜索記錄、瀏覽器收藏夾、發(fā)送和接收的短信、位置信息。
3.3 Emulator
Emulator證實(shí)這個(gè)APK確實(shí)有一個(gè)關(guān)于迷宮的游戲。但在輸出的日志里可以發(fā)現(xiàn)它其實(shí)做了很多事情,并試圖發(fā)送這些內(nèi)容:
還有一些額外的信息包括安卓版本、IMEI、本地時(shí)間、steal()運(yùn)行總量
3.3 分析用到的網(wǎng)站
http://anubis.iseclab.org/
http://dexter.dexlabs.org/
https://www.virustotal.com/
http://www.apk-analyzer.net/
http://www.visualthreat.com/
http://androidsandbox.net/reports.html
https://hackapp.com/
游戲不僅僅是個(gè)游戲,檢查你的游戲。