GooglePlay核心库中的漏洞影响了数百个GooglePlay应用程序代码的执行。本文从安全角度分析漏洞的影响。背景GooglePlay核心库是应用程序和GooglePlay应用程序商店运行时之间的接口。CoreLibrary核心库可用于实现以下功能:下载其他语言资源;管理功能模块的分发;管理资产包的分发;在应用程序内触发更新;在应用程序内请求检查。GooglePlay核心库是应用本身与GooglePlay服务交互的网关,从动态代码加载到本地资源分发,再到与GooglePlay审核机制的交互。众多主流应用常用的库包括:GoogleChromeFacebookInstagramWhatsAppSnapChatBookingEdge在GooglePlay应用商店中,Facebook和Instagram迄今为止的下载量分别超过50亿和10亿。CVE-2020-8913在每个应用程序的沙箱中,有2个文件夹:一个存储从GooglePlay收到的已验证文件,另一个存储未验证文件。从GooglePlay服务下载的文件会转到经过验证的文件夹,而从其他来源下载的文件会转到未经验证的文件夹。当文件写入身份验证文件夹时,它会与加载并执行它的GooglePlay核心库交互。另一个功能允许其他来源将文件推送到应用程序的沙箱中。但这有一些限制:文件将被推送到未验证的文件夹,但图书馆不会自动处理此过程。该漏洞利用了上述两个特性,利用了文件遍历。第三方源向其他应用推送文件时,需要提供写入文件的路径。如果攻击者使用方便的文件(../verified_splits/my_evil_payload.apk),有效负载将被写入已验证的文件夹,自动加载到易受攻击的应用程序并在该范围内执行。谷歌已于2020年4月6日修复了该漏洞。图1–攻击链有关该漏洞的更多技术细节,请参见:https://blog.oversecured.com/Oversecured-automatically-discovers-persistent-code-execution-in-the-Google-Play-Core-Library/漏洞影响如果将这些使用GooglePlayCore库核心库和本机代码执行漏洞的主流应用结合起来,就会发现威胁。如果恶意应用程序利用此漏洞,它可以在应用程序内执行代码,获得与易受攻击的应用程序相同的访问权限。例如:向银行应用程序注入代码以获取凭证信息,同时利用短信权限窃取双因素验证码;向企业APP注入代码,获取企业资源;将代码注入社交媒体应用程序以监视受害者,使用位置权限来跟踪设备;将代码注入即时应用程序以获取所有消息,也可以代表受害者发送消息。漏洞既然在四月份修复了,那么威胁在哪里呢?答案是补丁需要由开发者推送到应用程序中。由于这是一个客户端漏洞,每个开发人员都需要获取最新版本的库并将其插入到应用程序中。自漏洞发布以来,研究人员一直在监控这些易受攻击的应用程序。9月,SandBlastMobile分析发现13%的GooglePlay应用程序使用了该库,其中8%的应用程序存在漏洞。与9月版本相比,当前版本中受此漏洞影响的应用仍然较多。其中包括来自许多大公司的应用程序:社交应用程序–*Viber旅游应用程序–*预订业务应用程序–***CiscoTeams地图和导航应用程序–YangoPro(Taximeter),**Moovit约会应用程序–**Grindr,OKCupid浏览器–EdgeGadgets——Xrecorder、PowerDirector在本文发表之前,研究人员已经通过上述受影响的易受攻击的应用程序。至此,Viber、Booking、Grindr、Moovit、Cisco团队全部更新完毕。请参见DemoDemo视频:https://www.youtube.com/embed/Dfa8JEvnteY正如您在Demo视频中所见,利用非常简单。唯一需要做的是创建一个helloworld应用程序,它调用易受攻击的应用程序中的导出意图,将文件推送到文件便捷路径的经过身份验证的文件夹。在演示视频中,研究人员使用了一个易受攻击的谷歌浏览器应用程序进行测试,并创建了一个有效负载来获取书签信息。本文翻译自:https://research.checkpoint.com/2020/vulnerability-in-google-play-core-library-remains-unpatched-in-google-play-applications/
