LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Mimi Zohar <zohar@linux.vnet.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Kees Cook <keescook@chromium.org>,
David Howells <dhowells@redhat.com>,
Matthew Garrett <mjg59@google.com>,
linux-integrity@vger.kernel.org,
linux-security-module@vger.kernel.org, kexec@lists.infradead.org,
linux-kernel@vger.kernel.org,
kernel-hardening@lists.openwall.com
Subject: Re: [PATCH 0/3] kexec: limit kexec_load syscall
Date: Thu, 03 May 2018 17:57:55 -0400 [thread overview]
Message-ID: <1525384675.3539.89.camel@linux.vnet.ibm.com> (raw)
In-Reply-To: <87d0yco1vy.fsf@xmission.com>
On Thu, 2018-05-03 at 16:38 -0500, Eric W. Biederman wrote:
> Mimi Zohar <zohar@linux.vnet.ibm.com> writes:
>
> > [Cc'ing Kees and kernel-hardening]
> >
> > On Thu, 2018-05-03 at 15:13 -0500, Eric W. Biederman wrote:
> >> Mimi Zohar <zohar@linux.vnet.ibm.com> writes:
> >>
> >> > In environments that require the kexec kernel image to be signed, prevent
> >> > using the kexec_load syscall. In order for LSMs and IMA to differentiate
> >> > between kexec_load and kexec_file_load syscalls, this patch set adds a
> >> > call to security_kernel_read_file() in kexec_load_check().
> >>
> >> Having thought about it some more this justification for these changes
> >> does not work. The functionality of kexec_load is already root-only.
> >> So in environments that require the kernel image to be signed just don't
> >> use kexec_load. Possibly even compile kexec_load out to save space
> >> because you will never need it. You don't need a new security hook to
> >> do any of that. Userspace is a very fine mechanism for being the
> >> instrument of policy.
> >
> > True, for those building their own kernel, they can disable the old
> > syscalls. The concern is not for those building their own kernels,
> > but for those using stock kernels.
> >
> > By adding an LSM hook here in the kexec_load syscall, as opposed to an
> > IMA specific hook, other LSMs can piggy back on top of it. Currently,
> > both load_pin and SELinux are gating the kernel module syscalls based
> > on security_kernel_read_file.
> >
> > If there was a similar option for the kernel image, I'm pretty sure
> > other LSMs would use it.
> >
> > From an IMA perspective, there needs to be some method for only
> > allowing signed code to be loaded, executed, etc. - kernel modules,
> > kernel image/initramfs, firmware, policies.
>
> What is the IMA perspective. Why can't IMA trust appropriately
> authorized userspace?
Suppose a system owner wants to define a system wide policy that
requires all code be signed - kernel modules, firmware, kexec image &
initramfs, executables, mmapped files, etc - without having to rebuild
the kernel. Without a call in kexec_load that isn't possible.
>
> >> If you don't trust userspace that needs to be spelled out very clearly.
> >> You need to talk about what your threat models are.
> >>
> >> If the only justification is so that that we can't boot windows if
> >> someone hacks into userspace it has my nack because that is another kind
> >> of complete non-sense.
> >
> > The usecase is the ability to gate the kexec_load usage in stock
> > kernels.
>
> But kexec_load is already gated. It requires CAP_SYS_BOOT.
It isn't a matter of kexec_load already being gated, but of wanting a
single place for defining a system wide policy, as described above.
Mimi
>
> >> Given that you are not trusting userspace this changeset also probably
> >> needs to have the kernel-hardening list cc'd. Because the only possible
> >> justification I can imagine for something like this is kernel-hardening.
> >
> > Sure, Cc'ing linux-hardening and Kees.
> >
> > Mimi
>
next prev parent reply other threads:[~2018-05-03 21:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-12 22:41 Mimi Zohar
2018-04-12 22:41 ` [PATCH 1/3] ima: based on the "secure_boot" policy limit syscalls Mimi Zohar
2018-04-12 22:41 ` [PATCH 2/3] kexec: call LSM hook for kexec_load syscall Mimi Zohar
2018-05-02 14:45 ` Eric W. Biederman
2018-05-02 15:45 ` Mimi Zohar
2018-05-03 15:51 ` Eric W. Biederman
2018-05-03 16:05 ` Casey Schaufler
2018-05-03 16:42 ` Eric W. Biederman
2018-05-03 21:06 ` Mimi Zohar
2018-05-03 21:36 ` Eric W. Biederman
2018-04-12 22:41 ` [PATCH 3/3] ima: based on policy require signed kexec kernel images Mimi Zohar
2018-05-03 20:13 ` [PATCH 0/3] kexec: limit kexec_load syscall Eric W. Biederman
2018-05-03 20:39 ` Matthew Garrett
2018-05-03 21:58 ` Eric W. Biederman
2018-05-03 22:51 ` Matthew Garrett
2018-05-03 21:31 ` Mimi Zohar
2018-05-03 21:38 ` Eric W. Biederman
2018-05-03 21:57 ` Mimi Zohar [this message]
2018-05-03 23:03 ` Eric W. Biederman
2018-05-04 2:29 ` Mimi Zohar
2018-05-11 1:36 Mimi Zohar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1525384675.3539.89.camel@linux.vnet.ibm.com \
--to=zohar@linux.vnet.ibm.com \
--cc=dhowells@redhat.com \
--cc=ebiederm@xmission.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=kexec@lists.infradead.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=mjg59@google.com \
--subject='Re: [PATCH 0/3] kexec: limit kexec_load syscall' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).