gtxyzz

Google Play核心库漏洞影响上百个Google Play应用

gtxyzz 安全防护 2022-11-28 354浏览 0

今年8月,有研究人员发现了Google Play Core Library核心库中发现了一个安全漏洞,攻击者利用该漏洞可以在任意应用范围内进行本地代码执行。本文从安全角度分析漏洞的影响。

背景

Google Play Core Library核心库是app与Google Play应用商店运行时的接口。利用Core Library核心库可以实现以下功能:

  • 下载其他语言资源;
  • 管理特征模块的分发;
  • 管理资产包的分发;
  • 触发app 内的更新;
  • 请求app内的检查。

Google Play Core Library核心库是应用本身与Google Play服务之间交互的网关,从动态代码加载到本地资源分发,再到与Google Play 审查机制的交互。

许多主流的应用常用的库包括:

  • Google Chrome
  • Facebook
  • instagram
  • WhatsApp
  • SnapChat
  • Booking
  • Edge

Google Play应用商店中,Facebook和instagram截止目前的下载了分别超过50亿和10亿。

CVE-2020-8913

在每个应用的沙箱中,都有2个文件夹:一个存放从Google Play中接收到的验证过的文件,一个存放没有经过验证的文件。从Google Play服务下载的文件会进入验证文件夹,而从其他源下载的文件会被送到非验证的文件夹。当文件写入验证文件夹后,就会与加载和执行它的Google Play core核心库来交互。

另外一个特征允许其他源将文件推送到应用的沙箱中。但这有一些限制:文件会被推送到非验证的文件夹,但这个过程不是库自动处理的。

该漏洞利用了以上2个特征,使用了文件遍历。当第三方源推送文件到另一个应用后,就需要提供要写入的文件的路径。如果攻击者使用文件便利(../verified_splits/my_evil_payload.apk),payload就会写入验证过的文件夹,会自动加载到有漏洞的应用并在该范围内执行。谷歌已经于2020年4月6日修复了该漏洞。

Google Play核心库漏洞影响上百个Google Play应用

图 1 – 攻击链

关于漏洞的更多技术细节参见:

https://blog.oversecured.com/Oversecured-automatically-discovers-persistent-code-execution-in-the-Google-Play-Core-Library/

漏洞影响

如果把这些使用Google Play Core library核心库的主流应用和本地代码执行漏洞结合起来,就会发现其中的威胁。如果有恶意应用利用了该漏洞,就可以在应用程序中实现代码执行,获得有漏洞的应用相同的访问权限。比如:

  • 向银行应用中注入代码来获取凭证信息,同时利用SMS 权限来窃取双因子认证码;
  • 向企业APP中注入代码来获取企业资源的访问权限;
  • 向社交媒体应用中注入代码来监控受害者,使用位置权限来追踪设备;
  • 向即时应用中注入代码来获取所有消息,也可以以受害者名义发送消息。

因为该漏洞在4月已经修复了,那么威胁在哪里呢?答案就是因为补丁需要由开发者推送到应用中。由于这是客户端的漏洞,每个开发者需要获取最新版本的库,并插入到应用中。

从该漏洞发布后,研究人员就开始监控这些有漏洞的应用。今年9月份,SandBlast Mobile分析发现有13%的Google Play 应用程序使用了该库,这些应用中有8%是有漏洞的。与9月份的版本相比,当前版本中仍然有很多的应用受到该漏洞的影响。其中包括很多大公司的应用:

  • 社交应用 – *Viber
  • 旅游应用 – *Booking
  • 商业应用 – ***Cisco Teams
  • 地图和导航应用 – Yango Pro (Taximeter), **Moovit
  • 约会应用 – **Grindr, OKCupid
  • 浏览器 – Edge
  • 小工具 – Xrecorder, PowerDirector

本文发布之前,研究人员已经通过了以上受影响的漏洞APP尝试,截止目前,Viber、Booking、Grindr、Moovit、Cisco teams都已经更新。

Demo

Demo 视频参见:https://www.youtube.com/embed/Dfa8JEvnteY

如Demo 视频所见,漏洞利用非常容易。唯一需要做的就是创建一个hello world应用,调用有漏洞的APP 中的exported intent来将文件推送到文件便利路径的验证过的文件夹中。在Demo 视频中,研究人员使用了有漏洞的Google Chrome 应用进行测试,并创建了一个payload来获取书签信息。

本文翻

继续浏览有关 安全 的文章
发表评论