On Tue, Jun 30, 2020 at 02:00:43PM -0300, Bruno Meneguele wrote: > On Tue, Jun 30, 2020 at 07:00:48AM -0400, Mimi Zohar wrote: > > On Mon, 2020-06-29 at 20:47 -0300, Bruno Meneguele wrote: > > > > > > > > > I'm not if the "secure_boot" flag is available prior to calling > > > > default_appraise_setup(), but if it is, you could modify the test > > > > there to also check if the system is booted in secure boot mode (eg. > > > > IS_ENABLED(CONFIG_IMA_APPRAISE_BOOTPARAM) && > > > > !arch_ima_get_secureboot()) > > > > > > > > > > Well pointed. I built a custom x86 kernel with some workaround to get > > > this flag status within default_appraise_setup() and as a result the > > > flag is was correctly available. > > > > > > Considering the nature of this flag (platform's firmware (in all > > > arches?)) can we trust that every arch supporting secure/trusted boot > > > will have it available in the __setup() call time? > > > > Calling default_appraise_setup() could be deferred. > > > > Hmmm.. ok, I'm going to investigate it further. > Didn't really know that. > After some research on powerpc, x86 and s390 (the only users of arch policies) codes it's clear that, no matter what, the secure boot flag will be available even before the kernel cmdline is actually copied/saved in kernel's memory. Both powerpc and x86 populate it through setup_arch() call in init/main.c:kernel_start(), where some early_params are handled, but nothing about normal (non-early) __setup() params. s390 is a bit deeper where it gets the flag, right down its boot code, even before start_kernel(). With that said, it's safe checking it directly from default_appraise_setup(). I'm going to prepare a v4, test it and post it tomorrow. -- bmeneg PGP Key: http://bmeneg.com/pubkey.txt