关于Android WebView跨域访问(“应用克隆”)漏洞

据腾讯玄武实验室研究,市面上 200 多款安卓应用中,27款 App 有此漏洞。漏洞列表及影响如下,其中18个可被远程攻击,9个只能从本地攻击。根据国家信息安全漏洞共享平台(cnvd)披露 ,截止到2018年1月9日,有11个 App 进行了修复,但其中3个修复存在缺陷。

攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对App用户账户的完全控制。由于该组件广泛应用于安卓平台,导致大量App受影响,构成较为严重的攻击威胁。该“应用克隆”的移动攻击威胁模型是基于移动应用的一些基本设计特点导致的,所以几乎所有移动应用都适用该攻击模型。在这个攻击模型的视角下,很多以前认为威胁不大、厂商不重视的安全问题,都可以轻松“克隆”用户账户,窃取隐私信息,盗取账号及资金等。

漏洞描述

WebView是Android用于显示网页的控件,是一个基于Webkit引擎、展现Web页面、解析并执行JavaScript代码的控件,Android应用可以使用WebView空间,灵活的扩展自身的业务功能。

市面上大多数使用HTML5技术开发的应用均使用WebView进行HTML5页面的展示。除了从远程服务器加载Web页面,WebView还可以通过修改特定配置,从文件中进行HTML5页面的加载。在未正确配置WebView的情况下,会致使WebView同源策略失效,导致HTTP协议、file协议跨源攻击的发生。该漏洞使得WebView能够访问当前应用内部数据,如果WebView加载了来源不明的HTML文件,可能导致当前应用内部数据被攻击者窃取,如身份认证信息、加密密钥、用户隐私信息等。

漏洞分析

Android应用内部分可导出的Activity组件中,WebView允许通过file URL对http域进行访问,并且未对访问路径进行严格校验,由此导致了本次漏洞的出现。

该漏洞的产生条件:

(1)应用中存在设置为可被导出的Activity组件,并且组件中包含Webview调用。

(2)Webview调用中setAllowFileAccessFromFileURLs 或

setAllowUniversalAccessFromFileURLs 设置为true(minSdk<=4.1 默认为true,minSdk>4.1 默认为false)。

风险等级

高危

影响评估

漏洞影响使用WebView控件,开启file域访问且未按安全策略开发的安卓应用(App)。

解决方案

具备开发能力的企业,请按照如下检查步骤进行修复:

(1) 严格限制包含WebView调用的Activity组件的导出权限,关闭导出权限或者限制导出组件的发起者。

(2) 对于功能要求必须导出的Activity组件,手动设置

(3) 对于必须使用file URL对http域进行访问时,可对传入的URL路径范围严格控制,例如建立URL白名单,设置允许访问的URL列表(不要遗漏路径中可能出现的特殊情况如“../../”等,避免限制被绕过)

发表评论

邮箱地址不会被公开。 必填项已用*标注