web-dev-qa-db-fra.com

Comment vérifier si le noyau Linux est activé "Retpoline" ou non?

Quant à la vulnérabilité de sécurité "Spectre", "Retpoline" a été introduite pour être une solution pour atténuer le risque. Cependant, j'ai lu un article qui mentionnait:

Si vous construisez le noyau sans CONFIG_RETPOLINE, vous ne pouvez pas construire de modules avec retpoline, puis vous attendre à ce qu'ils se chargent - car les symboles thunk ne sont pas exportés.

Si vous construisez le noyau avec la retpoline, vous pouvez charger avec succès des modules qui ne sont pas construits avec retpoline. ( Source )

Existe-t-il un moyen simple et commun/générique/unifié de vérifier si le noyau est activé "Retpoline" ou non? Je veux le faire pour que mon installateur puisse utiliser la bonne construction du module du noyau à installer.

18
Weishan Yang

Si vous utilisez des noyaux de ligne principale, ou la plupart des noyaux de distributions majeures, la meilleure façon de vérifier la prise en charge complète de retpoline ( ie le noyau a été configuré avec CONFIG_RETPOLINE, et a été construit avec un compilateur compatible avec la rétpoline) consiste à rechercher "Retpoline générique complète" dans /sys/devices/system/cpu/vulnerabilities/spectre_v2. Sur mon système:

$ cat /sys/devices/system/cpu/vulnerabilities/spectre_v2
Mitigation: Full generic retpoline, IBPB, IBRS_FW

Si vous voulez des tests plus complets, pour détecter les rétpolines sur les noyaux sans le spectre_v2 fichier systree, découvrez comment spectre-meltdown-checker va sur les choses.

22
Stephen Kitt

La réponse de Stephen Kitt est plus complète dans ce cas spécifique, car le support de retpoline a également besoin d'une nouvelle version du compilateur.

Mais dans le cas général, la plupart des distributions ont le fichier de configuration du noyau disponible dans l'un des emplacements suivants:

  • /boot/config-4.xx.xx-...
  • /proc/config.gz

Ensuite, vous pouvez simplement zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz

4
jpa