导语:趋势科技的研究人员最近发现了一些新的Android恶意软件,可以通过Toast Overlay攻击手法悄悄地在被攻击的设备上安装TOASTAMIGO恶意软件,目前它已被趋势科技命名为ANDROIDOS_TOASTAMIGO。截至2017年11月6日,该恶意软件已利用Android的辅

Mobile04-200x200.jpg

趋势科技的研究人员最近发现了一些新的Android恶意软件,可以通过Toast Overlay攻击手法悄悄地在被攻击的设备上安装TOASTAMIGO恶意软件,目前它已被趋势科技命名为ANDROIDOS_TOASTAMIGO。截至2017年11月6日,该恶意软件已利用Android的辅助功能被安装了超过50万次,至少从现在的分析来看,TOASTAMIGO恶意软件已具备了广告点击、应用程序安装、反侦察以及持久性攻击的能力。

Toast Overlay攻击手法

Toast Overlay攻击需要借用其他正在运行的应用程序,窗口或进程,来叠加Android视图。 Toast Overlay攻击常用的方法就是进行钓鱼攻击,用户自以为点击了正常的窗口或程序,其实这些窗口或程序是被动过手脚的。还记得今年9月份Android安全公告中披露的CVE-2017-0752漏洞吗?他就是利用Toast信息帮助恶意软件获取管理员权限或访问安卓辅助功能。

而这之后,关于使用Toast进行攻击的消息就中断了,并未出现把该攻击制成专门的恶意软件的样本,直到最近TOASTAMIGO的发现。和许多恶意软件一样,TOASTAMIGO由于其所具有的攻击性能,已经在传播过程中,处于不同的攻击目的而出现了各种变异版本。可以这么说,除了Android最新版本(8.0/Oreo)外,所有低于该版本的用户均可能受到该漏洞的影响,因此建议低版本的用户及时升级系统。

下图就是Toast Overlay攻击原理图,左边是一个用肉眼看起来很正常的视图,但其实在用户点击的一刹那,恶意软件的覆盖窗口就会叠加在正常的视图上,从而触发辅助功能,获得管理员权限访问,进而完全控制设备。

1.png

下图就是出现在Google Play上的几款恶意应用程序:

2.png

传播渠道

通过overlay攻击,一个已安装的恶意应用程序可以欺骗用户授权应用程序设备管理员权限。有了这个,它就有能力发动破坏性的攻击,包括:

1.锁定设备的屏幕,
2.重置设备PIN,
3.清除设备的数据,
4.阻止用户卸载App。

但比较讽刺的是,TOASTAMIGO所伪装的合法应用程序竟然号称可以用PIN码保护设备安全。这样,安装完成后,恶意软件就可以诱使用户启用Android辅助服务,并授予设备管理员权限或执行其他危险的操作。如果这些权限被授予,那么就可以在设备上发起一系列强大的攻击,包括窃取证书、静默安装应用程序,以及为了勒索赎金将设备锁定。TOASTAMIGO之所以要先获取辅助服务权限,就是为了避免被Android的检测机制发现,如下图所示,这时表面上的窗口看起来是一个安全分析的过程,其实此时,恶意程序已经在后台悄悄的在进行安装,你会纳闷难道用户看不到安装提示吗?确实看不到,因为此时恶意程序已经拥有了用户权限。

3.png

攻击过程

TOASTAMIGO之所以会出现在Google Play中,是因为它被打包在了合法的应用程序中。如下图所示,请注意包装结构中的字符串:“amigo”和“goami”,它们都在“com”之下,这意味着这两个应用程序是由同一个开发人员开发的。

4.png

在图3中,你看到视图显示的是 “analyzing the unprotected apps.”的提示,这标志着Toast Overlay攻击已经开始了。下图是研究人员找到的攻击函数的代码段,可以看出,该窗口其实就是一个TOAST窗口,并在恶意软件中设置为全屏显示。让我们来看看代码段中的字符串代表什么意思:

1.v2.type的值为2005,代表的是TYPE_TOAST,

2.v2.SystemUiVisibility的值为1280,代表的是SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN(全屏显示)和SYSTEM_UI_FLAG_LAYOUT_STABLE(状态栏依然可见,顶端布局部分会被状态遮住)。

