JusteGeek

Protéger l'édition du GRUB avec un mot de passe

Je dois bien reconnaître que dans la vie de tous les jours et assez régulièrement je charrie sur la sécurité de Windows... mais bon, étant linuxien, on ne m'en tient pas trop rigueur. Et bien aujourd'hui je vais parler d'une "faille" linux que l'on trouve au niveau du logiciel d'amorçage GRUB (GRand Unified Bootloader). Ce n'est pas une faille à proprement parlé, mais plutôt une possibilité de contourner le fonctionnement normal du gestionnaire d'amorçage. Je vais vous présenter le problème et surtout expliquer comment y remédier. Allez hop, c'est parti !

 

La "faille" en question : la possibilité d'éditer le GRUB

La "faille" en question est due à la possibilité d'éditer le GRUB au démarrage de la machine, et ce, sans mot de passe. Il faut cependant avoir accès physiquement à celle-ci. Au démarrage, lorsque le menu apparaît, il suffit de taper 'e' pour l'éditer.

 

Ensuite, on identifie la ligne qui commence par "linux /boot/vmlinuz" et on remplace ro (Read Only) par rw (Read Write). Attention au qwerty !! Enfin, il convient de rajouter à la fin de la ligne :

"init=/bin/bash"

 

Un petit coup de F10 pour enregistrer, et hop, la machine démarre sur... un beau shell en root !!!

 

Il est possible de remédier à cette "faille" en définissant un mot de passe pour l'édition du menu. Attention cependant, la solution diffère selon la version du GRUB. Voyons donc d'abord comment identifier cette version.

 

Identifier la version du GRUB

Pour contrôler la version du GRUB, il y a plusieurs solutions. La première consiste à contrôler la version lors du boot. En effet, lorsque le menu apparaît, la version s'affiche en haut de la fenêtre (voir le premier screenshot plus haut). Attention, si vous voyez "GNU GRUB Version 1.98" ou plus, c'est que vous utilisez la version 2 de GRUB. Si vous utilisez GRUB-Legacy, vous verrez affiché "GNU GRUB Version 0.97".

L'autre solution consiste à utiliser dpkg :

dpkg -i | grep grub

Et vous apercevrez alors la version installée :

 

Je ne donnerai ici que la procédure pour la version 2 de GRUB, la version Legacy n'étant plus beaucoup utilisée.

 

Sécuriser l'édition de GRUB 2 avec un mot de passe

La première chose à faire va être de sauvegarder le fichier de configuration (/etc/grub/grub.cfg). On va en faire une copie au préalable, au cas où...

cp /boot/grub/grub.cfg /boot/grub/old.grub.cfg

 

Ensuite, pour mettre un login et un mot de passe, on va éditer ce fichier grub.cfg pour y ajouter :

#Password

set superusers = "justegeek"

password justegeek justegeek

 

Bon, là c'est bien de mettre un mot de passe, mais un mot de passe en clair... c'est plus que moyen. Alors hop, on va hasher le mot de passe. Pour cela, il faut entrer dans une console :

grub-mkpasswd-pbkdf2

La commande va alors demander de saisir le mot de passe (deux fois), puis va retourner le hash de celui-ci (en SHA1 sur 512bits).

 

Ensuite il convient d'éditer le fichier grub.cfg pour y coller le hash de votre mot de passe :

#Password

set superusers = "justegeek"

password_pbkdf2 justegeek grub.pbkdf2.sha512.10000.8A3D270280BD703A08E1AFCAF7EB5EA055069EE96286E2186CE6F6F6726C0EA91342473E1A3A093ED127F2993F86E46253AAE81DD3D1F0664B2E5FDCF9C7C7BE.64C244CF9B2EBCCF08B41211F263A7B2E245050BD072AFBED2E85E9207B794BD6E9E424898D3F4B1BCABDED24EA972581E820E6F196D69FD3547C45D738DB4D6

 

Il ne reste plus qu'à tester. Un petit reboot, et on appuie sur 'e' lorsque l'on est sur le menu boot et hop :

 

Conserver le paramétrage en cas de mise à jour

Modifier le fichier de configuration grub.cfg, OK ça fonctionne, mais pour combien de temps ? En effet, en cas de mise à jour du menu, votre paramétrage disparaîtra. Pour que la modification perdure après les mises à jour, il faut d'éditer le fichier /etc/grub.d/00_header pour y ajouter :

cat << EOF

#Password

set superusers = "justegeek"

password_pbkdf2 justegeek grub.pbkdf2.sha512.10000.8A3D270280BD703A08E1AFCAF7EB5EA055069EE96286E2186CE6F6F6726C0EA91342473E1A3A093ED127F2993F86E46253AAE81DD3D1F0664B2E5FDCF9C7C7BE.64C244CF9B2EBCCF08B41211F263A7B2E245050BD072AFBED2E85E9207B794BD6E9E424898D3F4B1BCABDED24EA972581E820E6F196D69FD3547C45D738DB4D6

EOF

Suite à cela, un petit update et ça roule ! 

update-grub

 

Vous retrouverez maintenant votre mot de passe lors des mises à jour du gestionnaire d'amorçage. Je vous recommande vraiment de faire cela, notamment si vous l'utiliser sur un PC Portable.

On dit merci JusteGeek !!! 🙂

 

Quitter la version mobile