深度分析:安卓上的点击欺诈应用 GhostClicker

简介: 本文讲的是深度分析:安卓上的点击欺诈应用 GhostClicker,最近,我们发现了一个影响十分广泛的自动点击广告软件,事实上,我们了解到Google Play有多达340个这样的应用程序,其中一个名为“阿拉丁冒险世界”的,甚至被下载了500万次。
本文讲的是 深度分析:安卓上的点击欺诈应用 GhostClicker最近,我们发现了一个影响十分广泛的自动点击广告软件,事实上,我们了解到Google Play有多达340个这样的应用程序,其中一个名为“阿拉丁冒险世界”的,甚至被下载了500万次。这些广告嵌入式应用程序的类型包括休闲游戏,提升设备性能实用程序,如清理工具和加速器,文件管理器,QR及条形码扫描程序、多媒体录像机、播放器、设备充电器和GPS /导航等相关应用程序。

虽然目前大多数这些应用程序已被删除,但是截止2017年8月7日仍有101个可以下载。我们的检测传感器在东南亚国家以及巴西,日本,台湾,俄罗斯,意大利以及美国都检测到了。

我们对这些广告软件的检测主要依赖于GhostClicker(ANDROIDOS_GHOSTCLICKER.AXM),因为它的自动点击程序往往都是隐藏在谷歌最流行的应用程序和应用程序接口(API)的Google移动服务(GMS)中。GhostClicker也可以隐藏在Facebook广告的软件开发工具包(SDK)中。它将自己嵌入这两个伪装成一个名为“logs”的软件,我们猜测这可能是为了避免冒充合法的应用程序组件会引起怀疑。

 深度分析:安卓上的点击欺诈应用 GhostClicker

图1. GhostClicker嵌入的应用程序的下载高达500万次

 深度分析:安卓上的点击欺诈应用 GhostClicker

图2. GhostClicker的代码隐藏在GMS或Facebook Ads的SDK中

其实,GhostClicker是非常普遍而且持久的,但是我们对其仍然很好奇。这些广告软件都会有一些请求。一旦启动,受影响的应用将检索设备的系统属性(http.agent),用于在Android设备中配置User-Agent字符串。如果字符串包含“nexus”,则GhostClicker的进程将不被触发。我们将此例程作为逃避像Android的内置Android应用程序沙箱之类的沙盒的方法,因为Android模拟器/沙盒环境通常被称为“Nexus XXX”。

 深度分析:安卓上的点击欺诈应用 GhostClicker

图3:当设备的http.agent不包含“nexus”时,GhostClicker被触发

我们分析的一些GhostClicker嵌入式应用程序在首次运行时也会要求设备管理权限,但不声明元数据中使用的安全策略,例如擦除数据和重置密码。我们猜想这可能是阻止用户删除应用程序的一种方法,因为这使得卸载应用程序的过程漫长而笨重。这当然不是一个对用户友好的过程,因此我们在卸载使用设备管理的应用程序后都需要在应用程序删除之前先禁用它。

深度分析:安卓上的点击欺诈应用 GhostClicker

图4.受GhostClicker影响的应用程序请求设备管理权限

 深度分析:安卓上的点击欺诈应用 GhostClicker

图5.无法卸载应用程序的某些用户的快照

GhostClicker通过自动点击获得欺诈性保护

与其他广告软件不同,GhostClicker不使用JavaScript代码查找/检索并单击广告。而是将其代码插入Admob(Google拥有的移动广告平台)中,以获取广告的位置。获取设备的屏幕尺寸(宽度和高度)后,它会计算适当的XY坐标,然后使用dispatchTouchEvent API来模拟点击。事实上,它的绰号是真的:在设备的屏幕上重复点击广告。

为了赚取更多的收入,GhostClicker会产生假的流量。它将弹出在Google Store中的其他应用程序的下载链接,或者通过与其命令和控制(C&C)服务器的通信在设备的浏览器中打开YouTube视频链接。激活设备管理后,GhostClicker将每分钟执行一次这些自动点击。

 深度分析:安卓上的点击欺诈应用 GhostClicker

图6. GhostClicker插入代码以获取AdMob的内容

 深度分析:安卓上的点击欺诈应用 GhostClicker

图7. GhostClicker生成坐标

 深度分析:安卓上的点击欺诈应用 GhostClicker

图8. GhostClicker根据XY坐标构建MotionEvent(模拟触摸)

 深度分析:安卓上的点击欺诈应用 GhostClicker

图9. GhostClicker使用dispatchTouchEvent API自动点击广告

