广告件小结

By | 2014年6月13日

post by markseven

AVL移动安全团队在样本的分析过程中,发现了大量的应用被加入了广告件,广告件与普通应用一样也分正常和恶意的,本文从其表现形式到包结构再到对抗加壳进行简单的小结。

 

一、广告件性质界定

判定广告件实际上是对广告推广商的利益和智能终端用户权利的一种权衡,在不失衡的情况下界定出哪些推广手段是损害用户权利(如隐私权、知情权等)或违背用户主观意愿(如私自下载、私自创建快捷方式等)的恶意推广行为,哪些是推广商正常的营利行为。将前者定义为良性广告件(判白),而后者定义为恶意广告件(判黑)。本文将围绕广告件的通性以及这两类广告件的定性与区分进行相关阐述。

 

二、实际表现

1、积分墙

首先看一则有米官网对积分墙的声明:

积分墙的表现形式一般为下载第三方应用获取积分,用以开启VIP业务,或者用于开启游戏中更高级别的关卡。这种推广行为虽然会在一定层度上影响用户体验,但这种形式早已被广泛应用和接受(比如论坛注册后需要通过一定的手段获取积分才可成为正式会员并享有会员服务),应判定为良性广告件。

 

2、悬浮窗

悬浮窗广告件一般会在桌面上显示一个小精灵之类的东西,用户点击之后便会跳转到一个广告列表,下面是道有道提供的蛋壳广告业务:

当用户点击了左图中的蛋壳之后,便会弹出右图所示的广告列表,这种广告件如果不伴随有其他的恶意行为,一般不会对用户造成太大影响或损失,应该判定为良性广告件。

 

3、广告条

广告条是一种”明目张胆”的推广方式,应该是用户最放心的,因为广告条上一般都显示了”它是什么”和”它会干什么”。下图示是有米提供的广告条业务的部分描述:

所以正常的广告条在用户点击之后,会等待用户确认然后才开始下载,比如下面这个样本,点击作图广告条会出现右图所示的下载提示,再点击”点击下载”按钮才会开始下载。此类广告件对用户有足够的提示并且不会对用户造成不良影响,应该判为良性广告件。若点击无提示便开始下载则判定为恶意广告件。

 

4、界面劫持

在介绍界面劫持之前首先介绍一下贴片广告(插播广告、插屏广告等均归为贴片广告)的正常表现形式:

从以上截取自有米官方的插播广告和多盟官方的插屏广告的介绍可知,正常的贴片广告应该是在本应用启动、暂停或退出时展现。

然而,部分广告推广商为了增加广告的用户点击率,制造了更为流氓的推广方式:贴片广告会在用户使用非本应用的第三方应用(如新浪微博、微信等)时弹出来,覆盖掉当前应用的部分界面。下图为用户在使用微信浏览消息时界面遭贴片广告劫持的案例,这种未经任何允许劫持其他应用的界面显示广告的行为违背用户主观意愿,影响用户体验,应该被判定为恶意广告件。

 

三、恶意行为

1、私自下载

为具有私自下载行为的样本定性首先应判定其是否为广告件,当下载内容为需要推广的产品(如第三方应用)时,即可判定其为广告件。其次,私自下载明显是违背用户主观意愿的,所以具有私自下载行为的广告件均可判定为恶意广告件。常见的私自下载有如下两种:

欺骗用户点击下载

如下图所示,该样本将通知栏图标伪装成未接电话的图标,当用户不小心点击之后便开始下载应用。

无提示私自下载

如下图所示,该样本未对用户进行任何提示,直接开始下载应用,下载完成后跳转到安装界面。

 

2、隐私泄露

隐私泄露与广告件之间存在着必然的联系,广告推广商利用广告件获取用户的地理位置、手机型号、性别、年龄以及兴趣好爱等信息,然后依据推广的需要针对特定的用户进行推广。下面这张图截取自安沃的官方主页,其中很明确地提到”运用技术手段使广告可以针对人群精准传递”,换句话说就是”利用技术手段窃取用户的相关信息,然后向他们的手机投放广告”。

那么广告商需要获取用户的哪些信息呢,请看下面这张截取自道有道官方主页的图。

地理位置和性别年龄等隐私信息,一般人是不愿意泄露的。对于IMEI、IMSI等设备信息,用户可能并不知晓其存在,但确实属于隐私的范畴,私自窃取也是不合法的。所以对于有上传用户的地理位置、性别年龄和IMEI、IMSI等信息的样本,应该被判定为恶意广告件。

 

3、恶意耗资

存在私自发送扣费短信、拨打扣费电话或者以其他方式损耗用户手机资费的广告件均为恶意广告件。

 

