恶意SDK无感刷百度广告 数千款APP植入影响千万用户

一、概要

2018年4月,腾讯安全曝光了“寄生推”,揭开了流量黑产的面纱,让大众了解到黑产正逐步隐藏到幕后,通过伪装正规SDK的方式,借助大众开发者触达用户,然后动态下发指令,通过恶意广告和应用推广,赚取广告推广费用,实现灰色牟利。

无独有偶,近日,依托腾讯安全大数据,腾讯安全反诈骗实验室追踪到暴风影音、天天看、塔读文学等众多应用中集成的某SDK存在下载恶意子包,通过webview配合js脚本在用户无感知的情况下刷百度广告的恶意操作。

该恶意SDK通过众多应用开发者所开发的正规应用,途经各中应用分发渠道触达千万级用户;其背后的黑产则通过恶意SDK留下的后门控制千万用户,动态下发刷量代码,大量刷广告曝光量和点击量,赚取大量广告费用,给广告主造成了巨额广告费损失。

根据安全人员详细分析,此恶意SDK主要存在以下特点:

1、该SDK被1000+千应用开发者使用,通过应用开发者的分发渠道抵达用户。主要涉及的应用包括掌通家园、暴风影音、天天看、塔读文学等,潜在可能影响上千万用户;

2、刷量子包通过多次下载并加载,并从服务器获取刷量任务,使用webview加载js脚本实现在用户无感知的情况下自动化的进行刷量任务。

此类流量黑产给传统的广告反作弊带来了极大挑战,传统通过IP、曝光频率、点击率等表象数据形成的反作弊策略难以识别这种控制大量真实设备做’肉鸡’的刷量作弊,使得大量广告费用流入黑产手中,却无法给广告主带来应有的广告效果。

二、SDK作恶流程和影响范围

此恶意SDK集成在应用中的那部分代码没有提供实际功能,其在被调用后会定时上报设备相关信息,获取动态子包的下载链接,下载子包并加载调用。然后由子包执行相应的恶意行为。

恶意SDK作恶流程示意图:

受恶意SDK影响的主要应用列表:

软件名包名周用户量
掌通家园com.seebaby800万+
暴风影音com.storm.smart700万+
天天看com.tiantiankan.ttkvod150万+
免费小说阅读com.tadu.read130万+
塔读文学com.tadu.read130万+
欢乐斗地主2018paile.mengle.operator.huawei100万+
乡村小说com.tadu.xiangcunread100万+
贝瓦儿歌com.slanissue.apps.mobile.erge90万+
号码百事通com.besttone.hall90万+
漫画人com.ilike.cartoon80万+
爱玩4Gcn.egame.terminal.client4g70万+
蚂蚁头条com.ldzs.zhangxin60万+
掌通家园园丁com.yuanding.seebaby40万+
极速清理大师cn.rball.fastcleanmaster40万+
单机斗地主(开心版)com.og.danjiddz40万+
爱游戏com.egame40万+
淘小说com.martian.ttbook35万+
净网大师com.adoff25万+
火牛视频com.waqu.android.firebull20万+
扑飞动漫net.pufei.dongman20万+
可萌记账net.ffrj.pinkwallet18万+
红包头条com.martian.hbnews18万+
看荐影视com.kanjianv8.www15万+
蜜桃小说com.tadu.mitaoread15万+
保护气球com.tomato.joy.bhqq.nearme.gamecenter15万+
纽扣的游戏com.tomatojoy.nkdyx.nearme.gamecenter13万+
八分音符酱-游戏输出全靠吼com.pepper.bfyfj.nearme.gamecenter10万+
UU伴侣com.floworth.www9万+
百e看com.baiyikan.www8万+
VV视界cc.vshijie.www8万+
看视界com.worldsee.www7万+
小青果com.xiaoqingguo.www7万+
小小青果com.xiaoqingguo.www7万+
綦江在线com.appbyme.app709517万+
优视侠com.ykxia.www6万+
子牙钓鱼com.nbchat.zyfish5万+
全民跳一跳com.tomato.joy.qmtyt.nearme.gamecenter4万+
中羽在线com.badmintoncn.bbs4万+
疯狂篮球com.tomatojoy.fktl.nearme.gamecenter4万+
众鑫玩卡com.appbyme.app2391093万+

三、恶意SDK作恶行为详细分析

此恶意SDK被众多的中小应用开发者集成,我们以应用塔读文学为例,对其恶意行为进行详细分析。

软件名塔读文学
包名com.tadu.android
证书186d3e45fe28c138b7673434965e2e59
大小21055367


恶意SDK代码结构

此sdk代码较少,没有什么实际的功能。其在被加载调用后,会设置定时任务,每隔3600秒(1小时)启动GatherService,上报设备相关信息,获取动态子包__gather_impl.jar的下载链接

GatherService链接服务器,获取__gather_impl.jar的下载链接

请求链接http://gather.andr****.com:5080/gupdate/v1

请求数据:包括uid、应用包名、设备id、应用版本、手机厂商、型号、系统版本、imei、sdk版本等内容

