From: Kees Cook <keescook@chromium.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: James Bottomley <James.Bottomley@hansenpartnership.com>,
"ksummit-discuss@lists.linuxfoundation.org"
<ksummit-discuss@lists.linuxfoundation.org>,
Emily Ratliff <eratliff@linuxfoundation.org>
Subject: Re: [Ksummit-discuss] [TECH TOPIC] Kernel Hardening
Date: Mon, 24 Aug 2015 16:04:06 -0700 [thread overview]
Message-ID: <CAGXu5jL0t8bc2TF3Zy0jbbO_X58-3=W7OvKyiQdB3pYvnxwgTg@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1508242220570.15006@nanos>
On Mon, Aug 24, 2015 at 1:46 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Tue, 25 Aug 2015, James Morris wrote:
>> On Mon, 24 Aug 2015, James Bottomley wrote:
>>
>> > Um, forgive me for being dense, but doesn't fixing the flaws stop their
>> > exploitation? In any event, Hardening means "reducing the attack
>> > surface" and that encompasses both active and passive means (including
>> > actual bug fixing).
>>
>> Hardening is mitigating those flaws. You'll never find every flaw, but
>> you can mitigate against entire classes of flaws being exploited.
>
> Fair enough, but I agree with James, that we should not make this an
> isolated topic.
>
> Let's look at it from a different POV. 10+ years ago locking was
> something which was only understood by a minority of the developers
> and they had to figure out (or not) the horrible once per year
> deadlocks.
>
> Then RT happened to expose a gazillion of those issues and once we got
> tired of debugging this hard to understand problems we came up with a
> tool which tells Joe Developer where he screwed up.
>
> As a consequence developers got more aware of locking semantics and
> the number of hard to figure out lock inversion problems got reduced
> significantly.
>
> We added a lot of other mechanisms to detect different classes of
> failure (use after free, ....). Both runtime debugging facilities and
> static code analysis have helped to improve the code quality and the
> awareness of developers.
>
> Security and the pitfalls of user space facing code are still a riddle
> wrapped up in an enigma for most developers, so the question is how
> can we improve that situation.
>
> While we certainly want to add mechanisms which prevent flaws to be
> exploited we surely want to do something about educating people how to
> avoid the flaws in the first place.
Absolutely. I just think they are separate discussions. Teaching
someone how to avoid integer overflows is totally different from
teaching them why a fix-position writeable and executable memory
region should never exist.
>
> One can read about interesting ways to subvert a lot of the hardening
> techniques every other day, so while we certainly want to add
> hardening techniques, it's even more important that these techniques
> become the last parachute and not the catch it all mechanism because
> we gave up on the underlying issues.
Yes, it's absolutely an arms race. But there's no real way around
this. What we have to do is actually start running the race. :)
> I totally agree that we cannot prevent all flaws, but we certainly can
> do better in reducing the quantity. And that means that we need to
> educate people. And that education involves traditional training,
> documentation and clever usage of tools. If we can use hardening
> techniques to slap developers on their fingers, that's certainly a
> good thing. But we don't want to decouple the hardening from 'reduce
> the flaws' as you might create the impression that it's not that
> important to think security aware because the hardering techniques
> will prevent the exploits anyway.
Kernel self-protection systems aren't for slapping developers on their
fingers: it's about maintaining kernel integrity for a user's system
that is under active attack. The harder it is to attack, the better
the chance they will have to detect it.
-Kees
--
Kees Cook
Chrome OS Security
next prev parent reply other threads:[~2015-08-24 23:04 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-24 4:20 James Morris
2015-08-24 11:46 ` Jiri Kosina
2015-08-24 11:56 ` James Morris
2015-08-24 17:17 ` Kees Cook
2015-08-24 17:28 ` Andy Lutomirski
2015-08-24 17:39 ` Julia Lawall
2015-08-24 18:01 ` Kees Cook
2015-08-24 18:19 ` Andy Lutomirski
2015-08-24 18:57 ` Kees Cook
2015-08-24 18:52 ` Thomas Gleixner
2015-08-24 18:59 ` Thomas Gleixner
2015-08-24 19:00 ` Kees Cook
2015-08-24 22:05 ` Greg KH
2015-08-25 0:51 ` Rafael J. Wysocki
2015-08-31 20:10 ` Eric W. Biederman
2015-08-31 20:22 ` josh
2015-08-26 20:51 ` Kees Cook
2015-08-26 21:10 ` Matthew Garrett
2015-08-30 0:41 ` [Ksummit-discuss] Self nomination Matthew Garrett
2015-08-24 11:48 ` [Ksummit-discuss] [TECH TOPIC] Kernel Hardening Jiri Kosina
2015-08-24 12:29 ` Linus Walleij
2015-08-24 12:51 ` Jason Cooper
2015-08-24 16:35 ` Kees Cook
2015-08-24 20:09 ` James Bottomley
2015-08-24 20:17 ` James Morris
2015-08-24 20:46 ` Thomas Gleixner
2015-08-24 22:22 ` James Morris
2015-08-24 23:20 ` Kees Cook
2015-08-24 23:54 ` Theodore Ts'o
2015-08-25 0:06 ` James Morris
2015-08-25 0:06 ` Kees Cook
2015-08-27 22:08 ` [Ksummit-discuss] grsecurity and kernel hardening Stephen Hemminger
2015-08-27 22:49 ` James Bottomley
2015-08-27 23:03 ` Stephen Hemminger
2015-08-24 23:04 ` Kees Cook [this message]
2015-08-25 16:45 ` [Ksummit-discuss] [TECH TOPIC] Kernel Hardening Luis R. Rodriguez
2015-08-24 22:57 ` Kees Cook
2015-08-24 23:25 ` Kees Cook
2015-08-24 20:28 ` josh
2015-08-24 22:55 ` Kees Cook
2015-08-24 23:13 ` Andy Lutomirski
2015-08-31 20:58 ` Eric W. Biederman
2015-09-01 9:03 ` Jiri Kosina
2015-09-01 16:52 ` Kees Cook
2015-09-01 16:50 ` Kees Cook
2015-08-25 15:15 ` Shuah Khan
2015-08-25 16:15 ` Kees Cook
2015-08-25 16:30 ` Mark Brown
2015-08-25 16:33 ` Kees Cook
2015-08-25 16:58 ` Shuah Khan
2015-09-22 12:24 ` Dan Carpenter
2015-09-22 12:55 ` Yves-Alexis Perez
2015-09-22 12:59 ` Julia Lawall
2015-09-22 18:02 ` Andy Lutomirski
2015-08-24 16:20 ` Aneesh Kumar K.V
2015-08-24 17:19 ` Kees Cook
2015-08-24 18:50 ` James Morris
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='CAGXu5jL0t8bc2TF3Zy0jbbO_X58-3=W7OvKyiQdB3pYvnxwgTg@mail.gmail.com' \
--to=keescook@chromium.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=eratliff@linuxfoundation.org \
--cc=ksummit-discuss@lists.linuxfoundation.org \
--cc=tglx@linutronix.de \
/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