All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Eric Northup <digitaleric@google.com>
Cc: Kees Cook <keescook@chromium.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	kernel-hardening@lists.openwall.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Jarkko Sakkinen <jarkko.sakkinen@intel.com>,
	Matthew Garrett <mjg@redhat.com>,
	Matt Fleming <matt.fleming@intel.com>,
	Dan Rosenberg <drosenberg@vsecurity.com>,
	Julien Tinnes <jln@google.com>, Will Drewry <wad@chromium.org>
Subject: [kernel-hardening] Re: [PATCH 3/3] x86: kernel base offset ASLR
Date: Thu, 04 Apr 2013 18:08:53 -0700	[thread overview]
Message-ID: <515E2425.6080601@zytor.com> (raw)
In-Reply-To: <CAG7+5M2qKL4PhHhfw-mnw9cBnWnq-2PjVUrqJX03Ma8yR=xYRA@mail.gmail.com>

On 04/04/2013 01:47 PM, Eric Northup wrote:
>>
>> 1. actually compose the kernel of multiple independently relocatable
>>    pieces (maybe chunk it on 2M boundaries or something.)
> 
> Without increasing the entropy bits, does this actually increase the #
> of tries necessary for an attacker to guess correctly?  It
> dramatically increases the number of possible configurations of kernel
> address space, but for any given piece there are only 256 possible
> locations.
> 

The 2M chunk was a red herring; one would of course effectively pack
blocks together, probably packed back to back, in random order.

>> 2. compile the kernel as one of the memory models which can be executed
>>    anywhere in the 64-bit address space.  The cost of this would have
>>    to be quantified, of course.
> 
> I attempted to do this, but was limited by my knowledge of the
> toolchain.  I would welcome help or suggestions!

Start by looking at the ABI document.  I suspect what we need is some
variant of the small PIC model.

	-hpa


-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com>
To: Eric Northup <digitaleric@google.com>
Cc: Kees Cook <keescook@chromium.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	kernel-hardening@lists.openwall.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Jarkko Sakkinen <jarkko.sakkinen@intel.com>,
	Matthew Garrett <mjg@redhat.com>,
	Matt Fleming <matt.fleming@intel.com>,
	Dan Rosenberg <drosenberg@vsecurity.com>,
	Julien Tinnes <jln@google.com>, Will Drewry <wad@chromium.org>
Subject: Re: [PATCH 3/3] x86: kernel base offset ASLR
Date: Thu, 04 Apr 2013 18:08:53 -0700	[thread overview]
Message-ID: <515E2425.6080601@zytor.com> (raw)
In-Reply-To: <CAG7+5M2qKL4PhHhfw-mnw9cBnWnq-2PjVUrqJX03Ma8yR=xYRA@mail.gmail.com>

On 04/04/2013 01:47 PM, Eric Northup wrote:
>>
>> 1. actually compose the kernel of multiple independently relocatable
>>    pieces (maybe chunk it on 2M boundaries or something.)
> 
> Without increasing the entropy bits, does this actually increase the #
> of tries necessary for an attacker to guess correctly?  It
> dramatically increases the number of possible configurations of kernel
> address space, but for any given piece there are only 256 possible
> locations.
> 

The 2M chunk was a red herring; one would of course effectively pack
blocks together, probably packed back to back, in random order.

>> 2. compile the kernel as one of the memory models which can be executed
>>    anywhere in the 64-bit address space.  The cost of this would have
>>    to be quantified, of course.
> 
> I attempted to do this, but was limited by my knowledge of the
> toolchain.  I would welcome help or suggestions!

Start by looking at the ABI document.  I suspect what we need is some
variant of the small PIC model.

	-hpa


