邁克菲詳解Android.FakeInstaller惡意偽裝程序
Android.FakeInstaller 是一個(gè)廣泛傳播的移動(dòng)惡意軟件系列。它曾假冒奧運(yùn)會(huì)賽事成績(jī)應(yīng)用程序、Skype、Flash Player、Opera 和許多其他流行應(yīng)用程序。事實(shí)上,在移動(dòng)惡意軟件界,F(xiàn)akeInstaller 系列是我們所分析過(guò)的最猖獗的惡意軟件之一。邁克菲所處理過(guò)的針對(duì) Android 系統(tǒng)的惡意軟件樣本中,超過(guò) 60%是來(lái)自 FakeInstaller系列。隨著其增加了服務(wù)器端多態(tài)、混淆、反逆向以及頻繁重編譯等伎倆用來(lái)逃避檢測(cè),這一威脅已逐漸加大。
Android.FakeInstaller 會(huì)向收費(fèi)服務(wù)的電話號(hào)碼發(fā)送消息,無(wú)需用戶同意,便可將自身偽裝成合法的安裝程序。這一惡意軟件有大量變體,通過(guò)數(shù)以百計(jì)的網(wǎng)站和假冒市場(chǎng)進(jìn)行傳播,且覆蓋面逐日擴(kuò)大。
Android.FakeInstaller 圖標(biāo)
在用戶搜索流行應(yīng)用程序時(shí),如果通過(guò)搜索引擎或社交網(wǎng)絡(luò)不慎訪問(wèn)了一個(gè)假冒的官方站點(diǎn)或假冒市場(chǎng),就會(huì)遇到貌似合法的應(yīng)用程序,包含截屏、用戶評(píng)價(jià)、說(shuō)明、視頻等,以引誘受害者下載惡意軟件。當(dāng)用戶在執(zhí)行 Android.FakeInstaller 時(shí),首先會(huì)顯示一個(gè)服務(wù)協(xié)議,告訴用戶將會(huì)發(fā)送一條或多條短信,這一界面足以迷惑很多人,當(dāng)用戶開(kāi)始點(diǎn)擊"同意"或"下一步"按鈕,系統(tǒng)便開(kāi)始強(qiáng)制性的給用戶發(fā)送收費(fèi)短信。我們還發(fā)現(xiàn)一些版本在受害者點(diǎn)擊按鈕之前,便已經(jīng)發(fā)送了短信。
Android.FakeInstaller 有不同的版本,它會(huì)模擬合法應(yīng)用程序的安裝或下載界面
在用戶點(diǎn)擊按鈕后,F(xiàn)akeInstaller 有時(shí)會(huì)顯示一個(gè)虛假的下載進(jìn)度條。最后,對(duì)話框關(guān)閉,受害者被重定向到另一個(gè)假冒市場(chǎng)。用戶也不可能得到想要的應(yīng)用程序。#p#
多態(tài)服務(wù)器
與此同時(shí),我們還發(fā)現(xiàn)了FakeInstaller 的若干變體,它們的相同點(diǎn)都集中在有效載荷方面,主要區(qū)別在于代碼實(shí)現(xiàn)。其中一些還帶有額外有效荷載。一般情況下,每個(gè)系列都與一組服務(wù)器、域名和假冒應(yīng)用程序市場(chǎng)相關(guān)聯(lián)。
而由于多數(shù)FakeInstallers 是服務(wù)器端多態(tài)的,因此這種關(guān)系非常強(qiáng)大,這意味著服務(wù)器(根據(jù)其配置)可能會(huì)針對(duì)同一 URL 請(qǐng)求提供不同的 APK 文件。
如果受害者要從假冒市場(chǎng)下載應(yīng)用程序,服務(wù)器會(huì)將瀏覽器(browser)重定向到另一個(gè)處理該請(qǐng)求的服務(wù)器,并發(fā)送定制好的 APK,該 APK 包含一個(gè)在生成的 URL 中關(guān)聯(lián)的 ID。APK 文件與受害者的 IP 地址相關(guān)聯(lián)。
例如:假冒的"Opera Mini 6.5" APK 文件會(huì)從一個(gè) URL (http://[censored]loads.ru/tds?r=3967) 下載,而從兩個(gè) IP 地址(A 和 B)訪問(wèn)。因此,受害者被重定向到不同的 URL 并下載非常相似的 APK 文件,這些文件會(huì)在 file res/raw/config.txt 中包含一些差別之處,它們與重定向的 URL 相關(guān)。
下圖顯示了 file res/raw/config.txt 內(nèi)部的差別,它們存在于下載自 IP地址 A 和 B 的.樣本中。
因此,這一改動(dòng)會(huì)導(dǎo)致數(shù)字簽名(MANIFEST、MYKEY2.SF 和 MYKEY2.RSA)的變化。這一惡意軟件的其他變體包含一個(gè)圖片(或一個(gè)俄文笑話)以增加或改變 APK 文件的大小。
向收費(fèi)號(hào)碼發(fā)送消息
以前的 FakeInstaller版本都是針對(duì)西歐用戶創(chuàng)建,如今,惡意軟件開(kāi)發(fā)者已經(jīng)將其欺詐的觸角延伸到了其他國(guó)家與地區(qū)--通過(guò)添加指令來(lái)獲得設(shè)備的移動(dòng)國(guó)家碼和移動(dòng)網(wǎng)絡(luò)碼。根據(jù)這類信息, Android/FakeInstaller 會(huì)選擇收費(fèi)號(hào)碼并向其發(fā)生短信。最初版本的短信都包含在 DEX 文件中,而最新版本的短信則包含在 APK 中的加密 XML 文件里。迄今為止,我們已經(jīng)發(fā)現(xiàn)最多發(fā)送達(dá)7條收費(fèi)短信的 FakeInstaller 樣本。#p#
逃避分析:Java 混淆和重編譯
通常,在一個(gè)假冒市場(chǎng),所有應(yīng)用程序都包含相同的 DEX 文件。經(jīng)過(guò)一段時(shí)間,會(huì)為所有應(yīng)用程序變更 DEX 文件。惡意軟件編寫者會(huì)使用同一代碼新的重編譯版本來(lái)更改其 DEX 文件,或者實(shí)施新的功能并包含一些外觀變化,假冒安裝進(jìn)度條動(dòng)畫、圖標(biāo)和文本等。
最新版本的 FakeInstaller 包含同一代碼的不同重編譯混淆版本,更改源文件名、行號(hào)、字段名、方法名、參數(shù)名和變量名等。
在下圖中,我們可以看到同一變體的兩個(gè)混淆版本,它們?cè)趦商鞎r(shí)間里出現(xiàn)在同一假冒市場(chǎng):
諸如 ProGuard 或 DexGuard 之類的混淆會(huì)刪除調(diào)試信息并將所有名稱替換為無(wú)意義的字符序列,這樣就更難以對(duì)代碼進(jìn)行逆向工程。有些版本(如 Android.FakeInstaller.S)還包含反逆向伎倆,能夠有效規(guī)避動(dòng)態(tài)分析,防止惡意軟件在模擬器中運(yùn)行。#p#
僵尸網(wǎng)絡(luò)伎倆
有一些版本的 Android.FakeInstaller 不僅僅向收費(fèi)號(hào)碼發(fā)送短信,還包含后門程序以便從遠(yuǎn)程服務(wù)器接收命令。FakeInstaller.S 使用"Android Cloud to Device Messaging" 來(lái)將受感染的設(shè)備注冊(cè)到一個(gè)數(shù)據(jù)庫(kù),并從惡意軟件編寫者的Google 帳戶向它們發(fā)送消息 (URL)。
傳播伎倆
由于服務(wù)器端的多態(tài)性,我們還不得不考慮的一個(gè)問(wèn)題是新的假冒網(wǎng)站和假冒市場(chǎng)每天都會(huì)涌現(xiàn)。這些站點(diǎn)將受害者的下載重定向到一組 IP 地址和域,如下圖所示:
一些此類站點(diǎn)看上去相當(dāng)具有迷惑性,并且能輕易地讓受害者中招,原因在于它們被索引在諸如 Yandex 之類的搜索引擎中,在搜索結(jié)果排名中有著不錯(cuò)的位置。為了逃避檢測(cè),一些假冒站點(diǎn)會(huì)將來(lái)自惡意來(lái)源的應(yīng)用程序下載鏈接重定向到無(wú)害的 APK 文件,然后再恢復(fù)鏈接。
我們還曾發(fā)現(xiàn)有的站點(diǎn)將 URL 通過(guò) Twitter 由僵尸帳戶和假冒 Facebook 配置文件進(jìn)行共享。
結(jié)論
惡意軟件編寫者通過(guò)這類欺詐攫取了大量不義之財(cái),因此,他們一定還會(huì)不斷完善基礎(chǔ)設(shè)施、代碼和伎倆來(lái)試圖規(guī)避防病毒軟件。在邁克菲看來(lái),這將是一場(chǎng)無(wú)休止的對(duì)抗,而我們能做的就是完善自身,不斷提高本身的安全系數(shù),來(lái)規(guī)避這些惡意軟件。