在相互不信任的进程之间的任何上下文切换上刷新所有缓存是防止缓存定时攻击的唯一方法吗?

信息安全 数据泄露 定时攻击 侧信道
2021-09-05 14:07:35

本文演示了一种破坏性的基于 Javascript 的缓存定时攻击,该攻击允许跨 VM 跟踪鼠标移动和网页的其他活动。

防止内核基于缓存的窥探的唯一方法是(1)永远不要在同一个 CPU 芯片上同时运行互不信任的进程,以及(2)在互不信任的进程之间的所有上下文切换上刷新所有缓存?

1个回答

直接回答

您是否已阅读本文档的第 11 页和第 12 页,第 5.1 章,关于易受攻击系统的流行 和 5.2:对策

如果您的系统真的很脆弱,那么是的,您必须在访问可疑网页之前刷新敏感信息的缓存。

但是,如果您的加密工具使用非缓存内存,它们就不容易受到攻击......

您可以使用非 Intel 或单核 CPU……或者确保您的硬件中不使用 Sandy Bridge、Ivy Bridge 和 Broadwell 微架构。

并让您的基于 Intel 的服务器远离优化的 JavaScript。

第二次反思

据我了解,这篇论文更像是概念证明,而不是漏洞利用手册。

我的意思是,如果在这个特定的配置中这是可能的,通过使用这个方法和优化的 javascript,我们必须记住:

缓存攻击是可能的。

无论此演示的要求如何。

事实上,由于性能挑战,新的多核处理器没有得到充分保护。

库级别的新优化可能会产生一些无人看管的后门

这个漏洞很难重现,但表明如果处理器构造函数不在乎,未来可能会变得危险。