新的 Spook.Js 攻击允许绕过 Google Chrome 站点隔离保护
Boffins 设计了一种对现代处理器“ Spook.js ”的瞬时侧信道攻击,威胁行为者可以滥用该攻击来绕过 Google Chrome 和 Chromium 浏览器中实施的站点隔离保护。
该技术允许在某些情况下通过恶意 JavaScript 代码窃取敏感信息。
这次攻击是由密歇根大学、阿德莱德大学、佐治亚理工学院和特拉维夫大学的研究人员发现的
“我们展示了 Spook.js,这是一种基于 JavaScript 的 Spectre 攻击,可以从攻击网页的整个地址空间中读取数据。我们进一步调查了 Chrome 中严格站点隔离的实施,并展示了允许 Spook.js 从其他网页读取敏感信息的限制。” 阅读专家发表的研究论文。
“攻击者控制的网页可以知道用户当前正在浏览的同一网站的哪些其他页面,从这些页面中检索敏感信息,甚至在自动填充时恢复登录凭据(例如,用户名和密码),攻击者可以检索数据如果用户安装了恶意扩展程序,则来自 Chrome 扩展程序(例如凭据管理器)”
2018 年 1 月, 专家团队设计了两个名为 Meltdown (CVE-2017-5754) 和 Spectre (CVE-2017-5753 和 CVE-2017-5715) 的攻击,旨在打破不同应用程序之间的隔离并窃取敏感信息。 CPU 处理的数据。
这两种攻击都利用了大多数现代 CPU 使用的“推测执行”技术来优化性能。
Google 实施了站点隔离以减轻类似 Spectre 的攻击,无论如何,重要的是要了解该功能只能通过将不同网站的内容分离到不同进程来尝试限制信息泄漏。
该功能在 Chrome 67 及更高版本中启用,允许在其自己的进程中加载每个网站。
研究人员发现了一些站点隔离未能将两个站点分开的情况,这为 Spectre 攻击打开了大门。
Spook.js 攻击适用于在 Intel、AMD 和 Apple M1 处理器上运行的基于 Chrome 和 Chromium 的浏览器,它使用类型混淆攻击,使其能够针对整个地址空间。
“例如,Chrome 会将 example.com 和 example.net 分开,因为它们的顶级域 .net 和 .com 是不同的。example.com 和attacker.com 也由于它们的第一个子域(example 和attacker)的不同而被分成不同的进程。最后,store.example.com 和corporate.example.com 可以共享相同的流程,因为它们共享相同的eTLD+1,example.com。源头隔离。” 专家们继续说道。“我们注意到 Chrome 可以选择更严格的隔离,使用网站的整个来源。然而,源头隔离可能会破坏不可忽视的网站数量,因为 13.4% 的页面加载通过 document.domain 修改了它们的源头。”
专家们在 Tumblr 博客上部署了 Spook.js,目标是由 Chrome 的内置凭据管理器自动填充到 Tumblr 登录页面的密码。他们发布了攻击的 PoC 视频,表明我们的博客可以由与登录页面相同的 Chrome 进程呈现,从而允许 Spook.js 恢复密码。
在另一种攻击场景中,研究人员将 Spook.js 打包为 Chrome 扩展程序,并且在某些条件下,他们证明了多个扩展程序可以从同一进程合并和执行。在研究人员提出的攻击中,他们能够读取 LastPass 凭证管理器扩展的内存,并恢复目标保险库的主密码。
研究人员与谷歌分享了他们的发现,即在 2021 年 7 月,对站点隔离进行了一些更改,以确保扩展程序不能再相互共享进程,它还将它们应用于用户通过第三方提供商登录的站点。从 Chrome 92 及更高版本开始启用名为 Strict Extension Isolation 的新站点隔离功能。
“Spook.js 利用的根本弱点是严格站点隔离的安全模型与整个网络生态系统的其他部分的差异。一方面,严格的站点隔离认为来自同一个 eTLD+1 的任何两个资源始终位于同一个安全域中。另一方面,网络的其余部分享有更细粒度的安全域定义,通常称为同源策略。如果整个域名相同,同源策略只考虑两个资源在同一个安全域中。”研究人员总结道。
