拥有300万安装量的应用是如何恶意推广刷榜的?

编程知识 更新时间:2023-05-02 04:16:34

https://mp.weixin.qq/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%2BPUnYAKluvKlMoWgFeJ98fET9NHJ4aEWibLcCNXMupsXriAiLoMHsKhy6Z2cZ

 

延伸阅读:工具类app成恶意广告推广重灾区

 

移动互联网的快速发展,造就了手机病毒、恶意程度的泛滥。据腾讯移动安全实验室日前发布的报告显示,常用App、手机游戏成为恶意推广类病毒的重要渠道。在病毒流窜方式越发趋于多元化的背后,显现出来的是一条巨大的黑色利益链。

 

常用App、手游成重灾区

 

目前,手机必备工具App和手机游戏成为恶意推广类病毒的重要渠道。近日,基于腾讯手机管家服务的腾讯移动安全实验室发布报告显示,7月共截获病毒包94029个,其中,Android系统就占到90989个。

 

在今年7月截获的感染用户TOP10的恶意推广类病毒中,排名前十大病毒感染用户总数达135.79万,排名第一的恶意推广类病毒为a.expense.newginger,感染用户达到47.6万,是2013年7月感染手机用户最多的手机病毒。

 

该病毒的特征是运行后下载恶意代码,同时获取用户的手机设备信息。手电筒、打火机3D、会说话的汤姆猫等知名软件纷纷被其二次打包篡改,给众多知名游戏软件造成品牌伤害,同时给用户造成严重资费消耗和隐私泄露的双重危害。

 

此外,另一个较为明显的病毒a.expensetous(手电推鬼)则感染了手电筒这款系统必备应用,该病毒本质上是一款恶意广告插件,安装后会匿名推送广告,诱导用户点击下载软件包,与此同时,恶意下载的行为用户无法及时中止,耗费用户流量,并造成严重的资费损失。

 

除了常用App,手机游戏也是恶意推广类病毒打包篡改的重灾区。Android平台出现的a.expense.mixcode(恶推毒手)病毒是典型的新型恶意推广类病毒,热门游戏“地铁跑酷”不幸被该病毒二次打包篡改。除“地铁跑酷”之外,包括黄金矿工、超级玛丽旗舰版、3D坦克英雄等178款热门游戏和软件被感染,给6.7万用户造成影响。

 

安卓系统严重告急

 

除了恶意推广类病毒横行外,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包的应用分析。

一、主包分析:

该病毒捆绑了多个子包,以下是各个模块关系图:

 

图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        即是“刷榜僵尸”病毒;

二、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.1、Linux kernel3.2.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

三、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/egirault/googleplay-api/issues/30):

 

图10

 

 

 

“刷榜僵尸”病毒的GooglePlayRequester工具类模拟了以上过程,实现google play商店应用下载。

 

四、子包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/v2.1/2000,参数设备aid、imsi、gaid、mac(wifi),request和response数据全部AES加密。服务端会根据上传的设备信息返回次设备对应的url地址,随后设备会使用该地址下载服务端推广的应用。            下图访问url_1(http://dispatch.smartchoiceads/v2.1/2000)返回加密的数据,经AES解密提取data值获取当前设备的对应访问的服务器地址url_2。        

 

 

图14

 

 

 

解密后的数据为:{“upstream”:”http:\/\/sdk.smartchoiceads”},这样获取了下一跳板的地址。 访问跳板地址,下载、加载和运行最新版子包。 访问服务器配置的url_2,服务器同样返回AES加密数据,解密后的数据如下:

 

{“solib_name”:”libDaemonProcess.so”,”download_url”:”http:\/\/u.smartchoiceads\/sdk\/HostDex_20160623163035.jar”,”classname”:“com.hostinjectiondex.external.ExternalInterfaces”,”filename”:            “dexhostinjection.jar”,”start_method”:“startExternalBody”,”solib_url”:”http:\/\/u.smartchoiceads\/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

 

五、“下载者”分析

 

子包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/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/SDKManager/cpa/downloadlink.php?country=cn&packageName=com.android.ucgmap,C&C控制端返回推送的应用信息,包括packgae(应用包名)、url(应用下载链接)、size(应用大小),返回数据转交给消息handler处理,进行应用下载安装。

 

 

图21

 

 

 

再配合之前注册的时钟广播ApsAdReceiver,完美完成推广应用启动。

 

 

图22

 

六、 病毒sha1:

     01b3e575791642278b7decf70f5783ecd638564d

      5900fabbe36e71933b3c739ec62ba89ac15f5453

      7ebdd80761813da708bad3325b098dac9fa6e4f5

      ea781498268ced8dbb892d02aeaad23f4b87a510

      44e81be6f7242be77582671d6a11de7e33d19aca

      34b7b38ce1ccdd899ae14b15dd83241584cee32b

      74a55e9ea67d5baf90c1ad231e02f6183195e564

      4e5af777fe28f450a670e789b23fb3669dc6e6b6

      d59f97297de38db7f85349c9486413e914ff35b5

      b219db613284a3dd0e87edea67da744be59e7732

      9b9109ecfa38d9664084a513392ffc3f41349f02

      2b1da376212e63cb25a19900642c4bbca6e49c01

      18d9546193a354aec0c76d141dd66fbf99181bad

      63c20ee3c1e1b39921d2b3d86aade39de738ea9b

      5d2a08d7c1f665ea3affa7f9607601ffae387e8b

      70105591ea9f2b42534062278f31dbf9788575b3

      34b7b38ce1ccdd899ae14b15dd83241584cee32b

      78e9c7e0510b0c28abf28dd46910ab14c56ab4df

      88745ecb3114fc0539ca05db388e1c77d3e76109

      885fe0dca39d0fe281aad78cbce2fb73f27f3aea

      50bdc0195ed3c6f9909e62d4926f26d312cc39fa

 

七、总结

 

该病毒应用通过版本更新,进行恶意版本下发,在完成“刷榜僵尸”和“下载者”病毒后又利用版本更新替换成线上安全版本,如此在各大应用市场上期存活。阿里移动安全建议,用户下载此类App请认准大厂商品牌应用;谨慎点击软件内的推送广告;来源不明的应用不要随意点击;请定期使用阿里钱盾等手机安全软件查杀病毒。

转载于:https://wwwblogs/qdfu/p/5689875.html

更多推荐

拥有300万安装量的应用是如何恶意推广刷榜的?

本文发布于:2023-04-25 19:48:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/4b649e88dc001d347b7c30140566ed92.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:恶意

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 103695文章数
  • 26188阅读数
  • 0评论数