天天看點

你的應用是如何被替換的,App劫持病毒剖析

app劫持是指執行流程被重定向,又可分為activity劫持、安裝劫持、流量劫持、函數執行劫持等。本文将對近期利用acticity劫持和安裝劫持的病毒進行分析。

activity劫持是指當啟動某個視窗元件時,被惡意應用探知,若該視窗界面是惡意程式預設的攻擊對象,惡意應用将啟動自己仿冒的界面覆寫原界面,使用者在毫無察覺的情況下輸入登入資訊,惡意程式在把擷取的資料傳回給服務端。

你的應用是如何被替換的,App劫持病毒剖析

以mazarbot間諜木馬為例,該類木馬有一下幾個特點:

僞裝成系統短信應用,啟動後請求激活裝置管理權限,随後隐藏圖示;

利用tor與c&c控制中心進行匿名通信,抵禦流量分析;

c&c控制中心下發指令進行手機控制、update html、以及資訊收集;

通過伺服器動态擷取htmldata,然後實施界面劫持,擷取使用者賬号資訊;

以下是c&c控制中心指令清單:

你的應用是如何被替換的,App劫持病毒剖析

我們發現該木馬能接受并處理一套完整的c&c控制指令,并且使用tor進行匿名網絡通信,使得流量資料的來源和目的地不是一條路徑直接相連,增加對攻擊者身份反溯的難度。結下來我們将詳細分析該木馬界面劫持過程。

入口梳理首先看到axml檔案。workerservice服務處理c&c控制中心下發的”update html”指令,同時背景監控頂層運作的activity,若是待劫持的應用将會啟動injdialog acticity進行頁面劫持。

你的應用是如何被替換的,App劫持病毒剖析

圖axml資訊

下圖是背景服務對頂層acticity監控過程,若是待劫持應用則啟動injdialog進行劫持。gettop函數做了代碼相容性處理,5.0以上的裝置木馬也可以擷取頂層acticity的包名。

你的應用是如何被替換的,App劫持病毒剖析

圖背景監控

injdialog activity通過webview加載僞造的html應用界面,調用webview.setwebchromeclient(new hookchromeclient())設定html頁面與java互動,在僞造的html頁面裡調用prompt把js中的使用者輸入資訊傳遞到java,hookchromeclient類重寫onjsprompt方法,處理使用者輸入資訊,最後将劫持的使用者資訊通過tor匿名上傳到指定域名。

你的應用是如何被替換的,App劫持病毒剖析

圖劫持使用者資訊

你的應用是如何被替換的,App劫持病毒剖析

圖上傳劫持資訊

安裝劫持病毒通過監聽android.intent.action.package_added和android.intent.action.package_replaced intent實施攻擊,包括兩種手段,一種是解除安裝删除掉真正安裝的apk,替換為攻擊者僞造的應用;另外一種是借用使用者正在安裝的這個消息,悄悄的安裝自己推廣的其他應用。這個過程就像你平時喝的“六個核桃”,某天你居然喝到“七個核桃”。

該應用是一款名為”flashlight”的應用,程式包名:com.gouq.light,應用圖示如下:

你的應用是如何被替換的,App劫持病毒剖析

.app 應用application類,加載assest目錄下加密jar包,擷取接口exchangeimpl對象,在jar裡實作接口函數onapplicationcreate、triggerreceiver、triggertimerservice;啟動核心服務lightservice;

.lightservice 應用核心服務,可外部調用啟動lighttiservice,達到替換程序名,以及am啟動服務以自身保活;

.lighttiservice 由lightservice啟動,該服務會調用動态加載包裡的triggertimerservice接口方法,完成對以安裝應用的删除、目前裝置資訊上傳、從伺服器下載下傳待安裝應用;

.appreceiver 廣播接收器,通過加載的jar包裡triggerreceiver接口方法實作,處理android.intent.action.package_added和android.intent.action.package_replaced intent檢視安裝跟新應用是否是劫持應用,若是通過execcmd進行安裝劫持。

下圖安裝劫持過程,通過監聽應用的安裝和更新,實施關聯的其他應用的靜默安裝。

你的應用是如何被替換的,App劫持病毒剖析

圖安裝劫持

上圖可以知道此惡意應用借用安裝或更新intent,安裝預設的關聯應用,這樣在安裝完畢後使用者并不清楚哪個是剛真正安裝的應用,這樣增加了推廣應用點選運作的幾率。

針對企業使用者:

作為一名移動應用開發者,要防禦app被界面劫持,最簡單的方法是在登入視窗等關鍵activity的onpause方法中檢測最前端activity應用是不是自身或者是系統應用。

當然,術業有專攻,專業的事情交給專業的人來做。阿裡聚安全旗下産品安全元件sdk具有安全簽名、安全加密、安全存儲、模拟器檢測、反調試、反注入、反activity劫持等功能。 開發者隻需要簡單內建安全元件sdk就可以有效解決上述登入視窗被木馬病毒劫持的問題,進而幫助使用者和企業減少損失。

針對個人使用者:

安裝阿裡錢盾保護應用免受app劫持木馬威脅。

阿裡聚安全由阿裡巴巴移動安全部出品,面向企業和開發者提供企業安全解決方案,全面覆寫移動安全、資料風控、内容安全、實人認證等次元,并在業界率先提出“以業務為中心的安全”,賦能生态,與行業共享阿裡巴巴集團多年沉澱的專業安全能力。