安全研究人员在零项目上发布了一个名为 Spectre and Meltdown 的新漏洞,允许程序从其他程序的内存中窃取信息。它会影响 Intel、AMD 和 ARM 架构。
可以通过访问 JavaScript 网站远程利用此漏洞。技术细节可以在redhat 网站上找到,Ubuntu 安全团队。
通过推测执行侧信道攻击(CVE-2017-5715、CVE-2017-5753、CVE-2017-5754 aka Spectre 和 Meltdown)泄露信息
发现一类新的侧信道攻击会影响大多数处理器,包括来自 Intel、AMD 和 ARM 的处理器。该攻击允许恶意用户空间进程读取内核内存和来宾中的恶意代码读取管理程序内存。为了解决这个问题,需要更新 Ubuntu 内核和处理器微码。这些更新一旦可用,将在未来的 Ubuntu 安全通知中公布。
作为概念验证,编写的 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 实时窃取密码。
更新
在@Carlos Pasqualini 回答之后使用Spectre & Meltdown Checker
切换到4.9.0-5
内核版本后,因为可以使用安全更新来缓解 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 官方打包,可通过backports 存储库、Buster 和 Sid 用于 Debian Stretch。
投机存储绕过 (SSB) – 也称为变体 4
具有微处理器的系统在所有先前存储器写入的地址已知之前利用存储器读取的推测性执行和推测性执行,可能允许未经授权地向具有本地用户访问权限的攻击者披露信息,通过旁道分析。
恶意系统寄存器读取 (RSRE) – 也称为变体 3a
具有利用推测执行和执行系统寄存器推测读取的微处理器的系统可能允许未经授权将系统参数披露给具有本地用户访问权限的攻击者,该攻击者通过边信道分析进行访问。
编辑 2018 年 7 月 27 日
在本文中,我们提出了 NetSpectre,这是一种基于 Spectre 变体 1 的新攻击,不需要目标设备上的攻击者控制代码,从而影响数十亿台设备。与本地 Spectre 攻击类似,我们的远程攻击需要在目标代码中存在 Spectre 小工具。我们展示了在暴露的网络接口或 API 中包含所需 Spectre 小工具的系统可以使用我们的通用远程 Spectre 攻击进行攻击,从而允许通过网络读取任意内存。攻击者只向受害者发送一系列精心设计的请求,并测量响应时间以从受害者的内存中泄露一个秘密值。
Alan Cox 分享了来自 AMD 博客的链接: https ://www.amd.com/en/corporate/speculative-execution
变体一:边界检查绕过 变体二:分支目标注入 变体三:恶意数据缓存加载不过,最好让第三方确认这些 AMD 的声明。
受影响系统上的“缓解”需要一个新内核并重新启动,但在许多发行版上还没有发布包含修复的软件包:
德比安:
我发现的其他信息来源:
2018 年 1 月 27 日 英特尔微码破坏了某些系统
用于解决推测执行分支安全漏洞的英特尔微代码更新 2018-01-08破坏了一些系统。从 1 月 8 日到 1 月 21 日,这影响了许多 Ubuntu 系统。2018 年 1 月 22 日,Ubuntu 发布了一个更新,该更新从 2017 年 7 月 7 日恢复了旧的微码。
如果您遇到更新问题,重新安装 Ubuntu 并在 2018-01-08 和 2018-01-22 之间关闭更新,您可能需要再次尝试 Ubuntu 自动更新。
2018 年 1 月 16 日在 4.14.14 和 4.9.77 中更新 Spectre
如果您已经像我一样在运行内核版本 4.14.13 或 4.9.76,那么安装它们
4.14.14
并4.9.77
在几天后出现以缓解 Spectre 安全漏洞时,这是一个明智的选择。此修复程序的名称是Retpoline,并且没有先前推测的严重性能损失:此处无需详细介绍 JavaScript,而是如何立即避免 Meltdown 漏洞(截至 2018 年 1 月 10 日,Spectre 保护)
2018 年 1 月 12 日更新
Spectre的初步保护已经存在,并将在未来数周和数月内得到改善。
Linux 内核 4.14.13、4.9.76 LTS 和 4.4.111 LTS
来自这篇Softpedia 文章:
许多用户在 2018 年 1 月 4 日和 2018 年 1 月 10 日遇到了 Ubuntu LTS 更新问题。我已经使用
4.14.13
了几天没有任何问题,但是YMMV。2018 年 1 月 7 日更新
Greg Kroah-Hartman昨天写了一篇关于 Meltdown 和 Spectre Linux 内核安全漏洞的状态更新。有人可能会称他为 Linux 世界中仅次于 Linus 的第二大权势人物。这篇文章讨论了大多数 Ubuntu 用户拥有的稳定内核(下面讨论)和 LTS 内核。
Linux 内核 4.14.11、4.9.74、4.4.109、3.16.52 和 3.2.97 补丁崩溃缺陷
从这篇文章:
敦促用户立即更新他们的系统
2018 年 1 月 4 日 01:42 GMT · 作者 Marius Nestor
Linux 内核维护者 Greg Kroah-Hartman 和 Ben Hutchings 发布了 Linux 4.14、4.9、4.4、3.16、3.18 和 3.12 LTS(长期支持)内核系列的新版本,显然修补了影响最现代的两个关键安全漏洞之一处理器。
现在可以从 kernel.org 网站下载 Linux 4.14.11、4.9.74、4.4.109、3.16.52、3.18.91 和 3.2.97 内核,并敦促用户更新他们的 GNU/Linux 发行版如果这些新版本立即运行任何这些内核系列。为什么要更新?因为他们显然修补了一个名为 Meltdown 的严重漏洞。
如前所述,Meltdown 和 Spectre 是两个漏洞,影响了过去 25 年发布的几乎所有由现代处理器 (CPU) 驱动的设备。是的,这意味着几乎所有的手机和个人电脑。无特权的攻击者可以利用 Meltdown 恶意获取存储在内核内存中的敏感信息。
Spectre漏洞补丁仍在开发中
虽然 Meltdown 是一个严重的漏洞,它可以暴露您的秘密数据,包括密码和加密密钥,但 Spectre 更糟糕,而且不容易修复。安全研究人员表示,它会困扰我们相当长的一段时间。Spectre 以利用现代 CPU 使用的推测执行技术来优化性能而闻名。
在 Spectre 错误也被修补之前,强烈建议您至少将 GNU/Linux 发行版更新到任何新发布的 Linux 内核版本。因此,请在您最喜欢的发行版的软件存储库中搜索新的内核更新并尽快安装它。不要等到为时已晚,立即行动!
我已经使用 Kernel 4.14.10 一个星期了,所以下载和启动 Ubuntu Mainline Kernel 4.14.11版本对我来说并不太担心。
Ubuntu 16.04 用户可能更喜欢与 4.14.11 同时发布的 4.4.109 或 4.9.74 内核版本。
如果您的常规更新没有安装您想要的内核版本,您可以按照这个 Ask 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 内核版本。建议所有 4.14.11 用户升级到4.14.12 。格雷格-KH 说:
看看这个更新,并没有多少行源代码被改变。
的确。因此,一种明智的缓解措施是在您的 Web 浏览器中禁用 JavaScript,或者使用不支持 JavaScript 的 Web 浏览器。
大多数支持 JavaScript 的浏览器都有禁用它的设置。或者,如果您希望维护允许 JavaScript 的站点或域的白名单,那么有各种附加组件可以提供帮助,例如uBlock Origin和NoScript。
注意不言而喻,禁用/限制 JavaScript 不应该是您唯一的缓解措施。一旦编写、测试和发布了任何相关的内核修复和其他安全更新,您应该另外查看(并且可能应用)它们。在 Debian 派生的发行版上,使用诸如
sudo apt update
、sudo apt list-upgradable
和sudo apt upgrade
.更新:不要相信我的话。Alan Cox也这么说:
使用 JavaScript 可以利用这一事实并不是重点,也不应该是主要问题(尽管这是一个主要问题,因为这样远程代码可以很容易地在您的系统上执行,但这不是唯一的这种情况可能发生)。
您的重点不应该在于 Javascript 和/或您的浏览器。理想情况下,您的 CPU 应该打上补丁。不幸的是,对于当前的大多数错误浪潮来说,这似乎是不可能的。Debian 将与所有其他操作系统提供方一起,因此除了推荐没有缺陷的 CPU 之外,唯一可能的方法是:他们强制系统解决 CPU 中的错误。这些补丁不能解决问题。取而代之的是,操作系统会尽可能地将它们隐藏在用户在机器上运行的任何程序(因此也包括您的浏览器)中。
这种隐藏是额外的计算工作,因此您的整体系统性能将低于没有。降低多少可能在很大程度上取决于这些程序究竟做了什么。
考虑到这一点,回到你的问题:你可以做些什么来保护你的 Debian 系统是安装安全更新。尽管存在固有的 CPU 缺陷,我相信 Debian 会根据这些错误尽一切可能尽可能安全地运行 Debian。
各种大公司已经在研究这个问题,许多硬件和 Linux 大师也在努力。我不想绝对阻止您自己尝试某些事情或尝试帮助总体努力。但是,如果您只对自己的安全性和及时修复感兴趣,那么他们很可能会在比您更短的时间内找到更好的解决方案,现在开始自己研究。