AI引擎助力揭秘百万地下暗流EvilJS隐匿者家族幕后

一、概要

近期,腾讯反诈骗实验室和移动安全实验室研发新一代的AI引擎TRP,从应用行为,网络行为等维度进行人工智能学习训练,并对检测能力泛化,最终在海量APK文件检出一款新型的流量盗刷应用,确认某SDK模块是恶意行为发起方,并通过神羊线索关联系统定位到名为上海柚**信息技术有限公司存在重大嫌疑。

该恶意病毒家族通过SDK代码集成,应用重打包植入等方式嵌入各类流行应用中,然后通过应用市场,软件下载站,线下手机店等渠道安装到用户手机设备中,一旦进入用户设备后其内置云控模块会在云端下发控制指令非法占用用户的手机设备执行后台模拟点击广告,模拟Google Play刷量等后台操作。腾讯反诈骗实验室和移动安全实验室安全专家注意到开发者嚣张的在代码中留下” /evil/invisible”的字符串信息(evil中文作恶的意思),为此将该恶意病毒家族命名为” EvilJS隐匿者”病毒家族。

腾讯反诈骗实验室和移动安全实验室通过AI引擎聚类关联发现,不仅多米音乐等多款流行正规应用都不慎植入EvilJS隐匿者,还通过某应用市场PC版及非官方ROM将包含恶意的后门程序植入到用户设备中,根据神羊威胁情报信息显示该家族主要通过几种方式大量传播:

1、伪装成系统应用并通过某些PC应用市场模块进行线下推广

2、通过非官方ROM植入用户手机

3、通过合作植入到一些流行应用中

4、通过重打包流行应用然后诱导用户下载

EvilJS隐匿者潜入用户后,会在WIFI环境下产生大量的后台网络请求用户下载广告和应用,对用户体验造成不良影响。

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

目前腾讯手机管家已经全面支持查杀该家族,用户可以下载腾讯手机管家进行查杀拦截。

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

影响范围:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

二、详细分析

2.1  样本基本信息

应用名:系统**

包名:com.android.system.se****

证书:ECC18BE38********568C57A0D

恶意行为:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

主要访问域名:

任务下发域名 api.jsi**.com
广告下发域名 a.youe***ia.com(注册公司为“上海柚**信息技术有限公司”)
api.miss***enz.cn(可下发安装APK)
api.oran***213.cn(可下发安装APK)

涉及部分广告URL:

广告商 URL
百度 http://wn.pos.ba***.com/adx.php?c=d25pZD04Nj
AnG https://ad.agr***m.com/AdServer/…
玩咖 http://adxreport.gm***5.com/
Jesgoo http://rcv.jes***.com/show?CAAQHA.WsypG…(URL格式与youemedia。com部分URL相似)
Zampdsp http://s.zam***p.com/wnt?v=21
众盟 http://ssp.zme***23.com/zmtmobads
2.2  模拟广告点击流程分析

样本通过WebView加载HTML页面,并注入invisible.js到页面中,并提供模拟点击、滑动操作的接口。样本从服务器拉取广告任务,通过动态构造HTML元素加载广告,并点击广告,必要时由Java代码实现模拟点击、滑动操作。

1)     通过WebView加载URL,http://api.js***.com/evil/invisible.html,并通过loadUrl注入http://api.js***.com/evil/invisible.js

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

图 加载HTML

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

图 注入js

2)请求广告

广告加载主要由http://api.js***.com/evil/invisible.html完成

初始化任务列表:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

任务列表:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

任务字段含义:

字段 含义
yid 广告请求用的id
packageName 未知
atype 广告类型,可用于确定广告大小
rate 点击概率
percent 加载广告的概率(百分比)

根据任务列表,向a.yo***edia.com请求广告信息:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

广告请求的设备信息由Java代码提供。

3)    加载广告

广告请求返回如下JSON:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

根据impression_monitor_url创建HTML元素:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

4)    模拟点击

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

点击操作实质上是通过访问广告请求的click_url实现:

image.png

如果是apk,则调用Java代码下载:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

Java代码:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

否则创建HTML元素:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

访问URL:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

5)    针对百度提供的广告页面,模拟滚动后点击相应标签:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

2.3  模拟Google Play Store

样本内包含了Google账号,并可模拟Google Play下载并安装应用,并模拟Google Play发送Google Play Install Referrer,启动应用。可以达到刷量的目的。

1)    内置Google账号

