Die Absicht des Feldes "Bugs" in /proc/cpuinfo
wird in der Commit-Nachricht beschrieben, die es eingeführt hat :
x86/cpufeature
: Füge Bug Flags zu /proc/cpuinfo
Sichern Sie die Flags, die anzeigen, dass wir Fehlerumgehungen für die CPU, auf der wir ausführen, erkannt und / oder angewendet haben, auf ähnliche Weise wie die Feature-Flags.
Der Vorteil ist, dass sich diese nicht wie die CPU-Funktionen mit der Zeit ansammeln.
Zuvor wurden vom Kernel erkannte Hardwarefehler als separate Funktionen aufgeführt ( z. B. der berüchtigte F00F-Fehler, der auf 32-Bit-x86-Systemen einen eigenen f00f_bug
Eintrag aufweist /proc/cpuinfo
). Der Eintrag "Bugs" wurde eingeführt, um diese in einem einzigen Feature zu speichern, das vorwärts geht, im selben Stil wie x86-CPU-Flags .
Soweit, was die Einträge in der Praxis bedeuten, wie Sie in der Nachricht sehen können, alle , die garantiert ist , dass der Kernel erkannt einen Hardware - Fehler. Sie müssen an anderer Stelle nachsehen (Startmeldungen oder bestimmte /proc
Einträge oder /sys
Einträge wie die Dateien in /sys/devices/system/cpu/vulnerabilities/
), um festzustellen, ob die Probleme behoben sind.
Die Nützlichkeit der "Bugs" -Einträge wird auf zwei Arten eingeschränkt. Das erste ist, dass echte Negative nicht von Unbekannten unterschieden werden können: Wenn das Feld "cpu_meltdown" nicht angibt, können Sie (nur vom Feld) nicht wissen, ob das bedeutet, dass der Kernel nichts über Meltdown weiß, oder dass Ihre CPU nicht von Meltdown betroffen ist. Das zweite ist, dass die Erkennung zu einfach sein kann; es ist ein Fehler, der zur Vorsicht Anlass gibt, zu melden, dass Ihre CPU anfällig ist, wenn dies nicht der Fall ist. Da die "Erkennung" tabellenbasiert ist, hängt ihre Genauigkeit davon ab, welche Version des Kernels Sie ausführen.
Im Fall von Meltdown- und Spectre-Fehlern /proc/cpuinfo
funktioniert der Erkennungsprozess, bei dem die Werte in eingegeben werden , auf x86 wie folgt :
- Wenn die CPU keine Spekulationen durchführt (486-Klasse, einige Pentium-Klasse, einige Atome), wird sie nicht als von Meltdown oder Spectre betroffen gekennzeichnet.
- Alle verbleibenden CPUs werden als von den Spectre-Varianten 1 und 2 betroffen gekennzeichnet (unabhängig von der Mikrocode-Revision usw.).
- Wenn die CPU nicht als nicht anfällig für spekulative Speicherumgehung aufgeführt ist , wenn ihr Mikrocode nicht behauptet, SSB zu mindern, und wenn die CPU nicht behauptet, SSB zu mindern, wird sie als von SSB betroffen gekennzeichnet.
- Wenn die CPU nicht als für Meltdown (AMD) nicht anfällig eingestuft ist und ihr Mikrocode nicht den Anspruch erhebt, Meltdown zu mindern, wird sie als von Meltdown betroffen gekennzeichnet.
Die Meltdown- / Spectre-Schwachstellen betreffen das Design / die Architektur des CPU-Chipsatzes, und die Patches sind, abgesehen vom Kauf neuer zukünftiger Hardware, eine schöne Illusion von langfristiger Sicherheit . Mit der Zeit könnten neue Methoden zur Ausnutzung der Fehler auftauchen, mit denen die aktuellen Patches umgangen werden können.
Kurz gesagt, die aktuellen Software-Patches / Mikrocodes mildern die Probleme gegenüber bekannten Methoden der Spectre / Meltdown-Familie von Exploits, lösen jedoch nicht die zugrunde liegenden CPU-Designprobleme, die sie überhaupt erst ermöglichen. Die betroffenen (mehrere Generationen) CPUs sind auf lange Sicht nicht aufgehört, anfällig zu sein (und werden es höchstwahrscheinlich nie tun).
Wie @Gilles jedoch korrekt angibt, bedeutet diese Warnung nicht, dass die derzeit bekannten Exploits der Spectre / Meltdown-Methoden funktionieren. Sie funktionieren nicht, wenn die Patches installiert sind.
In dem in der Frage erwähnten Fall überprüft der Kernel nur die CPU-Modelle, von denen bekannt ist, dass sie von Spectre / Meltdown betroffen sind (
cpu-insecure
derzeit alle x86-CPUs, wenn es sich nur um x86 handelt) / line in/proc/cpuinfo
.PS. Es gab bereits eine Reihe von Updates für eine neue Methode zur Ausnutzung der Spectre / Meltdown- "Bugs". Es wird wahrscheinlich nicht das letzte Mal sein.
quelle
/proc/cpuinfo
auch dann aufgelistet , wenn sie durch einen Software-Patch vollständig behoben wurden. Ihre Anwesenheit bedeutet nicht , dass Ihr System für diesen bestimmten Fehler anfällig ist.bugs
Zeilenshows zutrifft , und dies ist einfach falsch. Die meisten CPU-Design-Fehler haben eine vollständige Software-Problemumgehung, die nur wenig Leistung kostet. Wenn der Kernel die Problemumgehung anwendet, ist der Fehler harmlos.