Comment puis-je sécuriser initrd et grub.cfg en utilisant un démarrage sécurisé?

8

J'utilise l'approche ubuntu par défaut avec shim et grub2, combinée avec ma propre clé de plate-forme (shim auto-signant avec sbsign) et une partition racine cryptée, pour sécuriser le démarrage de mon installation ubuntu. Mais cela vérifie uniquement le grubx64.efi et le noyau, mais ne protège pas les fichiers initrd.img et grub.cfg sur la partition de démarrage non chiffrée contre les modifications malveillantes.

Alors, comment puis-je vérifier la configuration initrd et grub, éventuellement en utilisant un hachage sha256, avant de les utiliser pour démarrer? Cette vérification pourrait se produire dans shim, dans grub ou dans un autre outil que je pourrais utiliser en plus ou à la place de shim et / ou grub.

Le but de cette question est d'empêcher l'exécution du noyau avec un environnement modifié (ligne de commande du noyau et initrd) afin d'empêcher la fuite du mot de passe de chiffrement de la partition racine vers n'importe où.

N'a trouvé aucune méthode pour vérifier la configuration de démarrage malgré plusieurs jours de lecture de tutoriels / blogs Web sur le démarrage sécurisé, y compris Ubuntu et PreLoader.efi de la Fondation Linux, tous expliquant comment fonctionne la vérification des exécutables, y compris les modules du noyau, mais aucun qui mentionne le grub.cfg et (scripts shell et fichiers de configuration à l'intérieur de) initrd, il semble donc que je suis le premier à demander la vérification des non-binaires dans le processus de démarrage. Les meilleures sources que j'ai jamais trouvées sont celles de Rod Smith .

Ce que je n'ai pas encore essayé, c'est de modifier le code source de shim ou grub, de créer un fork ou d'y contribuer directement. Serait-ce la seule voie à suivre?

Juergen
la source
Votre publication croisée date d'hier, un peu plus de patience serait appropriée, et la publication croisée ne l'est certainement pas (BTW si vous êtes toutefois au-dessus de la flèche descendante, vous pouvez voir les raisons des votes négatifs: aucun effort de recherche / peu clair / pas utile)
Anthon
@Anthon, où pensez-vous être l'endroit idéal pour poser cette question? Je ne sais pas, alors j'ai pensé que c'était un meilleur endroit que sur SuperUser. Et pensez-vous que je devrais supprimer la question précédente et celle-ci avant de demander à l'endroit approprié pour éviter d'être rétrogradé en raison de la publication croisée?
Juergen
La publication croisée n'est jamais acceptable, comme vous le savez si vous lisez l'aide. Sur ce site, c'est une raison de fermeture (comme vous l'avez remarqué), il faut de la patience et c'est un site de questions / réponses, pas un site d'aide personnel ou instantané. Quelques jours d'attente, surtout le week-end, seraient appropriés. Et une description plus détaillée de ce que vous avez essayé et de ce qui n'a pas fonctionné serait également appropriée. Si vous voulez que cela soit rouvert ici, supprimez le Q sur le superutilisateur, indiquez-le clairement ici (en modifiant votre message) et il sera dans la file d'attente pour être rouvert.
Anthon
@Anthon, merci pour vos commentaires. Supprimé la question sur SuperUser et expliqué la question ici plus en détail. Puis-je faire mieux?
Juergen
Ça a l'air mieux, je vote pour rouvrir, mais sachez qu'il faut plus que mon vote.
Anthon

Réponses:

0

Grub semble prendre en charge la vérification des signatures à l'aide de signatures détachées. Je suppose que c'est votre réponse.

Justin King-Lacroix
la source
Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. - De l'avis
Archemar
En fait, c'est le cas. La question d'origine était: "Alors, comment puis-je vérifier la configuration initrd et grub, éventuellement en utilisant un hachage sha256, avant de les utiliser pour démarrer? Cette vérification pourrait se produire dans shim, dans grub ou dans un autre outil que je pourrais utiliser en plus de ou au lieu de cales et / ou de vers. " La réponse est: "Grub semble prendre en charge la vérification de signature à l'aide de signatures détachées." (Implicitement: "... afin que vous puissiez signer l'initrd, générer une signature détachée et demander à Grub de la vérifier.")
Justin King-Lacroix
@Justin King-Lacroix, merci pour votre réponse, mais je ne trouve pas de signatures détachées dans gnu.org/software/grub/manual/grub.html - est-ce une caractéristique d'une fourche grub non officielle? La recherche sur le "manuel des signatures distinctes de grub" n'a rien renvoyé de spécifique. Pourriez-vous m'indiquer cette fonctionnalité, s'il vous plaît?
Juergen
Malheureusement, je n'ai pas de référence manuelle; J'ai trouvé cela en regardant à travers la source. Recherchez l'opération "vérifier".
Justin King-Lacroix