2018 年 1 月 27 日英特尔微码破坏了一些系统

2018 年 1 月 27 日英特尔微码破坏了一些系统

安全研究人员发表在零号计划一个名为 Spectre 和 Meltdown 的新漏洞允许程序从其他程序的内存中窃取信息。它影响 Intel、AMD 和 ARM 架构。

可以通过访问 JavaScript 网站来远程利用此缺陷。技术细节可参见红帽网站,Ubuntu 安全团队

通过推测执行侧通道攻击导致信息泄露(CVE-2017-5715、CVE-2017-5753、CVE-2017-5754 又名 Spectre 和 Meltdown)

人们发现,一种新型旁道攻击会影响大多数处理器,包括 Intel、AMD 和 ARM 的处理器。该攻击允许恶意用户空间进程读取内核内存,并允许来宾中的恶意代码读取虚拟机管理程序内存。为了解决这个问题,需要更新 Ubuntu 内核和处理器微代码。这些更新一旦可用,将在未来的 Ubuntu 安全声明中公布。

JavaScript 中的实现示例

作为概念验证,编写的 JavaScript 代码在 Google Chrome 浏览器中运行时,允许 JavaScript 从其运行的进程中读取私有内存。

我的系统似乎受到幽灵漏洞的影响。我已经编译并执行了这个概念验证(spectre.c)。

系统信息:

$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux

$ cat /proc/cpuinfo
model name  : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz

$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516

如何缓解Linux系统上的Spectre和Meldown漏洞?

进一步阅读:使用 Meltdown 实时窃取密码

更新

