3年了,安卓版Chrome浏览器仍被指泄露设备指纹信息

2019-01-03 22:09:11 / 打印

聚焦源代码安全,网罗国内外最新资讯!

编译:360代码卫士团队

谷歌为2015年就已存在的一个安卓问题发布部分修复方案。而最初谷歌拒绝修复,理由是移动操作系统“按计划运行”。

这个问题仍未被分配 CVE 编号,它和安卓使用谷歌 Chrome 浏览器的方式有关。Chrome 是谷歌设备的默认浏览器,且启用 WebView 和 CustomTabs API,可允许应用程序在无需另外打开单独浏览器窗口的情况下在应用程序本身内渲染 web 内容。Nightwatch Cybersecurity 公司指出,Chrome 以及使用相关 API 的应用程序泄露设备信息,如硬件模型、固件版本以及所运行设备上的安全补丁级别。

Nightwatch 公司的研究员 Yakov Shafranovich 在上周发布的一篇博客文章中指出,“这种信息可被用于追踪用户及定位设备。可被用于判断某台具体设备易受哪些漏洞的攻击以便使用目标利用代码。”

2015年就存在

Nightwatch 公司在三年前就发现了这个问题。不管 Chrome 何时向 web 服务器发出网页内容请求,它都会包含一系列 HTTP 头部。User-Agent 头部尤其问题重重,因为它包含安卓版本号和build 标签信息;而后者可用于识别设备名称及其固件版本。

Shafranovich解释称,“对于很多设备而言,它可被用于不仅识别设备本身,还能识别运营商以及国别信息。它还可被用于判断设备上的补丁级别以及设备易受影响的漏洞。”

User-Agent 头部可被广泛访问,而且经常由 web 服务器用于识别所报告的互操作性问题的范围,以便进行缓解或者定制响应,避免特殊的 user-agent 限制条件,并对浏览器或操作系统的使用进行分析。

如此,攻击者就能将恶意 web 站点设置为水坑(或通过垃圾邮件和社工驱动流量),并构造攻击活动,使用源自访问设备的情报以便利用目标漏洞。

修复不完整

研究人员在今年年初提交新的漏洞报告后,谷歌发布 Chrome v70,修复了部分问题。不过直到圣诞节之后,Nightwatch 才发布问题情况。Shafranovich 表示,“修复方案隐藏了固件信息,但仍然保留固件模型识别符,设备型号仍然存在。该修复方案仅适用于 Chrome 应用本身,而不适用于应用程序开发人员使用的 WebView 实现。谷歌解释称,‘按照安卓兼容性定义文档规定,请勿将更改应用到安卓 Web View 中。’”

用户应更新至版本70或后续版本,并修复包含 WebView 使用的应用程序。应用程序开发人员应当在应用程序中手动覆盖 User Agent 配置。

研究人员指出,“虽然很多人因惧怕失去兼容性而不愿意这样做,但我们建议使用默认 user agent 并擦除其中的版本和型号信息。”

推荐阅读

原文链接