作者:邁克菲移動惡意軟件研究員Fernando Ruiz

Android.FakeInstaller 是一個廣泛傳播的移動惡意軟件系列。它曾假冒奧運會賽事成績應(yīng)用程序、Skype、Flash Player、Opera 和許多其他流行應(yīng)用程序。事實上,在移動惡意軟件界,F(xiàn)akeInstaller 系列是我們所分析過的最猖獗的惡意軟件之一。邁克菲所處理過的針對 Android 系統(tǒng)的惡意軟件樣本中,超過 60%是來自 FakeInstaller系列。隨著其增加了服務(wù)器端多態(tài)、混淆、反逆向以及頻繁重編譯等伎倆用來逃避檢測,這一威脅已逐漸加大。

Android.FakeInstaller 會向收費服務(wù)的電話號碼發(fā)送消息,無需用戶同意,便可將自身偽裝成合法的安裝程序。這一惡意軟件有大量變體,通過數(shù)以百計的網(wǎng)站和假冒市場進(jìn)行傳播,且覆蓋面逐日擴大。

Android.FakeInstaller 圖標(biāo)

在用戶搜索流行應(yīng)用程序時,如果通過搜索引擎或社交網(wǎng)絡(luò)不慎訪問了一個假冒的官方站點或假冒市場,就會遇到貌似合法的應(yīng)用程序,包含截屏、用戶評價、說明、視頻等,以引誘受害者下載惡意軟件。當(dāng)用戶在執(zhí)行 Android.FakeInstaller 時,首先會顯示一個服務(wù)協(xié)議,告訴用戶將會發(fā)送一條或多條短信,這一界面足以迷惑很多人,當(dāng)用戶開始點擊“同意”或“下一步”按鈕,系統(tǒng)便開始強制性的給用戶發(fā)送收費短信。我們還發(fā)現(xiàn)一些版本在受害者點擊按鈕之前,便已經(jīng)發(fā)送了短信。

Android.FakeInstaller 有不同的版本,它會模擬合法應(yīng)用程序的安裝或下載界面

在用戶點擊按鈕后,F(xiàn)akeInstaller 有時會顯示一個虛假的下載進(jìn)度條。最后,對話框關(guān)閉,受害者被重定向到另一個假冒市場。用戶也不可能得到想要的應(yīng)用程序。

多態(tài)服務(wù)器

與此同時,我們還發(fā)現(xiàn)了FakeInstaller 的若干變體,它們的相同點都集中在有效載荷方面,主要區(qū)別在于代碼實現(xiàn)。其中一些還帶有額外有效荷載。一般情況下,每個系列都與一組服務(wù)器、域名和假冒應(yīng)用程序市場相關(guān)聯(lián)。

而由于多數(shù) FakeInstallers 是服務(wù)器端多態(tài)的,因此這種關(guān)系非常強大,這意味著服務(wù)器(根據(jù)其配置)可能會針對同一 URL 請求提供不同的 APK 文件。

如果受害者要從假冒市場下載應(yīng)用程序,服務(wù)器會將瀏覽器(browser)重定向到另一個處理該請求的服務(wù)器,并發(fā)送定制好的 APK,該 APK 包含一個在生成的 URL 中關(guān)聯(lián)的 ID。APK 文件與受害者的 IP 地址相關(guān)聯(lián)。

