Android 关于平板频繁出现广告弹窗恶意软件的调查与分析

关于联想平板频繁出现广告弹窗恶意软件的调查与分析

20180110

    1.  问题描述

问题出现在客户广发和招行定制的一些平板电脑上,大概1万台里面有100台出现恶意广告。

    2.  收集问题平板相关信息

(1)确定平板的系统是android4.4.4 user版本。

(2)通过dumpsys命令打印平板中安装的应用信息,确定病毒软件对应的软件包是Package [com.android.pickbox]和Package [com.lgcolorbu.appsnearmeclocker]。这两个包的安装时间是在2017-11-03 06:18:29,还可以看到/data/app,/data/data,/data/app-lib目录中存在这两个package的相关数据。

(3)通过跟前端确认,病毒是通过静默安装的,即在用户不知情的情况下偷摸安装的,没有安装交互。

(4)病毒安装后,病毒的启动以及广告的弹出,都是病毒程序自己控制的,病毒有一个DaemoServer服务,在系统启动时被启动,这个服务管理控制病毒的行为,通过ps命令可以看出。另外,我们实验只安装Package [com.android.pickbox]和Package [com.lgcolorbu.appsnearmeclocker],没有启动DaemoServer服务,病毒广告是不会弹出的,这也说明DaemoServer的作用。

(5)除了搜狗和Worxhome之外的其他应用是上了锁的,不解锁是打不开的。adb被禁用,系统安装应用程序的功能被禁用,网络设置被禁用,并且系统浏览器也被禁用,没法上网。但SD卡没有封控,用户可以拷贝数据到SD卡里。

(6)wifi被禁用,用户只能通过联通4G卡连接网络。

(7)普通用户除了通过MDM安装/卸载程序外,没有别的途径安装第三方应用程序。

(8)我们获取到了搜狗apk、WorxHome apk和病毒apk,反编译了这些apk,获得了源码。

通过分析收集这些信息,我们确定病毒是通过网络传输到平板里的。

    3.  任务目标

  • 1)确定病毒的明确来源。
  • 2)确定病毒的安装方式。
  • 3)提供解决方案。

   4.0分析与验证

这个问题分析的主要思路是,要么直接找到病毒apk的来源,确定病毒apk的安装方式;要么先确定病毒apk的安装方式,再分析病毒apk的来源。直接找到病毒apk来源的难度比较大,我们目前采用的是第二种分析方式。通过分析病毒apk的安装方法作为突破口,确定病毒apk用的那种安装方法,再分析这种安装方法的特征,通过这些特征去分析病毒的来源以及提供对应的解决方案。

 

4.1  确定病毒apk的安装方式

我们调查确定,Android4.4支持如下几种apk安装方式:

  1. 通过文件管理器等应用程序,点击安装SD卡里的apk。
  2. 通过adb install命令行安装病毒apk。
  3. 把病毒apk拷贝到/system/app或/data/app目录,系统自动扫描安装
  4. 应用程序通过调用系统命令pm install安装apk
  5. 应用程序通过调用系统接口pm.installpackage安装apk

下面我们对这几种安装方式逐一排查:

4.1.1  文件管理器安装方式分析

通过系统预装的文件管理器等应用程序,点击安装SD卡里的apk。这种方式在我们定制的平板里行不通。

原因1,这种方式需要和用户交互,不属于静默安装,而病毒的安装是静默安装;

原因2,能看到SD卡里数据的只有文件管理器,但文件管理器被管控了,没法打开,也就没法安装病毒apk

4.1.2  通过adb install命令行安装病毒apk方式分析

这种方式在我们定制的平板里行不通,原因是我拿到有病毒的平板,usb adb是被禁用的,没法用adb 连接平板,没法安装。

4.1.3  把病毒apk拷贝到/system/app或/data/app目录,系统自动安装方式分析

这种方式是静默安装,嫌疑比较大,但我们深入分析发现,把apk拷贝到/data/app目录下,apk的名称不会发生改变;而其余方式安装apk后,apk在/data/app/下的名称会追加“-1”或“-2”,android官方解释是系统第一次安装或第二次安装;平板里的病毒apk在/data/app目录下的apk名称后面有“-1”, 如com.android.pickbox-1.apk和com.lgcolorbu.appsnearmeclocker-1.apk,确定不是这种方式安装的病毒apk,为了结论的严谨,我们把一个带有“-1”的apk拷贝到/data/app目录下,确定这个apk不能被安装。

4.1.4  应用程序通过调用系统命令pm install安装apk方式分析

这种安装方式也是静默安装,嫌疑也比较大。为了验证这种安装方式,我们自己写了个apk调用pm install,是可以实现静默安装的,但这个apk需要满足2个条件:1,需要有系统签名;2,需要有INSTALL_PACKAGE权限。只有同时满足这两个条件,才可以完成静默安装。于是我们的重点是INSTALL_PACKAGE权限和系统签名。在预装APP中查找具有INSTALL_PACKAGES权限的APP进行分析,此分析的详细描述在4.1.5中。