应用内置了Play Store相关配置,也可通过JS代码下发。包含明文的Google账号密码:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

账号和密码可动态更新:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

2)    从Play Store下载应用

首先获得认证的Token:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

获得文件下载地址并保存:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

下载APK文件并安装:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

3)    启动应用

可以由服务端启动应用,对应的Java接口函数为loadAppF()、startApp()。两者的区别在于startApp()会模拟Google Play发送Google Play Install Referrer。Referrer被应用用于追踪安装行为,包括安装源和与之相关的广告事件。模拟Referrer可视为模拟Google Play安装应用。

启动应用过程如下:

函数loadLPPage()可受控打开某个URL获得Referer

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

服务端控制调用startApp()启动应用:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

发送Referer:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

2.4      关键函数接口

由2.2分析可知,样本加载分别HTML文件和JS,

http://api.js***.com/evil/invisible.html

http://api.js***.com/evil/invisible.js

其中HTML文件提供模拟点击广告的功能,JS文件提供模拟点击API接口。

JS文件提供的接口

功能类别 JS函数
随机化 randomInt
randomXAxis
randomYAxis
randomAxis
单击 tapAxis
tap
滚动 scroll
scrollVertical
scrollHorizontal
生成HTML元素 generateOne
visible

 

与此对应Java代码通过WebView.addJavascriptInterface函数使得JS代码可以调用如下Android代码:

Android端Java接口 功能
baseInfo 获得设备信息(IMEI、IMSI、设备型号、MAC等)
showView 显示广告View
hideView 隐藏广告View(设置为不可见,但View依然存在)
closeView 关闭广告View
downloadQuiet() 静默下载,如果有Root权限,则静默安装
getIntallList 获得安装列表
getJSData 读取设置
storeJsData 保存设置
loadAppF 启动指定App
startApp 启动指定App,与loadAppF不同点在于,该函数会根据参数向Play Store发送安装完成的广播
loadLPPage 使用浏览器打开指定URL,或者下载指定文件,或者模拟Play Store下载指定App
touchDown 按下
touchMove 移动
touchUp 抬起
updateGPDownload 更新Google账号

2.5   有root权限的情况下静默安装

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

2.6      启动浏览器访问指定页面

loadLPPage()除了获得Google Play Install Referrer之外,还可以使用浏览器打开指定URL:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

三、样本传播渠道

通过AI引擎网络行为分析发现,其任务还可通过以下三个同功能服务器进行下发:

api.oy***.com
42.51.2**.14
api.Ig***.com

1.    线下传播渠道

我们发现一款名为USBHelper的部分版本也被植入EvilJS隐匿者恶意代码

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

 

通过其它线索显示USBHelper是有***45开发的一款推广应用,其用户量高达450W+。从shouji.***45.com(***45王牌手机联盟)下载推广信息:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

其推广渠道为线下及ROM:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

从***45官方网站可知,***45提供USBHelper给ROM作者,通过非官方ROM植入用户手机:

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

2.    知名应用通过SDK集成

通过腾讯反诈骗实验室和移动安全实验室大数据分析发现,**米音乐6.7.5 ~ 6.8.7(最新版本)的版本包含有该恶意SDK模块。

**米音乐6.7.5仅部分样本包含该恶意SDK,到6.8.7版本,所有样本均包含该恶意SDK。最新版本的用户数88W+。

此外,爱上***(Internet***.all)、超级瑞士**(com.utooo.android.***.free)也包含该恶意SDK。

3.    知名应用/游戏重打包

含有该恶意SDK的重打包应用(用户量较大的样本):

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

含有该恶意SDK的游戏(用户量较大的样本):

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

4.    色情应用集成

部分色情样本也包含该恶意SDK。

AI引擎赋能:助力揭秘百万地下暗流EvilJS隐匿者家族幕后

四、关于腾讯安全实验室

腾讯移动安全实验室:基于腾讯手机管家产品服务,通过终端安全平台、网络安全平台和硬件安全平台为移动产业打造云管端全方位的安全解决方案。其中腾讯御安全专注于为个人和企业移动应用开发者,提供全面的应用安全服务。

腾讯安全反诈骗实验室:汇聚国际最顶尖白帽黑客和多位腾讯专家级大数据人才,专注反诈骗技术和安全攻防体系研究。反诈骗实验室拥有全球最大安全云数据库并服务99%中国网民。

*本文作者:腾讯手机管家