4、创建桌面快捷方式

    我们首先看一下有米官方网站上一则关于广告条的声明:

    由上图可知,这种广告条点击之后便会创建桌面快捷方式,如下面这个样本运行截图所示,点击桌面快捷方式便会弹出广告推广界面。这类样本私自创建快捷方式,违背用户的主观意愿,侵犯用户的知情权,应该判定为恶意广告件。

 

 

5、频繁推送

    通知栏推送类广告是广告推广商惯常的推广方式,对于单纯的通知栏推送类广告一般不太容易引起用户的反感,但是如果推送的频率过高,像下面这个样本,十五分钟之类便推动了两次,按照这个进度,一小时之内便可以占满整个屏幕,是违背用户的主观意愿的。

 

四、广告件常用包结构

1.背景信息完整

背景信息完整有SDK的广告是数目最多的一种广告,开发者主要借助官方提供的SDK信息来进行广告件的开发,植入。广告厂商一般会在SDK开发包当中提供一个实现广告核心功能的Jar包。程序开发者在开发Android应用的时候,导入Jar包然后就可以调用其中实现好的广告接口,以数量比较多的AnZhi广告件广告件为例。

从开发的SDK来看,程序会以coverscreen以及banner的形式来显示广告。

在具体的开发文档中,程序会对AM当中有特定的要求。

CoverScreen形式

Banner形式

 

2.背景信息不完整

在样本分析的过程当中还发现了一类,背景信息并不存在的有明显广告推广行为的广告件,但是,这类广告并没有使用官方的SDK来开发,或者相关的背景信息在网络上并没有太多。

cckcn广告件

这个广告通过通知栏的形式推送广告相关的信息。从样本的包结构来看,广告的包结构主要形式是”org.pac.XX”这种形式。而广告是在检测到用户的联网发生变化时来触发的。

epush广告件

这件广告的形式是在用户运行时,在界面上出现广告推广的界面信息,用户点击会下载推广的软件信息。程序广告的主要功能是包结构”com.sys.epush”当中来实现的。广告在用手机启动以及用户解锁屏幕时来触发。

 

五、对抗

在分析广告件的过程当中,很多的开发者并不是一成不变使用传统的SDK来开发广告,现在很多安全厂商大量检测广告信息,为了躲避检测,广告开发者们开始想办法来对抗安全厂商对广告的检测,主要有以下几种主要的变化形式。

1.在第三方库中集成广告

在分析样本的过程当中,发现了一种基于Adobe Air的运行环境,并使用针对Adobe AIR原生扩展来实现的AdMob广告的第三方库文件。

 

2.广告有关文件加密后放到apk文件的资源文件下

在dyds.b这个广告件,单从AM当中并看出来明显的广告信息,代码当中也找不到有关广告功能相关的url信息。但在资源文件夹下可以看到比较敏感的文件。

程序运行时会加载资源文件下的文件进行解密变换后释放出dex 文件,这个文件当中有与daoyoudao广告有关的信息。

 

在分析的过程当中发现这类样本的包名变化非常多,特征性的东西并不是很明显,比较容易逃避杀软的检出。

 

3.伪装成其它广告

在分析当中发现一类伪装成其它广告件的广告件,看包名貌似是其它广告件的广告,但实际却是”米迪”广告件,它的SDK当中并不包含与广告域名相关的信息,在运行的时候会联接”米迪”的官网下载一个zip文件包,并将其中的dex文件进行加载来实现广告的功能。这类广告件出现一种捆绑结构,他们的功能主要在包结构为”com.anzhi.ad”这个包结构当中来实现的。

同时很多这类广告件会通过加密程序对运行时联网的url信息进行隐藏。

 

4.加固后的广告

比如这个出现在com/merry/wapper这类包结构当中的加固应用。

程序本身的代码结构比较简单,而apk样本解压缩当中的包含的内容很多,有一些很敏感的文件(“cha.pro”,”engine.so”,”libnsecure.so”),程序的包名为”com.briskgame.Spider.free”,而程序当中的代码结构当中并没有相应的包结构,而是另外一个叫做”com.merry.wapper”的包结构。

从程序的AM当中,可以看到很多广告特征的东西,从对应的代码当中并不能找到相应的类结构,所以该样本是加载apk压缩包当中资源文件。

解出来的包结构显示出来相应的广告件的SDK,可以看出隐藏的还是很深的。

还有一种常见的就是使用梆梆加固后的广告件,这类广告件比较多,需要脱壳后才能正常检出。

 

六、总结

本文从广告件的表现形式、恶意行为、包结构、对抗方式等角度来描述目前广告件的发展现状,无论是正常广告还是恶意广告,再到对抗加壳,广告件的演变速度都是相当之快的,变化形式也非常多。

用户可以使用AVL Pro的应用分析器对安装的应用进行扫描,可以分析出应用使用了何种广告插件:

One thought on “广告件小结

发表评论

电子邮件地址不会被公开。 必填项已用*标注