All of lore.kernel.org
 help / color / mirror / Atom feed
From: Colin Vidal <colin@cvidal.org>
To: kernel-hardening@lists.openwall.com
Cc: Kees Cook <keescook@chromium.org>
Subject: Re: [kernel-hardening] self introduction
Date: Wed, 12 Oct 2016 10:27:26 +0200	[thread overview]
Message-ID: <1476260846.19479.5.camel@cvidal.org> (raw)
In-Reply-To: <CAGXu5jK9ZNr+AbVxfAns7PGEiw9NQ5zOp_EG_9dG7i+oeYwyCg@mail.gmail.com>

> > Beside my researches, I am taking up the Eudyptula Challenge (task
> > 15 submitted). It helps me to have a global view of the kernel
> > (organization, tree, some features), but it is not enough to get
> > involved in serious development. Therefore, I am looking for task
> > I can accomplish to be involved into real kernel development!
>
> Hi! Welcome to the fun! :)

Cheers :)

> I see there's already a thread getting into the HARDENED_ATOMIC
> effort, though I thought I might bring up some other areas too, in
> case they entice you as well. You've got some background in control
> flow -- have you spent much time in compiler internals? The recent

Not really on mainstream compilers. I've done some static inter/intra
procedural analysis on previous projects (in order to optimize object
call site), and the compiler of the DSL I'm working on is based on a
completely different theories (it uses Esterel synchronous language
semantic) and does not uses static CFG. Hence, I am quite far of CFI
analysis :(

> addition of the gcc plugin infrastructure means there's a much wider
> ability for the kernel to do compiler tricks now. Two things that
> come to mind for CFI when looking at the existing PaX/Grsecurity gcc
> plugins are the kernexec plugin (which, AIUI, is mainly a weak form
> of SMEP emulation on x86, using simple CFI to keep the high bit set
> on all kernel function calls) which I think would be easy to extract
> as a stand-alone plugin:
>
> https://github.com/linux-scraping/linux-grsecurity/blob/grsec-test/sc
> ripts/gcc-plugins/kernexec_plugin.c

If I understand, this plugin protects against running user-space code
in supervisor mode (SMEP emulation, so avoid ROP class exploit), but
since this analysis is purely static, it does not protects again
out-of-tree dynamically loaded modules, right?

> And at the other end of the spectrum is the RAP plugin (which does a
> portion of PaX's full RAP, though there appear to be some non-trivial
> kernel changes need to support it, e.g. per-cpu PGD):
>
> https://pax.grsecurity.net/docs/PaXTeam-H2HC15-RAP-RIP-ROP.pdf

Seems really interesting, though! I have plenty of food for thought
with HARDENED_ATOMIC port for now, but I keep that in the back of my
mind!

> > I still don't have yet a narrow idea about where I can begin. I
> > like though the idea of kernel self protection. For instance, I
> > find the VM- mapped stack to be really interesting, but I think it
> > is an overkill as a beginning, and a lot of work have already been
> > done on it. On the architecture point-of-view, I have a preference
> > of x86 since I only have this hardware for now, but I can work on
> > ARM and others with QEMU too.
>
> A piece missing from vmap-stack (I think) is having guard pages at
> _both_ ends of the kernel stack. Andy Lutomirski surely knows better
> than I do, but I'm hoping he's working on looking at PCID-based SMAP
> emulation. (Hi Andy!) :)
>
> -Kees

Thanks!

Colin

  reply	other threads:[~2016-10-12  8:27 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-09 12:34 [kernel-hardening] self introduction Colin Vidal
2016-10-09 14:04 ` David Windsor
2016-10-09 19:09   ` Colin Vidal
2016-10-09 19:37     ` Jann Horn
2016-10-10  6:02       ` Reshetova, Elena
2016-10-10 16:01         ` Colin Vidal
2016-10-10 17:01           ` Reshetova, Elena
2016-10-10 21:05           ` Kees Cook
2016-10-12  3:19             ` Gengjia Chen
2016-10-12 22:31               ` Kees Cook
2016-10-13 11:14                 ` Gengjia Chen
2016-10-13 18:50                   ` Kees Cook
2016-10-17 11:57                     ` Gengjia Chen
2016-10-17 20:15                       ` Kees Cook
2016-10-18 11:52                         ` Gengjia Chen
2016-10-18 21:21                           ` Kees Cook
2016-10-12  8:25             ` Colin Vidal
2016-10-12 22:35               ` Kees Cook
2016-10-13 13:54                 ` Reshetova, Elena
2016-10-13 18:53         ` Kees Cook
2016-10-13 19:26           ` Hans Liljestrand
2016-10-10 20:57 ` Kees Cook
2016-10-12  8:27   ` Colin Vidal [this message]
2016-10-12 22:40     ` Kees Cook
2016-10-14 18:32   ` Andy Lutomirski
  -- strict thread matches above, loose matches on Subject: below --
2015-12-09 17:21 [kernel-hardening] Self Introduction David Brown
2015-12-09 22:19 ` Kees Cook
2015-12-10  0:00   ` David Brown
2015-12-10  0:14     ` Kees Cook
2015-12-10  0:26       ` David Brown
2015-12-10  0:41         ` Kees Cook
2015-12-10 17:14           ` Stephen Smalley
2015-12-10 17:49             ` Kees Cook
2015-12-10 17:55               ` Daniel Micay
2015-12-10 18:42                 ` Kees Cook
2015-12-10 19:07                   ` Daniel Micay
2015-12-10 19:23                     ` Kees Cook
2015-12-10 19:38                       ` Schaufler, Casey
2015-12-10 19:45                         ` Kees Cook
2015-12-11 17:54                           ` Valdis.Kletnieks
2015-12-11 18:44                             ` Kees Cook
2015-12-12 11:40                       ` Heiko Carstens
2015-12-10 22:38                   ` PaX Team
2015-12-10 23:04                     ` Daniel Micay
2015-12-10 18:42               ` Catalin Marinas
2015-12-10 18:47                 ` Kees Cook
2015-12-10 23:52                 ` Kees Cook
2015-12-11  1:04                   ` David Brown
2016-01-11 18:33                   ` David Brown
2016-01-12 19:31                     ` Kees Cook
2016-01-13 11:29                       ` Catalin Marinas
2016-01-13 11:31                       ` Catalin Marinas
2016-01-14  1:04                         ` Ben Hutchings
2016-01-14 11:11                           ` Catalin Marinas

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=1476260846.19479.5.camel@cvidal.org \
    --to=colin@cvidal.org \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.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.