腾讯云联手腾讯安全玄武实验室,提供「应用克隆」漏洞免费检测服务
国内主流安卓 APP 被爆存在「应用克隆」风险。2018年1月9日,在正式对外披露攻击威胁模型「应用克隆」的新闻发布会上,腾讯安全玄武实验室负责人于旸(TK教主)现场展示了一段视频,用一场真实测试为大众揭秘“应用克隆”移动攻击威胁,一些平常不被重视的小漏洞,最终演变成窃取隐私信息和盗取账号资金的大危机。
在发现这些漏洞后,腾讯安全玄武实验室通过 CNCERT 向厂商通报了相关信息,并给出了修复方案,避免该漏洞被不法分子利用。目前,对于用户数量大、涉及重要数据的 APP,腾讯安全玄武实验室愿意提供相关技术援助,与此同时,腾讯云移动安全团队联手玄武实验室,对想要检测是否存在「应用克隆」漏洞的客户提供1V1的免费检测服务。
「应用克隆」漏洞产生的原因
以及将被如何利用?
发布会上,于旸指出:“多点耦合产生了可怕漏洞,所谓多点耦合,是 A 点看上去没问题,B 点看上去也没问题,但是 A 和 B 组合起来,就组成了一个大问题。”
「应用克隆」漏洞产生的原因是在 安卓 APP 中,WebView 开启了 file 域访问,且允许 file 域对 http 域进行访问,同时未对 file 域的路径进行严格限制所致。「应用克隆」漏洞只会影响使用 WebView 控件,开启了 file 域访问并且未按安全策略开发的安卓 APP。由此可见,「应用克隆」 攻击的成功实施需要多个漏洞的相互配合。
据介绍,「应用克隆」漏洞至少涉及国内10%的主流 安卓 APP,几乎影响国内所有安卓 用户。黑客可利用 Android 平台 WebView 控件的跨域访问漏洞(CNVD-2017-36682),远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对 APP 用户账户的完全控制。
解决方案
值得庆是,腾讯安全玄武实验室在不法黑客前发现了「应用克隆」攻击模型,占据了攻防主动。目前,受影响的 APP 厂商都已完成或正在积极的修复当中,具体修复可以参考国家信息安全漏洞共享平台联合腾讯提供的临时解决方案,如下所示:
1、file 域访问为非功能需求时,手动配置 setAllowFileAccessFromFileURLs 或setAllowUniversalAccessFromFileURLs 两个 API 为 false。(Android4.1版本之前这两个 API 默认是 true,需要显式设置为 false)
2、若需要开启 file 域访问,则设置 file 路径的白名单,严格控制 file 域的访问范围,具体如下:
- 1>固定不变的 HTML 文件可以放在 assets 或 res 目录下,file:///android_asset 和 file:///android_res 在不开启 API 的情况下也可以访问;
- 2> 可能会更新的 HTML 文件放在/data/data/(app) 目录下,避免被第三方替换或修改;
- 3> 对 file 域请求做白名单限制时,需要对“../../”特殊情况进行处理,避免白名单被绕过。
3、避免 APP 内部的 WebView 被不信任的第三方调用。排查内置 WebView 的Activity 是否被导出、必须导出的 Activity 是否会通过参数传递调起内置的 WebView 等。
4、建议进一步对 APP 目录下的敏感数据进行保护。客户端 APP 应用设备相关信息(如IMEI、IMSI、Android_id等)作为密钥对敏感数据进行加密。使攻击者难以利用相关漏洞获得敏感信息。
如需腾讯云移动安全团队为您提供的1V1免费检测服务,请在腾讯云安全微信公众号留言,提供以下信息给我们:
- 客户名称
- 应用名称
- 应用下载链接
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php+mysql开发中的经验与常识小结
- PHP时间戳和日期相互转换操作实例小结
- php json转换相关知识(小结)
- PHP单例模式应用示例【多次连接数据库只实例化一次】
- 踩坑:pytorch中eval模式下结果远差于train模式介绍
- Python读取二进制文件代码方法解析
- Python3 webservice接口测试代码详解
- php往mysql中批量插入数据实例教程
- PHP类与对象后期静态绑定操作实例详解
- PHP后期静态绑定之self::限制实例分析
- PHP获取星期几的常用方法小结
- PyTorch-GPU加速实例
- Spring @Enable模块驱动原理及使用实例
- 关于python的缩进规则的知识点详解
- php 处理png图片白色背景色改为透明色的实例代码