Relevanz von /proc/cpuinfo

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Relevanz von /proc/cpuinfo

Christian Knoke

Moin, Moin,

~$ uname -a
Linux leo 4.19.0-4-686-pae #1 SMP Debian 4.19.28-2 (2019-03-15) i686 GNU/Linux
~$ cat /proc/cpuinfo

[...]
model name : Genuine Intel(R) CPU           T2300  @ 1.66GHz
stepping : 8
microcode : 0x39
[...]
bugs : cpu_meltdown spectre_v1 spectre_v2 l1tf
[...]

Nach allen Informationen, die ich habe, ist meine CPU von den
meltdown/spectre Hardware-Design-Fehlern allerdings nicht betroffen, weil
sie zu alt ist (2 Kerne ohne Threads), und keine Befehlsausführung auf
Verdacht macht.

Daher die Frage, ob die Angabe oben aufgrund eines Kernel-Tests erfolgt,
oder ob sie auf anderen Informationen beruht?

Oder könnte es sich um einen default-Wert handeln? Vielleicht, weil der beim
booten geladene Intel-Microcode keinen Patch für meine CPU enthält, weil sie
gar keinen benötigt?

Da sind natürlich auch Hoffnungen mit verbunden ...

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Stefan Baur
Am 13.05.19 um 11:01 schrieb Christian Knoke:

>
> Moin, Moin,
>
> ~$ uname -a
> Linux leo 4.19.0-4-686-pae #1 SMP Debian 4.19.28-2 (2019-03-15) i686 GNU/Linux
> ~$ cat /proc/cpuinfo
>
> [...]
> model name : Genuine Intel(R) CPU           T2300  @ 1.66GHz
> stepping : 8
> microcode : 0x39
> [...]
> bugs : cpu_meltdown spectre_v1 spectre_v2 l1tf
> [...]
>
> Nach allen Informationen, die ich habe, ist meine CPU von den
> meltdown/spectre Hardware-Design-Fehlern allerdings nicht betroffen, weil
> sie zu alt ist (2 Kerne ohne Threads), und keine Befehlsausführung auf
> Verdacht macht.

Möp.
Laut
<https://www.hardwareluxx.de/index.php/news/hardware/prozessoren/45319-intel-kaempft-mit-schwerer-sicherheitsluecke-im-prozessor-design.html?start=14>
ist diese CPU betroffen (suche nach "T2300" im Artikel). Deswegen auch
die entsprechende Ausgabe von /proc/cpuinfo.

Dort wird für diese CPU auf
<https://downloadcenter.intel.com/product/27233/Intel-Core-Duo-Processor-T2300-2M-Cache-1-66-GHz-667-MHz-FSB->
verlinkt, wo es entsprechenden Microcode geben soll. Der sollte aber
eigentlich längst per Debian-Paketmanagement verfügbar sein. Warum
meinst Du, dass der bei Dir nicht installiert ist? Hast Du das
entsprechende Debian-Paket denn installiert?

-Stefan

Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Christian Knoke

Hallo Stefan,

vielen Dank.

Stefan Baur schrieb am 13. Mai um 12:23 Uhr:

> > model name : Genuine Intel(R) CPU           T2300  @ 1.66GHz
> > stepping : 8
> > microcode : 0x39
> > [...]
> > bugs : cpu_meltdown spectre_v1 spectre_v2 l1tf

> Laut
> <https://www.hardwareluxx.de/index.php/news/hardware/prozessoren/45319-intel-kaempft-mit-schwerer-sicherheitsluecke-im-prozessor-design.html?start=14>
> ist diese CPU betroffen (suche nach "T2300" im Artikel). Deswegen auch
> die entsprechende Ausgabe von /proc/cpuinfo.

Wow, in der Liste sind ja richtig viele CPU-Modelle drin.  Die kannte ich
noch nicht.

> Dort wird für diese CPU auf
> <https://downloadcenter.intel.com/product/27233/Intel-Core-Duo-Processor-T2300-2M-Cache-1-66-GHz-667-MHz-FSB->
> verlinkt, wo es entsprechenden Microcode geben soll.

Die Seite kannte ich.

Ich konnte nun verifizieren, dass die Datei ./intel-ucode/06-0e-08 aus dem
tgz Archiv dort, identisch mit /lib/firmware/intel-ucode/06-0e-08 ist.

> Der sollte aber eigentlich längst per Debian-Paketmanagement verfügbar
> sein.

Ja, klar, ist installiert.

