Google发布了对其GitHub上的Chrome浏览器进行幽灵攻击的概念验证代码。专家们决定发布概念证明代码,以证明基于Web的幽灵攻击的可行性。
PoC代码使用JavaScript编写,可在英特尔Skylake CPU上的Chrome 88上运行,它允许以1kB / s的速度从设备内存中下载数据。
“今天,我们共享了概念验证(PoC)代码,该代码证实了幽灵攻击JavaScript引擎的实用性。我们使用Google Chrome浏览器来演示我们的攻击,但这些问题并不是Chrome特有的,我们估计其他浏览器也同样容易受到这种攻击。” Google发布的帖子声称,“我们已经在https://leaky.page/上提供了该攻击的交互式演,;代码和更详细的文章我们已经发布在Github上(https://github.com/google/security-research-pocs/tree/master/spectre.js)。”
Google研究人员推测,PoC代码可在其他CPU(不同的供应商和/或代),操作系统和Chromium版本上使用。
下面的演示描述发布在一个由Google设置的网站上,用来托管PoC代码。
“此演示分为三个部分:
校准计时器以观察CPU预测执行的副作用。
推断JavaScript数组的内存布局的演示。
Spectre的概念证明本身,泄漏内存的浏览器渲染过程。”
在2018年1月,该专家设计了两次攻击,分别称为 Meltdown (CVE-2017-5754)和 Spectre (CVE-2017-5753和CVE-2017-5715),可用来窃取CPU处理的敏感数据。
两种攻击都利用大多数现代CPU使用的“预测执行”技术来优化性能。
为了保护系统免受Bot Meltdown和Spectre攻击,可以实施称为内核页表隔离(KPTI)的强化技术。该技术允许将内核空间与用户空间内存隔离开。
Google发布的PoC代码允许从内存中恢复缓存的数据,包括敏感数据(例如加密密钥)。
可以轻松设置已发布的PoC代码,因为它无需像SharedArrayBuffer这样的高精度计时器即可工作。
“对于已发布的PoC,我们设置了一个简单的Variant 1小工具”,Google继续说道,“这个特定的小工具可以在软件层面上缓解。但是,Chrome的V8小组得出的结论是,其他小工具并不是这样,“我们发现,有效缓解Spectre的某些变体(尤其是变体4)在软件中根本不可行。” 我们希望安全社区继续我们的研究和开发代码,开发利用其他幽灵小工具的代码。”
Google专家还开发了其他具有不同属性的PoC漏洞,但他们没有发布这些漏洞。这些PoC代码之一允许以8kB / s的速率泄漏数据,但是由于使用performance.now()API作为5μs(5000ms)精度计时器,因此它的稳定性较差。另一个PoC使用的计时器为1ms甚至更短,并且仅以60B / s的速率泄漏数据。
Google建议开发人员使用新的安全机制来防范硬件攻击和常见的Web级 跨站点泄漏。
标准保护包括 X-Content-Type-Options,X-Frame-Options header和SameSite cookie的使用。但是研究人员还建议启用以下保护措施:
- 跨域资源策略(CORP)和获取元数据请求header允许开发人员控制哪些站点可以嵌入其资源(例如图像或脚本),从而防止将数据传递给攻击者控制的浏览器呈现器进程。请参阅resourcepolicy.fyi(https://resourcepolicy.fyi/)和web.dev/fetch-metadata(https://web.dev/fetch-metadata)。
- 跨域开放者政策(COOP)允许开发人员确保其应用程序窗口不会收到来自其他网站的意外交互,从而使浏览器可以在自己的过程中将其隔离。这增加了一个重要的进程级保护,特别是在不支持完全站点隔离的浏览器中;请参阅网站web.dev/coop-coep(https://web.dev/coop-coep/#integrate-coop-and-coep)。
- 跨域嵌入者策略(COEP)确保应用程序请求的任何经过身份验证的资源都已明确选择加载。如今,为了保证在Chrome或Firefox中高度敏感的应用程序的进程级隔离,应用程序必须同时启用COEP和COOP。参见web.dev/coop-coep(https://web.dev/coop-coep)。
Google安全团队发布了一个名为Spectroscope的Chrome扩展程序原型,该扩展程序可让网络开发人员保护其网站免受Spectre的攻击。
本文翻译自:https://securityaffairs.co/wordpress/115573/hacking/google-chrome-spectre-poc.html如若转载,请注明原文地址。