Meldown/Spectre 英特尔微代码中的错误

Meldown/Spectre 英特尔微代码中的错误

我想升级我的系统以减轻 Spectre 和 Meltdown 漏洞的影响。

相关 Ubuntu 页面指出我需要更新微码:“从客户机和非虚拟机管理程序裸机的角度来看,截至 2 月 21 日的内核更新,据我们所知,只要完成系统下的所有微码、固件和虚拟机管理程序更新,64 位 amd64、ppc64el 和 s390x 上针对 Spectre 和 Meltdown 的缓解措施就是功能齐全的。...”

我已经intel-microcode安装iucode-tool并更新,但是运行dmesg | grep -i microcode并且grep -i microcode /var/log/syslog*没有返回任何内容,这让我认为要么是 CPU 微码没有更新,要么是其他问题。

软件包已是最新的,并且自上次更新以来已经重新启动。

操作系统:Lubuntu 16.04

中央处理器:英特尔 N3700(Braswell)

启用的软件存储库:main、universe

启用更新:xenial-security

编辑:
的输出grep name /proc/cpuinfo | sort -u
model name : Intel(R) Pentium(R) CPU N3700 @ 1.60GHz

我的处理器不是 Skylake ,也不是 Kaby lake 。

超线程/proc/cpuinfo显示为受支持,但此英特尔页面显示不受支持:
https://ark.intel.com/products/87261/Intel-Pentium-Processor-N3700-2M-Cache-up-to-2_40-GHz

编辑2:
我运行sudo update-initramfs -u并重新启动。输出仍然相同。

输出/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*

/usr/sbin/iucode_tool: system has processor(s) with signature 0x000406c3
selected microcodes:

似乎我的 CPU 没有更新的微代码,这很有趣,因为Additional Drivers之前(2017 年末)选项卡中有一个可选择的微代码;但现在却没有了。

编辑3:
输出apt list --installed | grep intel-microcode

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

intel-microcode/xenial-security,now 3.20180108.0+really20170707ubuntu16.04.1 amd64 [installed]

编辑4:
现在我明白了,cpu微码没有更新,也就是说原来的问题已经解决,我就保持原样了。

但是,我相信应该仍会输出有关微码版本的行。dmesg我 还注意到这些启动日志从“5”开始,而不是典型的 1 或 0,并且有一个重复的错误消息导致它们被截断(没有提到截断,但说有 371635 条丢失的内核消息,见下文)。我现在将忽略这一点。journalctl -b
dmesgjournalctl

March 19 06:36:40 NN systemd-journald[266]: Runtime journal (/run/log/journal/) is 8.0M, max 78.9M, 70.9M free.
March 19 06:36:40 NN systemd-journald[266]: Missed 371635 kernel messages
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action():           (null)
March 19 06:36:40 NN kernel:    IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq():  ffffffffb9ee8f70, 
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action():           (null)
March 19 06:36:40 NN kernel:    IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq():  ffffffffb9ee8f70, 
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action():           (null)
March 19 06:36:40 NN kernel:    IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq():  ffffffffb9ee8f70, 
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, 
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120

答案1

根据结果​​,/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*没有为您的 CPU 加载微代码,因为目前没有。但这并不意味着将来不会有。您可以放心地保留 intel-microcode 和 iucode-tool 的安装,如果有包含适合您 CPU 签名的微代码的更新,则会使用它。

答案2

Meldown/Spectre 英特尔微代码中的错误

有一个2018 年初英特尔微代码更新中存在错误解决 Meltdown/Spectre 安全漏洞。因此必须将微代码回滚到以前的版本。

这是我正在使用的微代码(从 2018 年 1 月开始选择退出所有更新):

$ apt list --installed | grep intel-microcode

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

intel-microcode/now 3.20170707.1~ubuntu16.04.0 amd64 [installed,upgradable to: 3.20180108.0+really20170707ubuntu16.04.1]

当您安装英特尔微码更新时,您将获得此版本或类似版本:

intel-microcode/3.20180108.0+really20170707ubuntu16.04.1

Ubuntu 16.04 LTS 菜单

我不确定 Lubuntu 菜单结构,但对于常规 Ubuntu,这是访问英特尔微码更新控件的方式:

附加驱动程序.png

底部的选项控制英特尔微码更新。

从 CLI 安装 Intel 微码

要完全跳过 GUI 菜单,您可以从命令行安装:

sudo apt update
sudo apt install intel-microcode

dmesg现在显示正确的输出

按照安装步骤操作后将dmesg返回所需的输出(与您的问题中不显示任何内容不同):

$ dmesg | grep -i microcode
[    1.166542] microcode: sig=0x506e3, pf=0x20, revision=0xba
[    1.166993] microcode: Microcode Update Driver: v2.2.
[16082.584598] microcode: microcode updated early to revision 0xba, date = 2017-04-09

答案3

Ubuntu 已发布修复此漏洞的内核更新。新内核需要进行一些更改。

参考: 安全团队/知识库/SpectreAndMeltdown | Ubuntu 维基

我在 Ubuntu 16.04 中使用 Nouveau 显示驱动程序。就我而言,安装新内核后,Intel 微码被卸载了。

此更新是在英特尔发布针对 Spectre Bug 安全漏洞的修复后立即发布的。

这应该可以解决你的问题。

如果您像我一样更换了英特尔属性驱动程序,但仍然想要英特尔微码属性驱动程序。

英特尔发布 Linux CPU 微代码以修复 Meltdown 和 Spectre 漏洞 | bleepingcomputer.com

目前,新驱动程序尚未包含在 Ubuntu ppa 中。用户可能需要从英特尔网站手动下载。

警告:这可能会导致您的 Ubuntu 出现驱动程序冲突或不稳定。您必须自行承担安装风险。

下载 Linux 处理器微码数据文件 | downloadcenter.intel.com

对我来说,我的 Ubuntu 笔记本电脑没有问题。所以我不想冒险。我让 Ubuntu 团队来决定什么对我的系统最好。我正在等待 Ubuntu 驱动程序团队的更新。

相关内容