使用Spectre & Meltdown Checker在切换到4.9.0-5遵循 @Carlos Pasqualini 答案的内核版本后,因为可以使用安全更新来缓解 debian Stretch 上的 cve-2017-5754:

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel:  NO  (only 31 opcodes found, should be >= 70)
> STATUS:  VULNERABLE  (heuristic to be improved when official patches become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  NO 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

2018 年 1 月 25 日更新

spectre-meltdown-checker脚本由 debian 官方打包,可通过 Debian Stretch 使用向后移植存储库、Buster 和 Sid。

更新2018年5月22日

推测性存储绕过 (SSB) – 也称为变体 4

具有微处理器的系统在所有先前存储器写入的地址已知之前利用推测执行和存储器读取的推测执行可能允许通过旁道分析向具有本地用户访问权限的攻击者未经授权地泄露信息。

恶意系统寄存器读取 (RSRE) – 也称为变体 3a

具有利用推测执行并执行系统寄存器的推测读取的微处理器的系统可能允许通过旁道分析向具有本地用户访问权限的攻击者未经授权地泄露系统参数。

2018 年 7 月 27 日编辑

NetSpectre:通过网络读取任意内存

在本文中,我们提出了 NetSpectre,这是一种基于 Spectre 变体 1 的新攻击,不需要攻击者在目标设备上控制代码,从而影响数十亿设备。与本地 Spectre 攻击类似,我们的远程攻击需要目标代码中存在 Spectre 小工具。我们证明,在暴露的网络接口或 API 中包含所需 Spectre 小工具的系统可以通过我们的通用远程 Spectre 攻击进行攻击,从而允许通过网络读取任意内存。攻击者仅向受害者发送一系列精心设计的请求并测量响应时间,以从受害者的内存中泄漏秘密值。

答案1

Alan Cox 分享了 AMD 博客中的链接: https://www.amd.com/en/corporate/speculative-execution

变体一:绕过边界检查

通过系统供应商和制造商提供的软件/操作系统更新来解决。预期性能影响可以忽略不计。

变体二:分支目标注入

AMD 架构的差异意味着该变体被利用的风险几乎为零。迄今为止,AMD 处理器尚未证实变体 2 的漏洞。

变体三:恶意数据缓存加载

由于 AMD 架构差异,AMD 零漏洞。

不过,最好能得到第三方对 AMD 声明的确认。

受影响系统上的“缓解”需要新内核并重新启动,但在许多发行版上尚未发布带有修复程序的软件包:

德班:

我发现的其他信息来源:

答案2

2018 年 1 月 27 日英特尔微码破坏了一些系统

英特尔微码更新 2018-01-08为了解决推测执行分支安全漏洞,破坏了一些系统。从 1 月 8 日到 1 月 21 日,这影响了许多 Ubuntu 系统。 2018 年 1 月 22 日,Ubuntu 发布了一个更新,恢复了 2017 年 7 月 7 日以来的旧微代码。

如果您在 2018 年 1 月 8 日至 2018 年 1 月 22 日期间遇到更新问题、重新安装 Ubuntu 并关闭更新,您可能需要再次尝试 Ubuntu 自动更新。

2018年1月16日更新Spectre 4.14.14和4.9.77

如果您已经像我一样运行内核版本 4.14.13 或 4.9.76,那么安装4.14.144.9.77当它们在几天内发布时可以缓解 Spectre 安全漏洞。此修复程序的名称是雷特波林并且没有出现之前推测的严重性能影响:

Greg Kroah-Hartman 已经发布了 Linux 4.9 和 4.14 点版本的最新补丁,其中现在包括 Retpoline 支持。

所有 AMD/Intel CPU 均启用此 X86_FEATURE_RETPOLINE。为了获得全面支持,您还需要使用包含 -mindirect-branch=thunk-extern 支持的较新 GCC 编译器构建内核。 GCC 更改已于昨天登陆 GCC 8.0,并且可能会向后移植到 GCC 7.3。

那些想要禁用 Retpoline 支持的人可以使用以下命令启动修补过的内核诺雷波林

这里不涉及 JavaScript 的细节,而是如何立即避免 Meltdown 漏洞(以及截至 2018 年 1 月 10 日的 Spectre 保护)

2018 年 1 月 12 日更新

初步保护幽灵就在这里,并将在未来几周和几个月内得到改进。

Linux 内核 4.14.13、4.9.76 LTS 和 4.4.111 LTS

由此软百科文章:

Linux 内核 4.14.13、4.9.76 LTS 和 4.4.111 LTS 现在可以从 kernel.org 下载,它们包含更多针对 Spectre 安全漏洞的修复,以及 Linux 4.14.12、4.9 的一些回归.75 LTS 和 4.4.110 LTS 内核上周发布,一些人报告了一些小问题。

这些问题现在似乎已得到解决,因此可以安全地将基于 Linux 的操作系统更新到今天发布的新内核版本,其中包括更多 x86 更新、一些 PA-RISC、s390 和 PowerPC (PPC) 修复、各种改进驱动程序(Intel i915、crypto、IOMMU、MTD)以及常见的 mm 和核心内核更改。

许多用户在2018年1月4日和2018年1月10日的Ubuntu LTS更新时遇到了问题。但是我已经使用了4.14.13几天没有任何问题青年MMV


2018 年 1 月 7 日更新

格雷格·克罗哈特曼写了一个状态更新昨天的 Meltdown 和 Spectre Linux 内核安全漏洞。有些人可能称他为 Linux 世界中仅次于 Linus 的第二号人物。本文讨论了大多数 Ubuntu 用户拥有的稳定内核(如下所述)和 LTS 内核。


Linux 内核 4.14.11、4.9.74、4.4.109、3.16.52 和 3.2.97 补丁 Meltdown 缺陷

本文:

敦促用户立即更新系统

2018 年 1 月 4 日 01:42 GMT · 马吕斯·内斯特

Linux 内核维护者 Greg Kroah-Hartman 和 Ben Hutchings 发布了 Linux 4.14、4.9、4.4、3.16、3.18 和 3.12 LTS(长期支持)内核系列的新版本,该系列显然修补了影响大多数现代系统的两个关键安全缺陷之一处理器。

Linux 4.14.11、4.9.74、4.4.109、3.16.52、3.18.91 和 3.2.97 内核现已可以从 kernel.org 网站下载,并敦促用户更新其 GNU/Linux 发行版如果这些新版本立即运行这些内核系列中的任何一个。为什么要更新?因为他们显然修补了一个名为 Meltdown 的严重漏洞。

如前所述,Meltdown 和 Spectre 这两个漏洞几乎影响了过去 25 年中发布的所有采用现代处理器 (CPU) 的设备。是的,这意味着几乎所有手机和个人电脑。非特权攻击者可以利用 Meltdown 来恶意获取存储在内核内存中的敏感信息。

Spectre 漏洞的修补程序仍在进行中

虽然 Meltdown 是一个严重的漏洞,可能会暴露您的秘密数据,包括密码和加密密钥,但 Spectre 的情况更糟,而且不容易修复。安全研究人员表示,这将困扰我们相当长一段时间。众所周知,Spectre 会利用现代 CPU 所使用的推测执行技术来优化性能。

在 Spectre bug 也得到修补之前,强烈建议您至少将 GNU/Linux 发行版更新到任何新发布的 Linux 内核版本。因此,请在您最喜欢的发行版的软件存储库中搜索新的内核更新并尽快安装。不要等到为时已晚,现在就做!


我已经使用 Kernel 4.14.10 一周了,所以下载并启动 Ubuntu Mainline Kernel 版本11.4.14对我来说并不太担心。

Ubuntu 16.04 用户可能更喜欢与 4.14.11 同时发布的 4.4.109 或 4.9.74 内核版本。

如果您的常规更新没有安装您想要的内核版本,您可以按照询问 Ubuntu 答案手动安装:https://askubuntu.com/questions/879888/how-do-i-update-kernel-to-the-latest-mainline-version/879920#879920


4.14.12 - 一天的变化有多大

在我最初回答后不到 24 小时,发布了一个补丁来修复他们可能匆忙推出的 4.14.11 内核版本。升级至2012年4月14日建议所有 4.14.11 用户使用。格雷格-KH 说:

我宣布发布 4.14.12 内核。

所有4.14内核系列的用户都必须升级。

人们在这个版本中遇到了一些仍然已知的小问题。希望这些问题能在本周末得到解决,因为补丁还没有落在 Linus 的树上。

现在,一如既往,请测试您的环境。

查看此更新并没有更改很多行源代码。

答案3

事实上,可以使用 JavaScript 来利用这一点并不是重点,也不应该是主要关注点(尽管这是一个主要问题,因为这样可以轻松地在您的系统上执行远程代码,但这并不是唯一的问题)这可能会发生)。

