Android恶意软件模拟器检测技术
  

刘病已 2712

{{ttag.title}}

前言

下面的报告来自SophosLabs实验室的Android安全专家陈宇,还有来自Android组的成员William Lee, Jagadeesh Chandraiah and Ferenc László Nagy的帮助。

随着Android恶意软件的数量的持续增长,它紧随Windows下的应用采用的用于逃脱模拟器的技术,用来防止被动态分析。在这篇文章中,我们将展示一些用于模拟器检测的技术。

模拟器是一种可以允许一台电脑(主机)模拟另外一台电脑(客户机)的硬件或软件。通常,它允许主机系统运行软件或者使用外部设备来模拟器客户机系统。在安全方面,用它很容易检测恶意软件的行为,这也是为什么恶意软件的作者很想避免运行于模拟器。

模拟器检测技术在许多不同的Android恶意软件家族中均被发现了,最近的一款是在Google Play发现的Android加载广告的恶意软件。

于是,下面是SophosLabs实验室发现的6中常用的模拟器检测技术:

1. 检测手机服务信息

所有模拟器检测的关键是确定模拟器和真机设备的运行环境之间的差异。首先,模拟器上面的设备ID、手机号、IMEI号和IMSI号都不同于真机设备。

android.telephony.TelephonyManager类提供了用于获取设备信息的方法。Android应用程序可以通过该类里面的方法用于检测手机服务和状态,访问一些运行商信息,注册用于接收手机状态变化通知的监听器。例如,你能用getLine1Number方法来获取卡1上的手机号信息。在模拟器上面,它将是“1555521”后面紧跟模拟器端口数字。例如如果模拟器端口是5554,它将返回15555215554。

Andr/RuSms-AT使用下面这种代码用于检测模拟器:

2. 检测制造商信息

我们发现许多恶意软件家族通过检测制造商信息来判断它是否运行在模拟器中。例如,下面这款银行类的恶意软件使用如下的模拟器检测代码:

其中的字符串被加密了,解密后的内容如下:

上面的方法是被一个广播接收器调用的。在这款APP的manifest文件中,这个广播接收器被定义为用于接收android.intent.action.BOOT_COMPLETED和 android.intent.action.SCREEN_ON事件。这意味着它将在手机启动时或者被唤醒时调用。这是恶意软件常用来启动它们恶意行为的地方。但是,这款恶意软件在模拟器检测函数返回true时将什么都不做,如下所示:

3. 检测系统属性

另外一种方法是检测系统属性。模拟器上面的一些系统属性和真机上面的不同。例如,设备厂商、硬件和model。下面这张表展示了模拟器上面一些系统属性的值:

4. 检测模拟器相关文件

这是另外一种在恶意软件样本中使用的技术。它们检测QEMU (Quick Emulator)或者其他模拟器相关的文件是否存在。例如,下面的代码片段在Andr/Pornclk变种中发现的。

5. 检测调试器和安装器

下面这种方法不是为了检测模拟器,但是主要目的也是为了阻止动态分析。像下面这款诈骗广告软件,它使用Debug.isDebuggerConnected()和Debug.waitingForDebugger()来检测是否存在调试器。更有趣的是,它同时也通过getInstallerPackageName获取安装器来查看它是否是通过Google Play安装的(com.android.vending)。因此,像大部分的逆向分析者一样,如果你是通过adb安装应用程序到设备上的,这个应用程序就不会运行了。

6. 时间炸弹

下面是另外的一种方法,许多恶意软件/广告软件利用这种方法在被动态分析时隐藏它们自身。在安装后,它们在等待指定的时间后才启动Activities。例如,某款恶意广告软件中发现了下面的配置文件:

  • “settings”: {
  •    “adDelay”: 180000,
  •    “firstAdDelay”: 86400000,
  •    “unlockDelay”: 2,
  •    “bannerDelay”: 180000,
  •    “bannerPreDelay”: 10000,
  •    “bannersPerDay”: 25
  • ,

firstAdDelay是第一条广告被投递到客户端的毫秒时间,在上面的例子中是24小时。这也可以防止用户怀疑。

我们相信,android恶意软件和恶意广告软件的作者将会继续编写模拟器检测技术的代码,同时他们也已经获得了一定程度的成功。安全公司必须使用较好的检测方法匹配它们。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

如果真的有奇迹 发表于 2019-5-16 19:18
  
好帖,赞一个!!!
发表新帖
热门标签
全部标签>
每日一问
功能体验
技术笔记
新版本体验
技术咨询
2023技术争霸赛专题
技术盲盒
干货满满
标准化排查
产品连连看
GIF动图学习
信服课堂视频
安装部署配置
秒懂零信任
自助服务平台操作指引
技术晨报
深信服技术支持平台
答题榜单公布
卧龙计划
通用技术
畅聊IT
答题自测
云计算知识
排障笔记本
安全攻防
每日一记
sangfor周刊
资源访问
社区帮助指南
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
用户认证
原创分享
解决方案
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
纪元平台
华北区拉练
天逸直播
以战代练
文档捉虫活动
山东区技术晨报
齐鲁TV
华北区交付直播
每周精选

本版达人

SANGFOR...

本周分享达人