译者:Janus情报局
预估稿费:180RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
简介
近期,趋势科技发现了一款新的恶意软件,这款恶意软件利用Toast Overlay攻击,在受影响的设备上默默安装其他恶意软件——TOASTAMIGO。目前,趋势科技将这个恶意软件标记为ANDROIDOS_TOASTAMIGO。截止2017年6月,其中一个恶意应用程序已经被下载安装了50多万次,它利用Android的Accessibility(辅助)功能,使其具有广告点击、应用程序安装、自我保护/持久性功能。
Overlay攻击需要在其他运行的应用、窗口或进程上绘制和叠加Android视图(例如图像或者按钮)。Toast Overlay攻击的典型场景是,欺骗用户点击攻击者指定的非法的窗口或按钮。Toast Overlay技术之前我们有分享过,利用的是CVE-2017-0752这个漏洞。“Toast”窗口(TYPE_TOAST)是Android上支持的overlay类型之一,用于显示其他应用程序的通知。
而TOASTAMIGO是我们看到的第一款将CVE-2017-0752真正实现并应用到实战中的样本,这与之前很多的恶意软件一样,我们一定会看到该威胁的微调版本(以及其下载/安装的另一款恶意应用)——鉴于此时恶意软件的相对“低调”的功能——或者被其他网络犯罪分子所模仿。
除了Android最新版本(8.0/Oreo)外,所有低版本的用户均受到该漏洞的影响,因此建议低版本设备的用户及时打补丁。
图1 Toast Overlay攻击原理图:一个看似正常的图像(左)叠加在恶意软件触发的实际操作上,例如请求辅助功能
图2 谷歌商店上架的恶意应用
感染链
具有讽刺意味的是,这种恶意软件伪装成合法的应用程序,号称可以用PIN码保护设备应用安全。安装后,这些应用会通知用户,应用正常运行需要被授予辅助服务权限。当然,这些都是恶意软件的诡计,他们为了躲避Android的对抗策略,要求应用程序拥有明确的用户权限。在授权后,应用会启动一个窗口,表明可以“分析”应用程序。而在这个窗口背后,应用程序会执行操作或指令,包括安装第二个恶意应用(因为它已经拥有了权限)。
图3 恶意软件“运行时间”截图
技术分析
在谷歌商店上架前,恶意应用就已经被打包好了,如下图所示。注意,包“amigo”和包“goami”,它们都在“com”之下,这说明这两个应用都是同一个开发者开发的。
图4 恶意软件包结构图
当应用提示“analyzing the unprotected apps.”时,Toast Overlay攻击已经被执行了。下面的截图展示了这个函数的代码段。实际上,这是一个TOAST-type的窗口,并在恶意软件中设置为全屏显示。
· v2.type值为2005表明,v2.type是TYPE_TOAST类型
· v2.SystemUiVisibility值为1280,代表SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN(Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。),SYSTEM_UI_FLAG_LAYOUT_STABLE(SYSTEM_UI_FLAG_LAYOUT_STABLE)
· v2.flags的值表示FLAG_FULLSCREEN(设置全屏)和FLAG_NOT_FOCUSABLE(不许获得焦点)
图5 应用利用Toast Overlay攻击的代码段
想要发起Overlay攻击,恶意应用首先要请求“draw on top”权限;这是Android 6.0以上版本的案例。但是如果从谷歌商店安装的话,它们就不需要请求这个权限。然而,我们发现,除了Android 8.0,Toast Overlay攻击(反过来,使用这些技术的恶意软件)并不需要特定的权限或条件。
执行恶意任务
为了方便阅读,我们在分析应用代码的过程中对部分关键函数重新命名。函数doBackgroudTask.getInstance((Context)this).doTask后台执行某些任务,并且被设计用于绕过不同Android版本的警告弹窗。
图6 恶意软件后台任务模块代码片段(高亮显示)
在Toast窗口下,恶意软件也会执行一些其他函数,包括采取措施防止被移除:
· com.photos.android.helper:下载指定的Android应用安装包(APK)
· force_stop_MC::强制停止移动安全应用运行
· bgAsprotectDialog::准备提示弹窗,如“Unknown sources”
· bgAutoInstallPage_4::利用辅助服务安装应用
· Accessibility::为其他APK开启辅助功能权限
这些函数用于维护恶意软件的核心服务:
· bgGpAutoProtect: 防止被卸载
· bgAsprotectDialog and bgAsprotectPage_4: 维持辅助服务权限
下载和安装的应用被命名为com.photos.android.helper,包名为com.vpn.free.migovpn。我们将它重命名为AMIGOCLICKER (ANDROIDOS_AMIGOCLICKER):TOASTAMIGO的分支包含广告点击例程。AMIGOCLICKER运行后就会自动隐藏,只有在系统的辅助应用列表才能找到。
图7 AMIGOCLICKER在受感染设备的辅助应用列表中
AMIGOCLICKER可以通过注册广播接收器自动启动。它也可以由TOASTAMIGO调用AMIGOCLICKER的exported服务,如下图所示:
图8 AMIGOCLICKER的exported服务
图9 调用AMIGOCLICKER服务的代码段
AMIGOCLICKER也是被打包的,我们深入分析了exported核心服务,并得出了以下结论。它首先通过访问远程服务器获取最新的控制信息。然后,它会根据设备当前的网络连接提供一个代理,对于某些无法访问Admob和Facebook的地区来说,代理还是有效的。以下是AMIGOCLICKER的主要行为,它与TOASTAMIGO也有很多相似之处:
· force_stop: 强制停止移动安全应用运行
· open_device_manager: 打开设备管理员以防止被卸载
· bgDeviceDeactivate: 防止设备管理员被禁用
· bgGpAutoProtect: 防止应用被卸载
· autoUninstall_setting: 卸载指定的包
· bgAsprotectDialog: 保持它的辅助服务权限
· bgAsprotectPage_4: 保持它的辅助服务权限
· bgAutoCancelDialog: 点击系统警告窗口的取消按钮
· bgAutoUninstallOnDesktop: 点击系统警告窗口的卸载按钮
· bgAutoSureDialog: 当接收到指定系统窗口时点击按钮
· collect_gp_account: 收集受害者谷歌账户信息
· bg_auto_click_fb: 点击加载的Facebook广告
· gp_search_input_aso action1: 在谷歌商店输入和搜索
· gp_search_input_aso action1: 在谷歌商店为该恶意软件进行五星好评
缓解措施
这些恶意软件的恶意功能,结合一个相对独特的攻击向量,使它们成为可信的威胁。然而,事实上,前面所提到的功能,可以被修改为更具危害性的网络攻击。AMIGOTOAST和AMIGOCLICKER可以从远程服务器获取指令进行更新,滥用Android的辅助功能,可以做很多事情。
谷歌在今年9月份的Android安全公告中已经修复了该漏洞。用户需要及时对系统打补丁,更重要的是,要养成良好的移动安全习惯,尤其是在工作场所。然而,除了Nexus和Pixel,其他Android设备的更新都是碎片化的,因此,用户应主动联系设备的厂商,及时获取更新补丁。
趋势科技已经向谷歌商店上报了这一问题,这些应用已经从谷歌商店下架。
IoCs
可访问:
http://cloud.appscan.io/monitor.html?id=5a0559700272380e45a7352