如何保护服务器免受 Meltdown 和 Spectre 漏洞的攻击

什么是Meltdown和Spectre?

2018 年 1 月 4 日,现代 CPU 设计中出现了多个漏洞,这些漏洞利用某些处理器性能优化,名为 MeltdownSpectre,使攻击者能够强迫应用程序在正确操纵时披露系统和应用程序内存的内容。

在《古兰经》中《古兰经》中《古兰经》,《古兰经》中《古兰经》,《古兰经》中《古兰经》,《古兰经》中《古兰经》,《古兰经》中《古兰经》,《古兰经》中《古兰经》中《古兰经》,《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》,《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》中《古兰经》和《古兰经》中《古兰经》中《古兰经》中的《古兰经》中

要了解更多详细信息,请参阅下面的 meltdown 是如何工作的?spectre 是如何工作的? 部分。

我是否受到Meltdown和Spectre的影响?

Meltdown 和 Spectre 影响了大多数现代处理器. 这些漏洞中使用的处理器优化是大多数 CPU 的核心设计特征,这意味着大多数系统在专门修补之前都是脆弱的。

保护Meltdown的补丁正在由操作系统供应商发布,而Spectre的更新也正在发布,但它代表了整个类型的漏洞,因此可能需要更广泛的持续修复。

在云和虚拟化环境中,提供商将需要更新基础设施以保护他们的客人,用户将需要更新他们的服务器,以减轻客人操作系统内部的影响。

我怎样才能保护自己?

完全保护此类漏洞可能需要更改CPU设计。 与此同时,软件更新可以通过禁用或处理导致这些漏洞的一些优化行为来缓解漏洞。

不幸的是,由于这些补丁会影响处理器内部的优化流程,减缓补丁可能会降低服务器的性能。

目前的减缓补丁状态

在写作时(2018年1月9日),Linux发行版已经开始发行补丁,但尚无发行版完全补丁。

已发布具有 部分缓解 ** 的内核更新的发行版(对 Spectre 的 Meltdown ** AND 变体 1 进行了修补)包括:

  • CentOS 7:内核 3.10.0-693.11.6
  • CentOS 6:内核 2.6.32-696.18.7

已发布具有 **部分缓解 ** 的内核更新的发行版(针对 Meltdown 进行了修补)包括:

  • Fedora 27: kernel 4.14.11-300
  • Fedora 26: kernel 4.14.11-200
  • Ubuntu 17.10: kernel 4.13.0-25-generic
  • Ubuntu 16.04: kernel 4.4.0-109-generic
  • Ubuntu 14.04: kernel 3.13.0-139-generic
  • Debian 9: kernel 4.9.0-5-amd64
  • Debian 8: kernel 3.16.0-5-amd64
  • Debian 7: kernel 3.2.0-5-amd64
  • Fedora 27 原子: kernel 4.14.11-300.fc27.x86_64
  • CoreOS: kernel 4.14.11-oscore

如果您的内核更新到至少与上述版本相符的版本,则已经应用了一些更新。

尚未发布缓解性内核的操作系统包括:

免费BSD 11.x 免费BSD 10.x

Ubuntu 17.04 将于 2018 年 1 月 13 日到期 不会收到任何补丁.强烈鼓励用户更新或迁移。

<$>[警告] 警告: 我们强烈建议您更新或退出已到期版本,这些版本不会收到Meltdown和Spectre等漏洞的关键安全更新,这些漏洞可能会危及您的系统和用户。

由于这种漏洞的严重性,我们建议应用更新,因为它们变得可用,而不是等待完整的修补程序,这可能需要您在未来几天或几周内升级内核并重新启动。

我如何应用更新?

要更新您的服务器,您需要更新系统软件,一旦补丁可用于您的发行. 您可以通过运行您的常规包管理器来下载最新的内核版本,然后重新启动您的服务器来切换到补丁代码来更新。

<$>[警告] 注: 本文被写成一般适用和平台无知. 如果您正在使用DigitalOcean作为您的托管提供商,并运行一个较旧的Droplet,您可能需要执行一个额外的步骤开始之前。

DigitalOcean的传统内核管理系统使用外部管理的内核,可在控制面板中进行更改。如果您的 Droplet 使用该系统,您需要配置它以使用 内部内核管理,然后继续使用(较新的 Droplets 自动使用该系统)。

对于 UbuntuDebian服务器,您可以通过更新本地包索引并升级系统软件来更新您的系统软件:

1sudo apt-get update
2sudo apt-get dist-upgrade

对于 CentOS服务器,您可以通过键入以下方式下载和安装更新的软件:

1sudo yum update

对于 Fedora服务器,请使用dnf工具:

1sudo dnf update

无论操作系统如何,一旦应用更新,请重新启动服务器以切换到新内核:

1sudo reboot

一旦服务器重新在线,请登录并对上面的列表检查活跃的内核,以确保您的内核已经升级。

附加背景

Meltdown 和 Spectre 漏洞家族利用现代处理器内部的性能增强功能. 处理器功能的组合,如投机执行、特权检查、非订单执行和 CPU 缓存,允许阅读访问应该是无限的内存位置。

Meltdown是如何工作的?

Meltdown 漏洞通过利用称为投机执行的 CPU 优化中的缺陷来欺骗一个处理器读取一个超出局限的内存位置。

  • 对非法存储位置提出请求.
  • 对第一个存储位置进行第二次请求以 conditionally 读取有效存储位置,如果第一个请求包含一定值.
  • 使用投机执行,处理器在检查最初的请求是否无效之前完成了对这两个请求的背景工作。一旦处理器理解请求涉及外界存储位置,则正确地拒绝了这两个请求。

Meltdown 代表一个可以修补的特定漏洞。

Spectre 是如何工作的?

Spectre 还通过欺骗处理器来滥用投机执行来读取受限制的值来工作。

对于 Spectre 的 变体 1,在执行边界检查之前,处理器被欺骗以投机执行读取。 首先,攻击者鼓励处理器投机地寻找超出其有效边界的内存位置。 然后,像 Meltdown 那样,一个额外的指令会根据边界值将合法地址随条件加载到缓存中。

** Spectre 的变体 2** 是最复杂的,既要利用又要减轻。 处理器通常在遇到尚无法评估的条件陈述时,也会投机执行指令。

分支预测使用先前通过代码路径运行的历史来选择投机执行的路径。这可以被攻击者用来优先处理器做出错误的投机决定。由于分支选择历史不存储决定的绝对引用,所以处理器可以被欺骗在代码的一部分中选择一个分支,即使在另一个部分接受训练。

结论

Spectre 和 Meltdown 代表着严重的安全漏洞,其可能影响的全部潜力仍在开发中。

为了保护自己,请谨慎更新操作系统软件,因为供应商发布了补丁,并继续监控与 Meltdown 和 Spectre 漏洞相关的通信。

Published At
Categories with 技术
Tagged with
comments powered by Disqus