在本文中,我们介绍了一个计划泛滥漏洞,解释了漏洞利用如何在四个主要的桌面浏览器上工作,并显示为什么它'对匿名浏览的威胁。
免责声明:FingerPrintJS不在我们的产品中使用此漏洞,并不提供第三方跟踪服务。我们专注于阻止欺诈,并支持完全删除第三方跟踪的现代隐私趋势。我们认为,应该在开放中讨论这样一个这样的漏洞,以帮助浏览器尽快修复它们。为了帮助解决它,我们已将错误报告提交给所有受影响的浏览器,创建了一个直播演示,并为所有人提供了公共源代码存储库。
在我们对防欺诈技术的研究中,我们发现了一种漏洞,允许网站在不同的桌面浏览器上可靠地识别用户,并将其身份链接在一起。 Tor浏览器,Safari,Chrome和Firefox的桌面版本都受到影响。
我们将通过作为方案泛滥的此漏洞引用,因为它使用自定义URL方案作为攻击向量。该漏洞使用计算机上已安装应用程序的信息,以便为您切换浏览器,使用隐姓埋名模式或使用VPN来为您分配永久唯一标识符。
该计划泛洪漏洞允许跨不同浏览器的第三方跟踪,因此违反了隐私。
跨浏览器匿名是一种隐私有意识的互联网用户可能被视为理所当然的东西。众所周知,Tor浏览器提供了最终的隐私保护,尽管由于某些网站上的连接速度和性能问题慢,但用户可以依赖于他们每天冲浪的较少匿名浏览器。他们可以使用Safari,Firefox或Chrome来到某些网站,以及用于他们想要保持匿名的网站的托架。利用方案泛滥漏洞的网站可以创建一个稳定而唯一的标识符,可以将这些浏览标识链接在一起。
即使您不是Tor浏览器用户,所有主要浏览器也会受到影响。可以将您的Safari访问与您的Chrome访问相连,识别您的独特识别并跟踪您的网络。
此外,该计划泛洪漏洞允许有针对性的广告和用户分析,而无需用户同意。您的设备上已安装的应用程序列表可以揭示您的职业,习惯和年龄的很多。例如,如果计算机上安装了Python IDE或PostgreSQL服务器,则非常可能成为后端开发人员。
根据设备上安装的应用,网站可能有可能识别个人以获取更多的险恶目的。例如,一个网站可以能够根据他们已安装的应用程序和涉及匿名的浏览历史来检测互联网上的政府或军事官员。
超过5年的这种漏洞是可能的,其真正的影响是未知的。在快速搜索网络中,我们无法找到任何积极利用它的网站,但我们仍然觉得需要尽快报告它。
注意:如果您对技术实现详细信息不感兴趣,您可以跳过本节。演示应用程序的源代码可在Github上使用。
该方案泛洪漏洞允许攻击者确定已安装的应用程序。为了生成32位跨浏览器设备标识符,网站可以测试32个流行应用程序的列表,并检查是否安装了。平均而言,识别过程需要几秒钟,跨桌面窗口,Mac和Linux操作系统工作。
要检查是否已安装应用程序,浏览器可以使用内置自定义URL方案处理程序。您可以通过在浏览器地址栏中输入Skype://,从而在操作中查看此功能。如果安装了Skype,则浏览器将打开一个确认对话框,该对话框询问您是否要启动它。此功能也称为深度链接,并且广泛用于移动设备,但也可在桌面浏览器中使用。您安装的任何应用程序都可以注册自己的方案,以允许其他应用程序打开它。
为了检测是否安装了应用程序,我们可以测试应用程序' s自定义URL方案,然后检查是否已显示弹出窗口。
准备要测试的应用程序URL方案列表。例如,该列表可能取决于您的目标,例如,如果要检查是否已安装某些行业或特定于特定的应用程序。
在网站上添加一个脚本,该脚本将从列表中测试每个应用程序。脚本将返回一个有序的布尔值数组。如果未安装应用程序,则每个布尔值都是如此。
可选地,使用机器学习算法猜测您的网站访问者使用已安装的应用程序数据的访问者的职业,兴趣和年龄。
上述步骤可能很容易,但大多数浏览器都有安全机制,用于防止这种漏洞。这些安全机制中的缺点是使这种脆弱性成为可能的原因。 CORS策略和浏览器窗口功能的组合可用于绕过它。
Exploit的实际实现因浏览器而异,但基本概念是相同的。它通过询问浏览器在弹出窗口中显示确认对话框来工作。然后,JavaScript代码可以检测是否刚刚打开弹出窗口并检测应用程序的存在。
在受影响的四个主要浏览器中,只有Chrome开发人员似乎意识到该计划泛滥的漏洞。已经在铬kotser上讨论了该问题,并计划尽快解决。
此外,只有Chrome浏览器只有任何形式的方案洪水保护,呈现出旁路的挑战。除非用户手势请求,否则它会阻止启动任何申请,如鼠标单击。有一个全局标志,允许(或拒绝)网站打开应用程序,在处理自定义URL方案后,将其设置为false。
但是,您可以使用Chrome Extensions重置此标志并绕过方案防洪。通过规范,扩展需要能够打开自定义URL,例如Mailto:Links,而无需确认对话框。该计划泛洪保护与扩展策略冲突,因此有一个漏洞,每次触发任何扩展时都会重置此标志。
内置的Chrome PDF查看器是一个分机,因此每次浏览器打开PDF文件时,它会重置方案防洪标志。打开自定义URL之前打开PDF文件,使漏洞功能突出。
每次导航到未知的URL方案时,Firefox都会向您展示错误的内部页面。此内部页面具有与任何其他网站不同的原始原点,因此由于同样的策略限制,无法访问它。另一方面,将打开已知的自定义URL方案:空白,其起源将可从当前网站访问。
通过使用自定义URL方案打开弹出窗口并检查其文档是否可从JavaScript代码中获得,您可以检测设备是否已安装在设备上。
尽管隐私是Safari浏览器的主要发展焦点,但事实证明是四个爆炸的最简单的浏览器。 Safari没有方案泛洪保护,允许轻松枚举所有已安装的应用程序。
这里使用了Firefox浏览器的同样原始策略技巧。
Tor浏览器完全禁用了确认对话框作为隐私功能,讽刺意义地暴露了这种特定利用的更具破坏性漏洞。在漏洞利用在后台运行时,没有显示任何内容,与在此过程中显示弹出窗口的其他浏览器进行对比。这种监督允许利用甚至意识到未经用户的安装应用程序。
Tor浏览器基于Firefox源代码,因此同样使用了同样的策略技巧。但是因为Tor浏览器没有显示弹出窗口,我们使用了Iframe元素的同位策略技巧。
通过使用自定义URL方案创建IFRAME元素并检查其文档是否可用,您可以检查应用程序是否已安装。
在四个浏览器中,方案泛洪漏洞需要最长的才能成功地运行Tor。由于TOR浏览器策略,每个应用程序需要需要10秒钟。尽管如此,可以在后台工作并在后台上工作,并通过更长的浏览会话跟踪您。如果您在网页上留下Tor浏览器窗口4分钟,则可能足以暴露您的身份。
通过在用户触发的手势内运行每个应用程序测试,可以删除10秒限制。假CAPTCHA是一个理想的候选者:用户输入的24个字符使得可以连续24次重置10秒限制,并瞬时枚举24个安装的应用程序。
使方案泛滥漏洞可能的确切步骤可能因浏览器而异,但最终结果是相同的。获取与访问者身份相关联的唯一的比特数量不仅可能,而且可以在实践中使用恶意网站。即使是通过欺骗用户在每个应用程序中键入一个字符,可以有效地利用浏览器。
直到此漏洞是固定的,唯一可以与主设备关联的私人浏览会话的方法是完全使用另一个设备。
通过提交这些错误报告,撰写本文并构建我们的演示应用程序,我们希望尽快解决所有浏览器的漏洞。
如果您喜欢阅读本文,请考虑加入我们全面的远程团队在线安全令人兴奋的研究:[email protected]