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代码。
“此演示分为三个部分:
1.校准计时器以观察CPU预测执行的副作用。
2.推断JavaScript数组的内存布局的演示。
3.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的使用。但是研究人员还建议启用以下保护措施:
Google安全团队发布了一个名为Spectroscope的Chrome扩展程序原型,该扩展程序可让网络开发人员保护其网站免受Spectre的攻击。
本文翻译自:https://securityaffairs.co/wordpress/115573/hacking/google-chrome-spectre-poc.html如若转载,请注明原文地址。