All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kees Cook <keescook@chromium.org>
To: Laura Abbott <labbott@redhat.com>
Cc: P J P <ppandit@redhat.com>,
	Kernel Hardening <kernel-hardening@lists.openwall.com>,
	Florian Weimer <fweimer@redhat.com>,
	P J P <pjp@fedoraproject.org>
Subject: Re: [PATCH 0/1] Zero initialise kernel stack variables
Date: Tue, 27 Feb 2018 15:38:15 -0800	[thread overview]
Message-ID: <CAGXu5j+rEo9u4CoNBz+Y-HDCqX5=mv__0Wvru6tJRgri2r2BUQ@mail.gmail.com> (raw)
In-Reply-To: <f5f8d06d-461f-f4ad-bc32-5a18f5359353@redhat.com>

On Tue, Feb 27, 2018 at 3:26 PM, Laura Abbott <labbott@redhat.com> wrote:
> On 02/27/2018 11:28 AM, Kees Cook wrote:
>>
>> On Tue, Feb 27, 2018 at 3:15 AM, P J P <ppandit@redhat.com> wrote:
>>>
>>> Hello,
>>
>>
>> Hi!
>>
>>>
>>> Please see:
>>>    -> https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00615.html
>>>
>>> This experimental patch by Florian Weimer(CC'd) adds an option
>>> '-finit-local-vars' to gcc(1) compiler. When a program(or kernel)
>>> is built using this option, its automatic(local) variables are
>>> initialised with zero(0). This could significantly reduce the kernel
>>> information leakage issues.
>>>
>>> A dnf(8) repository of the latest gcc-7.3.1 package built with the above
>>> patch and kernel-4.15.5 package built using '-finit-local-vars' option
>>> on Fedora-27 is available below
>>>
>>>    -> https://pjp.fedorapeople.org/init-vars/
>>>
>>> This same kernel is running on my F27 test machine as I write this.
>>> There is no slowness or notice-able performance impact as such.
>>
>>
>> Unfortunately "noticeable" isn't going to be a viable metric. You'll
>> need to do some real-world benchmarks (i.e. kernel builds, hackbench,
>> etc), and compare the results. Even just initializing
>> passed-by-reference variables (GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) had
>> measurable performance impact.
>>
>
>
> For comparison (-300 is official Fedora, -301 is from the repo):
>
>    text    data     bss     dec     hex filename
> 16948437        6771094 1777872 25497403        1850f3b
> /lib/debug/lib/modules/4.15.5-300.fc27.x86_64/vmlinux
> 16970359        6776078 1777872 25524309        1857855
> /lib/debug/lib/modules/4.15.5-301.fc27.x86_64/vmlinux

That's a surprisingly small text change! I'd love to see benchmarks
too. Are you able to verify this is initializing the
passed-by-reference variables too? Hmm, I suspect it's time for
another LKDTM test. ;)

-Kees

-- 
Kees Cook
Pixel Security

  reply	other threads:[~2018-02-27 23:38 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27 11:15 [PATCH 0/1] Zero initialise kernel stack variables P J P
2018-02-27 11:15 ` [PATCH 1/1] Add an option to build kernel with -finit-local-vars P J P
2018-02-27 19:22   ` Laura Abbott
2018-02-27 19:33     ` Kees Cook
2018-02-28  5:49     ` P J P
2018-02-27 19:28 ` [PATCH 0/1] Zero initialise kernel stack variables Kees Cook
2018-02-27 23:26   ` Laura Abbott
2018-02-27 23:38     ` Kees Cook [this message]
2018-02-28  6:22       ` P J P
2018-02-28  8:25       ` Florian Weimer
2018-02-28  6:04   ` P J P
2018-03-02 19:52   ` Nick Kralevich
2018-03-02 21:01     ` Casey Schaufler
2018-03-05 20:42       ` Kees Cook

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='CAGXu5j+rEo9u4CoNBz+Y-HDCqX5=mv__0Wvru6tJRgri2r2BUQ@mail.gmail.com' \
    --to=keescook@chromium.org \
    --cc=fweimer@redhat.com \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=labbott@redhat.com \
    --cc=pjp@fedoraproject.org \
    --cc=ppandit@redhat.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.