导语:Gooligan是2016年利用OAuth的一款安卓恶意软件,研究人员对拿下Gooligan共分为三个部分进行讲解,第一部分是对Gooligan起源和工作原理的初步分析。
2016年11月,安卓恶意软件Gooligan席卷全球,利用OAuth窃取信息。Gooligan的特殊之处在于将OAuth token武器化,这在之前的网络犯罪中是前所未有的。Gooligan最多劫持了超过100万的OAuth token来进行恶意应用商店的安装和检查。
Gooligan恶意软件可以窃取存在漏洞的Android设备上存储的电子邮件地址和身份验证令牌。借助这些信息,攻击者可以劫持您的Google帐户,并从Google应用(包括Gmail,Google相册,Google文档,Google Play,Google云端硬盘和Google套件)访问您的敏感信息。一旦含有Gooligan代码的恶意软件被安装,那么Gooligan会通过欺诈性购买、安装来自Google Play商店的应用并为其评级,而且代替手机所有者提交app评论来为网络罪犯创造收入,同时恶意软件还安装广告软件以获取其他的收入。
OAuth token
OAuth token是在不共享密码的前提下授予应用和设备对在线账号的有限的访问权限。比如,你可以通过OAuth token来允许app读取Twitter的时间线,而不能改变其他的设定和发布的推文。
OAuth flow服务提供给app一个与你想要授权的权限相关的OAuth token。当你登录Google账户时,Google会给你的设备一个token允许设备以你的名义访问Google服务。与之类似,但Gooligan窃取的是一种长期的token,这样就可以在应用商店中伪装成其他的用户。
Gooligan概览
Gooligan是由6大关键组件组成的,分别是:
· 重新封装的app。这是最初的payload,用一款流行的重新封装的应用作为武器。该APK文件植入了第二阶段隐藏或加密的payload。
· 注册服务器。设备被root后会加入僵尸网络,注册服务器会记录加入僵尸网络的设备信息。
· 利用服务器。利用服务器是基于二阶段payload传递root设备所需的服务器。拥有设备信息是必须的,root后的过程是在手机恢复模式中加入后门。
· 欺骗app和广告C&C:这是负责收集泄露的数据和指示恶意软件进行广告投放的基础设施。
· 应用商店app模块:这是允许恶意软件通过应用商店app向应用商店发送命令的注入库。这个复杂的过程是为了防止触发应用商店的保护机制。
· 广告欺骗模块。这是向用户展示广告的模块,这些广告都是善意的,而且找不到广告公司的来源。
起源
分析Gooligan的代码我们发现可以追踪到之前的一些恶意软件家族,因为Gooligan是基于他们的代码库的。虽然追踪到的这些恶意软件家族都与code-wise相关,但研究人员仍无法确定他们背后是不是同一帮人,因为很多的共享的特征在博客上都有讨论。
SnapPea
Gooligan的起源可以追溯到2015年3月的SnapPea广告恶意软件,SnapPea的主要创新点就在于将Kingroot工具武器化。Kingroot是用来root手机和刷写ROM的工具。SnapPea Kingroot工具武器化后会导致一个不同寻常的感染单元:作者会用后门备份应用SnapPea来感染受害者。在安卓设备物理地与受感染设备连接后,恶意SnapPea应用会用Kingroot来root设备然后安装恶意软件。Gooligan是与SnapPea相关的,因为Gooligan也用Kingroot利用工具来root设备,但是是通过远程服务器的形式。
Ghost Push the role model
SnapPea出现几个月后,研究人员发现了迅速成长的最大的安卓僵尸网络——Ghost Push。Ghost Push与SnapPea的区别在于增加了额外的代码,可以在设备重置时也驻留在设备上。长期驻留是在获取root权限后用位于系统分区中的恢复脚本来完成的。这个原理和所用的代码和Snappea是一样的,
总结
Gooligan是一个基于之前恶意代码的恶意软件,并在之前的恶意软件基础上进行了更新和扩展,使用了一种新的攻击类型——OAuth token theft。Gooligan是安卓恶意软件发展史上的一个拐点,是第一个大规模的OAuth犯罪软件。
下一部分内容是对Gooligan内部工作和网络基础设施的深度分析,敬请期待。