恶意SDK无感刷百度广告 数千款APP植入影响千万用户
一、概要
2018年4月,腾讯安全曝光了“寄生推”,揭开了流量黑产的面纱,让大众了解到黑产正逐步隐藏到幕后,通过伪装正规SDK的方式,借助大众开发者触达用户,然后动态下发指令,通过恶意广告和应用推广,赚取广告推广费用,实现灰色牟利。
无独有偶,近日,依托腾讯安全大数据,腾讯安全反诈骗实验室追踪到暴风影音、天天看、塔读文学等众多应用中集成的某SDK存在下载恶意子包,通过webview配合js脚本在用户无感知的情况下刷百度广告的恶意操作。
该恶意SDK通过众多应用开发者所开发的正规应用,途经各中应用分发渠道触达千万级用户;其背后的黑产则通过恶意SDK留下的后门控制千万用户,动态下发刷量代码,大量刷广告曝光量和点击量,赚取大量广告费用,给广告主造成了巨额广告费损失。
根据安全人员详细分析,此恶意SDK主要存在以下特点:
1、该SDK被1000+千应用开发者使用,通过应用开发者的分发渠道抵达用户。主要涉及的应用包括掌通家园、暴风影音、天天看、塔读文学等,潜在可能影响上千万用户;
2、刷量子包通过多次下载并加载,并从服务器获取刷量任务,使用webview加载js脚本实现在用户无感知的情况下自动化的进行刷量任务。
此类流量黑产给传统的广告反作弊带来了极大挑战,传统通过IP、曝光频率、点击率等表象数据形成的反作弊策略难以识别这种控制大量真实设备做’肉鸡’的刷量作弊,使得大量广告费用流入黑产手中,却无法给广告主带来应有的广告效果。
二、SDK作恶流程和影响范围
此恶意SDK集成在应用中的那部分代码没有提供实际功能,其在被调用后会定时上报设备相关信息,获取动态子包的下载链接,下载子包并加载调用。然后由子包执行相应的恶意行为。
恶意SDK作恶流程示意图:
受恶意SDK影响的主要应用列表:
软件名 |
包名 |
周用户量 |
掌通家园 |
com.seebaby |
800万+ |
暴风影音 |
com.storm.smart |
700万+ |
天天看 |
com.tiantiankan.ttkvod |
150万+ |
免费小说阅读 |
com.tadu.read |
130万+ |
塔读文学 |
com.tadu.read |
130万+ |
欢乐斗地主2018 |
paile.mengle.operator.huawei |
100万+ |
乡村小说 |
com.tadu.xiangcunread |
100万+ |
贝瓦儿歌 |
com.slanissue.apps.mobile.erge |
90万+ |
号码百事通 |
com.besttone.hall |
90万+ |
漫画人 |
com.ilike.cartoon |
80万+ |
爱玩4G |
cn.egame.terminal.client4g |
70万+ |
蚂蚁头条 |
com.ldzs.zhangxin |
60万+ |
掌通家园园丁 |
com.yuanding.seebaby |
40万+ |
极速清理大师 |
cn.rball.fastcleanmaster |
40万+ |
单机斗地主(开心版) |
com.og.danjiddz |
40万+ |
爱游戏 |
com.egame |
40万+ |
淘小说 |
com.martian.ttbook |
35万+ |
净网大师 |
com.adoff |
25万+ |
火牛视频 |
com.waqu.android.firebull |
20万+ |
扑飞动漫 |
net.pufei.dongman |
20万+ |
可萌记账 |
net.ffrj.pinkwallet |
18万+ |
红包头条 |
com.martian.hbnews |
18万+ |
看荐影视 |
com.kanjianv8.www |
15万+ |
蜜桃小说 |
com.tadu.mitaoread |
15万+ |
保护气球 |
com.tomato.joy.bhqq.nearme.gamecenter |
15万+ |
纽扣的游戏 |
com.tomatojoy.nkdyx.nearme.gamecenter |
13万+ |
八分音符酱-游戏输出全靠吼 |
com.pepper.bfyfj.nearme.gamecenter |
10万+ |
UU伴侣 |
com.floworth.www |
9万+ |
百e看 |
com.baiyikan.www |
8万+ |
VV视界 |
cc.vshijie.www |
8万+ |
看视界 |
com.worldsee.www |
7万+ |
小青果 |
com.xiaoqingguo.www |
7万+ |
小小青果 |
com.xiaoqingguo.www |
7万+ |
綦江在线 |
com.appbyme.app70951 |
7万+ |
优视侠 |
com.ykxia.www |
6万+ |
子牙钓鱼 |
com.nbchat.zyfish |
5万+ |
全民跳一跳 |
com.tomato.joy.qmtyt.nearme.gamecenter |
4万+ |
中羽在线 |
com.badmintoncn.bbs |
4万+ |
疯狂篮球 |
com.tomatojoy.fktl.nearme.gamecenter |
4万+ |
众鑫玩卡 |
com.appbyme.app239109 |
3万+ |
三、恶意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/v1 http://report.mogolia.com:5080/gupdate/v1 |
请求子包__gather_impl.jar的下载地址 |
http://iupd.andrcool.com:6880/wupdate/v1 http://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=5 http://m.uczzd.cn/webview/newslist |
请求网页刷量任务 |
http://m.xinshiye.cc |
被刷的网页:求医不如健身网 |
http://mobads.baidu.com/ads/index.htm http://qbid.yiliang.cn |
刷百度广告和亿量广告 |
五、安全建议和防范手段
从近期Android端恶意应用的作恶手法来看,恶意开发者更多地从直接开发App应用转向开发SDK,向Android应用供应链的上游转移。通过提供恶意的SDK给应用开发者,恶意开发者可以复用这些应用的分发渠道,十分有效的扩大影响用户的范围。而在恶意SDK的类别方面,黑产从业者主要把精力放在用户无感知的广告刷量和网站刷量等方向,通过使用代码分离和动态代码加载技术,可以完全从云端下发实际执行的代码,控制用户设备作为“肉鸡”进行广告、网站刷量等黑产行为,具有很强的隐蔽性。
这类流量型黑产逐渐增多,不仅对手机用户造成了危害,同时也给移动端广告反作弊带来了很大的挑战,传统基于IP、曝光频率、点击率等表象数据形成的反作弊策略难以识别这种控制大量真实设备做’肉鸡’的刷量作弊,难以保障应用开发者和广告主的正当权益。
5.1、终端用户的自身防护建议
而针对终端用户,我们也给出了以下安全建议:
1、尽可能使用正版和官方应用市场提供的APP应用;
2、移动设备即使进行安全更新;
3、安装腾讯手机管家等安全软件,实时进行防护
5.2、腾讯广告反作弊解决方案
在广告反作弊领域,腾讯安全长期同黑产进行对抗,积累了丰富的黑产对抗经验,建立了庞大的反欺诈知识库,包括群控标识库,欺诈用户标识库,恶意推广木马库,构建了恶意SDK与应用和用户的关联路径等;同时通过设备指纹的接入,可以采集更多更全面的信息,更好的识别模拟器,群控设备。通过多渠道交叉验证,发现异常数据,监控异常数据,能有效发现流量型黑产的动向,提升反欺诈能力,为客户提供有效的推广欺诈、业务欺诈、欺诈用户识别等安全服务。
注:详情可见腾讯广告反欺诈实验室官网 https://adaf.qq.com/
白丁学者 » 恶意SDK无感刷百度广告 数千款APP植入影响千万用户