我们搜索了GhostClicker的踪迹,发现它是自己早期的迭代。更新版本删除了自动点击功能和设备管理权限请求,这可能使的广告软件更加隐蔽。用户解锁屏幕后,如果设备连接到具有数据的网络,广告软件将以特定间隔弹出插页式广告。我们在“阿拉丁的冒险世界”遇到了这个版本的GhostClicker。

回顾广告软件的时间表,我们也看到嵌入GhostClicker的应用程序不断发布了将近一年时间。而GhostClicker早在06年8月就出现了,当时隐藏在GMS的SDK中。到2017年3月,GhostClicker去除了自动点击并利用Admob,Startapp和Facebook Ads在收到C&C命令时弹出插页式广告。到5月份,它重新整合自动点击并隐藏在Facebook Ads的SDK中。

缓解措施

广告是移动生态系统中的无害主义者。然而,GhostClicker则展示了广告软件如何进行入侵,当然更不用说挤占设备的资源 – CPU,电池和互联网数据等。另外其还可能在不知情或者同意的情况下收集个人信息,,使用户的隐私处于危险之中。除此之外,广告软件还可以将用户暴露于那些远不止是广告软件的真正的恶意软件中。

GhostClicker可以通过限制使用设备管理功能来进行缓解,还可以利用创建安全感知的应用程序,如企业设备或BYOD管理和防病毒应用程序。日常用户这样子做了防范的话问题不大。

建议对操作系统进行更新(或询问您的OEM有关更新可用性),并采用最佳做法来保护个人移动设备。企业也应该对其公司设备或BYOD环境做同样的事情,因为它们是使用设备管理的设备。另外阅读应用程序评论还有助于确定应用程序是否执行某些可疑行为。




原文发布时间为:2017年8月22日
本文作者:鲁班七号
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
20天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
21天前
|
数据库 Android开发 开发者
构建高效Android应用:Kotlin协程的实践指南
【4月更文挑战第2天】随着移动应用开发的不断进步,开发者们寻求更流畅、高效的用户体验。在Android平台上,Kotlin语言凭借其简洁性和功能性赢得了开发社区的广泛支持。特别是Kotlin协程,作为一种轻量级的并发处理方案,使得异步编程变得更加简单和直观。本文将深入探讨Kotlin协程的核心概念、使用场景以及如何将其应用于Android开发中,以提高应用性能和响应能力。通过实际案例分析,我们将展示协程如何简化复杂任务,优化资源管理,并为最终用户提供更加流畅的体验。
|
21天前
|
开发框架 安全 Android开发
探索安卓系统的新趋势:智能家居应用的蓬勃发展
随着智能家居概念的兴起,安卓系统在智能家居应用领域的应用日益广泛。本文将探讨安卓系统在智能家居应用开发方面的最新趋势和创新,以及其对用户生活的影响。
14 2
|
5天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
2 0
|
5天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
5 0
|
7天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
9天前
|
搜索推荐 开发工具 Android开发
安卓即时应用(Instant Apps)开发指南
【4月更文挑战第14天】Android Instant Apps让用户体验部分应用功能而无需完整下载。开发者需将应用拆分成模块,基于已上线的基础应用构建。使用Android Studio的Instant Apps Feature Library定义模块特性,优化代码与资源以减小模块大小,同步管理即时应用和基础应用的版本。经过测试,可发布至Google Play Console,提升用户便利性,创造新获客机会。
|
10天前
|
Java API 调度
安卓多线程和并发处理:提高应用效率
【4月更文挑战第13天】本文探讨了安卓应用中多线程和并发处理的优化方法,包括使用Thread、AsyncTask、Loader、IntentService、JobScheduler、WorkManager以及线程池。此外,还介绍了RxJava和Kotlin协程作为异步编程工具。理解并恰当运用这些技术能提升应用效率,避免UI卡顿,确保良好用户体验。随着安卓技术发展,更高级的异步处理工具将助力开发者构建高性能应用。
|
10天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
16天前
|
移动开发 API Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第7天】 在移动开发领域,性能优化和应用响应性的提升一直是开发者追求的目标。近年来,Kotlin语言因其简洁性和功能性在Android社区中受到青睐,特别是其对协程(Coroutines)的支持,为编写异步代码和处理并发任务提供了一种更加优雅的解决方案。本文将探讨Kotlin协程在Android开发中的应用,揭示其在提高应用性能和简化代码结构方面的潜在优势,并展示如何在实际项目中实现和优化协程。