防欺诈软件公司 FingerprintJS 日前披露, Safari 15中的IndexedDB API执行漏洞已经被恶意网站利用,它可能被用于跟踪用户的网络浏览数据。更糟糕的是,这个漏洞甚至有暴露用户的身份的风险。
FingerprintJS公司将该漏洞命名为IndexedDB Leaks, 并于2021 年 11 月 28 日向苹果公司报告了该问题。
IndexedDB是网络浏览器提供的低级 JavaScript 应用程序编程接口 (API),用于管理结构化数据对象(如文件和 blob类型数据)的NoSQL 数据库。
Mozilla组织在其API文档中指出:“和大多数网络存储解决方案一样,IndexedDB遵循同源策略,因此用户可以在一个域中访问存储的数据而不能在不同的域中访问数据。”
同源机制是一种基本的安全机制,它确保从不同来源获取的资源彼此隔离。也就是说,URL的方案(协议)、主机(域)和端口号是相互隔离的。通过限制一个源加载的脚本如何与另一个源加载的资源交互可以防止流氓网站运行任意JavaScript代码从另一个域(如电子邮件服务)读取数据,从而隔离潜在的恶意脚本,减少潜在的攻击矢量。
然而,Safari浏览器处理跨 iOS、iPadOS 和 macOS 系统中的 Safari IndexedDB API 的方式并非如此。每次网站与数据库交互时,都会在同一浏览器会话中的所有其他活动框、选项卡和窗口中创建一个具有相同名称的新的空数据库。
这种侵犯隐私的处理方式允许了网站获取用户在不同选项卡或窗口中访问的其他网站。这就更不用说在 YouTube 和 Google 日历等 Google 服务上准确识别用户了。因为这些网站创建的IndexedDB数据库包含了经过认证的谷歌用户ID,这是唯一标识单个 Google 账户的内部标识符。
这不仅意味着不受信任的或恶意网站可以了解用户的身份,而且还允许网站将同一用户使用的多个单独账户链接在一起。
雪上加霜的是,如果用户是从浏览器窗口的同一选项卡中访问多个不同的网站的,那么即使他使用的是Safari 15浏览器中的隐私浏览模式也并不能幸免于难。
“这是一个巨大的漏洞,”谷歌 Chrome 浏览器的开发者倡导者 Jake Archibald 在推特上写道。“在 OSX 操作系统上,Safari 用户可以暂时切换到另一个浏览器以避免他们的数据跨源泄漏,可是iOS 用户没有这样的选择,因为苹果禁止其他浏览器引擎。”
参考来源:
https://thehackernews.com/2022/01/new-unpatched-apple-safari-browser-bug.html