Mea*_*ess 2 cpu computer-architecture
英特尔/微软如何为 Spectre 提供软件补丁,因为 Spectre 利用了超标量处理器的推测执行性质,这是一种无法修改或禁用的硬件功能(至少不会因推测执行而导致 IPC 收益的大量损失)?这些“补丁”实际上是如何发挥作用的?
小智 8
有多种技术可以缓解软件中的 Spectre 式漏洞,无需修补微代码或更改硬件,但它们确实会产生一些性能成本。我不熟悉 Microsoft 如何实施这些缓解措施,但Linux 文档很全面。
对于 Spectre 变体 1,易受攻击的内核代码(由代码审计或扫描工具确定)根据具体情况进行注释,以使用 nospec 访问器宏进行边界剪辑[2],以避免任何可用的泄露小工具。
对于 Spectre 变体 2 缓解措施,编译器将内核中的间接调用或跳转转换为等效的返回蹦床 (retpolines) [3] [9]以转到目标地址。retpolines 下的推测执行路径被困在无限循环中,以防止任何推测执行跳转到小工具。
这里描述缓解技术的参考文献本质上并不是防止 Spectre 式信息泄漏的方法,但它们是针对受影响处理器实现方式所产生问题的实用解决方案。