All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@amacapital.net>
To: James Morris <jmorris@namei.org>
Cc: Matthew Garrett <mjg59@google.com>,
	LSM List <linux-security-module@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	David Howells <dhowells@redhat.com>,
	Linux API <linux-api@vger.kernel.org>,
	Andy Lutomirski <luto@kernel.org>
Subject: Re: [PATCH V32 01/27] Add the ability to lock down access to the running kernel image
Date: Thu, 2 May 2019 17:34:51 -0700	[thread overview]
Message-ID: <343EE650-4077-4882-94D6-28BBDBA32182@amacapital.net> (raw)
In-Reply-To: <alpine.LRH.2.21.1905030901180.7491@namei.org>


> On May 2, 2019, at 4:19 PM, James Morris <jmorris@namei.org> wrote:
> 
>> On Thu, 2 May 2019, Matthew Garrett wrote:
>> 
>>> On Thu, May 2, 2019 at 2:07 PM James Morris <jmorris@namei.org> wrote:
>>> One possible direction is to (as previously mentioned) assign IDs to each
>>> callsite and be able to check this ID against a simple policy array
>>> (allow/deny).  The default policy choices could be reduced to 'all' or
>>> 'none' during kconfig, and allow a custom policy to be loaded later if
>>> desired.
>> 
>> Ok. My primary concern around this is that it's very difficult to use
>> correctly in anything other than the "all" or "none" modes. If a new
>> kernel feature is added with integrated lockdown support, if an admin
>> is simply setting the flags of things they wish to block then this
>> will be left enabled - and may violate the admin's expectations around
>> integrity. On the other hand, if an admin is simply setting the flags
>> of things they wish to permit, then adding lockdown support to an
>> existing kernel feature may result in that feature suddenly being
>> disabled, which may also violate the admin's expectations around the
>> flags providing a stable set of behaviour.
> 
> Understood. Most uses will likely be either a distro or an embedded 
> system, who I'm assuming would provide a useful policy by default, and 
> perhaps a high-level abstraction for modification.
> 
>> Given that, would you prefer such a policy expression to look like?
> 
> Perhaps a write-once policy, injected from userspace during early boot?
> 
> The policy could be simply a list of:
> 
> lockdown_feature true|false
> 

I’m not convinced this is worthwhile.  As I see it, there really are only two privileges here: root can read kernel memory, and root can corrupt kernel state.  A policy that root can’t corrupt kernel memory except using, say, eBPF is useless — it gives warm fuzzy feelings but nothing else.

  reply	other threads:[~2019-05-03  0:34 UTC|newest]

Thread overview: 58+ 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-16  8:40     ` Andrew Donnellan
2019-04-18  6:38     ` Daniel Axtens
2019-04-18  6:38       ` Daniel Axtens
2019-04-18 19:35     ` Matthew Garrett
2019-04-18 19:35       ` Matthew Garrett
2019-04-29  0:06       ` Daniel Axtens
2019-04-29  0:06         ` Daniel Axtens
2019-04-29  4:54         ` Daniel Axtens
2019-04-29  4:54           ` Daniel Axtens
2019-04-30  5:15           ` Andrew Donnellan
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 [this message]
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   ` 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   ` Matthew Garrett
2019-04-04  0:32   ` 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   ` 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   ` Matthew Garrett
2019-04-04  0:32   ` 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   ` 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=343EE650-4077-4882-94D6-28BBDBA32182@amacapital.net \
    --to=luto@amacapital.net \
    --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=luto@kernel.org \
    --cc=mjg59@google.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.