Meltdown 和 Spectre 是什么以及如何应对

阅读数:1104 2018 年 1 月 14 日 18:00

看新闻很累?看技术新闻更累?试试下载InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

本文讨论最新的 CPU 漏洞,Meltdown 和 Spectre,以及当下的解决方案。

Google Project Zero 以及一些研究人员发现了两个硬件漏洞并提供了详细信息,这两个漏洞会对大部分的桌面和移动设备造成安全影响。这两个漏洞被称为 Meltdown Spectre ,它们会利用 CPU 的“预测执行(speculative execution)”使得非相关进程也能访问虚拟内存,从而导致数据可能被并无访问权限的进程读取。这是一个影响Intel、AMD 和ARM 众多CPU 型号的底层硬件问题。Google 于去年6 月向各处理器制造商报告了这个问题。

Meltdown 使得一个进程可以访问操作系统的部分内核内存,从而暴露敏感数据。Spectre 使得一个进程能够访问另一个进程的内存空间,造成数据泄露。Meltdown 会影响支持乱序执行(out-of-order execution)的 Intel 处理器,这可能包括自 1995 年以来的各种 CPU 型号。研究人员在 2011 年以来的几种 Intel 处理器上运行了测试。ARM 的一些处理器会受到这种漏洞的变体的影响,使得一些 CPU 注册表能被其他非相关进程访问。AMD 处理器似乎并不受 Meltdown 影响。但是 Spectre 影响所有的主流 CPU,包括 AMD、ARM 和 Intel。如果想了解更多关于这些漏洞的详细信息以及如何利用这些漏洞,我们建议你去阅读 Google Project Zero 的这篇文章,以及Meltdown( PDF )和 Spectre( PDF )研究论文。

这些漏洞相当严重。大多数市面上的操作系统都受到了影响,包括 Linux、MacOS 和 Windows。Android 以及 Apple 的 iOS 系统和 tvOS(但是没有 watchOS)也受到了影响。 CERT 提到,真正的解决方案是将系统的 CPU 替换为没有漏洞的 CPU。鉴于这个方案不具备实际可操作性,软件解决方案已经就位甚至已经生效。不过问题是,这种修复似乎有性能问题,有的造成的性能下降甚至高达30% 。Intel 声称性能下降“取决于工作负载”,“对于普通的电脑用户,应该没有什么大影响并且会随着时间改善。”

Intel 还提到,它已经向操作系统制造商提供了软件和固件修复。AMD 则发布了安全公告,概述了这些漏洞,哪些漏洞会对使用它们处理器的系统造成什么样的影响,会向操作系统供应商提供哪些修复,以及性能会受到一些影响。ARM 也发布了自己的公告,介绍了哪些处理器会被影响以及如何处理。

Microsoft 将在下周通过标准更新机制发布更新。Linux 已经发布了可用的内核补丁(32-bit),针对 64-bit/ARM 的补丁仍在开发中。Apple 则在声明中表示,已经为iOS 11.2、macOS 10.13.2 以及tvOS 11.2 发布了针对Meltdown 的更新,以及:

我们做了一些公开的基准测试,不管是 GeekBench 4 的基准测试还是像 Speedometer、JetStream 和 ARES-6 一类通用的 Web 浏览器基准测试都表明,2017 年 12 月的更新并没有给 macOS 和 iOS 带来多少性能损失。

至于 Spectre,Apple 则表示:

关于这些技术的分析表明,即使是在 Mac 或 iOS 设备上本地运行的应用程序,这些漏洞也极难被利用,但是却可能通过运行在 Web 浏览器上的 JavaScript 利用这些漏洞。Apple 将在未来几天发布针对 macOS 和 iOS 上 Safari 浏览器的更新,以应对这些漏洞利用技术。我们对即将发布的 Safari 优化做了一些测试,Speedometer 和 ARES-6 测试结果显示并没有多少性能影响,而 JetStream 基准测试则显示有 2.5% 的性能降低。我们将继续在操作系统中针对 Spectre 技术开发和测试更多的优化,并在之后的 iOS、macOS、tvOS 和 watchOS 更新中发布。

再来说云供应商。 Amazon 宣称运行在他们系统里的大多数实例都得到了保护,另一些则会很快得到处理。Microsoft 也声称 Azure 上的大多数客户都受到了保护,其中有一些还收到了通知,他们的实例会在 1 月 10 号重启。 Google 则表示,他们已经对他们的云系统打了补丁,只有那些使用自己的镜像的客户才需要更新。Xen 为它们的系统管理程序发布了补丁。在应用程序层面上,Google 建议用户使用 Chrome 里的网站隔离功能 Firefox 也有这个功能。Microsoft 则发布了一个补丁( KB4056890 ),帮助在 Edge 和 IE 11 上避开漏洞。 2018 年 1 月的 Android 安全公告则提供了 Google 准备如何在它们的移动操作系统上处理这个问题的细节。他们声称合作方已经在一个月之前就得到了通知,AOSP 将会在近期打补丁。

Google 还提到,他们还没有发现任何相关的漏洞利用存在,但是未经验证的代码可能会利用这些漏洞。

查看英文原文: Meltdown and Spectre: What They Are and How to Deal with Them

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论