LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Matthew Garrett <mjg59@google.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>,
	David Howells <dhowells@redhat.com>,
	linux-integrity <linux-integrity@vger.kernel.org>,
	LSM List <linux-security-module@vger.kernel.org>,
	kexec@lists.infradead.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/3] kexec: limit kexec_load syscall
Date: Thu, 03 May 2018 16:58:56 -0500	[thread overview]
Message-ID: <876044l7tr.fsf@xmission.com> (raw)
In-Reply-To: <CACdnJuukT4SYLcDwi7+ObqbCDS4ZEAMpgz57OL3_eSevW0QuVg@mail.gmail.com> (Matthew Garrett's message of "Thu, 03 May 2018 20:39:48 +0000")

Matthew Garrett <mjg59@google.com> writes:

> On Thu, May 3, 2018 at 1:13 PM Eric W. Biederman <ebiederm@xmission.com>
> 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.
>
>> If you don't trust userspace that needs to be spelled out very clearly.
>> You need to talk about what your threat models are.
>
> kexec_load gives root arbitrary power to modify the running kernel image,
> including the ability to disable enforcement of module signatures.

No.  It does absolutely nothing to the running kernel image.
Combined with reboot(..., LINUX_REBOOT_CMD_KEXE, ...) it does allow
booting something different.  It is argubably a little more efficient
than writing to a file to direct the bootloader to boot something
different and then calling reboot.  But it is not fundamentally
different.

> Given
> that it weakens other security mechanisms that are designed to prevent root
> from disabling them, it makes sense to allow the imposition of an
> equivalent restriction.

Say what.  You are saying a lot of words without any specifics.  Not a
specific threat mode.  Not which security mecahnisms you are worried
about weakening.  Not what classes of problems you are trying to defend
against.

I absolutely hate this nonsense.  I thought you already went 20 rounds
with Linus and learned you need to be upfront with what you are
concerned about.

I believe reasonable situations can be constructed.  But I am not seeing
that happen here.

My hand wavy argument to go with yours is that code paths that are root
only are not audited for security properties.  As such the number of
exploitable bus you can find in them is larger than normal.  It might be
a little harder to mount xfs or another filesystem with an exploitable
file system image but I expect it exists.

Further nothing I have seen you involved with has been about truly
hardening the system against a hostile root.  I have for the last
several years been chipping away at that and you have been nowhere to be
found.

So please be specific.  Talk about which threat you are worried about.
Because so far this looks like someones effort to look like they were
doing something without actually caring about real world threats.

Eric






  reply	other threads:[~2018-05-03 21:59 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 [this message]
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
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=876044l7tr.fsf@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=dhowells@redhat.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 \
    --cc=zohar@linux.vnet.ibm.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).