> Warum meinst Du, dass der bei Dir nicht installiert ist?  Hast Du das
> entsprechende Debian-Paket denn installiert?

Ich wollte wissen, woher diese bugs: Angabe kommt in /proc/cpuinfo.  Ist das
ein Resultat des Intel CPU Microcode Updates oder kommt sie woanders her?
Bedeutet es, dass der Fehler vorhanden ist, oder das er (mehr oder weniger
erfolgreich) mitigiert wurde?

Auf

  https://ark.intel.com/content/www/us/en/ark/products/27233/intel-core-duo-processor-t2300-2m-cache-1-66-ghz-667-mhz-fsb.html

steht diese Information nicht, und auf dem dort verlinkten Datasheet

  https://www.intel.com/design/mobile/datashts/309221.htm

führen alle Links nur zu

  https://www.intel.com/content/www/us/en/design/resource-design-center.html

auf das ich mangels Registrierung keinen Zugriff habe.

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Stefan Baur
Am 13.05.19 um 13:32 schrieb Christian Knoke:
> Ich wollte wissen, woher diese bugs: Angabe kommt in /proc/cpuinfo.  Ist das
> ein Resultat des Intel CPU Microcode Updates oder kommt sie woanders her?
> Bedeutet es, dass der Fehler vorhanden ist, oder das er (mehr oder weniger
> erfolgreich) mitigiert wurde?

Meines Wissens nach:
Die Angabe bedeutet, dass die CPU diesen Bug hat.
Ob er per Microcode behoben ist oder nicht, ergibt sich daraus nicht.

Gruß
Stefan

Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Christian Knoke
Stefan Baur schrieb am 13. Mai um 13:35 Uhr:
> Am 13.05.19 um 13:32 schrieb Christian Knoke:
> > Ich wollte wissen, woher diese bugs: Angabe kommt in /proc/cpuinfo.  Ist das
> > ein Resultat des Intel CPU Microcode Updates oder kommt sie woanders her?
> > Bedeutet es, dass der Fehler vorhanden ist, oder das er (mehr oder weniger
> > erfolgreich) mitigiert wurde?
>
> Meines Wissens nach:
> Die Angabe bedeutet, dass die CPU diesen Bug hat.

Stimmt:

~# aptitude -d reinstall intel-microcode
~# aptitude unmarkauto iucode-tool
~# aptitude remove intel-microcode
~# reboot
[Netzstecker ziehen]
...
~# cat /proc/cpuinfo
...
bugs : cpu_meltdown spectre_v1 spectre_v2 l1tf
...
~# aptitude install intel-microcode
~# reboot
[Netzstecker stecken]

> Ob er per Microcode behoben ist oder nicht, ergibt sich daraus nicht.

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Martin Steigerwald
In reply to this post by Christian Knoke
Hi Christian.

Christian Knoke - 13.05.19, 13:32:
> > Warum meinst Du, dass der bei Dir nicht installiert ist?  Hast Du
> > das
> > entsprechende Debian-Paket denn installiert?
>
> Ich wollte wissen, woher diese bugs: Angabe kommt in /proc/cpuinfo.
> Ist das ein Resultat des Intel CPU Microcode Updates oder kommt sie
> woanders her? Bedeutet es, dass der Fehler vorhanden ist, oder das er
> (mehr oder weniger erfolgreich) mitigiert wurde?

Soweit ich weiß, testet Linux das selbst.

So oder gibt es bessere Alternativen '/proc/cpuinfo', um über Spectre /
Meltdown Informationen zu bekommen. Und zwar auch, inwiefern Linux
Work-Arounds aktiviert hat.

% cat /proc/version
Linux version 5.1.0-tp520 (martin@merkaba) (gcc version 8.3.0 (Debian 8.3.0-7)) #15 SMP PREEMPT Mon May 6 14:28:15 CEST 2019

% cd /sys/devices/system/cpu/vulnerabilities/
% grep . *
l1tf:Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
meltdown:Mitigation: PTI
spec_store_bypass:Mitigation: Speculative Store Bypass disabled via prctl and seccomp
spectre_v1:Mitigation: __user pointer sanitization
spectre_v2:Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling

Hier ist z.B. klar, dass der Linux Kernel wegen L1 Terminal Fault
Hyperthreading nicht deaktiviert hat. Aus Performance-Gründen¹, wie die
Dokumentation sehr ausführlich erklärt. Das spielt dann eine Rolle, wenn
VMs zum Einsatz kommen.