4.1.5  应用程序通过调用系统接口pm.installpackage安装apk方式分析

这种安装方式也是静默安装,嫌疑也比较大。经过我们深入分析,调用pm.installpackage的应用程序必须同时2个条件:1,需要有系统签名;2,需要有INSTALL_PACKAGE权限。只有同时满足这两个条件,才可以完成静默安装。4.1.4中也需要这两个条件。

 

下面是系统中具有这2个条件的全部应用:

Package [com.android.launcher]

Package [com.lenovo.ota]

Package [com.lenovo.FileBrowser.Pad]

Package [com.android.packageinstaller]

Package [com.lenovo.lsf.device]

Package [com.lenovo.lsf]

Package [com.lenovo.lsf.pay.phone]

Package [com.lenovo.ue.service]

 

通过查询这些app,确认其功能:

Package [com.android.launcher]:主要用于开机时系统应用的安装,是android系统级应用,启动各个系统应用程序。排除这个应用,原因是不会网络下载安装,并且所有的android系统都会有这个应用。

Package [com.lenovo.ota]:主要用于OTA系统升级时安装应用程序,OTA服务器在联想内部,并且跟前端沟通,我们的系统没有通过OTA升级过。排除这个应用。

Package [com.lenovo.FileBrowser.Pad]:主要用于文件管理器安装应用程序,这种4.1.1中分析过,排除这个应用。

Package [com.android.packageinstaller]:这个应用是系统提供的主要用于和用户交互安装应用程序。排除这个应用。

 

剩下的应用存在问题的可能性比较大,而且都是联想的应用。

Package [com.lenovo.lsf.device]

Package [com.lenovo.lsf]

Package [com.lenovo.lsf.pay.phone]

Package [com.lenovo.ue.service]

 

通过调查联想的这些应用,发现这些应用确实存在一些漏洞。官方已修补了版本号高于 9.4.0.88 的应用程序。而我们的应用版本是V4.6.6.2368。

下面是联想官方2017-12-01日提供的安全公告。

具体详见http://iknow.lenovo.com.cn/detail/dc_166723.html

 

Lenovo Android平板电脑与Lenovo VIBE、Moto和ZUK移动电话远程执行代码漏洞。

Lenovo 安全公告:LEN-15374

潜在影响:远程执行代码

严重性

影响范围:所有 Lenovo Android 平板电脑及以下移动电话:所有 Lenovo VIBE 与 ZUK 设备及 Lenovo 分发的 Moto M(XT1662)。

CVE IDCVE-2017-3758、CVE-2017-3759、CVE-2017-3760、CVE-2017-3761

摘要描述:

已确定 Android 设备(移动电话和平板电脑)用于下载应用程序的 Lenovo Store 存在漏洞。还在 Lenovo 设备上其他几个不同 Android 应用程序(包括 Lenovo Store)所用 Lenovo Service Framework(LSF)Android 应用程序中发现了一些漏洞。LSF 用于接收来自 Lenovo 服务器的推送通知,如产品促销(如应用程序下载推荐)、新闻、声明、调查等。在某些情况下,推动通知用于简化应急应用程序的修复和升级。恶意软件可能利用已确定的这些漏洞将代码从任意服务器下载到设备,继而远程执行代码。这些漏洞同时影响 Lenovo Store 本身(服务器)和 Lenovo Store 与 Lenovo Service Framework Android 应用程序(客户端)。

1、CVE-2017-3758 – 可利用对 Lenovo Service Framework 应用程序中若干 Android 组件的不当访问控制远程执行代码。

2、CVE-2017-3759 – Lenovo Service Framework Android 应用程序在不执行恰当验证的情况下即接受来自服务器的某些响应。这样应用程序容易遭受中间人攻击,从而可能导致远程执行代码。

3、CVE-2017-3760 – Lenovo Service Framework Android 应用程序在对下载的应用程序和/或数据执行完整性验证时,使用一组不安全的凭证。这样应用程序容易遭受中间人攻击,从而可能导致远程执行代码。

4、CVE-2017-3761 – Lenovo Service Framework Android 应用程序在未对外部输入执行恰当清理的情况下执行某些系统命令。在某些情况下,这可能导致注入命令,继而导致远程执行代码。

    1. 分析病毒apk的来源

病毒的来源很可能就是利用了这些应用的漏洞,而这些漏洞所在的应用又有INSTALL_PACKAGES 权限和系统签名,所以能够实现静默安装一些病毒应用。

 

  1. 问题解决

修复这些漏洞。官方的解决方法如下:

应采取哪些措施进行自我保护:

Lenovo Service Framework 应用程序

已解决了版本 V4.8.0.2403 中的漏洞;设备建立连接后,应用程序将自动更新。用户可通过打开菜单“Settings (设置)--> Apps(应用程序)--> Device Service(设备服务)”验证版本是否正确。

 

 

发布了65 篇原创文章 · 获赞 17 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/lancelots/article/details/82992448