Answers:
引入它/proc/cpuinfo
的提交消息中描述了“ bugs”字段的意图:
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
以以下方式工作的值的检测过程如下:
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补丁包含以下代码:
/* Assume for now that ALL x86 CPUs are insecure */ setup_force_cpu_bug(X86_BUG_CPU_INSECURE);
在内核更新之后,您将获得:
bugs : cpu_insecure
PS。利用Spectre / Meltdown“错误”的新方法已经有了新的更新。可能不会是最后一次。
/proc/cpuinfo
即使已通过软件补丁完全消除了CPU错误,也会列出其中。它们的存在并不意味着您的系统容易受到特定的错误。
bugs
线路显示是正确的,这是错误的。大多数CPU设计错误都具有完整的软件解决方法,而只需要很少的性能。如果内核应用了解决方法,则该错误是无害的。