Wer es noch ausführlicher haben möchte, installiert das Paket
'spectre-meltdown-checker' oder lädt sich das Skript herunter, falls er/sie
eine Debian-Version verwendet, die das nicht als Paket hat.

[1] https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html

[2] https://github.com/speed47/spectre-meltdown-checker

Ciao,
--
Martin


Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Christian Knoke

Hallo Martin,

Martin Steigerwald schrieb am 13. Mai um 16:52 Uhr:

> Christian Knoke - 13.05.19, 13:32:
> > > Warum meinst Du, dass der bei Dir nicht installiert ist?  Hast Du
> > > das
> > > entsprechende Debian-Paket denn installiert?
> >
> > Ich wollte wissen, woher diese bugs: Angabe kommt in /proc/cpuinfo.
> > Ist das ein Resultat des Intel CPU Microcode Updates oder kommt sie
> > woanders her? Bedeutet es, dass der Fehler vorhanden ist, oder das er
> > (mehr oder weniger erfolgreich) mitigiert wurde?
>
> Soweit ich weiß, testet Linux das selbst.

> So oder gibt es bessere Alternativen '/proc/cpuinfo', um über Spectre /
> Meltdown Informationen zu bekommen. Und zwar auch, inwiefern Linux
> Work-Arounds aktiviert hat.

> Wer es noch ausführlicher haben möchte, installiert das Paket
> 'spectre-meltdown-checker' oder lädt sich das Skript herunter, falls er/sie
> eine Debian-Version verwendet, die das nicht als Paket hat.

> [2] https://github.com/speed47/spectre-meltdown-checker

Angenehmerweise ist die aktuelle Version 0.40 des Scripts in Buster
enthalten.

Die Angaben sind wirklich sehr detailliert, und auf Wunsch mit Erklärungen
versehen! Ich versuch' mal, die für das Thema relevanten Informationen
herauszupicken:

~# spectre-meltdown-checker --verbose --explain

| * Hardware support (CPU microcode) for mitigation techniques

Hier gibt es nur "NO"'s. Interessant ist:

|  * CPU microcode is known to cause stability problems:  NO  (model 0xe
| family 0x6 stepping 0x8 ucode 0x39 cpuid 0x6e8)

|  * CPU microcode is the latest known available version:  NO  (latest
| version is 0x3c dated 2006/02/08 according to builtin MCExtractor DB v84 -
| 2018/09/27)

Mein Microcode ist Version 0x39 von 07.08.2018 (entspricht der auf
intel.de), das Script sagt, die aktuelle Version sei 0x3c vom 08.02.2006.

| * CPU vulnerability to the speculative execution attack variants

6 mal ja, 2 mal nein

Am Ende werden jedoch alle *vulnerabilities* 'mitigiert', mit einer
Ausnahme:

| CVE-2018-3640 aka 'Variant 3a, rogue system register read'
| * CPU microcode mitigates the vulnerability:  NO
|
| > STATUS:  VULNERABLE  (an up-to-date CPU microcode is needed to mitigate
| > this vulnerability)
|
| > How to fix: The microcode of your CPU needs to be upgraded to mitigate
| > this vulnerability.  This is usually done at boot time by your kernel (the
| > upgrade is not persistent across reboots which is why it's done at each
| > boot).  If you're using a distro, make sure you are up to date, as
| > microcode updates are usually shipped alongside with the distro kernel.
| > Availability of a microcode update for you CPU model depends on your CPU
| > vendor.  You can usually find out online if a microcode update is
| > available for your CPU by searching for your CPUID (indicated in the
| > Hardware Check section).  The microcode update is enough, there is no
| > additional OS, kernel or software change needed.

Hhm.

Ich habe dann noch

~# spectre-meltdown-checker --no-sysfs

laufen lassen, die Angaben sind kürzer und präziser, und weichen in 1 Punkt
ab:

-->-->-(editiert)-

CVE-2018-3640 aka 'Variant 3a, rogue system register read'
* CPU microcode mitigates the vulnerability:  NO
STATUS:  VULNERABLE  (an up-to-date CPU microcode is needed to mitigate this
vulnerability)

CVE-2018-3620 aka 'Foreshadow-NG (OS), L1 terminal fault'
* Kernel supports PTE inversion:  YES  (found in kernel image)
* PTE inversion enabled and active:  UNKNOWN  (sysfs interface not available)
STATUS:  VULNERABLE  (Your kernel supports PTE inversion but it doesn't seem
to be enabled)