返回内容:包括子包的版本、下载url、文件md5

动态加载下载的__gather_impl.jar

子包__gather_impl.jar代码结构,此子包的主要功能有:1、上传用户设备信息,2、下载并动态加载子包stat-impl.jar

1)、链接服务器,上传用户设备信息

服务器链接:http://userdata.andr****.com/userdata/userdata.php(此url在分析时已失效,无法链接)

上报内容:包括位置信息(经纬度),用户安装列表(软件名、包名),设备信息(厂商、型号、fingerprint,是否root),deviceid、手机号、运营商、imei、mac等。

2)、再次请求服务器,获取stat-impl.jar的下载链接

请求链接http://iupd.andr****.com:6880/wupdate/v1

请求数据:包括uid、imei、sdk版本、手机厂商、型号、系统版本、应用包名、设备id、设备指令集等内容

返回内容:包括子包的版本、下载url、文件md5

子包下载完成后,调用native方法动态加载此子包

stat-impl.jar的代码结构:

stat-impl.jar子包被加载后,线程com.drudge.rmt.g会被启动,其作用主要是用来联网获取刷量任务,并调度任务的执行。

主要的刷量任务包括:1、刷百度搜索的关键字,2、使用js脚本实现自动点击、滑动来刷百度广告和亿量广告的点击,3、使用webview刷网页访问。

1、刷百度关键字搜索

此任务会根据获取json字符串,进行相应的操作,包括设置BAIDUID、更新配置、添加任务、设置剪切板和使用关键字刷百度搜索

设置关键字,使用webview加载对应的url

捕获到的刷百度关键字的webview加载请求:

链接服务器http://tw.andr****.com:6080/wtask/v1获取相关任务,并将任务内容存入[package]/cache/volley目录下

2、使用js脚本刷百度广告

使用webview加载http://mobads.baidu.com/ads/index.htm,并在加载完成后执行js脚本实现自动滑动、点击、保存等操作来自动刷广告

相关的js脚本

1)、js函数定义滑动、点击、保存等操作

Java层解析并实现js层传递过来的操作命令

2)、js函数判断并获取页面元素

3)、js函数计算页面元素相对位置,并进行滑动、点击操作

捕获到的刷百度广告的webview加载请求:

3、使用webview刷网页访问

此任务向服务器请求需要访问的url链接,在获取到相应的网页url后,使用webview加载进行访问。

请求需要访问的url链接

请求链接

http://us.yiqimeng.men:8080/geturls?k=beike-xinshiye&c=5

返回内容

使用webview访问获取url

捕获到的刷求医不如健身网的webview加载请求:

四、相关URL整理

url备注
http://gather.andrcool.com:5080/gupdate/v1http://report.mogolia.com:5080/gupdate/v1请求子包__gather_impl.jar的下载地址
http://iupd.andrcool.com:6880/wupdate/v1http://wu.mogolia.com:6880/wupdate/v1请求子包__gather_impl.jar的下载地址
http://f642c630.oss-cn-hangzhou.aliyuncs.com/p/5a4353bbcf464d01ae9295586bd4c7a1子包stat-impl.jar下载地址
http://4f43dde0.oss-cn-hangzhou.aliyuncs.com/s/61101f3196dd4fffa00c15ba91b4547a子包stat-impl.jar的下载地址
https://m.baidu.com/s?word=%E6%B5%B7%E6%B7%98%E5%90%A7刷百度搜索关键字
http://us.yiqimeng.men:8080/geturls?k=beike-xinshiye&c=5http://m.uczzd.cn/webview/newslist请求网页刷量任务
http://m.xinshiye.cc被刷的网页:求医不如健身网
http://mobads.baidu.com/ads/index.htmhttp://qbid.yiliang.cn刷百度广告和亿量广告

五、安全建议和防范手段

从近期Android端恶意应用的作恶手法来看,恶意开发者更多地从直接开发App应用转向开发SDK,向Android应用供应链的上游转移。通过提供恶意的SDK给应用开发者,恶意开发者可以复用这些应用的分发渠道,十分有效的扩大影响用户的范围。而在恶意SDK的类别方面,黑产从业者主要把精力放在用户无感知的广告刷量和网站刷量等方向,通过使用代码分离和动态代码加载技术,可以完全从云端下发实际执行的代码,控制用户设备作为“肉鸡”进行广告、网站刷量等黑产行为,具有很强的隐蔽性。

这类流量型黑产逐渐增多,不仅对手机用户造成了危害,同时也给移动端广告反作弊带来了很大的挑战,传统基于IP、曝光频率、点击率等表象数据形成的反作弊策略难以识别这种控制大量真实设备做’肉鸡’的刷量作弊,难以保障应用开发者和广告主的正当权益。

5.1、终端用户的自身防护建议

而针对终端用户,我们也给出了以下安全建议:

1、尽可能使用正版和官方应用市场提供的APP应用;

2、移动设备即使进行安全更新;

3、安装腾讯手机管家等安全软件,实时进行防护

5.2、腾讯广告反作弊解决方案

