近期国内多款安卓版知名手机APP被曝光存在“应用克隆”漏洞。攻击者利用该漏洞,可以轻松“克隆”用户账户,窃取隐私信息,盗取账号及资金等,国内约10%的主流APP受到漏洞影响。作为中国领先的网络安全厂商, 360 旗下APP从产品开发阶段就已对“应用克隆”攻击威胁进行全面预防,完全不受此次漏洞影响。
360 旗下的 360 加固保联合自动化漏洞检测平台 360 显危镜,针对该问题,第一时间上线解决方案,提供免费的在线安全扫描服务,开发者只需登录加固官网(http://jiagu.360.cn ),选择“安全扫描”服务,一键上传应用,即可获得专业的安全风险报告。
需要注意的是,如果报告中同时存在“WebView存在本地接口”和“WebView启动访问文件数据”两个漏洞风险,开发者就要尤其注意,通过人工检测的方法判断APP是否有被利用的安全风险。
#lexo_img_start http://upload.chinaz.com/2018/0111/201801110916593235.jpg lexo_img_end#
根据 360 信息安全中心的评估,“应用克隆”漏洞攻击模型中主要涉及到两个过程,一是数据读取,二是数据复制。在数据读取过程中主要涉及到WebView的跨源攻击,因为Android沙盒的存在,两个应用之间一般情况下是不可以进行文件的相互访问,但不正确的使用WebView可能会打破这种隔离。WebView未禁用file域访问,允许file域访问http域,且未对file域的路径进行严格限制的情况下,攻击者通过URL Scheme的方式,可远程打开并加载恶意HTML文件,远程获取APP中包括用户登录凭证在内的所有本地敏感数据,并外传到攻击者的服务器。
由于漏洞的攻击链条中,需要利用多个漏洞才能实现,因此可有多种方式截断该攻击的实现方式。针对上述几个问题,只要从任何一点截断,即可极大程度上杜绝该漏洞攻击的实现。
修复建议:
1. 在使用Webview时,对于不需要使用file协议的应用,禁用file协议。
setAllowFileAccess可以设置是否允许WebView使用File协议,默认值是允许,如果不允许使用File协议,则不会存在跨源的安全威胁。
2. 对于需要使用file协议的应用,禁止file协议调用javascript。
setJavaScriptEnabled可以设置是否允许WebView使用JavaScript,默认是不允许,但很多应用,包括移动浏览器为了让WebView执行http协议中的javascript,都会主动设置允许WebView执行Javascript,而又不会对不同的协议区别对待,比较安全的实现是如果加载的url是http或https协议,则启用javascript,如果是其它危险协议,如是file协议,则禁用javascript。
3. 设置file域白名单,检查file域路径避免被绕过。
固定不变的HTML文件可以放到assets或res目录,可能会更新的HTML文件放到应用私有目录下,避免被第三方替换或修改,对file域请求做白名单限制时,需要对“../../”特殊情况进行处理,避免白名单被绕过。