3.v2.flags的值意味着FLAG_FULLSCREEN(全屏显示)和FLAG_NOT_FOCUSABLE(不获得焦点)。

5.png

要发起Overlay攻击,恶意软件通常需要请求“draw on top”权限。然而,实际情况是,如果你下载的软件是通过Google Play,就不需要这个权限,目前除了8.0(Oreo)以外的所有Android版本,实施Overlay攻击,压根就不需要请求“draw on top”权限。

在分析过程中,为了方便,研究人员重新设计了一些关键函数的功能。后台执行任务的函数doBackgroudTask.getInstance((Context)this).doTask,被设计用于绕过不同Android版本的警告弹窗。

6.png

在Toast窗口下,恶意软件通过执行一些其他函数,来实施一些特定功能,比如阻止用户卸载执行的应用程序:

1.com.photos.android.helper函数用来下载指定的APK。

2.force_stop_MC函数用来强制停止移动安全应用。

3.bgAsprotectDialog函数用来显示操作对话框,,如“Unknown sources”。

4.bgAutoInstallPage_4函数用来通过辅助工具安装APK。

5. Accessibility函数打开其他APK的辅助功能权限。

而以下这3个函数则是维护恶意软件的核心功能的:

1.bgGpAutoProtect函数是用来保持持久性攻击的。

2.bgAsprotectDialog和bgAsprotectPage_4是用来保持辅助服务权限的。

下载和安装的应用程序名为com.photos.android.helper,安装包名称为com.vpn.free.migovpn。研究人员将其更名为AMIGOCLICKER (ANDROIDOS_AMIGOCLICKER):TOASTAMIGO即广告点击攻击的意思。AMIGOCLICKER一旦开始运行后就会全程隐藏,只有在系统的辅助应用列表才能被发现。

7.png

AMIGOCLICKER可以由注册的广播接收器自动启动,也可以由TOASTAMIGO调用AMIGOCLICKER的导出(exported)服务来运行,如下所示,就是AMIGOCLICKER的导出服务。

8.png

下图是调用AMIGOCLICKER服务的代码段:

9.png

AMIGOCLICKER也经过了打包处理,研究人员分析它的导出服务,发现它将首先通过访问远程服务器来获取最新的控制信息,然后根据设备的当前网络连接提供一个代理服务器,这对于某些无法访问Admob和Facebook的地区来说,代理还是有效的。以下是AMIGOCLICKER的主要行为分析,与TOASTAMIGO有一些相似之处:

1.force_stop函数用来强制停止安全的应用程序。

2.open_device_manager函数用来获取设备管理员权限以防止它被卸载。

3.bgDeviceDeactivate函数用来防止设备管理员权限被禁用。

4.bgGpAutoProtect函数用来防止应用程序被卸载。

5.autoUninstall_setting函数用来卸载特定的软件包。

6.bgAsprotectDialog函数用来保持其辅助权限。

7.bgAsprotectPage_4函数用来保持其辅助权限。

8.bgAutoCancelDialog函数用来点击系统警告窗口的取消按钮。

9.bgAutoUninstallOnDesktop函数用来点击系统警告窗口的卸载按钮。

10.bgAutoSureDialog函数用来在接收指定的系统对话框时点击按钮。

11.collect_gp_account函数用来收集受害者的Google帐户信息。

12.bg_auto_click_fb函数用来点击已加载的Facebook广告,实施广告点击攻击。

13.gp_search_input_aso action1函数用来在Google Play中进行输入和搜索。

14.gp_search_input_aso action1函数用来在Google Play上给进行自我刷屏,比如为含有自己的恶意软件进行五星好评。

缓解措施

由于TOASTAMIGO功能复杂,再加上其独特的攻击方式,使其成为攻击者的最爱。如果任由其发展下去,则其攻击功能很可能变异为更具威胁的网络攻击。由于TOASTAMIGO和AMIGOCLICKER会利用Android的辅助功能来执行任何操作,比如在获取远程服务器的命令后,此恶意软件可能会随时自行更新逃避检测。

由于所有系统版本<8.0的Android设备都受到这个攻击的影响,所以最彻底的办法就是建议大家尽快进行系统升级。如果由于某些原因无法升级,请点此查看2017年9月份Android安全公告中发布的CVE-2017-0752漏洞的补丁。

源链接

Hacking more

...