Google Play函数库漏洞可使Android App遭恶意程序注入

Check Point研究人员发现,许多知名App都会使用到的Google Play Store,存在一项函数库本机程序代码执行漏洞,可能让Android App被注入恶意程序代码,造成网银密码或个人信息被窃取。

Google Core for Android函数库是受欢迎的App函数库,允许将App组件,如语言资源、功能模块或更新通过Google API下载到手机自动执行,而不需要用户动作,它也可以下载为特定手机和设置优化的资源(如图片大小、处理器架构、动态模块)以缩减apk的文件大小。许多知名App包括脸书、Chrome、WhatsApp等都使用Google Play Core函数库。

另一个关键在于Android沙箱的设计。为了确保Android手机不会任意执行恶意程序,每个Android应用程序的沙箱中都有2个文件夹,一个接收来自Google Play Store的“经验证”文件,另一个则接收其他资料源的“未验证”文件。由Play Store而来的文件写入经验证文件夹后,就会和Google Play Core函数库交互,而自动执行。其他来源的文件送到App沙箱,就会写入未验证文件夹中,且不会由Core函数库自动执行。

Check Point研究单位OverSecured解释,编号CVE-2020-8913的漏洞即出在Core函数库未能分辨合法或非法文件,让攻击者运用跨路径穿越(path traversal)手法进行攻击。当文件来源网站欲将文件推送到手机中某个App时,需要提供写入的文件路径,这时如果攻击者提供../verified_splits/my_evil_payload.apk进行跨路径穿越,就能将恶意执行文件模块(my_evil_Payload.apk)通过Core函数库写入到验证文件夹,然后注入到App中并自动执行。

研究人员指出,结果即是让合法App变成本机攻击武器,可能引发的攻击包括在网银App注入程序代码以窃取帐密,利用短信访问权窃取双重验证码、借企业App访问公司资源、利用社交App以监看用户行为、关注设备所在、或是在消息App注入程序代码,以窃取信息或冒充用户发消息等。

Google已在今年4月6日修补Google Play Core函数库漏洞。问题是,修补程序必须由开发商推送到用户手机上的App,而不像服务器或云计算App那么容易修补。对用户端App而言,每一家开发商都必需要拿到最新版函数库,再插入到App中。

根据SandBlast Mobile的分析,9月间Google Play Store上App所使用的函数库版本,仅13%使用新版本,8%用的是有漏洞的版本。

Check Point上周公布,多款App受CVE-2020-8913漏洞影响,包括Viber、Booking、Cisco Teams、Microsoft Edge浏览器、OkCupid、Grindr、Xrecorder及威力导演PowerDirector等。不过Viber、Booking、Cisco及Grindr已在周末前解决漏洞。