From: "Tobin C. Harding" <me@tobin.cc>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Roberts, William C" <william.c.roberts@intel.com>,
Tejun Heo <tj@kernel.org>,
Jordan Glover <Golden_Miller83@protonmail.ch>,
Greg KH <gregkh@linuxfoundation.org>,
Petr Mladek <pmladek@suse.com>, Joe Perches <joe@perches.com>,
Ian Campbell <ijc@hellion.org.uk>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
"kernel-hardening@lists.openwall.com"
<kernel-hardening@lists.openwall.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Chris Fries <cfries@google.com>,
Dave Weinstein <olorin@google.com>
Subject: Re: [kernel-hardening] [RFC V2 0/6] add more kernel pointer filter options
Date: Thu, 5 Oct 2017 13:19:15 +1100 [thread overview]
Message-ID: <20171005021915.GK16685@eros> (raw)
In-Reply-To: <CA+55aFwEZCT6=BCdmaNn5LGeU8g-2qi4OnM9MTOep3NOZVXjMg@mail.gmail.com>
On Wed, Oct 04, 2017 at 04:52:58PM -0700, Linus Torvalds wrote:
> On Wed, Oct 4, 2017 at 2:58 PM, Roberts, William C
> <william.c.roberts@intel.com> wrote:
> >
> > I agree with you 100% kptr restrict is odd, and I don't think anyone should have had to opt in to be
> > cleansed via kptr_restrict value via %pK. Opt-in never works. One nice thing now, is that checkpatch
> > has checking of %p usages and warns.
>
> Yeah, the checkpatch thing may help for future patches.
>
> > As far as broken things, I can't comment on desktop systems where I think it's harder to make that claim.
> > I see value in embedded systems where I am shipping the whole image, So I know when/what will
> > break.
> >
> > If this was in-tree, Android would be setting this to 4 immediately FWIW.
>
> Does android set it to 2 right now?
>
> But even if it does, my point is that we've had this thing for 6+
> years, and it really hasn't helped fix our code much at all.
>
> In fact, I think the opposite is true. I think it *hurts*. It hurts
> exactly because it's a hack, and it makes people not bother to fix the
> real problems.
>
> I think we'd be better off just fixing code.
>
> One thing you can do today is just look through your 'dmesg' for what
> looks like kernel addresses (if virtual addresses is what you're
> interested in - obviously physical addresses will look different). On
> x86-64, for example, something like this:
>
> dmesg | egrep 'ffff[0-9a-f]{12}'
>
> might be interesting to look at. It shows (for me) that we show the
> percpu address mapping, for example. That certainly sounds interesting
> to a potential attacker, and I suspect Tejun isn't really interested
> in that information any more. Added to Cc.
>
> It also shows
>
> software IO TLB [mem PA-PB] (64MB) mapped at [VA-VB]
>
> for example. And THIS IS IMPORTANT! The physical address is shown
> with "%#010llx".
>
> See what I'm saying? The kptr_restrict games are just that: games and
> security theater. If you actually care about things like physical
> addresses, you don't say "let's hide %pa". Because that's not how the
> real world works. I found one case that would entirely have missed
> with the very first trivial grep I did.
>
> So I'm claiming that anybody who says "it's too hard to fix it for
> real, let's just paper over it in vsprintf.c" is fundamentally going
> to miss things like this. I agree that it might be painful to try to
> figure out where the problems are, but somebody like google probably
> has a lot of dmesg output, and it should not be that hard to do the
> above kinds of "let's just see what leaks, and FIX it".
This sounds like just the job for an upcoming kernel hacker, with a lot of time
and not much experience, to do something laborious that no one else wants to do
and learn a bunch about the kernel.
So what if we drop this patch set and
1. Find and fix every place in the kernel that leaks addresses.
2. Verify that checkpatch.pl warns for all potential future leakage.
2. Add a script to check dmesg output for future hardening.
I'm super keen to work. I would have to get everyone to dump their ideas/demands
onto me if we are to get this fixed fully.
thanks,
Tobin.
next prev parent reply other threads:[~2017-10-05 2:19 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-01 0:06 [kernel-hardening] [RFC V2 0/6] add more kernel pointer filter options Tobin C. Harding
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 1/6] lib: vsprintf: additional kernel pointer filtering options Tobin C. Harding
2017-10-04 8:55 ` Greg KH
2017-10-04 13:08 ` Steven Rostedt
2017-10-04 13:26 ` Greg KH
2017-10-04 13:29 ` Steven Rostedt
2017-10-04 13:54 ` Greg KH
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 2/6] lib: vsprintf: whitelist stack traces Tobin C. Harding
2017-10-02 10:42 ` Will Deacon
2017-10-02 21:49 ` Tobin C. Harding
2017-10-04 8:56 ` Greg KH
2017-10-04 8:58 ` Will Deacon
2017-10-04 9:02 ` Greg KH
2017-10-04 10:42 ` Tobin C. Harding
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 3/6] lib: vsprintf: physical address kernel pointer filtering options Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 4/6] lib: vsprintf: default kptr_restrict to the maximum value Tobin C. Harding
2017-10-04 8:55 ` Greg KH
2017-10-04 16:42 ` Kees Cook
2017-10-04 16:48 ` Roberts, William C
2017-10-04 17:08 ` Linus Torvalds
2017-10-04 17:28 ` Linus Torvalds
2017-10-04 19:13 ` Jann Horn
2017-10-04 19:23 ` Linus Torvalds
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 5/6] lib: vsprintf: add "%paP", "%papP", and "%padP" specifiers Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 6/6] drivers: uio: un-restrict sysfs pointers for UIO Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-01 0:11 ` [kernel-hardening] [RFC V2 0/6] add more kernel pointer filter options Tobin C. Harding
2017-10-04 8:57 ` Greg KH
2017-10-04 10:45 ` Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-04 10:50 ` Tobin C. Harding
2017-10-04 12:42 ` Greg KH
2017-10-04 13:28 ` Steven Rostedt
2017-10-04 13:31 ` Steven Rostedt
2017-10-04 16:17 ` Roberts, William C
2017-10-04 15:41 ` Linus Torvalds
2017-10-04 16:22 ` Boris Lukashev
2017-10-04 16:29 ` Linus Torvalds
2017-10-04 16:54 ` Steven Rostedt
2017-10-04 18:58 ` Jordan Glover
2017-10-04 19:19 ` Linus Torvalds
2017-10-04 21:58 ` Roberts, William C
2017-10-04 23:21 ` Daniel Micay
2017-10-04 23:52 ` Linus Torvalds
2017-10-05 0:09 ` Linus Torvalds
2017-10-05 13:55 ` Bjorn Helgaas
2017-10-05 0:29 ` Daniel Micay
2017-10-05 0:35 ` Kees Cook
2017-10-06 8:33 ` Djalal Harouni
2017-10-05 2:19 ` Tobin C. Harding [this message]
2017-10-05 3:10 ` Linus Torvalds
2017-10-05 3:15 ` Kees Cook
2017-10-05 15:12 ` Roberts, William C
2017-10-05 16:19 ` Linus Torvalds
2017-10-05 17:10 ` Dave Weinstein
2017-10-07 23:44 ` Theodore Ts'o
2017-10-08 0:08 ` Linus Torvalds
2017-10-13 16:32 ` Roberts, William C
2017-10-13 18:11 ` Linus Torvalds
2017-10-13 19:34 ` Kees Cook
2017-10-13 20:22 ` Linus Torvalds
2017-10-13 20:47 ` Kees Cook
2017-10-13 21:45 ` Linus Torvalds
2017-10-13 22:48 ` Theodore Ts'o
2017-10-13 16:14 ` Roberts, William C
2017-10-04 16:32 ` Ian Campbell
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=20171005021915.GK16685@eros \
--to=me@tobin.cc \
--cc=Golden_Miller83@protonmail.ch \
--cc=catalin.marinas@arm.com \
--cc=cfries@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=ijc@hellion.org.uk \
--cc=joe@perches.com \
--cc=kernel-hardening@lists.openwall.com \
--cc=olorin@google.com \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky@gmail.com \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=will.deacon@arm.com \
--cc=william.c.roberts@intel.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 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).