-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.


  reply	other threads:[~2013-04-05  1:08 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-04 20:07 [kernel-hardening] [PATCH 0/3] kernel ASLR Kees Cook
2013-04-04 20:07 ` Kees Cook
2013-04-04 20:07 ` [kernel-hardening] [PATCH 1/3] x86: routines to choose random kernel base offset Kees Cook
2013-04-04 20:07   ` Kees Cook
2013-04-05  7:24   ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:24     ` Ingo Molnar
2013-04-05  7:36     ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:36       ` Ingo Molnar
2013-04-05 18:15       ` [kernel-hardening] " H. Peter Anvin
2013-04-05 18:15         ` H. Peter Anvin
2013-04-08  5:35         ` [kernel-hardening] " Hasinoliva MIARIMANJATO
2013-04-08  5:35           ` Hasinoliva MIARIMANJATO
2013-04-04 20:07 ` [kernel-hardening] [PATCH 2/3] x86: build reloc tool for both 64 and 32 bit Kees Cook
2013-04-04 20:07   ` Kees Cook
2013-04-05  7:13   ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:13     ` Ingo Molnar
2013-04-04 20:07 ` [kernel-hardening] [PATCH 3/3] x86: kernel base offset ASLR Kees Cook
2013-04-04 20:07   ` Kees Cook
2013-04-04 20:12   ` [kernel-hardening] " H. Peter Anvin
2013-04-04 20:12     ` H. Peter Anvin
2013-04-04 20:19     ` [kernel-hardening] " Julien Tinnes
2013-04-04 20:19       ` Julien Tinnes
2013-04-04 20:23       ` [kernel-hardening] " Julien Tinnes
2013-04-04 20:23         ` Julien Tinnes
2013-04-04 20:27         ` [kernel-hardening] " H. Peter Anvin
2013-04-04 20:27           ` H. Peter Anvin
2013-04-04 20:48           ` [kernel-hardening] " Julien Tinnes
2013-04-04 20:48             ` Julien Tinnes
2013-04-05  7:05             ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:05               ` Ingo Molnar
2013-04-04 20:54     ` [kernel-hardening] " Kees Cook
2013-04-04 20:54       ` Kees Cook
2013-04-04 20:58       ` [kernel-hardening] " H. Peter Anvin
2013-04-04 20:58         ` H. Peter Anvin
2013-04-04 21:00         ` [kernel-hardening] " Kees Cook
2013-04-04 21:00           ` Kees Cook
2013-04-04 21:01           ` [kernel-hardening] " H. Peter Anvin
2013-04-04 21:01             ` H. Peter Anvin
2013-04-04 21:04             ` [kernel-hardening] " Eric Northup
2013-04-04 21:04               ` Eric Northup
2013-04-04 21:06             ` [kernel-hardening] " Kees Cook
2013-04-04 21:06               ` Kees Cook
2013-04-04 21:00         ` [kernel-hardening] " Julien Tinnes
2013-04-04 21:00           ` Julien Tinnes
2013-04-04 21:01         ` [kernel-hardening] " Eric Northup
2013-04-04 21:01           ` Eric Northup
2013-04-05  7:55           ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:55             ` Ingo Molnar
2013-04-04 20:21   ` [kernel-hardening] " H. Peter Anvin
2013-04-04 20:21     ` H. Peter Anvin
2013-04-04 20:47     ` [kernel-hardening] " Eric Northup
2013-04-04 20:47       ` Eric Northup
2013-04-05  1:08       ` H. Peter Anvin [this message]
2013-04-05  1:08         ` H. Peter Anvin
2013-04-05  8:04     ` [kernel-hardening] " Ingo Molnar
2013-04-05  8:04       ` Ingo Molnar
2013-04-05 15:30       ` [kernel-hardening] " H. Peter Anvin
2013-04-05 15:30         ` H. Peter Anvin
2013-04-08 11:58         ` [kernel-hardening] " Ingo Molnar
2013-04-08 11:58           ` Ingo Molnar
2013-04-08 14:58           ` [kernel-hardening] " H. Peter Anvin
2013-04-08 14:58             ` H. Peter Anvin
2013-04-05 18:17       ` [kernel-hardening] " H. Peter Anvin
2013-04-05 18:17         ` H. Peter Anvin
2013-04-05 20:01     ` [kernel-hardening] " Yinghai Lu
2013-04-05 20:01       ` Yinghai Lu
2013-04-05 20:05       ` [kernel-hardening] " H. Peter Anvin
2013-04-05 20:05         ` H. Peter Anvin
2013-04-05 20:19         ` [kernel-hardening] " Yinghai Lu
2013-04-05 20:19           ` Yinghai Lu
2013-04-05 20:29           ` [kernel-hardening] " H. Peter Anvin
2013-04-05 20:29             ` H. Peter Anvin
2013-04-05  7:11   ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:11     ` Ingo Molnar
2013-04-05 22:06     ` [kernel-hardening] " Julien Tinnes
2013-04-05 22:06       ` Julien Tinnes
2013-04-05 22:08       ` [kernel-hardening] " H. Peter Anvin
2013-04-05 22:08         ` H. Peter Anvin
2013-04-05 22:13         ` [kernel-hardening] " Julien Tinnes
2013-04-05 22:13           ` Julien Tinnes
2013-04-05  7:34   ` [kernel-hardening] " Ingo Molnar
2013-04-05  7:34     ` Ingo Molnar
2013-04-05 12:12   ` [kernel-hardening] " Jiri Kosina
2013-04-05 12:12     ` Jiri Kosina
2013-04-05 14:49   ` [kernel-hardening] " Borislav Petkov
2013-04-05 14:49     ` Borislav Petkov
2013-04-05 20:19     ` [kernel-hardening] " Julien Tinnes
2013-04-05 20:19       ` Julien Tinnes
2013-04-05 20:43       ` [kernel-hardening] " Borislav Petkov
2013-04-05 20:43         ` Borislav Petkov
2013-04-05 23:18         ` [kernel-hardening] " Kees Cook
2013-04-05 23:18           ` Kees Cook
2013-04-06 10:10           ` [kernel-hardening] " Borislav Petkov
2013-04-06 10:10             ` Borislav Petkov
2013-04-08  5:34             ` [kernel-hardening] " Hasinoliva MIARIMANJATO
2013-04-08 12:13         ` Ingo Molnar
2013-04-08 12:13           ` Ingo Molnar
2013-04-08  5:34 ` [kernel-hardening] [PATCH 0/3] kernel ASLR Hasinoliva MIARIMANJATO
2013-04-11 20:52 ` [kernel-hardening] " H. Peter Anvin
2013-04-11 20:52   ` H. Peter Anvin
2013-04-11 21:28   ` [kernel-hardening] " Kees Cook
2013-04-11 21:28     ` 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=515E2425.6080601@zytor.com \
    --to=hpa@zytor.com \
    --cc=digitaleric@google.com \
    --cc=drosenberg@vsecurity.com \
    --cc=jarkko.sakkinen@intel.com \
    --cc=jln@google.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.fleming@intel.com \
    --cc=mingo@redhat.com \
    --cc=mjg@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=wad@chromium.org \
    --cc=x86@kernel.org \
    /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.