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

一.App劫持病毒介紹

App劫持是指執行流程被重定向,又可分爲Activity劫持、安裝劫持、流量劫持、函數執行劫持等。本文將對近期利用Acticity劫持和安裝劫持的病毒進行分析。html

二.Activity劫持病毒分析

2.1 Activity劫持病毒介紹

Activity劫持是指當啓動某個窗口組件時,被惡意應用探知,若該窗口界面是惡意程序預設的攻擊對象,惡意應用將啓動本身仿冒的界面覆蓋原界面,用戶在毫無察覺的狀況下輸入登陸信息,惡意程序在把獲取的數據返回給服務端。
圖片描述前端

以MazarBOT間諜木馬爲例,該類木馬有一下幾個特色:android

假裝成系統短信應用,啓動後請求激活設備管理權限,隨後隱藏圖標;
利用Tor與C&C控制中心進行匿名通訊,抵禦流量分析;
C&C控制中心下發指令進行手機控制、update html、以及信息收集;
經過服務器動態獲取htmlData,而後實施界面劫持,獲取用戶帳號信息;web

如下是C&C控制中心指令列表:
圖片描述安全

咱們發現該木馬能接受並處理一套完整的C&C控制指令,而且使用Tor進行匿名網絡通訊,使得流量數據的來源和目的地不是一條路徑直接相連,增長對攻擊者身份反溯的難度。結下來咱們將詳細分析該木馬界面劫持過程。服務器

2.2 界面劫持過程分析:

入口梳理首先看到axml文件。WorkerService服務處理C&C控制中心下發的」update html」指令,同時後臺監控頂層運行的Activity,如果待劫持的應用將會啓動InjDialog Acticity進行頁面劫持。
圖片描述
圖axml信息網絡

下圖是後臺服務對頂層Acticity監控過程,如果待劫持應用則啓動InjDialog進行劫持。getTop函數作了代碼兼容性處理,5.0以上的設備木馬也能夠獲取頂層Acticity的包名。
圖片描述
圖後臺監控函數

InjDialog Activity經過webView加載僞造的html應用界面,調用webView.setWebChromeClient(new HookChromeClient())設置html頁面與Java交互,在僞造的Html頁面裏調用prompt把JS中的用戶輸入信息傳遞到Java,HookChromeClient類重寫onJsPrompt方法,處理用戶輸入信息,最後將劫持的用戶信息經過Tor匿名上傳到指定域名。
圖片描述
圖劫持用戶信息加密

圖上傳劫持信息spa

三.應用安裝劫持病毒分析

3.1安裝劫持病毒介紹

安裝劫持病毒經過監聽android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent實施攻擊,包括兩種手段,一種是卸載刪除掉真正安裝的apk,替換爲攻擊者僞造的應用;另一種是借用用戶正在安裝的這個消息,悄悄的安裝本身推廣的其餘應用。這個過程就像你平時喝的「六個核桃」,某天你竟然喝到「七個核桃」。

3.2應用相關信息

該應用是一款名爲」FlashLight」的應用,程序包名:com.gouq.light,應用圖標以下:
圖片描述

3.3主要組件分析

.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進行安裝劫持。

下圖安裝劫持過程,經過監聽應用的安裝和更新,實施關聯的其餘應用的靜默安裝。
圖片描述
圖安裝劫持

上圖能夠知道此惡意應用借用安裝或更新intent,安裝預設的關聯應用,這樣在安裝完畢後用戶並不清楚哪一個是剛真正安裝的應用,這樣增長了推廣應用點擊運行的概率。

四.怎麼有效防治App劫持或安全防禦建議

針對企業用戶:

做爲一名移動應用開發者,要防護APP被界面劫持,最簡單的方法是在登陸窗口等關鍵Activity的onPause方法中檢測最前端Activity應用是否是自身或者是系統應用。
固然,術業有專攻,專業的事情交給專業的人來作。阿里聚安全旗下產品安全組件SDK具備安全簽名、安全加密、安全存儲、模擬器檢測、反調試、反注入、反Activity劫持等功能。 開發者只須要簡單集成安全組件SDK就能夠有效解決上述登陸窗口被木馬病毒劫持的問題,從而幫助用戶和企業減小損失。

針對我的用戶:

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

做者:逆巴@阿里移動安全,更多技術文章,請點擊阿里聚安全博客

相關文章
相關標籤/搜索