记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

使用插件框架已成为Android广告软件的新趋势

2017-04-02 00:25

使用插件框架已成为Android广告软件的新趋势。对于合法的Android应用而言,使用嵌入式广告SDK或推广其他应用程序是普遍存在的行为,展示广告或推广其他应用可以为合法应用开发者带来收益。然而,最近我们观察到移动广告社区中存在一个令人担忧的趋势,那就是Google Play商店中有些广告软件滥用第三方DroidPlugin框架,其行为已变得更具侵略性。

本文中,我们将大概介绍下研究人员是如何发现滥用第三方DroidPlugin框架的那些Android广告软件。我们已将调查结果与Google共享,所有违背Google服务条款的应用已从Google Play商店中移除。

二、Andorid插件技术的优与劣

插件技术最初由第三方引入,用来为Android添加额外的增强功能。比如,Parallel Space(https://play.google.com/store/apps/details?id=com.lbe.parallel.intl&hl=en)插件允许用户在一台手机上运行两个Twitter应用。另外,插件技术也可以提高热补丁(hot patching)的修补速度。

不幸的是,插件技术所提供的增强功能也可以用于恶意行为。恶意软件作者早已滥用合法的插件技术来实现恶意目的,如绕过终端设备的反恶意软件机制(特别是静态扫描机制)。我们在关于PluginPhantom的研究报告中已经讨论过这类技术细节,其他研究人员也研究过插件技术如何用于网络钓鱼攻击。

在之前的研究中,我们发现恶意软件已经在滥用“DroidPlugin”和“VirtualApp”这两种最流行的开源插件框架。这两种框架都可以用来启动任意Android应用,从理论上讲,这些应用甚至不需要安装在手机上。从技术角度而言,Android的插件技术本质上是一种应用层虚拟环境技术。

Unit 42研究人员最近发现Android插件功能已成为广告软件推广应用的一种创新方式。启用插件功能的应用可以在不安装其他应用的前提下启动这些应用。这为广告软件提供了极大的便利,因为它们可以在不与用户交互的情况下安装和推广其他应用。

这种应用推广方式存在安全风险,因为当前的插件框架使用了较为脆弱的安全机制。这些插件框架无法在不同的插件实例中区分权限和隔离数据。因此,当被推广的应用经由插件框架启动时,这些应用拥有了与宿主应用程序相同的权限(通常是Android上的所有权限),并且可以访问宿主应用或其他插件应用的数据,这违反了Android应用沙箱中的重要准则,即:

“在Android应用沙箱中,不同应用之间无法共享数据和代码资源”

合法应用遵守沙箱准则,假定自己总是会安全地运行在自己的沙箱内,但现在它们正面临安全风险,因为它们无法预测自身是否在插件环境中启动运行。

例如,我们在Google Play中发现有32个应用使用了DroidPlugin框架,21个应用使用了VirtualApp框架。这些应用大部分都是PUP(potentially unwanted programs,潜在有害程序)或者广告软件,现在已经从Google Play上移除(见本文结尾部分)。

在接下来的示例中,我们会演示两个广告软件家族如何滥用插件技术来推广应用程序。

三、示例一:自动化推广应用

2016年9月,名为“Clean Doctor”(包名为“com.nianclub.cleandoctor”)的应用自1.2.0版本开始变得更具侵略性。这款广告软件滥用了VirtualApp 框架,其在Google Play中的演化时间线如图1所示:

\

图1. “Clean Doctor”应用的演化时间线

为了推广应用,广告软件通常会下载应用,然后经常向用户展示应用程序安装界面。用户安装推广的应用后,广告软件作者就会获得推广收益。Clean Doctor(以下简称CD)使用了不同的策略来实现这一目标。

CD从地址为“familysdk.com”的C2服务器上获取任务信息,利用云存储服务下载多个推广应用。它不需要请求用户安装这些推广程序,而是以两种方式启动这些推广应用:

1、通过点击快捷方式启动推广应用

CD在设备主屏幕上为每个下载的应用(如图2所示)创建快捷方式。用户点击这些快捷方式时,相应的应用会以插件应用的形式在CD的沙箱内启动。大多数Android用户在点击快捷方式时无法区分这种启动方式与默认启动方式之间存在的区别。比如,当用户点击“Evony: Battle On”这个游戏应用的快捷方式时,该应用会直接立即地显示在屏幕中,但实际上应用是以插件应用方式启动,运行在插件虚拟环境中。

\

图2. CD创建推广应用的快捷方式

2、自动启动推广应用

由于所有插件应用都在宿主应用的完全控制下,宿主应用可以控制每个插件应用的生命周期。当收到系统事件通知时,CD能够以插件应用模式自动启动这些推广应用。

\

图3. 通过插件方式启动的推广游戏应用

四、示例二:同时推广多个应用

在2017年1月底,我们发现Google Play中的一个名为“bloodpressure”的广告软件(包名为“com.blood.pressure.bost”)滥用了Android插件技术,变得更具侵略性。这款广告软件会自动启动独立的应用来显示广告,同时会在单个屏幕上同时推广多款应用。

该广告软件自2.5版开始使用嵌入式VirtualApp框架,但直到2017年2月才从Google Play上移除。移除时该广告软件的安装量已经在10,000到50,000次之间。这款应用在Google Play上的生命周期如图4所示。

\

图4. “bloodpressure”广告软件的演化时间线

(一)与其他广告软件的不同点

大多数广告SDK使用webview组件来显示banner以及全屏广告,使用这类SDK的应用一次只能展示一个广告。我们发现的bloodpressure广告软件样本与此不同,可以在单个屏幕上同时向用户展示多个应用广告。为了达成此目的,该广告软件会自动启动一个插件应用,多个广告会在这个插件应用中集中显示(如图5所示)。这项技术在危害程度上不及那种不经用户交互就启动推广的技术,但能够可以允许广告软件作者有更多的机会来安装推广应用。

\

图5. 插件应用展示多个广告

(二)技术分析

这款广告应用的工作流程如图6所示,分为以下几个步骤:

1、从远程服务器获取配置文件

宿主应用启动后会访问“http://qwe.ortpale.com/conf/bloodinfo.txt ”,从远程服务器上下载配置文件。注意到这里的HTTP请求中,User-Agent字段值为“Ray-Downer.”。

2、解码并保存插件应用

宿主应用中包含一个名为“protect.data”的原始资源。这个资源文件实际上是一个经过编码的APK插件。宿主应用解码并保存该应用。

3、安装插件应用

宿主应用利用VirtualApp框架在自己的沙箱内安装插件应用。

知识来源: www.2cto.com/article/201704/620448.html

阅读:100895 | 评论:0 | 标签:Android

想收藏或者和大家分享这篇好文章→复制链接地址

“使用插件框架已成为Android广告软件的新趋势”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云