在广告反作弊领域,腾讯安全长期同黑产进行对抗,积累了丰富的黑产对抗经验,建立了庞大的反欺诈知识库,包括群控标识库,欺诈用户标识库,恶意推广木马库,构建了恶意SDK与应用和用户的关联路径等;同时通过设备指纹的接入,可以采集更多更全面的信息,更好的识别模拟器,群控设备。通过多渠道交叉验证,发现异常数据,监控异常数据,能有效发现流量型黑产的动向,提升反欺诈能力,为客户提供有效的推广欺诈、业务欺诈、欺诈用户识别等安全服务。

注:详情可见腾讯广告反欺诈实验室官网 https://adaf.qq.com/

DO Global海外发行六款应用程序涉嫌滥用用户权限和广告欺诈被Google Play下架

4月17日,据美国BuzzFeed新闻报道,小熊博望(原百度国际) DO Global在海外市场发行的至少六款应用(Google Play下载量超过9000万次)存在隐瞒与开发商DO Global的关系、滥用用户权限和大量广告欺诈的行为。这六款应用包括Selfie Camera,Omni Cleaner,RAM Master,Smart Cooler,Total Cleaner和AIO Flashlight。在BuzzFeed新闻报道发布之后,谷歌从Google Play商店下架了这六款应用。

Google的Play商店是全球最大的应用商店,Google Play的开发者政策详尽的列举了开发者需要遵循的各类规则,其中明确要求Google Play开发者需要披露对用户数据的使用,并且只使用在应用程序中提供功能所需的权限,禁止广告欺诈和服务滥用。

我们对照Google Play的开发者政策规则来看看BuzzFeed报道的问题。

一、用户数据
Google Play应用商店条款
—–“您必须清楚说明您会如何处理用户数据(例如从用户那里获取的或针对用户本身的信息,包括设备信息)。也就是说,您应公开数据的收集、使用及分享方式,数据应仅用于公开说明的用途,且须获得用户的同意。”

Do Global做法
—–和一般开发者将隐私政策放在官方网站的做法不通, DO Global这六个应用的隐私政策托管在Tumblr博客上,如dreamilyswimmingwizard.tumblr.com,这些策略并未显示DU Global正在收集用户的数据,甚至如Selfie Camera的隐私政策声称它不收集个人数据,但实际Selfie Camera则从用户处收集设备ID。

二、虚报或隐瞒其所有权
Google Play应用商店条款
—–“我们不允许应用或开发者账号冒充任何个人或组织,或者虚报或隐瞒其所有权或主要目的,也不允许应用或开发者账号从事刻意误导用户的活动。这包括但不限于虚报或隐瞒其原国籍或者将内容定向到另一国家/地区的用户。”

Do Global做法
—–有问题的应用程序违反Play商店开发者政策,没有向用户透露与DO Global的任何关联关系。在谷歌的Play商店中,以上所有应用程序(AIO手电筒除外)都将其开发人员列为“Pic Tools Group(照片编辑器工具集团)。

三、滥用用户权限。
Google Play应用商店条款
—–“对用户的权限请求必须合情合理。您只能请求应用现有关键功能或服务所需的权限。不得为了未公开、未实施或不被允许的功能或用途而请求访问用户或设备数据。”

Do Global做法
—–DO Global的AIO手电筒获得了31个权限,其中7个属于危险组。另一款来自APUS的Emoji手电筒有超过500万次安装,获取了30个权限,其中7个属于危险组。这些权限的获取远远超过应用运行所需。Play商店中其他类似的手电筒应用实际上只获得了两个权限就可以实现手电筒功能。

四、广告欺诈。
Google Play应用商店条款
—–我们不允许任何应用试图欺骗用户或促成不诚实行为。应用必须提供准确的功能说明,并按用户合理预期的方式运行。应用不得试图模仿操作系统或其他应用的功能或警告。对设备设置的任何更改必须在用户知情并同意的情况下进行,而且必须提供简单的方式可让用户撤消更改。

Do Global做法
—–BuzzFeed去年11月曾报道过Cheetah Mobile和Kika Tech 存在归因欺诈的问题,而本次BuzzFeed报道的Do Global广告欺诈主要是点击欺诈,以DO Global的Selfie Camera为例, Check Point的研究人员发现该应用程序包含的代码会导致它在用户不知情的情况下以欺诈方式点击应用中的广告,包括对谷歌运营的AdMob和Twitter运营的MoPub提供的广告所生成的虚假点击,甚至当应用程序未打开时也会发生欺诈性点击,从而导致手机耗尽电量并消耗数据。其他Do global的5个应用程序也都发现了虚假广告点击。

除了上述虚假点击欺诈外,Method Media Intelligence的研发人员还在Selfie Camera中识别出可以启用应用归因广告欺诈的代码,通过虚假归因欺诈,Do global可以把用户自然安装的游戏或者由其他渠道方推广产生的用户安装,误导AppsFlyer、Kochava等归因监测平台,以把用户下载安装的功劳记录到Do Global身上,从而获得不当利益。这和2018年11月BuzzFeed News 之前报道Cheetah Mobile和Kika Tech归因欺诈的做法十分类似。