导语:如何拿下Gooligan一共分为三个部分,第一部分对Gooligan起源和工作原理的初步分析,第二部分对其内部工作原理进行深度分析,本部分讲述不同的币值化策略和拿下Gooligan的过程。

货币化策略

Gooligan的目标是通过两个主要的欺诈方案进行获利,分别是广告欺诈和Android app boosting。

广告欺诈

如上图所示,Gooligan会周期性的使用root权限来覆盖当前用户视图的合法app的广告弹窗。这样,Gooligan就了解了用户当前在看什么,可以监控包括屏幕开启在内的不同的重要活动。

因为Gooligan并没有滥用谷歌的广告网络,使用的是一种gazillion HTTP重定向,所以研究人员并没有去关注这些广告活动的有效性以及背后的运营者。但研究人员有理由相信广告欺诈的收入是Googligan收入的主要来源。

App Boosting

Gooligan在受感染的设备商获利的另一种方式是执行安卓app boosting。app boosting包是应用商店中特定查询的结果集。查询会被用来对app在特定项目里进行排名,该技术已经应用于应用商店优化(App Store Optimization)指南中了。

Gooligan窃取OAuth token然后操作应用商店的一个原因是业界采用的防护手段在检测虚假综合安装的有效性。Gooligan开发者尝试用真实的设备和真实的账户来绕过检测系统。研究人员检测到了所有的虚假安装,并下架了这些app和开发者帐户。

app boosting一共分为4步:

· Token窃取。恶意软件会从手机的账户中窃取手机的长期token。

· 接收指令。Gooligan向中央C&C服务器报告手机信息后,会接收推送那些app的响应消息。因为Gooligan开发者可以访问没有被攻破的手机获取手机的信息,然后用这些信息来伪造虚假的请求消息。

· Token交换。长期token会被用来交换一个短期的token,Gooligan用这个短期的token可以访问应用商店。幸运的是Gooligan并没有窃取用户数据,也没有请求其他的数据。

· Boosting。通过应用商店进行虚假搜索,安装和评论。

清理(整治)

清理Gooligan是很复杂的,主要原因有两个。一是在感染阶段,会重设工厂模式达到长期驻留的目的,这样的话,恢复出厂设置就不足以解决一些老的没有补丁升级的设备的感染问题。二是Oauth token已经被窃取并上传到Googligan服务器了。

要求用户对设备进行刷机是不现实的,OTA更新的话需要的时间又很长。因此,研究人员决定与第三方协作采取另外一种方式拿下Googligan。

拿下Googligan

通过影子服务器和域名注册者的信息,研究人员建立了一个sinkhole服务器,并将其指向影子服务器控制的IP地址而不是Gooligan开发者控制的IP。这确保了受感染的设备不会泄漏token或者接受广告指令,因为这些设备会连接到sinkhole服务器而不是真实的C&C服务器。事实证明,这种措施是非常成功的,2017年它拦截了超过5000万尝试连接Gooligan服务器的请求。

通知用户

修复的第二个部分是关闭泄漏的token并通过用户,这样就可以使被黑的账户恢复正常。像这样大规模的通知用户是非常复杂的,因为:

· 以一种及时的方式通知多个设备是很困难的。研究人员使用了SMS,邮件,安卓通知等方式向用户通知。

· 要以一种用户可以理解和接受的方式通知用户也是非常重要的。清楚地解释发生了什么并且简单的使用重复等策略。

最终的通知如下图所示。

通知的内容和帮助页可以翻译成用户选择的语言,可以翻译成超过20种语言。

总结

因为Gooligan的规模和使用的技术,所以Gooligan是一款比较难处理的恶意软件。通过跨行业的努力和多团队协作,最终研究人员成功拿下Gooligan,并向用户推送安全提醒信息,确保用户终端的安全。

源链接

Hacking more

...