¿Cómo puedo asegurar el initrd y grub.cfg usando el arranque seguro?

8

Estoy usando el enfoque predeterminado de ubuntu con shim y grub2, combinado con mi propia clave de plataforma (shim de firma automática con sbsign) y una partición raíz encriptada, para asegurar el arranque de mi instalación de ubuntu. Pero esto solo verifica el grubx64.efi y el kernel, pero no protege los archivos initrd.img y grub.cfg en la partición de arranque no cifrada de modificaciones maliciosas.

Entonces, ¿cómo puedo verificar el initrd y la configuración de grub, posiblemente usando un hash sha256, antes de usarlos para arrancar? Esa verificación podría ocurrir en shim, en grub o en alguna otra herramienta que podría usar además de o en lugar de shim y / o grub.

El propósito de esta pregunta es evitar que el núcleo se ejecute con un entorno modificado (línea de comando del núcleo e initrd) para evitar que se filtre la contraseña de cifrado de la partición raíz en cualquier lugar.

No encontré ningún método para verificar la configuración de arranque a pesar de varios días de leer tutoriales / blogs web sobre arranque seguro, incluidos Ubuntu y PreLoader.efi de Linux Foundation, todo lo cual explica cómo funciona la verificación de ejecutables, incluidos los módulos del núcleo, pero ninguno de que menciona grub.cfg y (scripts de shell y archivos de configuración dentro del) initrd, por lo que parece que soy el primero en solicitar la verificación de no binarios en el proceso de arranque. Las mejores fuentes que he encontrado son las de Rod Smith .

Lo que aún no intenté es modificar el código fuente de shim o grub, crear un tenedor o contribuir directamente a ellos. ¿Sería ese el único camino a seguir?

Juergen
fuente
Su publicación cruzada fue de ayer, un poco más de paciencia sería apropiado, y la publicación cruzada ciertamente no lo es (BTW si, sin embargo, por encima de la flecha puede ver las razones de los votos negativos: sin esfuerzo de investigación / poco claro / no útil)
Anthon
@Anthon, ¿dónde crees que es el lugar apropiado para hacer esta pregunta? No lo sé, así que pensé que este es un lugar mejor que en SuperUser. ¿Y cree que debería eliminar la pregunta anterior y esta antes de preguntar en el lugar apropiado para evitar que se rechace la votación debido a la publicación cruzada nuevamente?
Juergen
La publicación cruzada nunca está bien, como sabrías si lees la ayuda. En este sitio es una razón para el cierre (como notó), se necesita algo de paciencia y también es un sitio de preguntas y respuestas, no un sitio de ayuda personal o instantánea. Unos días de espera, especialmente durante el fin de semana, sería apropiado. Y una descripción más de lo que intentó y lo que no funcionó también sería apropiado. Si desea que se vuelva a abrir aquí, elimine la Q en el superusuario, indíquelo claramente aquí (editando su publicación) y luego estará en la cola para volver a abrirla.
Anthon
@Anthon, gracias por tus comentarios. Eliminó la pregunta en SuperUser y explicó la pregunta aquí con más detalle. ¿Puedo hacerlo mejor?
Juergen
Se ve mejor, voto para reabrir, pero tenga en cuenta que se necesita algo más que mi voto.
Anthon

Respuestas:

0

Grub parece admitir la verificación de firmas utilizando firmas separadas. Sospecho que esa es tu respuesta.

Justin King-Lacroix
fuente
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación. - De la opinión
Archemar
En realidad lo hace. La pregunta original era: "Entonces, ¿cómo puedo verificar el initrd y la configuración de grub, posiblemente usando un hash sha256, antes de usarlos para arrancar? Esa verificación podría ocurrir en shim, en grub o en alguna otra herramienta que pueda usar además de o en lugar de cuñas y / o larvas ". La respuesta es: "Grub parece admitir la verificación de firmas utilizando firmas separadas". (Implícitamente: "... para que pueda firmar el initrd, generar una firma separada y hacer que Grub lo verifique".)
Justin King-Lacroix
@Justin King-Lacroix, gracias por su respuesta, pero no puedo encontrar firmas separadas en gnu.org/software/grub/manual/grub.html . ¿Es esa una característica de un tenedor de comida no oficial? Googlear "manual de grub de firmas separadas" no devolvió nada específico. ¿Podría señalarme esa característica, por favor?
Juergen
Lamentablemente, no tengo una referencia manual; Encontré esto mirando a través de la fuente. Busque la operación "verificar".
Justin King-Lacroix