SUMMARY:CVE-2017-5753:OK
        CVE-2017-5715:OK
        CVE-2017-5754:OK
        CVE-2018-3640:KO
        CVE-2018-3639:OK
        CVE-2018-3615:OK
        CVE-2018-3620:KO
        CVE-2018-3646:OK
--<--<--

Zuletzt liefert der folgende Aufruf noch abweichende Angaben.
CVE-2018-3620 ist jetzt OK und CVE-2018-3646 KO.

~# spectre-meltdown-checker --vmm yes

-->-->--
CVE-2018-3620 aka 'Foreshadow-NG (OS), L1 terminal fault'
* Mitigated according to the /sys interface:  YES  (Mitigation: PTE Inversion)
* Kernel supports PTE inversion:  YES  (found in kernel image)
* PTE inversion enabled and active:  YES
> STATUS:  NOT VULNERABLE  (Mitigation: PTE Inversion)

CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
* Information from the /sys interface:
* This system is a host running an hypervisor:  YES  (forced from command line)
* Mitigation 1 (KVM)
  * EPT is disabled:  N/A  (the kvm_intel module is not loaded)
* Mitigation 2
  * L1D flush is supported by kernel:  YES  (found flush_l1d in kernel image)
  * L1D flush enabled:  UNKNOWN  (unrecognized mode)
  * Hardware-backed L1D flush supported:  NO  (flush will be done in software, this is slower)
  * Hyper-Threading (SMT) is enabled:  NO
> STATUS:  VULNERABLE  (disable EPT or enabled L1D flushing to mitigate the
> vulnerability)

> SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK
> CVE-2018-3640:KO CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK
> CVE-2018-3646:KO
--<--<--

Da die Virtualisierungs-Unterstützung meiner 32-Bit-CPU ziemlich outdated
ist, lässt sich die aktuelle Software auf dem Rechner nicht starten, auch
das genannte kvm_intel Modul lädt nicht (das hatte ich hier mehrfach
gepostet).  Eine 3er Version von XEN hatte ich in früheren Jahren aber mal
erfolgreich angetestet.

Wie ist die Zeile oben zu verstehen:

* This system is a host running an hypervisor:  YES  (forced from command line)

a) Der Test auf aktiven Hypervisor wurde erzwungen und ein aktiver
Hypervisor gefunden

oder

b) Das Script wurde gezwungen, anzunehmen, das ein Hypervisor aktiv ist

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: Relevanz von /proc/cpuinfo

Martin Steigerwald
Hallo Christian.

Christian Knoke - 14.05.19, 12:37:

> Martin Steigerwald schrieb am 13. Mai um 16:52 Uhr:
> > Christian Knoke - 13.05.19, 13:32:
> > > > Warum meinst Du, dass der bei Dir nicht installiert ist?  Hast
> > > > Du
> > > > das
> > > > entsprechende Debian-Paket denn installiert?
> > >
> > > Ich wollte wissen, woher diese bugs: Angabe kommt in
> > > /proc/cpuinfo.
> > > Ist das ein Resultat des Intel CPU Microcode Updates oder kommt
> > > sie
> > > woanders her? Bedeutet es, dass der Fehler vorhanden ist, oder das
> > > er
> > > (mehr oder weniger erfolgreich) mitigiert wurde?
> >
> > Soweit ich weiß, testet Linux das selbst.
> >
> > So oder gibt es bessere Alternativen '/proc/cpuinfo', um über
> > Spectre / Meltdown Informationen zu bekommen. Und zwar auch,
> > inwiefern Linux Work-Arounds aktiviert hat.
> >
> > Wer es noch ausführlicher haben möchte, installiert das Paket
> > 'spectre-meltdown-checker' oder lädt sich das Skript herunter, falls
> > er/sie eine Debian-Version verwendet, die das nicht als Paket hat.
> >
> > [2] https://github.com/speed47/spectre-meltdown-checker
>
> Angenehmerweise ist die aktuelle Version 0.40 des Scripts in Buster
> enthalten.
>
> Die Angaben sind wirklich sehr detailliert, und auf Wunsch mit
> Erklärungen versehen! Ich versuch' mal, die für das Thema relevanten
> Informationen herauszupicken:
>
> ~# spectre-meltdown-checker --verbose --explain

Raus picken?

Ich fand das sehr lang und hab nicht verstanden, inwiefern du da noch
eine Frage hast oder nicht.

Ciao,
--
Martin