例如:假冒的“Opera Mini 6.5” APK 文件會從一個 URL(http://[censored]loads.ru/tds?r=3967) 下載,而從兩個 IP 地址(A 和 B)訪問。因此,受害者被重定向到不同的 URL 并下載非常相似的 APK 文件,這些文件會在 file res/raw/config.txt 中包含一些差別之處,它們與重定向的 URL 相關(guān)。

下圖顯示了 file res/raw/config.txt 內(nèi)部的差別,它們存在于下載自 IP地址 A 和 B 的.樣本中。

因此,這一改動會導(dǎo)致數(shù)字簽名(MANIFEST、MYKEY2.SF 和 MYKEY2.RSA)的變化。這一惡意軟件的其他變體包含一個圖片(或一個俄文笑話)以增加或改變 APK 文件的大小。

向收費號碼發(fā)送消息

以前的 FakeInstaller版本都是針對西歐用戶創(chuàng)建,如今,惡意軟件開發(fā)者已經(jīng)將其欺詐的觸角延伸到了其他國家與地區(qū)——通過添加指令來獲得設(shè)備的移動國家碼和移動網(wǎng)絡(luò)碼。根據(jù)這類信息,Android/FakeInstaller 會選擇收費號碼并向其發(fā)生短信。最初版本的短信都包含在 DEX 文件中,而最新版本的短信則包含在 APK 中的加密 XML 文件里。迄今為止,我們已經(jīng)發(fā)現(xiàn)最多發(fā)送達(dá)7條收費短信的 FakeInstaller 樣本。

逃避分析:Java 混淆和重編譯

通常,在一個假冒市場,所有應(yīng)用程序都包含相同的 DEX 文件。經(jīng)過一段時間,會為所有應(yīng)用程序變更 DEX 文件。惡意軟件編寫者會使用同一代碼新的重編譯版本來更改其 DEX 文件,或者實施新的功能并包含一些外觀變化,假冒安裝進(jìn)度條動畫、圖標(biāo)和文本等。

最新版本的 FakeInstaller 包含同一代碼的不同重編譯混淆版本,更改源文件名、行號、字段名、方法名、參數(shù)名和變量名等。

在下圖中,我們可以看到同一變體的兩個混淆版本,它們在兩天時間里出現(xiàn)在同一假冒市場:

諸如 ProGuard 或 DexGuard 之類的混淆會刪除調(diào)試信息并將所有名稱替換為無意義的字符序列,這樣就更難以對代碼進(jìn)行逆向工程。有些版本(如 Android.FakeInstaller.S)還包含反逆向伎倆,能夠有效規(guī)避動態(tài)分析,防止惡意軟件在模擬器中運行。

僵尸網(wǎng)絡(luò)伎倆

有一些版本的 Android.FakeInstaller 不僅僅向收費號碼發(fā)送短信,還包含后門程序以便從遠(yuǎn)程服務(wù)器接收命令。FakeInstaller.S 使用“Android Cloud to Device Messaging”來將受感染的設(shè)備注冊到一個數(shù)據(jù)庫,并從惡意軟件編寫者的Google 帳戶向它們發(fā)送消息 (URL)。

傳播伎倆

由于服務(wù)器端的多態(tài)性,我們還不得不考慮的一個問題是新的假冒網(wǎng)站和假冒市場每天都會涌現(xiàn)。這些站點將受害者的下載重定向到一組 IP 地址和域,如下圖所示:

一些此類站點看上去相當(dāng)具有迷惑性,并且能輕易地讓受害者中招,原因在于它們被索引在諸如 Yandex 之類的搜索引擎中,在搜索結(jié)果排名中有著不錯的位置。為了逃避檢測,一些假冒站點會將來自惡意來源的應(yīng)用程序下載鏈接重定向到無害的 APK 文件,然后再恢復(fù)鏈接。

我們還曾發(fā)現(xiàn)有的站點將 URL 通過 Twitter 由僵尸帳戶和假冒 Facebook 配置文件進(jìn)行共享。

結(jié)論

惡意軟件編寫者通過這類欺詐攫取了大量不義之財,因此,他們一定還會不斷完善基礎(chǔ)設(shè)施、代碼和伎倆來試圖規(guī)避防病毒軟件。在邁克菲看來,這將是一場無休止的對抗,而我們能做的就是完善自身,不斷提高本身的安全系數(shù),來規(guī)避這些惡意軟件。

分享到

hanrui

相關(guān)推薦