我已经在笔记本电脑上安装了最新的 BIOS。笔记本电脑制造商表示,BIOS 更新将包括有关 Spectre/Meltdown 漏洞的修正。
- Ubuntu 14.04 LTS 使用什么微码?
- 它是从 BIOS 加载微码还是从 HD 上的系统文件加载微码?
- 当它使用来自 HD 的微代码时,我担心它可能是一个不具备 Spectre/Meltdown 防护的旧版本。
- 如何检查系统加载和使用了哪些微码以及如何检查哪个是较新的版本?
答案1
Ubuntu 根本不使用微代码(就您所说的意义而言)。但是,您的 CPU 确实使用微代码——即代码它需要发挥作用。
Ubuntu 提供 amd 和 intel 微码软件包,它们为该硬件提供更新的固件。这些软件包已使用 Ubuntu 所有受支持的版本中的所有 Spectre/Meltdown 补丁进行了全面更新。
Ubuntu 安全团队负责持续修复漏洞。这是支持在受支持的 Ubuntu 版本中。从 Ubuntu 的 -security 存储库升级时,您会定期收到这些补丁。
如果您对特定漏洞有疑问,请随时搜索数据库漏洞和补丁。
确定你的 CPU 正在使用哪个版本的固件grep microcode /proc/cpuinfo
最后,请注意,版本号在检查漏洞时可能会产生误导:修补后的软件包可能没有更高的上游版本号(因为它不是新的上游版本),但仍已修复和测试,并且不再存在漏洞。在这些情况下,Debian 和 Ubuntu 会添加自己的补充版本号,以便您能够区分。
答案2
答案是:
它首先从 BIOS 加载微代码,然后然后,在加载操作系统时,操作系统会再次加载最新的微码。两者都是签据称不可能被篡改的二进制文件。
因此,如果 BIOS/UEFI 的版本比提供给操作系统,MicroCode 由操作系统通过系统更新加载/更新。否则使用 BIOS/UEFI 版本。
这操作系统 确实加载启动过程中的微代码这个维基:
但是,CPU 供应商提供的“不透明”更新数据本身不是免费的,Debian 不知道其内容。此“不透明”数据按原样发送到 CPU 进行处理,但只有当内核和用户空间实用程序认为有必要时才会这样做。这意味着除非确实需要,否则不会将微代码更新发送到系统处理器。
例如,当处理器报告其已运行相同版本或更新版本的微代码时(因为 UEFI/BIOS 已对其进行更新),系统将永远不会向处理器发送微代码更新数据。它也不会发送不适合该系统处理器的微代码更新数据。