您的注意力不应该集中在 Javascript 和/或您的浏览器上。理想情况下,您的 CPU 应该打补丁。不幸的是,对于当前的大多数错误浪潮来说,这似乎是不可能的。因此,Debian 将与所有其他操作系统提供方一起采取唯一可能的方式来推荐没有缺陷的 CPU:它们迫使系统解决 CPU 中的错误。这些补丁并不能解决问题。相反,操作系统会尽可能地从用户在计算机(以及您的浏览器)上运行的任何程序中隐藏它们。

这种隐藏是额外的计算工作,因此您的整体系统性能将低于没有隐藏的情况。降低多少可能在很大程度上取决于这些程序到底做什么。

考虑到这一点,回到你的问题:你可以做的就是安装安全更新来保护你的 Debian 系统。我相信 Debian 将尽一切可能针对这些错误,尽可能安全地运行 Debian,尽管存在固有的 CPU 缺陷。

各种大公司已经在致力于解决这个问题,众多硬件和 Linux 专家也是如此。我不想绝对阻止你自己尝试某些事情或尝试帮助一般努力。但是,如果您只关心自己的安全性和及时修复,那么他们很可能会在比您更短的时间内找到更好的解决方案,现在就开始自己研究一下。

答案4

可以通过访问 JavaScript 网站来远程利用此缺陷。

的确。因此,一种明智的缓解措施是在 Web 浏览器中禁用 JavaScript,或使用不支持 JavaScript 的 Web 浏览器。

大多数支持 JavaScript 的浏览器都有禁用它的设置。或者,如果您希望维护允许 JavaScript 的网站或域的白名单,则可以使用各种附加组件来提供帮助,例如uBlock起源无脚本

注意:不用说,禁用/限制 JavaScript 不应该是你的事仅有的减轻。一旦编写、测试和发布了任何相关的内核修复和其他安全更新,您还应该查看(并可能应用)它们。在 Debian 衍生发行版上,使用命令例如 sudo apt updatesudo apt list-upgradable, 和sudo apt upgrade

更新:别相信我的话。艾伦·考克斯说得也差不多:

你需要关心什么重要时刻是 javascript,因为该漏洞可以被网页上的 javascript 远程使用,从您的系统内存中窃取内容。 ...考虑像广告拦截器和像 noscript 这样的扩展,它们可以首先阻止大量垃圾运行。尽快做。当操作系统更新出现时应用它们。 (来源

相关内容