趨勢科技發現一個 Trojan Android 廣告木馬程式 Xavier (趨勢科技偵測到為 ANDROIDOS_XAVIER.AXM),會偷偷竊取或洩漏使用者的資訊,只要下載並開啟中毒的APP極有可能在不自知的情況下,個資全被傳送出去。依據趨勢科技行動裝置應用程式信譽評等偵測顯示,共有 800 多種內嵌廣告木馬程式 SDK 的應用程式,在 Google Play 已被下載數百萬次。這些應用程式涵蓋工具應用程式,例如照片編輯應用程式、桌布與鈴聲變更程式。Xavier 有一套自我保護機制,試圖保護自己免受偵測,此外也會下載和執行其他惡意程式碼。
駭客利用Xavier蒐集被感染裝置的SIM卡資訊、手機型號、語言、已安裝的應用程式、Android ID、電子郵件地址….等資訊,然後將資訊加密並傳送到遠端伺服器。大多數下載遭Xavier感染 App的用戶,來自東南亞,例如越南、菲律賓和印尼,台灣下載量為 5.36%。
如何防範 Xavier?
- 避免下載與安裝來源不明的應用程式,即使這些應用程式是來自 Google Play 等合法應用程式市集
- 閱讀已下載該應用程式之其他使用者的評論。
- 更新或修補行動裝置,有助於阻擋鎖定漏洞的惡意程式。
- 一般用戶可以安裝趨勢科技行動安全防護,即刻免費體驗
- 企業也可以採取趨勢科技 Android 版行動安全防護
雖然趨勢科技之前已發現過惡意廣告木馬程式 MDash SDK,但這款木馬程式的部分特性與之前的廣告木馬程式有所不同。首先,這款木馬程式內嵌惡意行為,會下載遠端伺服器的程式碼,然後載入並執行。接著,它會透過字串加密、網際網路資料加密以及模擬器偵測等方法,試圖保護自己免受偵測。
由於 Xavier 具有這類自我保護機制,可以規避靜態與動態的分析,因此很難偵測出它的竊取和洩漏能力。此外,Xavier 也會下載和執行其他惡意程式碼,並可能造成比惡意程式更危險的後果。Xavier 的行為取決於由遠端伺服器設定的下載程式碼和程式碼 URL 而定。
開始探討 Xavier 的實際分析之前,讓我們先來瞭解廣告木馬程式隨著時間的演變情況。
Xavier 的變革
Xavier 是 AdDown 系列的一員,從兩年前就已經開始發展。第一個版本是 2015 年上半年出現的 joymobile。這種變種病毒已能夠執行遠端程式碼。
此廣告木馬程式除了會收集並洩漏使用者資訊,也會安裝其他 APK,並在裝置遭 Root 破解時無訊息自動完成此作業。
它會使用命令與控制 (C&C) 伺服器來執行不加密的通訊。不過,所有常數字串都會在程式碼中受到加密。
第二種由 AdDown 系列發展而來的變異病毒是 nativemob。當我們比較 nativemob 和 joymobile 時,可以發現前者的程式碼結構已重新排序。它也加入了一些新的特性,主要是廣告行為和工具項目。雖然它不會無訊息自動安裝應用程式,但還是會進行需使用者確認的應用程式安裝。
它也會比 joymobile 收集更多的使用者資訊,並將其編碼為 base64 格式,然後將資訊傳送給 C&C 伺服器。
下一種變種病毒則約在 2016 年 1 月左右出現。這款變種病毒精簡了其中的字串加密演算法,並會加密從遠端伺服器下載的程式碼,然後新增反射呼叫。
隔月,此病毒就因故更新了廣告模組設定,並移除資料加密:
後續幾個月,它也有持續更新。不過,這些實作的更新並沒有大幅變更此廣告木馬程式。
Xavier 的技術分析
Xavier 是在 2016 年 9 月左右發展出來的變異病毒,其程式碼更加簡潔。第一版的 Xavier 移除了 APK 安裝和 Root 檢查,但新增了使用 TEA 演算法的資料加密特性。
很快地,它又新增了上述提到的動態偵測規避機制。
Xavier 具有如下結構:
一旦載入 Xavier,它就會從 C&C 伺服器 hxxps://api-restlet[.]com/services/v5/ 取得初始設定,並在 Xavier 中進行加密。
該伺服器也會加密回應資料:
解密之後,我們發現它實際上是 Json 檔:
- V 表示 SDK 版本;
- L 表示 SDK URL;
- G 表示 SDK Sid;
- S 表示 SDK 設定;
- Au 表示廣告設定。
Xavier 接著會從 hxxp://cloud[.]api-restlet[.]com/modules/lib[.]zip 下載所謂的 SDK,並透過設定來讀取。不過,lib.zip 並不是完整的 zip 檔。
Xavier 會在取得 lib.zip 之後,加入 0x50 0x4B ahead lib.zip 並將其命名為 xavier.zip。這就是有效的 zip 檔案。
之前:
之後:
Xavier.zip 含有 classes.dex 檔案,其會由 Xavier 載入並叫用。
這個 dex 檔案會從使用者裝置收集下列資訊,然後將資訊加密並傳送到遠端伺服器:hxxps://api-restlet[.]com/services/v5/rD。
- 製造商
- 來源
- SIM 卡國家/地區
- 產品
- 發行者 ID
- SIM 卡電信業者
- 服務 ID
- 語言
- 解析度
- 型號
- 作業系統版本
- 裝置名稱
- 裝置 ID
- 已安裝的應用程式
- Android ID
- 電子郵件地址
Xavier 還會偵測系統是否在模擬器中執行,以規避動態偵測,藉此隱藏侵略性的廣告行為。它也會檢查裝置的產品名稱、製造商、裝置品牌、裝置名稱、裝置模組、硬體名稱或指紋是否包含下列字串:
- vbox86p
- Genymotion
- generic/google_sdk/generic
- generic_x86/sdk_x86/generic_x86
- google.market
- Droid4X
- generic_x86
- ttVM_Hdragon
- generic/sdk/generic
- google_sdk
- generic
- vbox86
- ttVM_x86
- MIT
- Andy
- window
- unknown
- goldfish
- sdk_x86
- generic_x86_64
- phone
- TTVM
- sdk_google
- Android SDK built for x86
- sdk
- Android SDK built for x86_64
- direct
- XavierMobile
- TiantianVM
- android_id
- generic/vbox86p/vbox86p
- google.vending
- nox
Xavier 也會掃描使用者的電子郵件地址,檢查其中是否包含下列字串,藉此隱藏其行為:
- pltest
- @facebook.com
- tester
- @google.com
- review
- playlead
- agotschin
- gptest
- rxwave 15
- rxplay
- admob
- gplay
- adsense
- gtwave
- rxtest
- review
- qaplay
- test
- rxtester
- playtestwave
Xavier 會採取下列行為,以免受到偵測:
- 加密所有常數字串,讓靜態偵測與手動分析更加困難。
2) 透過 HTTPS 執行網路傳輸,以防止其流量被發現。Xavier 也會加密資料:
3) 它會使用反射叫用方法的寬陣列,搭配要加密的類別名稱和方法名稱。
4) 它會依據執行環境來隱藏其行為。
下列應用程式為 Google Play 中含有內嵌 Xavier 廣告木馬程式的範例:
建議與最佳實務
若要防範 Xavier 這樣難纏的惡意程式,最簡單的方法就是避免下載與安裝來源不明的應用程式,即使這些應用程式是來自 Google Play 等合法應用程式市集亦同。此外,您也可以閱讀已下載該應用程式之其他使用者的評論。有時候其他使用者能指出特定應用程式是否有可疑的行為,因此是絕佳的洞察資訊來源。更新或修補行動裝置,也有助於阻擋鎖定漏洞的惡意程式。
此外,使用者和企業也可以採取 Trend Micro™ Android 版行動安全防護 這類分層的行動安全解決方案,其可於 Google Play 取得。Trend Micro™ 企業版行動安全防護可讓您管理裝置、合規性和應用程式,亦提供資料防護、設定佈建等功能,並可保護裝置免受鎖定漏洞的攻擊、防範未經授權存取應用程式,以及偵測與封鎖惡意程式和詐欺網站。
由於發佈日期的原因,Google 已移除雜湊與應用程式的完整清單,但您可在附錄中檢視這份清單。
⊙原文來源:Analyzing Xavier: An Information-Stealing Ad Library on Android
《 想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁 或下面的按鈕按讚 》
《提醒》將滑鼠游標移動到粉絲頁右上方的「已說讚」欄位,勾選「搶先看」選項,最新貼文就會優先顯示在動態消息頂端,讓你不會錯過任何更新。
*手機版直接前往專頁首頁,下拉追蹤中,就能將粉絲專頁設定搶先看。