In Bezug auf die Sicherheitslücke "Spectre" wurde "Retpoline" eingeführt, um das Risiko zu minimieren. Ich habe jedoch einen Beitrag gelesen, in dem es um Folgendes geht:
Wenn Sie den Kernel ohne erstellen
CONFIG_RETPOLINE
, können Sie keine Module mit retpoline erstellen und dann damit rechnen, dass sie geladen werden - da die Thunk-Symbole nicht exportiert werden.Wenn Sie den Kernel mit dem retpoline obwohl bauen, Sie können erfolgreich Module laden , die mit retpoline nicht gebaut werden. ( Quelle )
Gibt es eine einfache und allgemeine / generische / einheitliche Möglichkeit, um zu überprüfen, ob der Kernel "Retpoline" aktiviert ist oder nicht? Ich möchte dies tun, damit mein Installer den richtigen Build des zu installierenden Kernel-Moduls verwenden kann.
quelle
$ grep . /sys/devices/system/cpu/vulnerabilities/*
den folgenden Befehl aus, um nach weiteren Sicherheitslücken im Zusammenhang mit Meltdown / Spectre zu suchen , die in Greg Kroah-Hartmans Blog vorgeschlagen werden .head /sys/devices/system/cpu/vulnerabilities/*
mich selbst bevorzuge ;-). Das deckt derzeit Meltdown / Spectre-Schwachstellen ab, sollte aber auch zukünftige Schwachstellen ähnlicher Art abdecken (der Namespace ist absichtlich allgemein gehalten).head
gibt eine schönere formatierte Ausgabe.Stephen Kitts Antwort ist in diesem speziellen Fall umfassender, da die Retpoline-Unterstützung auch eine neue Compiler-Version benötigt.
Im Allgemeinen verfügen die meisten Distributionen jedoch über die Kernelkonfigurationsdatei an einem der folgenden Speicherorte:
/boot/config-4.xx.xx-...
/proc/config.gz
Dann kannst du einfach
zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz
quelle
/boot/config*
, da diesCONFIG_RETPOLINE
in einem Kernel-Image auftreten kann, das installiert ist, aber derzeit nicht ausgeführt wird, was ein falsches Sicherheitsgefühl vermittelt. Prüfen/proc/config.gz
oder/sys/...
ist sicher, aber viele Linux-Distributionen kompilieren den Kernel ohne/proc/config.gz
./boot/config-$(uname -r)
dann?/boot/config-$(uname -r)
ist auch nicht kinderleicht: Sie garantiert immer noch nicht, dass die Konfiguration mit dem ausgeführten Kernel übereinstimmt. Distributionskerne bleibenuname -r
über mehrere Versionen hinweg gleich, solange sich die Kernel-ABI nicht ändert.