From: Daniel Axtens <dja@axtens.net>
To: Andrew Donnellan <andrew.donnellan@au1.ibm.com>,
Matthew Garrett <matthewgarrett@google.com>,
jmorris@namei.org
Cc: linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org, dhowells@redhat.com,
linux-api@vger.kernel.org, luto@kernel.org,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
Michael Ellerman <mpe@ellerman.id.au>, cmr <cmr@informatik.wtf>
Subject: Re: [PATCH V32 01/27] Add the ability to lock down access to the running kernel image
Date: Thu, 18 Apr 2019 16:38:54 +1000 [thread overview]
Message-ID: <87zhonyg01.fsf@dja-thinkpad.axtens.net> (raw)
In-Reply-To: <059c523e-926c-24ee-0935-198031712145@au1.ibm.com>
Hi Andrew,
>> + If CONFIG_LOCK_DOWN_KERNEL is enabled, the kernel can be
>> + moved to a more locked down state at runtime by writing to
>> + this attribute. Valid values are:
>> +
>> + integrity:
>> + The kernel will disable functionality that allows
>> + userland to modify the running kernel image, other
>> + than through the loading or execution of appropriately
>> + signed objects.
>> +
>> + confidentiality:
>> + The kernel will disable all functionality disabled by
>> + the integrity mode, but additionally will disable
>> + features that potentially permit userland to obtain
>> + confidential information stored within the kernel.
>
> [+ linuxppc, mpe, dja, cmr]
>
> I'm thinking about whether we should lock down the powerpc xmon debug
> monitor - intuitively, I think the answer is yes if for no other reason
> than Least Astonishment, when lockdown is enabled you probably don't
> expect xmon to keep letting you access kernel memory.
>
> Semantically though, xmon is not a userspace process - it's in kernel
> and reads debug commands/outputs debug data directly from/to the
> console. Is that a threat vector that this series cares about?
I guess there are 2 ways you could think about lockdown:
- It adds a security boundary between the kernel and UID 0, so that
userland cannot compromise the integrity/confidentiality of the
locked down kernel.
- It is a bundle of related security boundaries so that the
integrity/confidentiality of a running, locked down kernel cannot be
compromised, even by a privileged, physically present user.
You're right that techincally xmon is in the kernel and on the console
rather than in userland, so it doesn't fall within the first concept of
lockdown. But I think usecases for lockdown tend to expect something
more like the second concept.
IOW, lockdown is a trapdoor - once you've locked down a kernel, you
can't get out of lockdown (except by rebooting). xmon would allow you to
get out of the trapdoor, so I think it should be restricted by lockdown.
Regards,
Daniel
>
>
> --
> Andrew Donnellan OzLabs, ADL Canberra
> andrew.donnellan@au1.ibm.com IBM Australia Limited
next prev parent reply other threads:[~2019-04-18 6:39 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-04 0:32 [PATCH V32 0/27] Lockdown patches for 5.2 Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 01/27] Add the ability to lock down access to the running kernel image Matthew Garrett
2019-04-16 8:40 ` Andrew Donnellan
2019-04-18 6:38 ` Daniel Axtens [this message]
2019-04-18 19:35 ` Matthew Garrett
2019-04-29 0:06 ` Daniel Axtens
2019-04-29 4:54 ` Daniel Axtens
2019-04-30 5:15 ` Andrew Donnellan
2019-04-29 22:56 ` Matthew Garrett
2019-05-02 21:07 ` James Morris
2019-05-02 21:15 ` Matthew Garrett
2019-05-02 23:19 ` James Morris
2019-05-03 0:34 ` Andy Lutomirski
2019-04-04 0:32 ` [PATCH V32 02/27] Enforce module signatures if the kernel is locked down Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 03/27] Restrict /dev/{mem,kmem,port} when " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 04/27] kexec_load: Disable at runtime if " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 05/27] Copy secure_boot flag in boot params across kexec reboot Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 06/27] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 07/27] kexec_file: Restrict at runtime if the kernel is locked down Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 08/27] hibernate: Disable when " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 09/27] uswsusp: " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 10/27] PCI: Lock down BAR access " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 11/27] x86: Lock down IO port " Matthew Garrett
2019-04-04 7:49 ` Thomas Gleixner
2019-04-04 0:32 ` [PATCH V32 12/27] x86/msr: Restrict MSR " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 13/27] ACPI: Limit access to custom_method " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 14/27] acpi: Ignore acpi_rsdp kernel param when the kernel has been " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 15/27] acpi: Disable ACPI table override if the kernel is " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 16/27] Prohibit PCMCIA CIS storage when " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 17/27] Lock down TIOCSSERIAL Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 18/27] Lock down module params that specify hardware parameters (eg. ioport) Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 19/27] x86/mmiotrace: Lock down the testmmiotrace module Matthew Garrett
2019-04-04 1:33 ` Steven Rostedt
2019-04-04 7:47 ` Thomas Gleixner
2019-04-04 0:32 ` [PATCH V32 20/27] Lock down /proc/kcore Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 21/27] Lock down tracing and perf kprobes when in confidentiality mode Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 22/27] bpf: Restrict bpf when kernel lockdown is " Matthew Garrett
2019-04-30 19:19 ` Jann Horn
2019-04-04 0:32 ` [PATCH V32 23/27] Lock down perf when " Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 24/27] kexec: Allow kexec_file() with appropriate IMA policy when locked down Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 25/27] lockdown: Print current->comm in restriction messages Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 26/27] debugfs: Restrict debugfs when the kernel is locked down Matthew Garrett
2019-04-04 0:32 ` [PATCH V32 27/27] tracefs: Restrict tracefs " Matthew Garrett
2019-04-04 13:39 ` Steven Rostedt
2019-04-04 20:09 ` Matthew Garrett
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=87zhonyg01.fsf@dja-thinkpad.axtens.net \
--to=dja@axtens.net \
--cc=andrew.donnellan@au1.ibm.com \
--cc=cmr@informatik.wtf \
--cc=dhowells@redhat.com \
--cc=jmorris@namei.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=luto@kernel.org \
--cc=matthewgarrett@google.com \
--cc=mpe@ellerman.id.au \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox