Author:[email protected]
近年許多的android市場實現免root安裝應用,也就是下載完成立即自動安裝,而黑產界也同樣利用該技術在進行惡意推廣,靜默安裝。最近攔截到大量惡意應用利用系統AccessibilityService靜默安裝應用。一旦惡意的Accessibility服務被激活,惡意應用將彈出廣告,即使用戶關閉彈出的廣告該應用程序也會在后臺下載,隨后自動安裝推廣的惡意應用。
AccessibilityService作用:
Android Accessibility用于那些由于視力、聽力或其它身體原因導致不能方便使用Android智能手機的用戶,Android提供了Accessibility功能和服務幫助這些用戶更加簡單地操作設備。開發者可以搭建自己的Accessibility服務,這可以加強應用的可用性。開啟AccessibilityService后應用通過它能實時地獲取當前操作應用的窗口元素信息,并能夠雙向交互,既能獲取用戶的輸入,也能對窗口元素進行操作,比如點擊按鈕。
AccessibilityService的使用場景:
Android應用市場使用android Accessibility來免root安裝應用;近來火熱的搶紅包應用也用使用AccessibilityService自動搶紅包。
我們監測到一款名為“WiFi密碼查看器(增強版)”的應用濫用AccessibilityService。應用啟動后誘導用戶開啟“WIFI信號增強服”,其實就是開啟惡意應用自身的AccessibilityService;以查看WIFI密碼讓惡意應用獲得root權限,而這一切都是為該惡意自動安裝做鋪墊。下圖是該應用運行圖
圖應用啟動與引導開啟wifi信號增強界面
應用啟動后會引導用戶開啟WIFI信號增強服務。應用跳轉到ACCESSIBILITY_SETTINGS界面,提示用戶若要增強Wifi信號強度,請開啟WIFI信號增強服務。用戶啟用惡意應用的該服務之后,手機將瘋狂下載該應用云端準備的應用包,并且在手機上自動安裝運行。
圖啟動Accessibilty Service界面
以下是惡意代碼運行流程
圖惡意代碼云信流程
流程圖解析
Accessiblity Service
;查看Wifi密碼誘導用戶給該應用賦予Root權限。PushCoreService
和ChapingCoreService
服務組成,它們利用后臺服務上傳設備信息,獲取待Push的應用包,下載應用包。DialogPushActivity
的廣告框,非Root利用 AccessilbityService
安裝,root利用 pm install
完成靜默安裝PushCoreService
和ChapingCoreService
一直在后臺運行。以下對核心服務PushCoreService
跟蹤分析
首先向目標服務器Post設備的imei,wifimac,SerialNumber信息,服務器返回uuid,并記錄在DefaultSharedPreference
文件的”uuid”字段
圖請求服務器獲取uuid
上圖最后調用this.m_context.handler.sendEmptyMessage(1)
,啟動線程GetPushThread線程。該線程向http://api.findzhibo.com/ad/open?appCode=1&appVersion=appVerion
請求獲取當前應用的“open_status”字段。只有“open_status”字段為True時,云端服務器才會繼續運行,否則表示當前應用版本對應的云端關閉。開啟狀態向http://api.findzhibo.com/index.php/ad/push
,發送post請求,服務器返回待push的應用,寫入“cc_push_sp.xml”的push_json字段
圖云端惡意推廣app的push_json
圖云端請求獲取惡意推廣應用
上圖最后調用this.m_context.handler.sendEmptyMessage(2)
,解析push_json字段填充intent,啟動PushDownloadService
進行應用下載和惡意廣告頁面彈出。PushDownloadService
解析appJson,獲取下載信息,隨后通過handler消息對應用下載安裝。
圖解析appJson,進行下載安裝
Handler存在4個msg.what值,‘3’處理下載失敗;‘4’下載成功;‘5’彈出DialogPushActivity廣告框若開啟Accessiblity Service,啟動WifiZengQiangService; ‘6’彈出DialogPushActivity廣告框,啟動惡意推廣的應用。 首先發送“4“表示開始后臺下載,隨后啟動下載安裝的線程。該線程檢查本次推送的應用是否已經被下載到指定目錄,sdcard/.wifi_ckq保存下載的應用包以及廣告圖片,appName經過md5加密。
圖sdcard目錄存放下載的推廣應用包
圖下載惡意推廣應用
下載完成后發送對應用靜默安裝,設備非root發送‘5’,root使用 pm install安裝應用隨后發送‘6’啟動應用。
圖發送handler安裝應用
handler ‘5’,’6’都會啟動DialogPushActivity,
圖啟動DialogPushActivity
DialogPushActivity其實就是一個ImageView,用戶在觸摸該界面后推送的應用將被自動安裝
圖DialogPushActivity界面
啟動WifiZengQiongService自動安裝服務。之前的Ghosh Push,Kemoge等病毒家族,都是先對設備root然后植入推廣應用。而該惡意應用的AccessibilityService一旦被啟動,隨后應用彈出惡意廣告界面,即使受害者關閉彈出的廣告,該應用程序也會被自動下載,隨后成功安裝。這個過程是調用系統的packageinstaller,獲取安裝界面的按鈕位置,Accessibility提供的模擬用戶點擊功能,代替用戶自動點擊下一步,直到安裝結束。下圖是彈出的廣告圖,觸碰后即可開始下載安裝推廣的應用。下圖AccessibilityService里喚起安裝界面
圖調用系統packageInstaller
AccessibilityService的onAccessibilityEvent方法不僅處理’com.android.packageinstaller’ 的event,還處理一些安全軟件,這樣該惡意應用將會完全控制安全軟件行為,也就意味著該應用可以自動安裝,啟動任意app,卸載任意應用,而且利用AccessibilityService控制安全軟件進行免殺。
圖AccessibilityService控制指定應用包
在推廣的應用成功安裝過后,系統將會發出“android.intent.action.PACKAGE_ADDED”
廣播消息,AppListenerReceiver類接受該廣播并啟動應用。
到此濫用AccessibilityService
過程分析完畢。該應用已增強WIFI信號誘惑用戶啟用Accessibility
,以及查看WIFI密碼是應用獲取root權限。在此提醒用戶謹慎給不受信應用開啟AccessibilityService
,以免被惡意應用控制;最近火熱的搶紅包應用也會利用AccessibilityService
,實現自動搶功能,我們已發現黑客利用‘自動搶紅包’誘導用戶開啟AccessibilityService
控制手機,建議用戶在安全渠道下載搶紅包軟件,以免不必要的損失。