From: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Andy Lutomirski <luto@kernel.org>,
Kees Cook <keescook@chromium.org>,
Kristen Carlson Accardi <kristen@linux.intel.com>,
Kernel Hardening <kernel-hardening@lists.openwall.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
"H. Peter Anvin" <hpa@zytor.com>, X86 ML <x86@kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: entry: flush the cache if syscall error
Date: Fri, 12 Oct 2018 16:02:19 +0100 [thread overview]
Message-ID: <20181012160219.7d16ef59@alans-desktop> (raw)
In-Reply-To: <77F59E25-5244-4CBC-A3CB-DCF863803CD2@amacapital.net>
> My understanding is that the standard “breadcrumb” is that a cache line is fetched into L1D, and that the cacheline in question will go into L1D even if it was previously not cached at all. So flushing L1D will cause the timing from a probe to be different, but the breadcrumb is still there, and the attack will still work.
Flush not write back. The L1D is empty (or full of other stuff the way
the prototype I tested did it as x86 lacked a true L1 flushing primitive)
> > At best you have a microscopic window to attack it on the SMT pair.
>
> So only the extra clever attackers will pull it off. This isn’t all that reassuring.
It's going to be very hard for them to do that. You don't really have the
timing control in userspace to do that sort of thing easily.
At the end of the day it's an additional hardenening not a fix. It's
designed to provide extra protection for the cases we don't know about
until we find them and lfence them. All of this (and all sidechannel of
any kind) is merely about reducing the bandwidth an attacker can achieve.
The idea is that it's cheap enough that it's worth doing.
> Or I would get a fancy new CPU and use UMONITOR and, unless UMONITOR is much cleverer than I suspect it is, the gig is up. The time window for the attack could be as small as you want, and UMONITOR will catch it.
That would be an interesting line of attack. You would still have to
navigate a fair bit of noise.
Alan
next prev parent reply other threads:[~2018-10-12 15:03 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-11 18:54 [PATCH] x86: entry: flush the cache if syscall error Kristen Carlson Accardi
2018-10-11 19:25 ` Andy Lutomirski
2018-10-11 20:15 ` Kristen C Accardi
2018-10-11 20:25 ` Alan Cox
2018-10-11 20:47 ` Andy Lutomirski
2018-10-12 9:20 ` Samuel Neves
2018-10-12 13:25 ` Jann Horn
2018-10-12 14:28 ` Samuel Neves
2018-10-11 20:48 ` Andy Lutomirski
2018-10-11 20:55 ` Kees Cook
2018-10-11 21:17 ` Andy Lutomirski
2018-10-11 22:11 ` Jann Horn
2018-10-12 14:25 ` Alan Cox
2018-10-12 14:43 ` Andy Lutomirski
2018-10-12 15:02 ` Alan Cox [this message]
2018-10-12 15:41 ` Jann Horn
2018-10-12 16:07 ` Andy Lutomirski
2018-10-11 21:23 ` Kristen C Accardi
2018-10-11 23:43 ` Thomas Gleixner
2018-10-11 21:42 ` Jann Horn
2018-10-11 23:15 ` Thomas Gleixner
2018-10-11 22:33 ` Thomas Gleixner
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=20181012160219.7d16ef59@alans-desktop \
--to=gnomes@lxorguk.ukuu.org.uk \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=kristen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox