2018年1月9日, 国家信息安全漏洞共享平台(CNVD)发布关于Android WebView存在跨域访问漏洞(CNVD-2017-36682)的公告。
漏洞描述
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(minSdk4.1 默认为false)。
风险等级
高危
影响评估
漏洞影响使用WebView控件,开启file域访问且未按安全策略开发的安卓应用(App)。
解决方案
第一步:先检测
(1)梆梆安全自动化检测
(2)人工代码检测
第二步:再修复
具备开发能力的企业,请按照如下检查步骤进行修复:
(1)严格限制包含WebView调用的Activity组件的导出权限,关闭导出权限或者限制导出组件的发起者。
(2)对于功能要求必须导出的Activity组件,手动设置
setAllowFileAccessFromFileURLs(false)或
setAllowUniversalAccessFromFileURLs(false)
(3)对于必须使用file URL对http域进行访问时,可对传入的URL路径范围严格控制,例如建立URL白名单,设置允许访问的URL列表(不要遗漏路径中可能出现的特殊情况如“../../”等,避免限制被绕过)
(4)使用梆梆安全加固技术对完成安全漏洞修复的App进行加固保护,防止被二次篡改安全权限。
梆梆安全建议:
(1)针对具备较强研发能力和研发团队的企事业单位,采取人工检查为主、自动检查为辅的方式。
(2)针对使用第三方软件开发外包服务的企事业单位,建议联系梆梆安全进行自动检查。
(3)针对使用大量开源组件的应用,建议采用人工检查方式,避免其他未知原因导致修复失败,进而引发应用崩溃等业务连续性被破坏问题。
领取专属 10元无门槛券
私享最新 技术干货