Google Play核心庫漏洞影響上百個(gè)Google Play應(yīng)用
今年8月,有研究人員發(fā)現(xiàn)了Google Play Core Library核心庫中發(fā)現(xiàn)了一個(gè)安全漏洞,攻擊者利用該漏洞可以在任意應(yīng)用范圍內(nèi)進(jìn)行本地代碼執(zhí)行。本文從安全角度分析漏洞的影響。
背景
Google Play Core Library核心庫是app與Google Play應(yīng)用商店運(yùn)行時(shí)的接口。利用Core Library核心庫可以實(shí)現(xiàn)以下功能:
- 下載其他語言資源;
- 管理特征模塊的分發(fā);
- 管理資產(chǎn)包的分發(fā);
- 觸發(fā)app 內(nèi)的更新;
- 請(qǐng)求app內(nèi)的檢查。
Google Play Core Library核心庫是應(yīng)用本身與Google Play服務(wù)之間交互的網(wǎng)關(guān),從動(dòng)態(tài)代碼加載到本地資源分發(fā),再到與Google Play 審查機(jī)制的交互。
許多主流的應(yīng)用常用的庫包括:
- Google Chrome
- SnapChat
- Booking
- Edge
Google Play應(yīng)用商店中,F(xiàn)acebook和instagram截止目前的下載了分別超過50億和10億。
CVE-2020-8913
在每個(gè)應(yīng)用的沙箱中,都有2個(gè)文件夾:一個(gè)存放從Google Play中接收到的驗(yàn)證過的文件,一個(gè)存放沒有經(jīng)過驗(yàn)證的文件。從Google Play服務(wù)下載的文件會(huì)進(jìn)入驗(yàn)證文件夾,而從其他源下載的文件會(huì)被送到非驗(yàn)證的文件夾。當(dāng)文件寫入驗(yàn)證文件夾后,就會(huì)與加載和執(zhí)行它的Google Play core核心庫來交互。
另外一個(gè)特征允許其他源將文件推送到應(yīng)用的沙箱中。但這有一些限制:文件會(huì)被推送到非驗(yàn)證的文件夾,但這個(gè)過程不是庫自動(dòng)處理的。
該漏洞利用了以上2個(gè)特征,使用了文件遍歷。當(dāng)?shù)谌皆赐扑臀募搅硪粋€(gè)應(yīng)用后,就需要提供要寫入的文件的路徑。如果攻擊者使用文件便利(../verified_splits/my_evil_payload.apk),payload就會(huì)寫入驗(yàn)證過的文件夾,會(huì)自動(dòng)加載到有漏洞的應(yīng)用并在該范圍內(nèi)執(zhí)行。谷歌已經(jīng)于2020年4月6日修復(fù)了該漏洞。

關(guān)于漏洞的更多技術(shù)細(xì)節(jié)參見:
漏洞影響
如果把這些使用Google Play Core library核心庫的主流應(yīng)用和本地代碼執(zhí)行漏洞結(jié)合起來,就會(huì)發(fā)現(xiàn)其中的威脅。如果有惡意應(yīng)用利用了該漏洞,就可以在應(yīng)用程序中實(shí)現(xiàn)代碼執(zhí)行,獲得有漏洞的應(yīng)用相同的訪問權(quán)限。比如:
- 向銀行應(yīng)用中注入代碼來獲取憑證信息,同時(shí)利用SMS 權(quán)限來竊取雙因子認(rèn)證碼;
- 向企業(yè)APP中注入代碼來獲取企業(yè)資源的訪問權(quán)限;
- 向社交媒體應(yīng)用中注入代碼來監(jiān)控受害者,使用位置權(quán)限來追蹤設(shè)備;
- 向即時(shí)應(yīng)用中注入代碼來獲取所有消息,也可以以受害者名義發(fā)送消息。
因?yàn)樵撀┒丛?月已經(jīng)修復(fù)了,那么威脅在哪里呢?答案就是因?yàn)檠a(bǔ)丁需要由開發(fā)者推送到應(yīng)用中。由于這是客戶端的漏洞,每個(gè)開發(fā)者需要獲取最新版本的庫,并插入到應(yīng)用中。
從該漏洞發(fā)布后,研究人員就開始監(jiān)控這些有漏洞的應(yīng)用。今年9月份,SandBlast Mobile分析發(fā)現(xiàn)有13%的Google Play 應(yīng)用程序使用了該庫,這些應(yīng)用中有8%是有漏洞的。與9月份的版本相比,當(dāng)前版本中仍然有很多的應(yīng)用受到該漏洞的影響。其中包括很多大公司的應(yīng)用:
- 社交應(yīng)用 – *Viber
- 旅游應(yīng)用 – *Booking
- 商業(yè)應(yīng)用 – ***Cisco Teams
- 地圖和導(dǎo)航應(yīng)用 – Yango Pro (Taximeter), **Moovit
- 約會(huì)應(yīng)用 – **Grindr, OKCupid
- 瀏覽器 – Edge
- 小工具 – Xrecorder, PowerDirector
本文發(fā)布之前,研究人員已經(jīng)通過了以上受影響的漏洞APP嘗試,截止目前,Viber、Booking、Grindr、Moovit、Cisco teams都已經(jīng)更新。
Demo
Demo 視頻參見:https://www.youtube.com/embed/Dfa8JEvnteY
如Demo 視頻所見,漏洞利用非常容易。唯一需要做的就是創(chuàng)建一個(gè)hello world應(yīng)用,調(diào)用有漏洞的APP 中的exported intent來將文件推送到文件便利路徑的驗(yàn)證過的文件夾中。在Demo 視頻中,研究人員使用了有漏洞的Google Chrome 應(yīng)用進(jìn)行測(cè)試,并創(chuàng)建了一個(gè)payload來獲取書簽信息。
本文翻譯自:
https://research.checkpoint.com/2020/vulnerability-in-google-play-core-library-remains-unpatched-in-google-play-applications/