Google研究人员:为了防止Spectre发生变化,需要更改处理器架构,软件补丁无济于事

2018年1月,谷歌研究人员通过推测性执行指令,公开发布了有关大多数现代处理器中基本硬件漏洞的信息。 漏洞幽灵(和相邻的Meltdown)利用CPU中的分支预测机制,并允许通过外部通道以通用缓存层次结构的形式读取数据。 换句话说,计算机上的任何应用程序都可以对任意内存位置进行读取访问,这违反了程序的隔离性,引发了数据泄漏,拒绝服务和其他麻烦。

最糟糕的是,几乎所有现代处理器(RISC和Russian Elbrus除外)都容易受到攻击,因为分支预测已成为现代CPU体系结构的基本组成部分,在不显着降低性能的情况下就不能放弃分支预测。

实际上,研究人员早在2017年中期就发现了该漏洞,他们只是没有通知公众,因此处理器和系统的制造商才有机会准备微代码和软件更新。

因此,在1月初正式宣布之后,英特尔立即发布了针对大量当前和过时处理器型号的微代码更新 。 该更新以Red Hat Enterprise Linux,SUSE Linux Enterprise Server,CentOS,Fedora,Ubuntu,Debian和Chrome OS的软件包的形式提供,使您可以更新固件而无需更新BIOS。 更新微码并不能消除将KPTI补丁应用于Linux内核的需要。 的确,Linus Torvalds的第一个版本称为“绝对垃圾” ,英特尔要求停止安装它们,然后重新发布。

其他制造商针对其产品发布了更新,针对大多数操作系统发布了相应的补丁程序。 Windows 10补丁无法逃脱冒险:微软发布了该文件,将其召回,然后再次发布。

但是,经过所有这些冒险之后,故事似乎结束了:发行了稳定版本的补丁程序,每个想要安装它们的人。 看来您可以结束这一点。 但是没有 一年后,即2019年2月14日,来自Google的一组研究人员发表了一份报告,上面写着: “幽灵将与我们同在。 分析通过第三方渠道进行的攻击和投机执行 研究人员得出的结论是,仅使用软件补丁程序不可能完全关闭该漏洞。 这将需要“处理器的大量处理”。

从报告中可以得出结论,该漏洞确实是根本的。 作者写道,尽管将来可能会采用部分保护方法,但所有具有推测执行能力的处理器将始终容易受到侧信道的各种攻击

报告说:“我们认为,使用现代硬件,投机漏洞会破坏软件级的机密性。 同时,没有全面的软件保护,因为我们发现恶意代码可以创建一种通用机制,用于通过第三方渠道读取同一地址空间中的所有内存。”

英特尔表示,打算在处理器中进行一些硬件更改,以防止Spectre受到攻击。 但是问题在于,Spectre不仅仅是一个错误。 研究人员认为,这是利用分支预测机制的广泛漏洞 。 因此,简单的修补程序不能在这里完成。

研究人员提出了几种可能的解决方案,即:

  • 完全禁止投机执行;
  • 计时器精度降低;
  • 掩盖分支(由于分支预测的性质可以规避嵌入在代码中作为分支的任何安全检查,因此,作者建议在设计安全机制时完全不考虑分支)。

研究人员得出了令人失望的结论:“我们的模式,我们的思维模式是错误的; 我们为性能和复杂性牺牲了安全性,却一无所知。 现在具有讽刺意味的是,保护要求使用软件工具引入更大的复杂性,据我们所知,其中大多数都不完整……似乎Spectre的名字太好了,因为它注定会困扰我们很长时间。”

Source: https://habr.com/ru/post/zh-CN441378/


All Articles