手机ClickFraud应用的安全研究分析
字数 1580 2025-08-22 22:47:30

Android ClickFraud 应用安全研究分析教学文档

1. 事件概述

  • 背景:Android和iOS设备在广告收益上存在差异,iOS设备广告收益更高
  • 发现:SophosLabs发现22个Google Play上的恶意应用,下载量超过200万次
  • 伪装手段:这些应用伪装成苹果设备向广告商索取高额回报
  • 时间线
    • 部分应用可追溯至一年前(如手电筒应用下载量超100万次)
    • 大多数恶意应用创建于2018年6月及之后
    • 最初版本无害,6月左右添加了clickfraud木马代码
    • 谷歌于11月25日下架这些应用,但C2架构仍有效

2. 恶意软件关键特征

2.1 技术特点

  • 持久性:比前代恶意软件更持久
  • 灵活性:功能可通过C2服务器配置
  • 欺骗性:高度隐蔽,难以被用户察觉
  • 可扩展性:可下载并运行其他模块

2.2 用户影响

  • 电量消耗:加速消耗手机电池
  • 隐蔽性:无破坏性广告显示,用户难以察觉
  • 负面评价少:Play Market上几乎没有负面评论

3. 恶意软件工作机制

3.1 初始通信

  1. 首次启动时发送HTTP GET请求:
    http[://]sdk.mobbt.com/auth/sdk/login
    
  2. 服务器返回JSON格式命令列表("sdk"),包含:
    • 下载模块的URL
    • 调用的类和方法名称
    • 方法参数

3.2 模块控制

  • 服务器可更新、更改或添加新模块
  • 客户端使用相同代码下载和运行所有模块
  • 示例模块:
    • "rtb":早期版本使用
    • "mpb":执行广告点击操作

3.3 广告点击流程

  1. 获取配置信息:
    http[://]act.mobbt.com/actions/mb/view
    
  2. 服务器返回JSON结构命令,包含伪造参数:
    • 虚假应用名称
    • 伪造设备型号
    • 伪造User-Agent字符串
  3. 发送伪造的HTTP请求:
    http[://]ads.mobbt.com/m/ad
    
  4. 创建隐藏窗口(0x0像素)下载广告
  5. 模拟用户点击行为

4. 持久化技术

4.1 自动恢复机制

  • 启动运行:利用BOOT_COMPLETED广播在手机重启后启动
  • 同步监听
    • 声明同步适配器和绑定服务
    • 设置为定期运行(默认3分钟)
    • 即使被用户强制停止,3分钟后自动恢复

4.2 实现代码

<service android:exported="true" android:name="com.octopus.managersdk.sync_adapter.SyncService">
  <intent-filter>
    <action android:name="android.content.SyncAdapter" />
  </intent-filter>
  <meta-data android:name="android.content.SyncAdapter" android:resource="@xml/manager_syncadapter" />
</service>

5. 恶意软件演变

5.1 版本发展

  • 早期版本(2016-2017年):
    • 三个应用:com.sparkle.flashlight, app.mobile.justflashlight, com.takatrip.android
    • 最初版本无害
  • 2018年3月
    • 首次出现sdk下载功能
    • 仅使用"rtb"模块
  • 2018年6月
    • 接近当前版本
    • assets文件夹包含空文件mpb.jar
    • "mpb"模块开始具有恶意性

5.2 设备伪装范围

  • 伪造iOS设备:iPhone 5至8 Plus
  • 伪造Android设备:
    • 33个不同品牌
    • 249种不同型号
    • Android版本从4.4.2到7.x

6. 安全影响与结论

6.1 影响范围

  • 广告商:因虚假点击产生大量非法收入
  • 用户
    • 电量快速耗尽
    • 可能导致数据超额
    • 设备完全受C2服务器控制

6.2 恶意软件特点

  • 组织性良好
  • 持久性强
  • 对Android生态系统构成严重威胁

7. 检测与防护建议

7.1 检测指标(IOC)

  • C2服务器域名:
    • sdk.mobbt.com
    • act.mobbt.com
    • ads.mobbt.com
  • 检测名称:Andr/Clickr-AD

7.2 防护措施

  1. 定期检查设备异常电量消耗
  2. 监控网络流量中的可疑域名访问
  3. 检查应用权限,特别是同步适配器相关权限
  4. 关注应用商店中的安全警告
  5. 使用专业安全软件进行检测

8. 技术分析要点总结

  1. 模块化设计:通过C2服务器动态控制功能
  2. 设备伪装:伪造多种设备型号和User-Agent
  3. 隐蔽执行:零像素窗口隐藏广告活动
  4. 持久化机制:同步适配器实现自动恢复
  5. 广泛影响:覆盖iOS和Android主流设备型号

附录:恶意代码关键片段

模块调用代码

private void invokeClass(Pair arg4) throws ReflectionException {
  try {
    this.invokeMethod(this.ctx, this.parameters, this.dexClassLoader.loadClass(arg4.first), arg4.second);
    return;
  } catch(ClassNotFoundException v4) {
    ThrowableExtension.printStackTrace(((Throwable)v4));
    throw new ReflectionException("Classes Not Found");
  }
}

隐藏窗口创建代码

v0.width = 0;
v0.height = 0;
this.containerView = new LinearLayout(this.ctx);
this.containerView.setLayoutParams(new RelativeLayout$LayoutParams(-1, -1));
this.containerView.setBackgroundColor(0);
this.containerView.addView(arg8);
if(this.windowManager == null) {
  this.windowManager = this.ctx.getSystemService("window");
}
if(this.windowManager == null) {
  return;
}
this.windowManager.addView(this.containerView, ((ViewGroup$LayoutParams)v0));

同步频率设置代码

if(v11_1.has("sync")) {
  v0_1 = v11_1.optLong("sync");
  if(this.preferences.getSyncPeriodicFrequency() != v0_1) {
    this.preferences.setSyncPeriodFrequency(v0_1);
    Utils.updateSyncFrequency(this.context, v0_1);
  }
}
Android ClickFraud 应用安全研究分析教学文档 1. 事件概述 背景 :Android和iOS设备在广告收益上存在差异,iOS设备广告收益更高 发现 :SophosLabs发现22个Google Play上的恶意应用,下载量超过200万次 伪装手段 :这些应用伪装成苹果设备向广告商索取高额回报 时间线 : 部分应用可追溯至一年前(如手电筒应用下载量超100万次) 大多数恶意应用创建于2018年6月及之后 最初版本无害,6月左右添加了clickfraud木马代码 谷歌于11月25日下架这些应用,但C2架构仍有效 2. 恶意软件关键特征 2.1 技术特点 持久性 :比前代恶意软件更持久 灵活性 :功能可通过C2服务器配置 欺骗性 :高度隐蔽,难以被用户察觉 可扩展性 :可下载并运行其他模块 2.2 用户影响 电量消耗 :加速消耗手机电池 隐蔽性 :无破坏性广告显示,用户难以察觉 负面评价少 :Play Market上几乎没有负面评论 3. 恶意软件工作机制 3.1 初始通信 首次启动时发送HTTP GET请求: 服务器返回JSON格式命令列表("sdk"),包含: 下载模块的URL 调用的类和方法名称 方法参数 3.2 模块控制 服务器可更新、更改或添加新模块 客户端使用相同代码下载和运行所有模块 示例模块: "rtb":早期版本使用 "mpb":执行广告点击操作 3.3 广告点击流程 获取配置信息: 服务器返回JSON结构命令,包含伪造参数: 虚假应用名称 伪造设备型号 伪造User-Agent字符串 发送伪造的HTTP请求: 创建隐藏窗口(0x0像素)下载广告 模拟用户点击行为 4. 持久化技术 4.1 自动恢复机制 启动运行 :利用 BOOT_COMPLETED 广播在手机重启后启动 同步监听 : 声明同步适配器和绑定服务 设置为定期运行(默认3分钟) 即使被用户强制停止,3分钟后自动恢复 4.2 实现代码 5. 恶意软件演变 5.1 版本发展 早期版本 (2016-2017年): 三个应用: com.sparkle.flashlight , app.mobile.justflashlight , com.takatrip.android 最初版本无害 2018年3月 : 首次出现sdk下载功能 仅使用"rtb"模块 2018年6月 : 接近当前版本 assets文件夹包含空文件 mpb.jar "mpb"模块开始具有恶意性 5.2 设备伪装范围 伪造iOS设备:iPhone 5至8 Plus 伪造Android设备: 33个不同品牌 249种不同型号 Android版本从4.4.2到7.x 6. 安全影响与结论 6.1 影响范围 广告商 :因虚假点击产生大量非法收入 用户 : 电量快速耗尽 可能导致数据超额 设备完全受C2服务器控制 6.2 恶意软件特点 组织性良好 持久性强 对Android生态系统构成严重威胁 7. 检测与防护建议 7.1 检测指标(IOC) C2服务器域名: sdk.mobbt.com act.mobbt.com ads.mobbt.com 检测名称: Andr/Clickr-AD 7.2 防护措施 定期检查设备异常电量消耗 监控网络流量中的可疑域名访问 检查应用权限,特别是同步适配器相关权限 关注应用商店中的安全警告 使用专业安全软件进行检测 8. 技术分析要点总结 模块化设计 :通过C2服务器动态控制功能 设备伪装 :伪造多种设备型号和User-Agent 隐蔽执行 :零像素窗口隐藏广告活动 持久化机制 :同步适配器实现自动恢复 广泛影响 :覆盖iOS和Android主流设备型号 附录:恶意代码关键片段 模块调用代码 隐藏窗口创建代码 同步频率设置代码