在具有当前内核和已安装微代码的 Debian Stretch 和测试/Buster 系统上,我仍然看到在/proc/cpuinfo
.
然而,运行spectre-meltdown-checker
显示并不脆弱。
所以我想知道什么/proc/cpuinfo
显示。这些只是该 CPU 的漏洞吗?尽管系统已打补丁,但这些漏洞是否总是会被列出?
Ste*_*itt 28
“bugs”字段的意图/proc/cpuinfo
在引入它的提交消息中描述:
x86/cpufeature
: 添加错误标志到/proc/cpuinfo
以与功能标志类似的方式,转储表示我们已检测到和/或已将错误解决方法应用于我们正在执行的 CPU 的标志。
优点是这些不会像 CPU 功能那样随着时间的推移而累积。
以前,内核检测到的硬件错误被列为单独的功能(例如臭名昭著的 F00F 错误,它在 32 位 x86 系统上有自己的f00f_bug
入口/proc/cpuinfo
)。引入了“bugs”条目以将它们保存在单个功能中,与x86 CPU flags风格相同。
就这些条目在实践中的含义而言,正如您在消息中所看到的,可以保证的是内核检测到了硬件错误。您需要查看其他地方(引导消息,或特定/proc
条目或/sys
条目,例如 中的文件/sys/devices/system/cpu/vulnerabilities/
)以确定问题是否得到处理。
“错误”条目的用处有两个方面的限制。第一个是真否定与未知无法区分:如果该字段未指定“cpu_meltdown”,则您无法知道(仅从该字段中)这是否意味着内核不知道 Meltdown,或者您的 CPU 不受 Meltdown 的影响。二是检测可能过于简单;出于谨慎的考虑,它会出错,因此它可能会报告您的 CPU 存在漏洞,而实际上并非如此。因为“检测”是表驱动的,它的准确性取决于您运行的内核版本。
在 Meltdown 和 Spectre 错误的情况下,在 x86 上提供值的检测过程/proc/cpuinfo
如下所示:
Rui*_*iro 12
Meltdown/Spectre 漏洞存在于 CPU 芯片组设计/架构上,如果没有购买新的未来硬件,这些补丁是长期安全的一个很好的假象。随着时间的推移,可能会出现能够绕过当前补丁的利用漏洞的新方法。
简而言之,当前的软件补丁/微代码减轻了针对已知的 Spectre/Meltdown 系列漏洞利用方法的问题,但并没有解决允许它们首先出现的底层 CPU 设计问题。从长远来看,受影响的(几代)CPU 并没有停止受到攻击(而且很可能永远不会)。
但是,正如@Gilles 正确指出的那样,出现该警告并不意味着当前已知的利用 Spectre/Meltdown 方法会起作用;如果安装了补丁,它们将无法工作。
在问题中提到的情况下,内核仅检查已知受 Spectre/Meltdown 影响的 CPU 模型(如果我们只讨论 x86,则目前为所有 x86 CPU),因此cpu-insecure
仍在错误部分中列出/线在/proc/cpuinfo
。
去检查你的
/proc/cpuinfo
. 如果您的内核有 KPTI 补丁,它将包含 cpu_insecure我发现 KPTI 补丁有这段代码:
Run Code Online (Sandbox Code Playgroud)/* Assume for now that ALL x86 CPUs are insecure */ setup_force_cpu_bug(X86_BUG_CPU_INSECURE);
内核更新后,您将获得:
Run Code Online (Sandbox Code Playgroud)bugs : cpu_insecure
附注。利用 Spectre/Meltdown “漏洞”的新方法已经有了一轮更新。这可能不会是最后一次。
归档时间: |
|
查看次数: |
14849 次 |
最近记录: |