今年8月,有研究人員發(fā)現(xiàn)了Google Play Core Library核心庫中發(fā)現(xiàn)了一個安全漏洞,攻擊者利用該漏洞可以在任意應(yīng)用范圍內(nèi)進(jìn)行本地代碼執(zhí)行。本文從安全角度分析漏洞的影響。
背景
Google Play Core Library核心庫是app與Google Play應(yīng)用商店運(yùn)行時的接口。利用Core Library核心庫可以實(shí)現(xiàn)以下功能:
·下載其他語言資源;
·管理特征模塊的分發(fā);
·管理資產(chǎn)包的分發(fā);
·觸發(fā)app內(nèi)的更新;
·請求app內(nèi)的檢查。
Google Play Core Library核心庫是應(yīng)用本身與Google Play服務(wù)之間交互的網(wǎng)關(guān),從動態(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
在每個應(yīng)用的沙箱中,都有2個文件夾:一個存放從Google Play中接收到的驗(yàn)證過的文件,一個存放沒有經(jīng)過驗(yàn)證的文件。從Google Play服務(wù)下載的文件會進(jìn)入驗(yàn)證文件夾,而從其他源下載的文件會被送到非驗(yàn)證的文件夾。當(dāng)文件寫入驗(yàn)證文件夾后,就會與加載和執(zhí)行它的Google Play core核心庫來交互。
另外一個特征允許其他源將文件推送到應(yīng)用的沙箱中。但這有一些限制:文件會被推送到非驗(yàn)證的文件夾,但這個過程不是庫自動處理的。
該漏洞利用了以上2個特征,使用了文件遍歷。當(dāng)?shù)谌皆赐扑臀募搅硪粋€應(yīng)用后,就需要提供要寫入的文件的路徑。如果攻擊者使用文件便利(../verified_splits/my_evil_payload.apk),payload就會寫入驗(yàn)證過的文件夾,會自動加載到有漏洞的應(yīng)用并在該范圍內(nèi)執(zhí)行。谷歌已經(jīng)于2020年4月6日修復(fù)了該漏洞。
圖1–攻擊鏈
關(guān)于漏洞的更多技術(shù)細(xì)節(jié)參見https://blog.oversecured.com/Oversecured-automatically-discovers-persistent-code-execution-in-the-Google-Play-Core-Library/
漏洞影響
如果把這些使用Google Play Core library核心庫的主流應(yīng)用和本地代碼執(zhí)行漏洞結(jié)合起來,就會發(fā)現(xiàn)其中的威脅。如果有惡意應(yīng)用利用了該漏洞,就可以在應(yīng)用程序中實(shí)現(xiàn)代碼執(zhí)行,獲得有漏洞的應(yīng)用相同的訪問權(quán)限。比如:
·向銀行應(yīng)用中注入代碼來獲取憑證信息,同時利用SMS權(quán)限來竊取雙因子認(rèn)證碼;
·向企業(yè)APP中注入代碼來獲取企業(yè)資源的訪問權(quán)限;
·向社交媒體應(yīng)用中注入代碼來監(jiān)控受害者,使用位置權(quán)限來追蹤設(shè)備;
·向即時應(yīng)用中注入代碼來獲取所有消息,也可以以受害者名義發(fā)送消息。
因?yàn)樵撀┒丛?月已經(jīng)修復(fù)了,那么威脅在哪里呢?答案就是因?yàn)檠a(bǔ)丁需要由開發(fā)者推送到應(yīng)用中。由于這是客戶端的漏洞,每個開發(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
·約會應(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)建一個hello world應(yīng)用,調(diào)用有漏洞的APP中的exported intent來將文件推送到文件便利路徑的驗(yàn)證過的文件夾中。在Demo視頻中,研究人員使用了有漏洞的Google Chrome應(yīng)用進(jìn)行測試,并創(chuàng)建了一個payload來獲取書簽信息。
參考及來源:https://research.checkpoint.com/2020/vulnerability-in-google-play-core-library-remains-unpatched-in-google-play-applications/