All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin Forbes <jmforbes@linuxtx.org>
To: Andy Lutomirski <luto@kernel.org>
Cc: James Bottomley <James.Bottomley@hansenpartnership.com>,
	Peter Jones <pjones@redhat.com>,
	joeyli.kernel@gmail.com,
	ksummit-discuss@lists.linuxfoundation.org
Subject: Re: [Ksummit-discuss] [TECH TOPIC] Kernel lockdown and secure boot
Date: Wed, 5 Sep 2018 16:01:12 -0500	[thread overview]
Message-ID: <CAFxkdArzzOWwcPQBKpeBNWWAKcKJcDXXXtrk1n-L95SjXN11gQ@mail.gmail.com> (raw)
In-Reply-To: <CALCETrVFSk=8eMyzsjkOPKne2kVuZzjyn5tLNDnB3ZaBGh1qrQ@mail.gmail.com>

On Wed, Sep 5, 2018 at 3:53 PM, Andy Lutomirski <luto@kernel.org> wrote:
> On Wed, Sep 5, 2018 at 1:34 PM, Justin Forbes <jmforbes@linuxtx.org> wrote:
>> On Wed, Sep 5, 2018 at 3:14 PM, David Howells <dhowells@redhat.com> wrote:
>>> Justin Forbes <jmforbes@linuxtx.org> wrote:
>>>
>>>> Lockdown is a config option on it's own, just also add a separate
>>>> config option option to enable lockdown on UEFI secure boot.
>>>
>>> The patchset has that already (CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT).
>>>
>>> One of the issues appears to be that we're making it boot-time conditional at
>>> all.  If I understand him correctly, Linus seems to want us to make everything
>>> locked down at compile time or not at all.
>>>
>>
>> The last push attempt dropped that patch and did have the compile time
>> (CONFIG_LOCK_DOWN_MANDATORY) as well as an option for command line
>> enabling with lockdown=1 (CONFIG_LOCK_DOWN_KERNEL).  It just didn't
>> have an option for triggering off of UEFI Secure Boot.   As a distro,
>> running   CONFIG_LOCK_DOWN_MANDATORY isn't much of an option. We ran
>> the 4.17 development series in rawhide with CONFIG_LOCK_DOWN_KERNEL,
>> and no one noticed that their secure boot was off.  This is why it is
>> somewhat frightening to change the behavior, users assume it is all
>> working because things boot, and never notice they are missing some
>> protection that they assumed was there.  Before we rebased stable
>> distros I reworked the CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT to work
>> with the current patch set and that is what we are carrying now.
>> While I would love to see everything pushed as a whole, I would still
>> be much happier than I am now if everything else pushed and we only
>> had to carry the patch to trigger off of UEFI status.  It is a minor
>> detail that shouldn't be blocking the entire patch set at this point.
>> If Linus agrees that it can be pushed with CONFIG_LOCK_DOWN_MANDATORY
>> as the only option, that is fine. Still much less out of tree for us
>> to worry about.
>
> I'm not really convinced this needs a whole tech topic.  I send an
> email awhile back, but didn't hear back, so here goes roughly again:
>
> As far as I can tell, there are two issues blocking lockdown, both of
> which should be relatively easily resolvable:
>
> 1. When exactly is lockdown enabled?
>
> 2. What exactly does lockdown do?
>
> #1 is clearly resolvable.  Worst case, a bare minimum version can get
> merged where, for example, lockdown is either mandatory or is enabled
> by boot option.  Distros can carry a patch for alternative policies
> for a little while until the dust settles.
>
> #2 is a bigger deal.  At least one version that shipped in a Fedora
> kernel actually broke systemd, and that's not cool.  And I really
> think we need to make lockdown non-binary to get this right.  I've
> proposed LOCKDOWN_PROTECT_INTEGRITY (i.e. try to prevent root from
> modifying the running kernel) and LOCKDOWN_PROTECT_SECRECY (try to
> prevent root from reading kernel memory), and no one seems to have
> actually objected.
>
The Fedora issue was the bpf hammer. I am looking to find a better
solution for that one, but dropped the patch in the meantime. It was
removed shortly after it was found.  This is one of the many reasons I
don't like all or nothing at compile time, but again, we can carry the
patch to toggle separately until a better solution is worked out.

> So I would propose the following.  Someone (me? David?) prepares a
> very stripped down lockdown patchset.  It adds the basic config
> options for CONFIG_LOCK_DOWN_KERNEL and whatever compile-time
> mandatory variants we want, and it adds the helpers so various
> subsystems can ask whether lockdown is on.  And it adds one single
> lockdown user in the kernel.  And we merge that.  Then we add
> additional lockdown users one at a time.
>
I would be fine with this, I just want some sort of path forward.

> This will resolve what I see as the major issue that has blocked
> lockdown: the patchset is too big and spans too many subsystems.
> Every time it's submitted it gets bogged down in important but
> distracting discussions like "what, exactly, should the following bpf
> feature do in lockdown mode?".  These matter, but there is no
> legitimate reason for them to block the overall feature -- it's
> entirely fine if the initial version of lockdown doesn't protect bpf
> at all.
>
> --Andy
>
> [There's only a ~30% change I can make LPC this year...]

If you can make it, I will certainly be there and would be happy to
discuss moving this forward.

  reply	other threads:[~2018-09-05 21:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-05 16:53 [Ksummit-discuss] [TECH TOPIC] Kernel lockdown and secure boot David Howells
2018-09-05 19:33 ` Jiri Kosina
2018-09-05 19:51   ` Justin Forbes
2018-09-05 20:14   ` David Howells
2018-09-05 20:34     ` Justin Forbes
2018-09-05 20:53       ` Andy Lutomirski
2018-09-05 21:01         ` Justin Forbes [this message]
2018-09-06  6:53           ` joeyli
2018-09-06 10:00         ` Jani Nikula
2018-09-06 10:05         ` David Howells
2018-09-06 10:21           ` Jani Nikula
2018-09-07 19:53       ` Mauro Carvalho Chehab

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=CAFxkdArzzOWwcPQBKpeBNWWAKcKJcDXXXtrk1n-L95SjXN11gQ@mail.gmail.com \
    --to=jmforbes@linuxtx.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=joeyli.kernel@gmail.com \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=luto@kernel.org \
    --cc=pjones@redhat.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.