Sécurisation du menu GRUB

Tags: #<Tag:0x00007f95416add48>

Bonjour,

sur mon ordi (Debian 12) je voulais sécuriser le menu GRUB, pour éviter le petit hack du shell root obtenu en ajoutant init=/bin/bash dans les paramètres d’exécution de linux.

Dans mes souvenirs, confirmés par les quelques tutos consultés (comme ici), la procédure est de générer un hash de mot de passe avec grub-mkpasswd-pbkdf2, et d’éditer le fichier /etc/grub.d/40_custom pour y ajouter les lignes

set superusers = "un_nom_quelconque"
password_pbkdf2 le_même_nom le_hash_du_mdp

Ensuite un petit sudo update-grub.

Mais suite à ces manips, au reboot (sudo reboot) suivant je peux toujours éditer le menu GRUB sans devoir saisir le moindre mot de passe.

J’ai aussi tenté d’écrire ces modifs directement dans /boot/grub/grub.cfg et reboot sans update-grub, mais le comportement a été le même.

J’ai raté quelque chose ? J’ai grub 2.06-13+deb12u1, et je joins la sortie de journalctl -b:

févr. 05 18:05:39 pc-debian kernel: Linux version 6.1.0-30-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1>
févr. 05 18:05:39 pc-debian kernel: random: crng init done
févr. 05 18:05:39 pc-debian kernel: Kernel is locked down from EFI Secure Boot; see man kernel_lockdown.7
févr. 05 18:05:39 pc-debian kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-6.1.0-30-amd64 root=/dev/mapper/pc-debian--vg-root ro quiet init=/bin/bash
févr. 05 18:05:39 pc-debian kernel: Unknown kernel command line parameters "BOOT_IMAGE=/vmlinuz-6.1.0-30-amd64", will be passed to user space.

Ce n’est pas tout à fait exact, la seconde ligne doit être:

password_pbkdf2 root grub.pbkdf2.sha512.10000.XXX..XXXXX

Et de fait quand fait un update-grub ca doit être bon.

Mais en fait tout ça ne sert pas vraiment à grand chose. Car si tu peux modifier le boot grub, c’est que tu as accès à la machine.
Et si tu as accès à la machine alors il est facile d’aller directement modifier ton grub.conf sur le disque dur directement.
De facto, en s’en fout un peu de ces options au final :slight_smile:

A moins que tu n’aies chiffré ton disque, y compris /boot/grub bien sur.
N’ayant ainsi que /boot/efi de non chiffré, qui est plus difficile à hacker.

Salut Zargos,

voilà mon fichier:

$ cat /etc/grub.d/40_custom 
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

# Password
set superusers = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.8C0CDCD941159E6521FAD27069FA119C848DEC450745774B3D660B62AD876B2AA3541E1E26F5008F7C047A2463C7B1B2091727290DB4F9C0D197F148C8819721.FB5F9EBB5DDDA0CFBDC68EA58A249905D2B1963B5E763A16EF5C162455CB03A2A9D693845641FF23EDDAB44519D4A80591B4711D8F2FFB8C6A129DEB033F49DA

Mais toujours pas de mot de passe demandé, après update-grub bien sûr. D’ailleurs le update-grub n’est pas en cause, je pense, puisque je retrouve bien ces lignes dans /boot/grub/grub.cfg:

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

# Password
set superusers = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.8C0CDCD941159E6521FAD27069FA119C848DEC450745774B3D660B62AD876B2AA3541E1E26F5008F7C047A2463C7B1B2091727290DB4F9C0D197F148C8819721.FB5F9EBB5DDDA0CFBDC68EA58A249905D2B1963B5E763A16EF5C162455CB03A2A9D693845641FF23EDDAB44519D4A80591B4711D8F2FFB8C6A129DEB033F49DA

### END /etc/grub.d/40_custom ###

Bien d’accord avec toi, en fait je montrais l’astuce de l’édition de menu GRUB à une connaissance qui avait oublié les mdp d’un vieil ordi Debian, et cette connaissance m’a répondu, à juste titre, qu’il s’agissait d’une sacrée faille de sécurité (même si elle nécessite un accès physique à la machine, l’opération est très rapide et simple), donc j’ai voulu lui montrer qu’on pouvait « bien évidemment » configurer GRUB pour éviter cette faille, mais patatras