Thread (57 messages) 57 messages, 15 authors, 2018-05-23

Re: [PATCH 24/24] debugfs: Restrict debugfs when the kernel is locked down

From: Andy Lutomirski <luto@kernel.org>
Date: 2018-04-12 14:19:59
Also in: linux-man, linux-security-module, lkml

On Thu, Apr 12, 2018 at 1:23 AM, Greg KH [off-list ref] wrote:
On Wed, Apr 11, 2018 at 07:54:12PM -0700, Andy Lutomirski wrote:
quoted
On Wed, Apr 11, 2018 at 1:33 PM, Greg KH [off-list ref] wrote:
quoted
On Wed, Apr 11, 2018 at 09:09:16PM +0100, David Howells wrote:
quoted
Greg KH [off-list ref] wrote:
quoted
Why not just disable debugfs entirely?  This half-hearted way to sorta
lock it down is odd, it is meant to not be there at all, nothing in your
normal system should ever depend on it.

So again just don't allow it to be mounted at all, much simpler and more
obvious as to what is going on.
Yeah, I agree - and then I got complaints because it seems that it's been
abused to allow drivers and userspace components to communicate.
With in-kernel code?  Please let me know and I'll go fix it up to not
allow that, as that is not ok.

I do know of some bad examples of out-of-tree code abusing debugfs to do
crazy things (battery level monitoring?), but that's their own fault...

debugfs is for DEBUGGING!  For anything you all feel should be "secure",
then just disable it entirely.
Debugfs is very, very useful for, ahem, debugging.  I really think
this is an example of why we should split lockdown into the read and
write varieties and allow mounting and reading debugfs when only write
is locked down.
Ok, but be sure that there are no "secrets" in those debugging files if
you really buy into the whole "lock down" mess...

Really, it's easier to just disable the whole thing.
I mostly agree with your sentiment.  I'm saying that, for most uses, I
*don't* buy into the idea that a normal secure-boot-supporting distro
should block debugfs.  I sometimes like to ask people who report
problems to send me the contents of such-and-such file in debugfs, and
I think it should keep working.  Blocking write access to debugfs is
mostly sensible for a lockdown system, but blocking read only makes
sense if you're worried about straight-up bugs or if you think that
debugfs contains protection-worthy secrets.

What I want to see is:

lockdown=protect_integrity: debugfs is read-only, bpf and perf are
unrestricted, iopl and ioperm are disabled, etc.

lockdown=protect_integrity_and_secrecy: debugfs is gone, bpf and perf
are restricted, plus all the restrictions from
lockdown=protect_integrity

Distros should strongly prefer lockdown=protect_integrity (or
lockdown=off) by default.  lockdown=protect_integrity_and_secrecy is
for custom setups, embedded applications, etc.


--Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help