Date: Fri, 5 May 2017 08:47:37 -0700 From: Thomas Garnier <thgarnie@...gle.com> To: Daniel Gruss <daniel.gruss@...k.tugraz.at> Cc: kernel list <linux-kernel@...r.kernel.org>, Kernel Hardening <kernel-hardening@...ts.openwall.com>, "clementine.maurice@...k.tugraz.at" <clementine.maurice@...k.tugraz.at>, "moritz.lipp@...k.tugraz.at" <moritz.lipp@...k.tugraz.at>, Michael Schwarz <michael.schwarz@...k.tugraz.at>, Richard Fellner <richard.fellner@...dent.tugraz.at>, "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>, Ingo Molnar <mingo@...nel.org>, "anders.fogh@...ta-adan.de" <anders.fogh@...ta-adan.de> Subject: Re: [RFC, PATCH] x86_64: KAISER - do not map kernel in user mode On Fri, May 5, 2017 at 1:23 AM, Daniel Gruss <daniel.gruss@...k.tugraz.at> wrote: > > On 04.05.2017 17:28, Thomas Garnier wrote: >> >> Please read the documentation on submitting patches  and coding style . > > > I will have a closer look at that. > >> - How this approach prevent the hardware attacks you mentioned? You >> still have to keep a part of _text in the pagetable and an attacker >> could discover it no? (and deduce the kernel base address). > > > These parts are moved to a different section (.user_mapped) which is at a possibly predictable location - the location of the randomized parts of the kernel is independent of the location of .user_mapped. > The code/data footprint for .user_mapped is quite small, helping to reduce or eliminate the attack surface... > If I get it right, it means you can leak the per-cpu address instead of the kernel. Correct? That would be a problem because you can elevate privilege by overwriting per-cpu variables. Leaking this address means also defeating KASLR memory randomization  (cf paper in the commit). In theory you could put the code in the fixmap but you still have the per-cpu variables and changing that is hard.  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=021182e52fe01c1f7b126f97fd6ba048dc4234fd >> You also need to make it clear that btb attacks are still possible. > > > By just increasing the KASLR randomization range, btb attacks can be mitigated (for free). Correct, I hope we can do that. > >> - What is the perf impact? > > > It will vary for different machines. We have promising results (<1%) for an i7-6700K with representative benchmarks. However, for older systems or for workloads with a lot of pressure on some TLB levels, the performance may be much worse. I think including performance data in both cases would be useful. -- Thomas
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.